【例】為何段式管理有段內越界而頁式管理無頁內越界問題?(南方名校經典試題)
【分析】段是按邏輯長度來劃分的長度不固定但頁是按物理塊來劃分長度固定因此段號可能會超過頁表長度而段內地址也可能超過該段段長
【解答】段式存儲管理邏輯地址到物理地址的轉換原理是這樣的
在段式存儲管理系統中為了實現從邏輯地址到物理地址的轉換系統將邏輯地址中的段號與段表長度進行比較若段號超過了段表長度則表示段號太大於是產生越界中斷信號若未越界則根據段表始址和段號計算出該段對應段表項的位置從中讀出該段在內存的起始地址然後再檢查段內地址是否超過該段的段長若超過則同樣發出越界中斷信號若未越界則將該段的起始地址與段內位移相加從而得到了要訪問的物理地址
而頁式管理中一頁時間就是一個物理塊頁式管理的引入本身就是為了節約空間而段式管理是為了方便存儲保護和共享在頁式管理中每一頁大小都相同的而段式管理段的大小卻是不相同的所以有可能超過段大小的上限
【例】在請求頁式存儲分配中是如何獲知該頁不在主存的?若被訪問的頁面不在主存那麼從何處獲知它在外存或對換區內的位置?(東部名校經典試題)
【分析】在請求頁式存儲器中通過增加中斷判別位獲知頁是否處於主存而且本身在外存還保留著頁在外存的起始地址這樣可以判別該頁是在那個區
【解答】請求頁式存儲中通過對頁表進行擴充即增加了該頁是否在內存的中斷位來獲知該頁是否存在主存若為則說明不在主存為說明該頁已經調入主存通過在頁表中增加該頁在外存中的副本起始地址可以獲知其在外存或在對換區的位置
【例】什麼叫重定位?采用內存分區管理時如何實現程序運行時的動態重定向?(北方名校經典試題)
【分析】重定位實際就是在真正執行時才將相對地址轉換成絕對地址一般來說必須增加一個重定位寄存器真正的地址是有效地址與寄存器內的地址之和
【解答】在裝入時對目標程序中的指令和數據地址的修改過程稱為重定位
動態運行時的裝入程序在把裝入模塊裝入內存後並不立即把裝入模塊中的相對地址轉換為絕對地址而是把這種地址轉換推遲到程序要真正執行時才進行因此裝入內存後的所有地址仍都是相對地址為使地址轉換不影響指令的執行速度這種方式需要一定的特殊硬件的支持
返回《操作系統考研輔導教程》
[] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/czxt/201311/24230.html