操作系統(tǒng)分頁(yè)和分段區(qū)別是什么
學(xué)習(xí)操作系統(tǒng)的朋友們可能有人操作系統(tǒng)中分頁(yè)和分段中卡殼了,相對(duì)比較抽象,那么他們的區(qū)別是什么呢。下面由學(xué)習(xí)啦小編為大家整理了操作系統(tǒng)中分頁(yè)和分段的區(qū)別之處,希望對(duì)大家有幫助。
一分段存儲(chǔ)管理介紹
1.基本思想
將用戶程序地址空間分成若干個(gè)大小不等的段,每段可以定義一組相對(duì)完整的邏輯信息。存儲(chǔ)分配時(shí),以段為單位,段與段在內(nèi)存中可以不相鄰接,也實(shí)現(xiàn)了離散分配。
2. 分段存儲(chǔ)方式的引入
方便編程
分段共享
分段保護(hù)
動(dòng)態(tài)鏈接
動(dòng)態(tài)增長(zhǎng)
3. 分段地址結(jié)構(gòu)
作業(yè)的地址空間被劃分為若干個(gè)段,每個(gè)段定義了一組邏輯信息。例程序段、數(shù)據(jù)段等。每個(gè)段都從0開始編址,并采用一段連續(xù)的地址空間。
段的長(zhǎng)度由相應(yīng)的邏輯信息組的長(zhǎng)度決定,因而各段長(zhǎng)度不等。整個(gè)作業(yè)的地址空間是二維的。
15 12 11 0
段號(hào) 段內(nèi)位移量
段號(hào)4位,每個(gè)作業(yè)最多24=16段,表示段號(hào)從0000~1111(24-1);段內(nèi)位移量12位,212=4k,表示每段的段內(nèi)地址最大為4K(各段長(zhǎng)度不同),從000000000000~111111111111
4. 段表
段號(hào) 段長(zhǎng) 起始地址 存取控制
0 1K 4096
1 4K 17500
2 2K 8192
5. 地址變換
(1). 程序執(zhí)行時(shí),從PCB中取出段表始址和段表長(zhǎng)度(3),裝入段表寄存器。
(2). 由分段地址變換機(jī)構(gòu)將邏輯地址自動(dòng)分成段號(hào)和段內(nèi)地址。
例:7310D=0001|110010001110B=1C8EH
段號(hào)為1,位移量為C8EH=3214D
(3). 將段號(hào)與段表長(zhǎng)度進(jìn)行比較(1<3),若段號(hào)大于或等于段表長(zhǎng)度,則表示本次訪問的地址已超越進(jìn)程的地址空間,產(chǎn)生越界中斷。
(4). 將段表始址與段號(hào)和段表項(xiàng)長(zhǎng)度的乘積相加,便得到該段表項(xiàng)在段表中的位置。
(5). 取出段描述子得到該段的起始物理地址。1 4K 17500
(6). 檢查段內(nèi)位移量是否超出該段的段長(zhǎng)(3214<4K),若超過,產(chǎn)生越界中斷。
(7). 對(duì)該段的存取控制進(jìn)行檢查。
(8). 將該段基址和段內(nèi)地址相加,得到實(shí)際的物理地址。
例:0001|110010001101B
起始地址17500D+段內(nèi)地址3214D=20714D
二. 分頁(yè)存儲(chǔ)管理介紹
1.基本思想
用戶程序的地址空間被劃分成若干固定大小的區(qū)域,稱為“頁(yè)”,相應(yīng)地,內(nèi)存空間分成若干個(gè)物理塊,頁(yè)和塊的大小相等。可將用戶程序的任一頁(yè)放在內(nèi)存的任一塊中,實(shí)現(xiàn)了離散分配。
2. 分頁(yè)存儲(chǔ)管理的地址機(jī)構(gòu)
15 12 11 0
頁(yè)號(hào)P 頁(yè)內(nèi)位移量W
頁(yè)號(hào)4位,每個(gè)作業(yè)最多2的4次方=16頁(yè),表示頁(yè)號(hào)從0000~1111(24-1),頁(yè)內(nèi)位移量的位數(shù)表示頁(yè)的大小,若頁(yè)內(nèi)位移量12位,則2的12次方=4k,頁(yè)的大小為4k,頁(yè)內(nèi)地址從000000000000~111111111111
若給定一個(gè)邏輯地址為A,頁(yè)面大小為L(zhǎng),則
頁(yè)號(hào)P=INT[A/L],頁(yè)內(nèi)地址W=A MOD L
3. 頁(yè)表
分頁(yè)系統(tǒng)中,允許將進(jìn)程的每一頁(yè)離散地存儲(chǔ)在內(nèi)存的任一物理塊中,為了能在內(nèi)存中找到每個(gè)頁(yè)面對(duì)應(yīng)的物理塊,系統(tǒng)為每個(gè)進(jìn)程建立一張頁(yè)面映射表,簡(jiǎn)稱頁(yè)表。頁(yè)表的作用是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊號(hào)的地址映射。
頁(yè)表:
頁(yè)號(hào) 物理塊號(hào) 存取控制
0 2
1 15(F)
2 14(E)
3 1
4. 地址變換
(1) 程序執(zhí)行時(shí),從PCB中取出頁(yè)表始址和頁(yè)表長(zhǎng)度(4),裝入頁(yè)表寄存器PTR。
(2) 由分頁(yè)地址變換機(jī)構(gòu)將邏輯地址自動(dòng)分成頁(yè)號(hào)和頁(yè)內(nèi)地址。
例:11406D=0010|110010001110B=2C8EH
頁(yè)號(hào)為2,位移量為C8EH=3214D
或11406 DIV 4096=2
11406 MOD 4096=3214
(3) 將頁(yè)號(hào)與頁(yè)表長(zhǎng)度進(jìn)行比較(2<4),若頁(yè)號(hào)大于或等于頁(yè)表長(zhǎng)度,則表示本次訪問的地址已超越進(jìn)程的地址空間,產(chǎn)生越界中斷。
(4) 將頁(yè)表始址與頁(yè)號(hào)和頁(yè)表項(xiàng)長(zhǎng)度的乘積相加,便得到該頁(yè)表項(xiàng)在頁(yè)表中的位置。
(5) 取出頁(yè)描述子得到該頁(yè)的物理塊號(hào)。 2 14(E)
(6) 對(duì)該頁(yè)的存取控制進(jìn)行檢查。
(7) 將物理塊號(hào)送入物理地址寄存器中,再將有效地址寄存器中的頁(yè)內(nèi)地址直接送入物理地址寄存器的塊內(nèi)地址字段中,拼接得到實(shí)際的物理地址。
例:0010|110010001101B
1110|110010001101B=EC8EH=60558D
或 14*4096+3214=60558D
5. 具有快表的地址變換機(jī)構(gòu)
分頁(yè)系統(tǒng)中,CPU每次要存取一個(gè)數(shù)據(jù),都要兩次訪問內(nèi)存(訪問頁(yè)表、訪問實(shí)際物理地址)。為提高地址變換速度,增設(shè)一個(gè)具有并行查詢能力的特殊高速緩沖存儲(chǔ)器,稱為“聯(lián)想存儲(chǔ)器”或“快表”,存放當(dāng)前訪問的頁(yè)表項(xiàng)。
三.分頁(yè)與分段的主要區(qū)別
分頁(yè)和分段有許多相似之處,比如兩者都不要求作業(yè)連續(xù)存放.但在概念上兩者完全不同,主要表現(xiàn)在以下幾個(gè)方面:
(1)頁(yè)是信息的物理單位,分頁(yè)是為了實(shí)現(xiàn)非連續(xù)分配,以便解決內(nèi)存碎片問題,或者說分頁(yè)是由于系統(tǒng)管理的需要.段是信息的邏輯單位,它含有一組意義相對(duì)完整的信息,分段的目的是為了更好地實(shí)現(xiàn)共享,滿足用戶的需要.
(2)頁(yè)的大小固定,由系統(tǒng)確定,將邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址是由機(jī)器硬件實(shí)現(xiàn)的.而段的長(zhǎng)度卻不固定,決定于用戶所編寫的程序,通常由編譯程序在對(duì)源程序進(jìn)行編譯時(shí)根據(jù)信息的性質(zhì)來劃分.
(3)分頁(yè)的作業(yè)地址空間是一維的.分段的地址空間是二維的.