操作系統--課堂問答筆記18--習題答案

課堂筆記學習視頻來自 操作系統
說明:其他”課堂問答筆記“也在”操作系統“專欄

【4-3、4-4】

  1. 相對於分頁存儲管理,分段存儲管理方式有哪些優勢?
    答:
    1 )方便編程:通常,用戶把自己的作業按照邏輯關係劃分爲若干個段(一個函數或一個子程序對應一個段),每個段都從0開始編址,並有自己的名字和長度。因此,程序員們都迫切地需要訪問的邏輯地址是由段名(段號)和段內偏移量(段內地址)決定的,這不僅可以方便程序員編程,也可使程序非常直觀,更具可讀性。
    2 ) 信息共享:在實現對程序和數據的共享時,是以信息(就是數據)的邏輯單位爲基礎的。比如,共享某個函數。分頁系統中的“頁”只是存放信息的物理單位(塊),並無完整的意義(因爲一個函數可能放在若干頁中,當然也可能一頁中包含幾個函數的代碼),不便於實現共享;然而段卻是信息的邏輯單位。由此可知,爲了實現段的共享,希望存儲管理能與用戶程序分段的組織方式相適應。
    3 ) 信息保護:信息保護同樣是對信息的邏輯單位進行保護,因此,分段管理方式能更有效和方便地實現信息保護功能(分頁系統中一個函數可能放在若干頁中,要實現一個函數的保護顯然是困難的)。
    4 ) 動態增長:在實際應用中,往往有些段,特別是數據段,在使用過程中會不斷地增長(例如:可能在程序的執行過程中產生了一些臨時數據導致長度增加),而事先又無法確切地知道數據段會增長到多大。前述的其它幾種存儲管理方式,都難以應付這種動態增長的情況,而分段存儲管理方式卻能較好地解決這一問題。
    5 ) 動態鏈接:動態鏈接是指在作業運行之前,並不把幾個目標程序段鏈接起來。要運行時,先將主程序所對應的目標程序裝入內存並啓動運行,當運行過程中又需要調用某段時,纔將目標程序段臨時調入內存並進行鏈接。可見,分段存儲管理方式較容易實現動態鏈接。(分頁系統的頁中除了有某個函數的代碼,也可能有其它函數的代碼,不好實現動態鏈接)

  2. 簡述分段存儲管理方式的地址變換原理?
    答:爲了實現從進程的邏輯地址到物理地址的變換功能,在系統中設置了段表寄存器,用於存放段表始址和段表長度TL(就是段表的行數)。在進行地址變換時,系統將邏輯地址中的段號S(0~TL-1)與段表長度TL進行比較。若S>=TL,表示段號太大,是訪問越界,於是產生越界中斷信號;若未越界,則根據段表的始址和該段的段號,計算出該段對應段表項的位置(段表的始址+段號段表項的長度),從中讀出該段在內存的起始地址,然後再檢查段內地址d是否超過該段的段長SL。若超過,即d>SL,同樣發出越界中斷信號;若未越界,則將該段的基址與段內地址d相加(下圖:8K+100=81024+100=8192),即可得到要訪問的內存物理地址。
    在這裏插入圖片描述

  3. 分頁存儲管理和分段存儲管理的主要區別?
    答:
    1 ) 需求:分頁是出於系統管理的需要,是一種信息(就是數據)的物理劃分單位,分段是出於用戶應用的需要,是一種邏輯單位,通常包含一組意義相對完整的信息(在一個段中僅包含一個完整的函數或子程序)。一個函數或子程序可能會跨越兩個頁的分界處(即一個函數或子程序可能放在若干頁中),而不會跨越兩個段的分界處。
    2 ) 大小:頁大小是系統固定的,而段大小則通常不固定(因爲多個函數或子程序的大小顯然不相等)。分段沒有內部碎片(因爲段的大小就是按存放於其中的函數或子程序決定的),但連續存放段產生外碎片,可以通過內存緊縮(緊湊)來消除;分頁產生內部碎片(最後一頁)。相對而言分段方式空間利用率高。
    3 ) 邏輯地址:分頁是一維的,各個模塊在鏈接時必須組織成同一個地址空間;分段是二維的,在標識一個地址時,既需給出段號,又需給出段內地址。
    4 ) 通常段的大小比頁大,因而段表比頁表短,可以縮短查找時間,提高訪問速度。分段模式下,還可針對不同類型採取不同的保護;按段爲單位來進行共享;方便實現動態鏈接。

  4. 在一個分段存儲管理系統中,其段表如下表1所示。試求表2中邏輯地址對應的物理地址是什麼?
    在這裏插入圖片描述
    在這裏插入圖片描述
    答:
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章