學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > 操作系統(tǒng)基礎(chǔ)知識 > 操作系統(tǒng)考試分頁與分段的區(qū)別

操作系統(tǒng)考試分頁與分段的區(qū)別

時間: 佳洲1085 分享

操作系統(tǒng)考試分頁與分段的區(qū)別

  相信很多人都搞不明白操作系統(tǒng)中分頁和分段的區(qū)別。下面由學(xué)習(xí)啦小編為大家整理了操作系統(tǒng)中分頁和分段的區(qū)別之處,希望對大家有幫助。

  一. 分頁存儲管理介紹

  1.基本思想

  用戶程序的地址空間被劃分成若干固定大小的區(qū)域,稱為“頁”,相應(yīng)地,內(nèi)存空間分成若干個物理塊,頁和塊的大小相等??蓪⒂脩舫绦虻娜我豁摲旁趦?nèi)存的任一塊中,實現(xiàn)了離散分配。

  2. 分頁存儲管理的地址機構(gòu)

  15 12 11 0

  頁號P 頁內(nèi)位移量W

  頁號4位,每個作業(yè)最多2的4次方=16頁,表示頁號從0000~1111(24-1),頁內(nèi)位移量的位數(shù)表示頁的大小,若頁內(nèi)位移量12位,則2的12次方=4k,頁的大小為4k,頁內(nèi)地址從000000000000~111111111111

  若給定一個邏輯地址為A,頁面大小為L,則

  頁號P=INT[A/L],頁內(nèi)地址W=A MOD L

  3. 頁表

  分頁系統(tǒng)中,允許將進程的每一頁離散地存儲在內(nèi)存的任一物理塊中,為了能在內(nèi)存中找到每個頁面對應(yīng)的物理塊,系統(tǒng)為每個進程建立一張頁面映射表,簡稱頁表。頁表的作用是實現(xiàn)從頁號到物理塊號的地址映射。

  頁表:

  頁號 物理塊號 存取控制

  0 2

  1 15(F)

  2 14(E)

  3 1

  4. 地址變換

  (1) 程序執(zhí)行時,從PCB中取出頁表始址和頁表長度(4),裝入頁表寄存器PTR。

  (2) 由分頁地址變換機構(gòu)將邏輯地址自動分成頁號和頁內(nèi)地址。

  例:11406D=0010|110010001110B=2C8EH

  頁號為2,位移量為C8EH=3214D

  或11406 DIV 4096=2

  11406 MOD 4096=3214

  (3) 將頁號與頁表長度進行比較(2<4),若頁號大于或等于頁表長度,則表示本次訪問的地址已超越進程的地址空間,產(chǎn)生越界中斷。

  (4) 將頁表始址與頁號和頁表項長度的乘積相加,便得到該頁表項在頁表中的位置。

  (5) 取出頁描述子得到該頁的物理塊號。 2 14(E)

  (6) 對該頁的存取控制進行檢查。

  (7) 將物理塊號送入物理地址寄存器中,再將有效地址寄存器中的頁內(nèi)地址直接送入物理地址寄存器的塊內(nèi)地址字段中,拼接得到實際的物理地址。

  例:0010|110010001101B

  1110|110010001101B=EC8EH=60558D

  或 14*4096+3214=60558D

  5. 具有快表的地址變換機構(gòu)

  分頁系統(tǒng)中,CPU每次要存取一個數(shù)據(jù),都要兩次訪問內(nèi)存(訪問頁表、訪問實際物理地址)。為提高地址變換速度,增設(shè)一個具有并行查詢能力的特殊高速緩沖存儲器,稱為“聯(lián)想存儲器”或“快表”,存放當前訪問的頁表項。

  二.分段存儲管理介紹

  1.基本思想

  將用戶程序地址空間分成若干個大小不等的段,每段可以定義一組相對完整的邏輯信息。存儲分配時,以段為單位,段與段在內(nèi)存中可以不相鄰接,也實現(xiàn)了離散分配。

  2. 分段存儲方式的引入

  方便編程

  分段共享

  分段保護

  動態(tài)鏈接

  動態(tài)增長

  3. 分段地址結(jié)構(gòu)

  作業(yè)的地址空間被劃分為若干個段,每個段定義了一組邏輯信息。例程序段、數(shù)據(jù)段等。每個段都從0開始編址,并采用一段連續(xù)的地址空間。

  段的長度由相應(yīng)的邏輯信息組的長度決定,因而各段長度不等。整個作業(yè)的地址空間是二維的。

  15 12 11 0

  段號 段內(nèi)位移量

  段號4位,每個作業(yè)最多24=16段,表示段號從0000~1111(24-1);段內(nèi)位移量12位,212=4k,表示每段的段內(nèi)地址最大為4K(各段長度不同),從000000000000~111111111111

  4. 段表

  段號 段長 起始地址 存取控制

  0 1K 4096

  1 4K 17500

  2 2K 8192

  5. 地址變換

  (1). 程序執(zhí)行時,從PCB中取出段表始址和段表長度(3),裝入段表寄存器。

  (2). 由分段地址變換機構(gòu)將邏輯地址自動分成段號和段內(nèi)地址。

  例:7310D=0001|110010001110B=1C8EH

  段號為1,位移量為C8EH=3214D

  (3). 將段號與段表長度進行比較(1<3),若段號大于或等于段表長度,則表示本次訪問的地址已超越進程的地址空間,產(chǎn)生越界中斷。

  (4). 將段表始址與段號和段表項長度的乘積相加,便得到該段表項在段表中的位置。

  (5). 取出段描述子得到該段的起始物理地址。1 4K 17500

  (6). 檢查段內(nèi)位移量是否超出該段的段長(3214<4K),若超過,產(chǎn)生越界中斷。

  (7). 對該段的存取控制進行檢查。

  (8). 將該段基址和段內(nèi)地址相加,得到實際的物理地址。

  例:0001|110010001101B

  起始地址17500D+段內(nèi)地址3214D=20714D

  三.分頁與分段的主要區(qū)別

  分頁和分段有許多相似之處,比如兩者都不要求作業(yè)連續(xù)存放.但在概念上兩者完全不同,主要表現(xiàn)在以下幾個方面:

  (1)頁是信息的物理單位,分頁是為了實現(xiàn)非連續(xù)分配,以便解決內(nèi)存碎片問題,或者說分頁是由于系統(tǒng)管理的需要.段是信息的邏輯單位,它含有一組意義相對完整的信息,分段的目的是為了更好地實現(xiàn)共享,滿足用戶的需要.

  (2)頁的大小固定,由系統(tǒng)確定,將邏輯地址劃分為頁號和頁內(nèi)地址是由機器硬件實現(xiàn)的.而段的長度卻不固定,決定于用戶所編寫的程序,通常由編譯程序在對源程序進行編譯時根據(jù)信息的性質(zhì)來劃分.

  (3)分頁的作業(yè)地址空間是一維的.分段的地址空間是二維的.

  四.段頁式存儲管理

  1.基本思想:

  分頁系統(tǒng)能有效地提高內(nèi)存的利用率,而分段系統(tǒng)能反映程序的邏輯結(jié)構(gòu),便于段的共享與保護,將分頁與分段兩種存儲方式結(jié)合起來,就形成了段頁式存儲管理方式。

  在段頁式存儲管理系統(tǒng)中,作業(yè)的地址空間首先被分成若干個邏輯分段,每段都有自己的段號,然后再將每段分成若干個大小相等的頁。對于主存空間也分成大小相等的頁,主存的分配以頁為單位。

  段頁式系統(tǒng)中,作業(yè)的地址結(jié)構(gòu)包含三部分的內(nèi)容:段號 頁號 頁內(nèi)位移量

  程序員按照分段系統(tǒng)的地址結(jié)構(gòu)將地址分為段號與段內(nèi)位移量,地址變換機構(gòu)將段內(nèi)位移量分解為頁號和頁內(nèi)位移量。

  為實現(xiàn)段頁式存儲管理,系統(tǒng)應(yīng)為每個進程設(shè)置一個段表,包括每段的段號,該段的頁表始址和頁表長度。每個段有自己的頁表,記錄段中的每一頁的頁號和存放在主存中的物理塊號。

  2.地址變換的過程:

  (1)程序執(zhí)行時,從PCB中取出段表始址和段表長度,裝入段表寄存器。

  (2)由地址變換機構(gòu)將邏輯地址自動分成段號、頁號和頁內(nèi)地址。

  (3)將段號與段表長度進行比較,若段號大于或等于段表長度,則表示本次訪問的地址已超越進程的地址空間,產(chǎn)生越界中斷。

  (4)將段表始址與段號和段表項長度的乘積相加,便得到該段表項在段表中的位置。

  (5)取出段描述子得到該段的頁表始址和頁表長度。

  (6)將頁號與頁表長度進行比較,若頁號大于或等于頁表長度,則表示本次訪問的地址已超越進程的地址空間,產(chǎn)生越界中斷。

  (7)將頁表始址與頁號和頁表項長度的乘積相加,便得到該頁表項在頁表中的位置。

  (8)取出頁描述子得到該頁的物理塊號。

  (9)對該頁的存取控制進行檢查。

  (10)將物理塊號送入物理地址寄存器中,再將有效地址寄存器中的頁內(nèi)地址直接送入物理地址寄存器的塊內(nèi)地址字段中,拼接得到實際的物理地址。

3589040