1. 程式人生 > >作業系統之面試常考

作業系統之面試常考

動態分割槽分配演算法   1:首次適應演算法(FF):             要求地址空間遞增的順序連結,再分配記憶體時從鏈首開始查詢,知道有一個滿足的空間為止。該演算法優先利用記憶體中低址空間,保留了高址空間,缺點是低址部分不斷被劃分,留下許多記憶體碎片   2:迴圈首次適應演算法(NF):         為了防止留下碎片,減少低址空間開銷,NF演算法每次從上一次分配的地方繼續分配,該演算法需要一個起始查詢的指標用於指示下一次查詢的空間地址。缺點是:缺乏大的空間分割槽   3:最加適應演算法(BF):        每次作業分配時,總是把滿足要求,又是最小的空間分配給作業,該演算法把空間分割槽按其容量大小從小到大排列成空閒區鏈,缺點是:留下許多記憶體碎片
  4:最壞適應演算法(WF): 總是挑選最大的空閒區域分配給作業使用,優點是不至於使空閒區間太小,產生碎片的可能性小,缺點是:缺乏大的空間分割槽

分頁儲存管理方式

    分頁儲存的基本方法:         1:頁面和物理快   頁面:分頁儲存管理將程序的邏輯地址空間分成若干頁,並從0開始編號,把記憶體的實體地址分成若干塊(物理快)         2:地址結構:   頁號P ----- 偏移量W(包括頁號P和偏移量W),對於特定的機器其地址結構一定,給定邏輯地址A,頁面的大小為                                    L,則頁號P和頁內地址D有一下關係:P = int[A/L]; d=[A] MOD L  例如:頁面大小1kb A=2170B 得:p=2 d=122
        3:頁表:記錄相應頁在記憶體中對應的物理塊號         4:地址轉換機構:將使用者邏輯空間的地址,轉變為空間中的實體地址

分段儲存管理方式

        分段是管理不會產生記憶體碎片(短號 , 段內地址)         分段管理方式的引入原因:         1:一般程式分為若干段,如:主程式段、資料段、棧段等,每個段大多是一個相對獨立的單位         2:實現滿足資訊共享、資訊保護、動態連結、以及資訊動態增長等需要 分頁和分段的區別:   共同點:兩者都採用離散分配方式,且都地址對映機構來實現地址的轉換       不同點:         1:頁是資訊的物理單位採用分頁儲存管理方式是為了實現離散分配方法。提高記憶體的利用率,採用分段目的主要在於能更好的滿足使用者的需求
        2:頁的大小固定且有系統決定,在採用分頁儲存管理方式中直接由硬體實現。而段的大小不固定,決定於使用者所編寫的程式         3:分頁的地址空間是一維的,分頁完全是系統完全是行為,分段系統中是二維的。

段頁式儲存管理方式

 基本原理是分段和分頁相結合,其地址結構由:段號、段內頁號、頁內地址三部分組成。在段頁式系統中獲得一條指令需要三次訪問記憶體,第一次訪問記憶體中的段表,第二次訪問記憶體中的頁表,第三次訪問記憶體中的資料。

Windows下的記憶體是如何管理的?

 Windows提供了3種方法來進行記憶體管理:

    1:虛擬記憶體,最適合用來管理大型物件或者結構陣列;

    2:記憶體對映檔案,最適合用來管理大型資料流(通常來自檔案)以及在單個計算機上執行多個程序之間共享資料;

    3:記憶體堆疊,最適合用來管理大量的小物件。

 Windows操縱記憶體可以分兩個層面:實體記憶體和虛擬記憶體。

 其中實體記憶體由系統管理,不允許應用程式直接訪問

五、虛擬儲存器 

作業系統的內容分為幾塊?什麼叫做虛擬記憶體?他和主存的關係如何?記憶體管理屬於作業系統的內容嗎?

    作業系統的主要組成部分:程序和執行緒的管理,儲存管理,裝置管理,檔案管理。虛擬記憶體是一些系統頁檔案,存放在磁碟上,每個系統頁檔案大小為4K,物 理記憶體也被分頁,每個頁大小也為4K,這樣虛擬頁檔案和實體記憶體頁就可以對應,實際上虛擬記憶體就是用於實體記憶體的臨時存放的磁碟空間。頁檔案就是記憶體頁, 實體記憶體中每頁叫物理頁,磁碟上的頁檔案叫虛擬頁,物理頁+虛擬頁就是系統所有使用的頁檔案的總和。