操作系統(tǒng)考試分頁(yè)與分段的區(qū)別
操作系統(tǒng)考試分頁(yè)與分段的區(qū)別
相信很多人都搞不明白操作系統(tǒng)中分頁(yè)和分段的區(qū)別。下面由學(xué)習(xí)啦小編為大家整理了操作系統(tǒng)中分頁(yè)和分段的區(qū)別之處,希望對(duì)大家有幫助。
一. 分頁(yè)存儲(chǔ)管理介紹
1.基本思想
用戶(hù)程序的地址空間被劃分成若干固定大小的區(qū)域,稱(chēng)為“頁(yè)”,相應(yīng)地,內(nèi)存空間分成若干個(gè)物理塊,頁(yè)和塊的大小相等??蓪⒂脩?hù)程序的任一頁(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)稱(chēng)頁(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)度,則表示本次訪(fǎng)問(wèn)的地址已超越進(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ù),都要兩次訪(fǎng)問(wèn)內(nèi)存(訪(fǎng)問(wèn)頁(yè)表、訪(fǎng)問(wèn)實(shí)際物理地址)。為提高地址變換速度,增設(shè)一個(gè)具有并行查詢(xún)能力的特殊高速緩沖存儲(chǔ)器,稱(chēng)為“聯(lián)想存儲(chǔ)器”或“快表”,存放當(dāng)前訪(fǎng)問(wèn)的頁(yè)表項(xiàng)。
二.分段存儲(chǔ)管理介紹
1.基本思想
將用戶(hù)程序地址空間分成若干個(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開(kāi)始編址,并采用一段連續(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)度,則表示本次訪(fǎng)問(wèn)的地址已超越進(jìn)程的地址空間,產(chǎn)生越界中斷。
(4). 將段表始址與段號(hào)和段表項(xiàng)長(zhǎng)度的乘積相加,便得到該段表項(xiàng)在段表中的位置。
(5). 取出段描述子得到該段的起始物理地址。1 4K 17500
(6). 檢查段內(nèi)位移量是否超出該段的段長(zhǎng)(3214<4K),若超過(guò),產(chǎn)生越界中斷。
(7). 對(duì)該段的存取控制進(jìn)行檢查。
(8). 將該段基址和段內(nèi)地址相加,得到實(shí)際的物理地址。
例:0001|110010001101B
起始地址17500D+段內(nèi)地址3214D=20714D
三.分頁(yè)與分段的主要區(qū)別
分頁(yè)和分段有許多相似之處,比如兩者都不要求作業(yè)連續(xù)存放.但在概念上兩者完全不同,主要表現(xiàn)在以下幾個(gè)方面:
(1)頁(yè)是信息的物理單位,分頁(yè)是為了實(shí)現(xiàn)非連續(xù)分配,以便解決內(nèi)存碎片問(wèn)題,或者說(shuō)分頁(yè)是由于系統(tǒng)管理的需要.段是信息的邏輯單位,它含有一組意義相對(duì)完整的信息,分段的目的是為了更好地實(shí)現(xiàn)共享,滿(mǎn)足用戶(hù)的需要.
(2)頁(yè)的大小固定,由系統(tǒng)確定,將邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址是由機(jī)器硬件實(shí)現(xiàn)的.而段的長(zhǎng)度卻不固定,決定于用戶(hù)所編寫(xiě)的程序,通常由編譯程序在對(duì)源程序進(jìn)行編譯時(shí)根據(jù)信息的性質(zhì)來(lái)劃分.
(3)分頁(yè)的作業(yè)地址空間是一維的.分段的地址空間是二維的.
四.段頁(yè)式存儲(chǔ)管理
1.基本思想:
分頁(yè)系統(tǒng)能有效地提高內(nèi)存的利用率,而分段系統(tǒng)能反映程序的邏輯結(jié)構(gòu),便于段的共享與保護(hù),將分頁(yè)與分段兩種存儲(chǔ)方式結(jié)合起來(lái),就形成了段頁(yè)式存儲(chǔ)管理方式。
在段頁(yè)式存儲(chǔ)管理系統(tǒng)中,作業(yè)的地址空間首先被分成若干個(gè)邏輯分段,每段都有自己的段號(hào),然后再將每段分成若干個(gè)大小相等的頁(yè)。對(duì)于主存空間也分成大小相等的頁(yè),主存的分配以頁(yè)為單位。
段頁(yè)式系統(tǒng)中,作業(yè)的地址結(jié)構(gòu)包含三部分的內(nèi)容:段號(hào) 頁(yè)號(hào) 頁(yè)內(nèi)位移量
程序員按照分段系統(tǒng)的地址結(jié)構(gòu)將地址分為段號(hào)與段內(nèi)位移量,地址變換機(jī)構(gòu)將段內(nèi)位移量分解為頁(yè)號(hào)和頁(yè)內(nèi)位移量。
為實(shí)現(xiàn)段頁(yè)式存儲(chǔ)管理,系統(tǒng)應(yīng)為每個(gè)進(jìn)程設(shè)置一個(gè)段表,包括每段的段號(hào),該段的頁(yè)表始址和頁(yè)表長(zhǎng)度。每個(gè)段有自己的頁(yè)表,記錄段中的每一頁(yè)的頁(yè)號(hào)和存放在主存中的物理塊號(hào)。
2.地址變換的過(guò)程:
(1)程序執(zhí)行時(shí),從PCB中取出段表始址和段表長(zhǎng)度,裝入段表寄存器。
(2)由地址變換機(jī)構(gòu)將邏輯地址自動(dòng)分成段號(hào)、頁(yè)號(hào)和頁(yè)內(nèi)地址。
(3)將段號(hào)與段表長(zhǎng)度進(jìn)行比較,若段號(hào)大于或等于段表長(zhǎng)度,則表示本次訪(fǎng)問(wèn)的地址已超越進(jìn)程的地址空間,產(chǎn)生越界中斷。
(4)將段表始址與段號(hào)和段表項(xiàng)長(zhǎng)度的乘積相加,便得到該段表項(xiàng)在段表中的位置。
(5)取出段描述子得到該段的頁(yè)表始址和頁(yè)表長(zhǎng)度。
(6)將頁(yè)號(hào)與頁(yè)表長(zhǎng)度進(jìn)行比較,若頁(yè)號(hào)大于或等于頁(yè)表長(zhǎng)度,則表示本次訪(fǎng)問(wèn)的地址已超越進(jìn)程的地址空間,產(chǎn)生越界中斷。
(7)將頁(yè)表始址與頁(yè)號(hào)和頁(yè)表項(xiàng)長(zhǎng)度的乘積相加,便得到該頁(yè)表項(xiàng)在頁(yè)表中的位置。
(8)取出頁(yè)描述子得到該頁(yè)的物理塊號(hào)。
(9)對(duì)該頁(yè)的存取控制進(jìn)行檢查。
(10)將物理塊號(hào)送入物理地址寄存器中,再將有效地址寄存器中的頁(yè)內(nèi)地址直接送入物理地址寄存器的塊內(nèi)地址字段中,拼接得到實(shí)際的物理地址。