一、前言

    在《操作系統(tǒng)篇-淺談實(shí)模式與保護(hù)模式》中提到了兩種模式,我們說(shuō)在操作系統(tǒng)中,其實(shí)大部分時(shí)間是待在保護(hù)模式中的。因此若想理解操作系統(tǒng)程序中的啟動(dòng)相關(guān)的部分,必須要理解保護(hù)模式下的編程,而分段機(jī)制是保護(hù)模式編程下的基礎(chǔ)。而且,由于實(shí)模式與保護(hù)模式的不同,對(duì)保護(hù)模式下的分段機(jī)制更需要注意。

  二、線性地址

  在保護(hù)模式下編程,訪問內(nèi)存時(shí),需要在程序中給出段地址和偏移量,因?yàn)榉侄问潜Wo(hù)模式的基本特征之一。傳統(tǒng)上,段地址和偏移地址稱為邏輯地址,偏移地址叫做有效地址,在指令中給出有效地址的方式叫做尋址方式

  段的管理是由處理器的段部件負(fù)責(zé)進(jìn)行的,段部件將段地址和偏移地址相加,得到訪問內(nèi)存的地址。一般來(lái)說(shuō),段部件產(chǎn)生的地址就是物理地址

  在分段模型下,內(nèi)存的分配是不定長(zhǎng)的,時(shí)間長(zhǎng)了,內(nèi)存空間就會(huì)碎片化,就有可能出現(xiàn)一種情況:內(nèi)存空間是有的,但都是小塊,無(wú)法分配給某個(gè)任務(wù)。為了解決這個(gè)問題,在支持分頁(yè)功能后,分頁(yè)功能將物理內(nèi)存空間劃分成邏輯上的頁(yè)。頁(yè)的大小是固定的,一般為 4KB,通過(guò)使用頁(yè),可以簡(jiǎn)化內(nèi)存管理。

  如下圖所示,當(dāng)頁(yè)功能開啟時(shí),段部件產(chǎn)生的地址就不再是物理地址了,而是線性地址,線性地址還要經(jīng)頁(yè)部件轉(zhuǎn)換后,才是物理地址。

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

 

   線性地址的概念用來(lái)描述任務(wù)的地址空間。如上圖所示, 32位保護(hù)模式中,每個(gè)任務(wù)都擁有4GB 的虛擬內(nèi)存空間,就像一段平直的線段,因此叫線性地址空間。相應(yīng)地,由段部件產(chǎn)生的地址,就對(duì)應(yīng)著線性地址空間上的每一個(gè)點(diǎn),這就是線性地址

   三、段

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式