第三章儲存器管理
1 源程式變為記憶體中可執行的程式需要經過哪些步驟?這些步驟分別有哪幾種方式?
a編譯:源**編譯成目標模組.obj
b鏈結:與庫函式鏈結在一起,形成裝入模組(靜態鏈結、裝入記憶體時動態鏈結、執行時動態鏈結)
c裝入:裝入記憶體執行。有絕對裝入(絕對位址)、可重定位裝入(靜態重定位;裝入時位址重定位)、動態執行時裝入(動態重定位;執行時位址重定位,需要重定位暫存器支援);
2 什麼叫重定位?動態重定位特點是什麼?(重定位的好處)
在儲存器管理中什麼是重定位?為什麼要引進重定位技術?2014
當裝入程式將可執行**裝入記憶體時,把邏輯位址轉換成實體地址的過程,叫重定位。(一般沒特殊說明,指的就是動態重定位)
1將程式分配到不連續的儲存器中;
2只需投入部分**即可執行;
3執行期間,根據**需求動態申請記憶體;
4便於程式段的共享,可用向使用者提供乙個比儲存空間大很多大位址空間。
3 記憶體是如何進行保護的?(訪問記憶體的位址是如何識別正確性的?)
(記憶體保護是為了確保作業系統的位址區不受使用者程序的影響)
使用重定位暫存器(含最小實體地址)和界位址暫存器(邏輯位址)來保護的。
首先將邏輯位址與界位址比較,小於則與重定位位址相加對映成實體地址;大於則出現越界中斷。
4 什麼是覆蓋技術、交換技術?
覆蓋:把使用者空間分成乙個固定區和若干的覆蓋區,經常活躍的放在固定區,其他按需要調入覆蓋區。
覆蓋優缺點:打破了將程序全部資訊裝入記憶體才能執行的限制;
當同時執行的程式**量大於記憶體仍不能執行、並且使用者需給出覆蓋區的結構
交換:即中級排程的程序的換入和換出。
(現在已經不使用覆蓋技術,現在是通過虛擬儲存技術來解決的)
1 記憶體分配管理有哪些方式?
根據作業是否在同一分區劃為連續分配和非連續分配。
a連續分配:1單一連續分配、2固定分割槽、3動態分割槽。
b非連續分配:1分頁、2分段、3段頁式(每個又根據是否使用虛擬記憶體技術分為基本和請求)
2 簡述連續分配管理的方式有哪些?優缺點有什麼?
a單一連續分配:分為系統區和使用者區。無需記憶體保護。
優缺點:有內部碎片,記憶體利用率低,且只適用於單任務單使用者的os中。
b固定分割槽分配:將記憶體空間劃分為固定大小區域,每個區域只裝入一道作業。
缺點:程式太大放不進去、主存利用率低、產生內部碎片。
c動態分割槽分配:根據程序大小動態建立分割槽,使分割槽大小正好適應程序需要。
缺點:剛開始的時候是比較好的,後面會導致外部碎片的產生。
3 什麼是內部碎片?外部碎片、通過什麼技術來解決?
內部碎片:程式小於固定分割槽大小,導致分割槽內部空間有剩餘。
外部碎片:在分割槽外部產生難以使用的碎片。
外部碎片通過「緊湊」技術來解決。
4 動態分割槽分配的空閒分割槽的分配策略有哪些?優缺點是什麼?
首次適應演算法first fit:空閒分割槽按位址順序次序鏈結起來,每次都分配第乙個;
最佳適應演算法best fit:空閒分割槽按從小到大鏈結起來,每次分配最能適應程式大小的那乙個;
最壞適應演算法worst fit:空閒分割槽按從大到小順序鏈結起來,每次分配最大的空間;
迴圈首次適應演算法next fit:首次適應演算法;只不過下一次尋找是從上一次結束位置開始。
first fit:最簡單,且效果最好、最快的。
缺點是記憶體低址部分出現很多小的分割槽,且每次查詢都要經過這些分割槽。
best fit:實際上比較差,因為每次分配都留下難以利用的記憶體塊,產生最多的碎片。
worst fit:導致很快沒有可用的大的記憶體塊。
next fit:它試**決首次適應演算法的問題,但實際上會導致在記憶體末尾分配空間。比首次還差。
1 連續分配的固定分割槽分配與非連續的分頁管理有什麼不同?
分頁在形式上看與固定分割槽一樣,但實際上不一樣;
分頁的大小比固定分割槽小很多,且分頁是按程序分頁,記憶體分塊(頁框),程序按塊為單位申請空間,所以只會在最後一塊中產生頁內碎片,所以不會產生外部碎片。這會使乙個作業的程序可能被分到了不同的塊中。
2 什麼是頁表?
分頁儲存管理系統中,頁表的主要作用是什麼?現代大多數計算機系統都支援非常大的邏輯位址空間,這給頁表設計帶來什麼問題?(頁表太大)2014
頁表是為了便於在記憶體中找到程序中每個頁面對應的物理塊號,系統為每乙個程序建立一張頁表,記錄在記憶體中物理塊號,頁表也一般放在記憶體中。
3 分頁管理方式存在哪兩種主要的問題?
每次訪問記憶體需要邏輯位址轉化到實體地址,所以轉化速度必須快;【快表】
每個程序引入頁表機制,頁表不能太大,否則記憶體利用率低【多級分頁和請求分頁】(見下)
4頁表太大會帶來什麼問題?解決方法有哪些?
難以在記憶體中找到一塊連續的位址,放下這麼大的頁表。即便是找到,也會占用記憶體很大的空間,記憶體的空間利用率下降。
1採用離散分配方式解決難以找到一塊連續的大記憶體空間;【多級頁表】
2只需將當前需要的部分頁表項調入記憶體,其餘頁表項駐留在外存上。【請求分頁】
5 頁表是什麼組成的?分頁的位址結構?
整張頁表,是由乙個個頁表項組成。每乙個頁表項由頁號和所對應的塊號組成。
分頁的位址結構由「頁號」+「頁內偏移量」組成。例如位址長度32位(頁號31~12,頁內偏移11~0)則
1「頁號」就是整張頁表中頁表項的偏移量。(現在頁號20位,即能支援的頁表項個數為220個。最大頁表項所對應的頁號是220-1。
2如果把一頁裡面放滿頁表編號(不是頁號,頁號是一頁裡面的頁表項的偏移量),即該一頁中的頁號中的一位對應一張頁表,就是能支援最大頁數。(位址空間所允許的最大頁數為220頁)
3「頁內偏移量」就是一頁的大小。(現在頁內偏移量為12位,即212b=4kb。即現在一頁的大小為4kb)
6慢表的位址變換過程?(整個過程由硬體自動完成)
整個過程就是把邏輯位址的頁號替換成物理塊號,就變為了實體地址。(假設頁面大小l=1kb,頁號2對應物理塊8,計算邏輯位址2500的實體地址?)
1系統常設「頁表暫存器」,存放該頁表的記憶體開始位址f和頁表長度m。(平時放在pcb中,要用時才調入暫存器)
(先找到該頁表,頁表長度為1024b)
2根據邏輯位址計算頁號p和頁內偏移量w -> 比較頁號p與頁表長度m(頁號是頁表的裡面乙個頁表項的偏移量與頁表長度,即總的頁表項相比較)->
(頁號p=邏輯位址/頁面大小;頁內偏移量w=邏輯位址%頁面大小)
(現在頁號p= 2500/1024b=2;頁內偏移量w=2500%1024b=452)
3 p(2<1024,繼續找到2對應8)
4 最後形成實體地址(注意:塊號在高位上,快內偏移在低位上,不能直接相加,需要把塊號*快內偏移最大量+快內偏移)
(實體地址=8*1024+452=8644)
7 什麼是快表?有快表和只有慢表訪存到次數是多少?
頁式管理中為什麼要設定頁表和快表?(加快位址重定位速度,從而加快了訪問速度)2011
快表:在高速緩衝器cache中增設當前訪問的若干表項,它是記憶體中頁表(慢表)的乙個很小的副本。
只有慢表需訪問兩次:一次訪問記憶體的頁表,轉化成實體地址後,再一次訪問記憶體。
(命中的)快表訪問一次記憶體:雖然是一次cache一次記憶體,但訪問記憶體只有1次。
8快表位址變換過程?快表計算
有些是慢表快表同時查詢、有些是先找快表(一般不用同時查詢);
1快表找到則直接可以形成實體地址。
2快表找不到,則找到慢表中的表項時,同時更新快表。然後再次從頭訪問。
如果是請求分頁,還可能出現該頁(不是頁表項)不在記憶體的情況,需要缺頁中斷處理,調入該頁、並且修改頁表。
最後一定要記住分頁快表中拿到的是位址,還需要再次訪問記憶體拿到資料。
例:現在記快表訪問時間為a,缺頁中斷處理時間為b,訪問記憶體時間為c
則能命中快表的總的訪問時間:a+c(訪問a拿到位址,再訪問c拿資料)
不能命中快表的總的訪問時間:a+c+c(訪問a失敗,訪問c拿到位址,再訪問c拿資料)
不能命中快表且記憶體中沒有該頁框:a+c+b+a+c(訪問a失敗,訪問c失敗,中斷處理b,然後再訪問a拿到位址,再訪問c拿到資料)
9兩級分頁的位址轉換過程?
先找頂級頁表(只有一張),然後找到對應的頁表項,取到二級頁表的塊號;
根據該塊號找二級頁表,然後找到對應的頁表項,取到對應的塊號;
最後塊號與頁內偏移形成最終的實體地址。
10 兩級分頁的位址結構?
「頂級頁表」+「二級頁表」+「頁內偏移量」(假設32位位址,31~22頂級頁表,21~12二級頁表,11~0頁內偏移量)
1二級分頁就是把頂級頁表的一頁來裝二級分頁的頁表編號,所以頂級頁表的一位對應二級分頁的一張頁表。
2二級頁表總的頁表項數=頂級頁表數目*每乙個頂級頁表對應的二級頁表數目(210*210=220項,就是兩個位數相加)
3分頁:一頁大小為akb,乙個頁表項大小為bkb,則一頁可放a/b個頁表項;
程序大小為ckb,則該程序可以分為c/a頁作為二級頁表;
固二級頁表項有c/a個項,將其分頁,可以分為(c/a)/(a/b)=cb/a2頁;
這些頁對應出來的就是就是頂級頁表的頁表項數cb/a2項。
4 32位系統分頁(32位,即232b=4gb,假設一頁4kb,頁表項大小為4b)
則一頁可容納4kb/4b=210個頁表項;
這些位址空間可以分為4gb/4kb=220個頁面,這些頁面對應頁表項也有這麼多,固向上分頁可以分出220/210=210個頁面,這些頁面對應的頁表項剛好塞進一頁,固只需要二級分頁即可。
5 64位系統分頁(64位,即264b,假設一頁4kb,頁表項大小為8b,偏移欄位12位)
作業系統第三章處理器管理
第三章本章從多道程式設計出發,引入了程序的概念,程序的基本狀態和程序佇列等基本內容,同時對中斷系統進行了詳細介紹 在此基礎上,對程序排程策略進行了詳盡的敘述.本章是本節中比較重要的章節,由於程序的概念十分重要又相當抽象,讀者可以結合下面的講解深入理解本章的內容 第1節多道程式設計 一,重要知識點 要...
第三章總複習
1 人體呼吸系統的組成按順序排列應當是 d a 鼻咽喉支氣管氣管肺 b 鼻喉嚥氣管支氣管肺 c.鼻口腔咽喉氣管支氣管 d 鼻咽喉氣管支氣管肺 2 下例各項試圖論述用鼻呼吸的優點,但有一項不正確,應該是 a a 鼻粘膜內的嗅細胞可以感受氣味的刺激 b 鼻粘膜具有豐富的毛細血管,能溫暖吸入的冷空氣c.鼻...
《工程專案管理》考研複習整理第三章
第3 章工程專案資源管理 專案資源管理的任務與內容 專案資源管理的任務就是依據專案目標,按照專案的進度與資金計畫編制資源的採購 使用與 計畫,將專案實施所需用的資源按規定的時間 計畫的耗用量 到指定的地點,並綜合降低專案總成本。專案資源管理的內容包括專案物資材料管理 專案機械裝置管理 專案勞務管理 ...