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