【ARM學(xué)習(xí)筆記】五、操作系統(tǒng)Operation System和內(nèi)存管理單元MMU
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、操作系統(tǒng)Operation System
第一臺(tái)計(jì)算機(jī)并沒有操作系統(tǒng),計(jì)算機(jī)工作采用手工操作方式,使用效率極其低下。
隨著計(jì)算機(jī)的性能越來越快,手工操作的慢速度和計(jì)算機(jī)的高速度之間形成了尖銳矛盾,人們迫切需要一套完整的控制程序來管理系統(tǒng)資源,從而提高系統(tǒng)資源的利用率。
于是各式各樣的操作系統(tǒng)出現(xiàn)了,人們又制定了新的目標(biāo),直到Unix的出現(xiàn),操作系統(tǒng)的基本概念、功能、基本結(jié)構(gòu)和組成才慢慢形成并漸趨完善,同時(shí),為了便于Unix的移植,Unix之父(Ken Thompson與Dennis Ritchie)又創(chuàng)造了C語言,并使用C語言重寫了內(nèi)核,并將內(nèi)核源代碼以“僅用于教育目的”的協(xié)議,提供給各所大學(xué)作為教學(xué)之用,成為當(dāng)時(shí)操作系統(tǒng)課程中的范例教材,之后,各大學(xué)公司開始通過Unix源碼對Unix進(jìn)行了各種各樣的改進(jìn)和擴(kuò)展,又出現(xiàn)了眾多類Unix操作系統(tǒng)。
時(shí)至今日,操作系統(tǒng)仍然在不斷更新研發(fā),只為提供更卓越的操作體驗(yàn)。
對于操作系統(tǒng)的功能,主要有以下幾點(diǎn):
1.進(jìn)程管理(Processing Management)
2.內(nèi)存管理(Memory Management)
3.硬件交互(Hardware Interaction,或“驅(qū)動(dòng)程序”,Device Driver)
4.文件系統(tǒng)(File System)
5.網(wǎng)絡(luò)通信(Networking)
6.用戶界面(User Interface)
7.安全機(jī)制(Security)
操作系統(tǒng)作為應(yīng)用程序與硬件之間的橋梁,在很大程度成為影響計(jì)算機(jī)系統(tǒng)整體性能的瓶頸。
就如谷歌公司的Android與蘋果公司的iOS,對于硬件的利用效率,完全處于不同層次
二、內(nèi)存管理單元MMU
內(nèi)存管理單元(Memory Management Unit)簡稱MMU,它是一塊硬件單元,類似于存儲(chǔ)控制器,它負(fù)責(zé)虛擬地址到物理地址的映射,并提供硬件機(jī)制的內(nèi)存訪問授權(quán)。
MMU可以使每個(gè)用戶進(jìn)程都擁有獨(dú)立的地址空間,同時(shí),內(nèi)存訪問權(quán)限的檢查可以保護(hù)每個(gè)進(jìn)程所用的內(nèi)存不會(huì)被其他進(jìn)程破壞。
早期的計(jì)算機(jī)由于性能低下,所用的程序是非常小的,可以全部裝入內(nèi)存中,隨著技術(shù)的發(fā)展,物理內(nèi)存無法滿足應(yīng)用程序的要求,所以引入了虛擬存儲(chǔ)器。
虛擬存儲(chǔ)器從邏輯上對內(nèi)存容量進(jìn)行擴(kuò)充,用戶看到的大容量只是一種感覺,是虛擬的,在32位的CPU系統(tǒng)中,這個(gè)虛擬內(nèi)存地址的范圍為0~0xFFFFFFFF(4GB),我們把這個(gè)地址范圍稱為虛擬地址空間。與虛擬地址空間、虛擬地址相對應(yīng)的是物理地址空間、物理地址,它們對應(yīng)實(shí)際的內(nèi)存。
我們在內(nèi)存中劃出一小塊空間,用來存儲(chǔ)虛擬內(nèi)存與物理內(nèi)存之間的映射關(guān)系。
如段(Section,1MB)映射,我們使用Excel中的術(shù)語來說的話,對于32位CPU,擁有4G的虛擬地址空間,所以只需要4096個(gè)單元格,每個(gè)單元格占用4Byte,用來描述物理內(nèi)存的一段(1MB),只需在內(nèi)存劃分出16KB即可
除此至外,還有頁(Page)映射方式,頁的大小有3種,大頁(64KB)、小頁(4KB)、極小頁(1KB)。
同時(shí),上面所說的單元格,其實(shí)在MMU中稱作“描述符”,在描述符中,不但保存了段、大頁、小頁、極小頁的其實(shí)物理地址,還保存了對應(yīng)的內(nèi)存訪問權(quán)限。
在配置好MMU之后,MMU將開始相應(yīng)CPU的請求,根據(jù)描述符中的內(nèi)容,做出相應(yīng)的操作。
同時(shí),為了提供性能和程序的運(yùn)行速度,還引入了TLB和Cache。
<完結(jié)>