word直接復制來了,格式就不改了。至于這門課怎么復習,只要平時實驗都認真完成、報告認真寫,平時分都很高;考試的話除了看
第一章:概述
什么是操作系統?
是一段一直運行在計算機上的程序
是資源的分配者
向上管理軟件向下管理硬件
為用戶提供良好接口
中斷的概念?
中斷指當出現需要時,CPU暫時停止當前程序的執行轉而執行處理新情況的程序和執行過程。
中斷向量的概念?
各種設備的中斷處理子程序的地址數組
什么是系統調用?
由操作系統實現提供的所有系統調用所構成的集合即(Application Programming Interface,API)。是應用程序同系統之間的接口。
內存是什么?
內存是處理器可以直接訪問的唯一的大容量存儲區域,他通常是用被稱為動態隨機訪問內存的半導體技術來實現的,是一組內存字的數組,每個字都有其地址。
存儲系統的速度
寄存器>高速緩存>主存>電子磁盤 >磁盤> 光盤 >磁帶
什么是DMA及其工作原理?(課本第十頁有解釋)
DMA即直接內存訪問模式,簡單來說,總線控制權在CPU“手上”,外連設備無權直接訪問內存,需要CPU參與,但DMA控制器從CPU那“偷出”幾個時鐘來控制總線,讓外連設備可以直接訪問內存,這樣外連設備的讀寫就不需要CPU參與,降低了CPU的占用率。(通俗解釋版本)
是一種不經過CPU而直接從內存存取數據的數據交換模式,在DMA模式下,CPU只須向DMA控制器下達指令,讓DMA控制器來處理數據的傳送,數據傳送完畢再把信息反饋給CPU,這樣就很大程度上減輕了CPU資源占有率,可以大大節省系統資源。(答題版本)
什么是多道程序系統?(課本11頁)
多處理器系統也稱并行系統或者是緊耦合系統,這類系統有多個緊密通信的CPU,他們共享計算機總線,有時還有時鐘、內存和外設等。
多道程序系統的優點?
1、增加吞吐量
2、規模經濟
3、增加可靠性
非對稱多處理系統
每個處理器都有各自特定的任務,一個主處理器控制系統,其他處理器或者向主處理器要任務或者完成預定任務
對稱多處理系統
每個處理器都要完成操作系統的任務,所有處理器對等,沒有主從關系
什么是多道程序設計?
是在計算機內存中同時存放幾道相互獨立的程序,使它們在管理程序控制之下,相互穿插的運行。 兩個或兩個以上程序在計算機系統中同處于開始到結束之間的狀態。
目的
是為了提高CPU的利用率,充分發揮計算機系統部件的并行性
什么是分時系統?
分時系統是多道程序設計邏輯上的一個延伸。把處理機時間劃分成很短的時間片輪流地分配給各個聯機作業使用。如果某個作業在分配給他的時間片用完之前計算還未完成,該作業就暫時中斷,等待下一輪繼續計算。此時處理機讓給另一個作業使用。此時,多個用戶分享使用同一臺計算機。多個程序分時共享硬件和軟件資源,分時系統具有多用戶性和交互性。(寶寶結合課本15頁和百度百科加百度知道暖心歸納的)
作業池
在分時和多道程序設計中需要在存儲器中同時保存多個作業,但主存較小不能容納太多作業,所以這些作業開始儲存在磁盤上,這個儲存地址叫作業池
作業調度
在作業池中選擇作業進入內存,這樣的決策叫做作業調度
CPU調度
如果有多個任務要執行,系統必須做出選擇讓其中一個執行,這個決策叫做CPU調度
雙重模式操作(重點中的重點)
指用戶模式和(內核模式或者系統模式或者特權模式)
模式位的設立是用來表示當前模式(1代表用戶模式,0代表內核模式)
特權指令
特權指令指具有特殊權限的指令。這類指令只用于操作系統或其他系統軟件,一般不直接提供給用戶使用
它主要用于系統資源的分配和管理,包括改變系統工作方式,檢測用戶的訪問權限,修改虛擬存儲器管理的段表、頁表,完成任務的創建和切換等。
常見的特權指令
有關對I/O設備使用的指令 如啟動I/O設備指令、測試I/O設備工作狀態和控制I/O設備動作的指令等。
有關訪問程序狀態的指令 如對程序狀態字(PSW)的指令等。
存取特殊寄存器指令 如存取中斷寄存器、時鐘寄存器等指令。
轉換到用戶模式就是一個特權指令(課本17頁)
第二章:操作系統結構
系統調用(重點)
課本41頁圖
系統調用類型分為五大類:
進程控制、文件管理、設備管理、信息維護、通信
操作系統的結構
1、簡單結構
可以訪問硬件,不穩定
2、分層方法
系統模塊化,分層法的優點在于構造和調試的簡單化
3、微內核
將所有非基本部分從內核中移走,并將它們實現為系統程序或者是用戶程序,
微內核通常包括最小的進程和內存管理以及通信功能
優點:便于擴充操作系統,所有的新服務可以在用戶空間增加,因而不需要修改內核。
第三章:進程
什么是進程(也叫作業)?
進程是執行中的程序,是具有某一功能的程序,是在某一數據集上的一次執行過程,是資源分配和調度的獨立單元。還包括有程序計數器、處理器寄存器、進程堆棧段等。
進程的特性:并發性和動態性
進程的狀態:
重點:(73頁進程狀態圖)
新的、運行、等待、就緒、終止
進程控制塊(PCB)
重點圖(74頁+82頁代碼)(產生中斷時PCB怎么活動,也就是上下文切換)
包括:進程狀態、進程編號、程序計數器、寄存器...
3.4(85頁——90頁)全是重點
進程間通信
進程間關系分為獨立進程和協作進程
協作進程分為共享內存和消息傳遞
While(true)
While(((in+1)%size)==out)
;
Buffer[in]=nextproducer;
In=(in+1)%size;
}
生產者進程
While(true)
While(in==out)
;
Nextconsumer=buffer[out];
Out=(out+1)%size;
}
消費者進程
第四章:線程
什么是線程?
線程是CPU使用的基本單元,它由線程ID、程序計數器、寄存器集合和棧組成。它與屬于同一進程的其他線程共享代碼段、數據段和其他資源。
多線程的優點?
1、響應度高
2、資源共享
3、經濟
4、多處理器體系結構的利用(增加了并發功能)
什么是線程?
線程是CPU使用的基本單元,它由線程ID、程序計數器、寄存器集合和棧組成
它與屬于同一進程的其他線程共享代碼段、數據段和其他資源。
如果直接使用進程并發,會產生什么問題?
進程創建很耗時間與資源,使系統性能下降
進程與線程的對比
從調度方面:
線程作為調度和分派的基本單位,而進程作為資源擁有的基本單位
從資源方面:
進程間相互獨立,同一進程的各線程間共享資源。線程自己不擁有系統資源,某進程內的線程在其它進程不可見。
從并發方面:
在引入線程的操作系統中,不僅進程之間可以并發執行,而且在一個進程中的多個線程之間亦可以并發執行,使得操作系統具有更好的并發性,從而能更加有效地提高系統資源的利用率和系統的吞吐量。但進程并發代價大,線程代價小
從執行方面:
忘了....(哈哈..如果知道補充好告訴偶哦)
用戶級線程
指不需要內核支持而在用戶程序中實現的線程,其不依賴于操作系統核心,應用進程利用線程庫提供創建、同步、調度和管理線程的函數來控制用戶線程。
內核級線程
由操作系統內核創建和撤銷。內核維護進程及線程的上下文信息以及線程切換。
以下是用戶級線程和內核級線程的區別
用戶級線程的程序實體是運行在用戶態下的程序,而內核支持線程的程序實體則是可以運行在任何狀態下的程序
內核線程的優點:
當有多個處理機時,一個進程的多個線程可以同時執行
缺點:
由內核進行調度
用戶進程優點:
線程的調度不需要內核直接參與,控制簡單
可以在不支持線程的操作系統中實現
代價比內核線程小
缺點:
多個處理機下,同一個進程中的線程只能在同一個處理機下時分復用
線程池
為了限制線程的數量,在進程開始時,先創建好一定數量的線程,放到池中,等待服務的使用
優點:
先創建好了線程,處理速度快;
線程池限制了線程的數量,對那些不能支持數量大線程并發的系統非常重要;
第五章:CPU調度
CPU調度的背景和概念(重點)
為了解決單處理器CPU利用率低的問題,采用多道程序設計,此時會有多個進程在內存中,當其中一個進程執行一段時間后必須等待時,此時操作系統會奪走CPU的使用權交給另一個進程,這就是CPU調度
分派程序(重點)
其實就是將CPU使用權交給短期調度選擇的進程的過程
功能
切換上下文
切換到用戶模式
跳轉到用戶程序的合適 位置,以重啟程序
周轉時間:進程完全結束的時間減去進程到達的時間
調度算法(重點)
FCFS
Easy......
了解護航效應(convoy effect)的概念
SJF(最小等待時間)
1、非搶占
若進程到達時間都是同一時間:
則操作系統會直接根據作業時間的大小進行選擇(必須完整的執行完一個進程再換到另一個進程)
若進程到達時間都不是同一時間:
則操作系統在最短時間作業選擇的時候,開始只考慮已經到了的進程,當執行完一個進程后(必須完整的執行完一個進程再換到另一個進程),又有進程到達,則把該進程納入考慮范圍內,繼續進行最短時間作業選擇...
2、搶占
若進程到達時間都是同一時間:
則與非搶占是一樣的效果.....
若進程到達時間都不是同一時間:
則執行搶占的方法(參考141頁的例子,有搶占和非搶占)
優先級調度算法
若進程到達時間都是同一時間:
直接按照優先級進行選擇
若進程到達時間不是同一時間:
開始只考慮已經到了的進程,當執行完一個進程后(必須完整的執行完一個進程再換到另一個進程),又有進程到達,則把該進程納入考慮范圍內,繼續按照優先級進行選擇...
輪轉法調度(最快響應)
Easy...不做詳解
多級隊列調度(了解概念即可)
進程分配到獨立的隊列中,每個隊列有自己獨立的調度算法,只能在這個隊列中
多級反饋隊列調度(了解概念即可)
進程分配到獨立的隊列中,每個隊列有自己獨立的調度算法,但進程可以根據執行效果在不同隊列中流動
了解概念即可
親和性
課本148
負載平衡
將工作平均分配到多個等待的處理器中,防止其中一個處理器壓力山大...
確定模型
1、分析評估法
用一套評估方法去給模型打分
2、確定模型法
直接用數據去測試模型,看看結果
第六章:進程同步
臨界區問題(重點 critical section,理解概念)
互斥、前進、有限等待(對應洋文一定要知道呀)
(mutual exclusion、progress、bounded waiting)
硬件同步(了解即可)
信號量(重點中的重點,算法大題應該就是它)
Wait(s) signal (s){
While(s<=0) s++;
; }
S--;
}
該方法常用,但出現了
實現(重點)
忙等待:
就是當有一個進程在臨界區的時候,任何試圖進入其臨界區的進程都必須在進入代碼連續循環
三個重點內容 經典同步問題
1、有限緩沖問題
該算法適用于解決生產者消費者問題,一般需要定義一個緩沖區大小的變量empty 初始化為n ,一個full初始化為0,表示正在緩沖區的個數,mutex初始化為1,用于實現互斥,用這三個變量就能解決這類問題 177頁
2、讀者寫者問題
課本中程序同時達到目的為
1、沒有寫的時候,后續讀的直接進入
2、有一個在寫,后續的讀和寫都得等待
3、有一個在讀,后續的讀繼續讀,寫進入等待
具體怎么實現的看178頁代碼啦~
3、哲學家進餐問題
簡單來說,就是一個wait(a[i]);一個wait(a[i+1]%5)
這兩個wait后如果哲學家進入了臨界區,就表示這個哲學家此時占用了他相鄰的兩根筷子,別人就不能用了,知道signal(a[i]) 和signal(a[i+1]%5) ,說明吃完了放下筷子進入思考...
管程(了解)
第七章:死鎖
死鎖和死鎖狀態的概念
在多道程序環境下,多個進程可能競爭一定數量的資源。某個進程申請資源,如果這時資源不可用,那么該進程進入等待狀態。如果所申請的資源被其他等待進程占有,那么該等待進程可能再也無法改變其狀態。這種情況稱為死鎖 deadlock。
當一組進程的每個進程都在等待一個事件,而這一事件只能有這一組進程的另一個進程所引起,那么這組進程就處于死鎖狀態。
必要條件
互斥、占有并等待、非搶占、循環等待
資源分配圖
沒有環,一定沒有死鎖;有環,只是有可能有死鎖(若每個資源只有一個實例,則有環就必然死鎖,這也是 為什么只有一個實例的時候,可以采用資源分配圖算法,而有多個的時候一般使用銀行家算法)
死鎖處理方法
1、死鎖預防
讓四個必要條件其中一個不滿足就行,在必要條件之前加上否定就行
2、死鎖避免
安全序列
系統能按某個順序給每個進程分配資源而能避免死鎖,這個順序就是安全序列
安全狀態無死鎖,不安全狀態只是可能導致死鎖
安全序列不是唯一的,滿足條件即可,但考試基本老師會給只有唯一的安全序列的套路,哈哈,便于批卷
資源分配圖算法:
用于每個資源有單個實例的情況
銀行家算法:
安全性算法
就是尋找能給所有進程分配資源的一個安全序列
課本222頁的舉例是必考題
資源請求算法
當一個進程請求資源的時候,先判斷有沒有那么多給它,如果有,再判斷如果給它,新狀態下有沒有安全序列
死鎖恢復辦法
進程終止
資源搶占
第八章:內存管理
內存概念:
內存是處理器可以直接訪問的唯一的大容量存儲區域,他通常是用被稱為動態隨機訪問內存的半導體技術來實現的,是一組內存字的數組,每個字都有其地址。
輸入隊列:也叫作業池,在磁盤上等待調入進內存的進程
CPU產生的地址叫邏輯地址,也叫虛地址、可重定位地址
MMU:內存管理單元,完成虛地址到物理地址的映射
邏輯地址+基地址(存在于重定位寄存器也叫基地址寄存器中)=物理地址
動態加載:課本240
滾入、滾出了解概念
連續內存分配
外部碎片:
進程塊之間的空閑內存
內部碎片:
分配給進程的內存大于它所需要的,多出來的那部分
重點(分頁)
分頁使得內存非連續
物理內存中的塊叫幀,邏輯內存上的塊叫頁
將邏輯地址通過頁表映射到物理內存地址的計算:
1、首先找到邏輯地址的頁號p(也就是在邏輯地址上是第幾塊)
2、用找到的p通過頁表直接找到物理地址上幀的塊數m
3、頁偏移是指這個邏輯地址在其所在的那個頁塊偏移的數,不是從最開始數,只是從其所屬的塊開始數,在第一就偏移0....
4、m乘以幀的大小加上頁偏移就是物理內存地址
分頁技術不會產生外部碎片
內部碎片的計算:
比如 100大小的進程
頁大小是30(幀和頁一樣大也是30),需要3個幀,但還有10的內存,也需要分配一個幀,所以產生了30-10=20的內部碎片
TLB:
轉換表緩沖區
有效內存訪問時間:和求期望類似
效內存訪問時間=概率一時間一+概率二時間二...自己體會
頁表結構(了解)
分段(重點內容)
也是一種非連續分配
其邏輯地址由<segment-number,offset>組成
段表的概念 還有圖(課本261頁)不做解釋了...
段表的目的:
將二維的用戶定義地址映射為一維地址
.頁表的作用是實現從頁號到物理塊號的地址映射。
在頁式管理系統中,用戶程序中使用的地址稱為 邏輯地址 ,實際訪問主存時由系統將它轉化為 物理地址 。
分頁管理是把內存分為大小相等的區,每個區稱為頁幀(或頁框),而把程序的邏輯空間分為若干頁,頁的大小與頁幀的大小 相等 。
在分頁存儲管理中,為了加快地址變換速度,頁面大小的值常取2的整數次冪。
在請求式分頁系統中,被調出的頁面又立刻被調入,這種頻繁的調頁現象稱為顛簸。
分段管理中,若邏輯地址中的段內地址大于段表中該段的段長,則發生 地址越界中斷。
段頁式存儲管理中,每道程序都有一個 段 表和若干個 頁 表。
頁式管理系統的邏輯地址結構由 頁號 和 頁內位移 組成。
分段管理中的地址映射過程是:首先找到該作業段表的 起始地址 ,然后根據邏輯地址中的 段號 去查找段表得到該段的內存起始地址,再與邏輯地址中的 段內位移 相加得到物理地址。
請求分頁存儲管理也稱為動態頁面管理,不是把一個進程映象的所有頁面一次性全部裝入內存,而只裝入一部分,其余部分在執行中動態調入。
在段頁式管理中,邏輯地址分解為段號、頁號、頁內位移 三部分。
第九章:虛擬內存
背景(重點)
將用戶看到的邏輯內存和物理內存分開
只將部分程序放入內存就能執行
邏輯地址空間可以比物理內存空間大
許多情況下整個程序不是必須的
優點:比實際空間大
不必擔心內存空間的限制
允許地址空間被多個進程共享
虛擬內存的實現:
按需調頁(demand paging)
顧名思義,在需要某段程序的時候將其調人內存的技術
275頁重點內容,老師說應該背下來
純粹按需調頁
支持按需調頁的硬件
頁表
次級存儲器
產生頁錯誤有兩種情況
1、不允許訪問
2、未調入內存,需要在后備存儲中將其調入
寫時復制(了解原理)
頁面置換(重點)
基本頁置換
如果沒有空閑幀就查找當前沒有使用的幀,并將其釋放(犧牲幀),然后將其內容寫到交換空間,并改變頁表和幀表
引用串的計算(重點):
會給定一組地址
如
0100,0432,0103,0104,0890....
如果頁大小是100B
則將所有地址除以頁大小100,向下取整后
得1、4、1、1、8
第三步,將相鄰的相同的數合為一個就行(也就是將兩個相鄰相同的1,保留一個就行)
得1、4、1、8
FIFO頁置換:
替換已經在內存的最久沒有被使用的,也就是最早進入的
這個...不好說明,很簡單,課本284頁
最優置換(OPT):
替換最久將會被使用的
雖然名字為最優,但后期預測其實是很難的,所以2很多時候
課本285頁
LRU頁置換:(重點)
反正我感覺和FIFO一樣....這個再說
幀分配(了解即可)
系統顛簸(thrashing 重點中的重點)
什么是顛簸?產生顛簸的原因是什么?
(1)顛簸是由于內存空間競爭引起的。當需要將一個新頁面調入內存時,因內存空間緊張,不得不將一個舊頁面置換出去,而剛剛置換出去的舊頁面可能又要被使用,因此需要重新將它調入。若一個進程頻繁地進行頁面調入調出,勢必加大系統的開銷,使系統運行效率降低。通常稱這種現象為該進程發生了顛簸。(2)產生顛簸的原因主要有:系統內的進程數量太多,致使一個進程分得的存儲塊過少;系統采取的置換算法不夠合理。
工作集合模型:
沒聽,那節課后邊睡著了
第十章:文件(這章以后基本只考概念)
文件屬性:
名稱、標識符、類型、位置、大小、保護、時間、日期和用戶標識
文件操作:
創建文件、寫文件、讀文件(維護一個讀位置的指針)、在文件中重定位(也叫文件尋址)、刪除文件(釋放空間,也就是全部刪除)、截短文件(刪除內容保留屬性)
首次使用文件時,調用open(),操作系統維護一個包含打開文件的信息表(打開文件表)
系統調用open()通常返回一個指向打開文件表中的一個條目的指針。
解決多個進程打開同一文件的問題:
操作系統采用兩級內部表,分別是進程的表和整個系統的表
四個概念324頁
文件指針
文件打開計數器
文件磁盤位置
訪問權限
文件類型(了解)
訪問方法(重點)
順序訪問
磁帶類型,文件信息按順序一個一個處理,并且自動前移文件指針,以跟蹤IO位置
適用于順序訪問設備,也適用于隨機訪問設備
直接訪問(相對訪問)
基于文件的磁盤模型
文件由固定長度的邏輯記錄組成,以允許程序按任意順序進行快速讀寫
對訪問大量信息極為有用(數據庫經常使用)
其他訪問方式
在直接訪問的基礎上,建立一個文件索引(索引包里包括文件塊的指針),查找文件時,首先搜索索引,再根據指針直接訪問文件
目錄結構
存儲結構
磁盤分區:
一個磁盤上裝有多個文件系統,或一部分用于文件系統而另一部分用于其他地方,如交換空間或非格式化的磁盤空間
卷:
帶有文件系統的磁盤分區叫卷
目錄概述
記住相關操作,除了基本的創建、刪除...還有跟蹤文件系統,也就是定期備份整個文件系統到磁盤
單層目錄結構
所有文件位于同一目錄
特點:
便于了解和支持
缺點:
隨著文件數目的增加,單層目錄不能重名,會使用戶難以記住所有文件名稱
雙層目錄結構
第一層是主文件目錄(MFD),也就是用戶目錄,每個用戶目錄都有自己飛用戶目錄文件(UFD),也就是第二層;
當一個用戶引用特定文件時,只需要搜索他自己特定的UFD,不同用戶可具有相同文件名
雙層目錄結構其實就是高度為2的樹
樹狀結構目錄
將雙層目錄結構繼續擴展
目錄包括一組文件和子目錄,每個子目錄有相同結構(樹),創建和刪除目錄條目都需要調用特定的系統調用
通常情況下每個進程都有一個當前目錄,進程需要文件時首先查看當前目錄(也就是先看相對地址),如果沒找到,再根據指定路徑或者改變當前目錄
絕對路徑名:
從樹根開始給出目錄名知道文件
相對路徑名:
從當前目錄開始定義路徑
無環圖目錄
樹狀結構目錄的一個擴展,樹狀結構目錄不允許共享文件和目錄,無環圖目錄可以
實現共享的方法
如Unix采用創建一個鏈接,實際上是另一文件或目錄的指針
通用圖目錄
339頁了解一下
文件系統安裝(了解)
第十一章:文件系統實現
分層設計的文件系統:
容易考選擇題
應用程序——邏輯文件系統——文件組織系統——基本文件系統——I/O控制
——設備
概述
引導控制塊,包括系統從該引導操作系統所需要的信息,通常為均卷的第一塊,
UFS稱之為引導快,NTFS為分區引導扇區
每個卷的控制塊,包含卷或者分區的詳細信息,如分區塊數,塊大小,空閑塊的數量和指針,UFS稱之為超級塊,在NTFS中它存在于主控文件表中
系統范圍內的打開文件表
包含每個發開文件的FCB副本和其他信息
單個進程的打開文件表
包括一個指向系統范圍內已經打開卷文件表中合適條目的指針和其他信息
考點
創建文件的主要過程
應用程序調用邏輯文件系統,邏輯文件系統知道目錄結構形式,它將分配一個新的FCB,然后系統將相應的目錄信息讀入內存,用新的文件名更新該目錄和FCB
考點
打開和關閉文件的過程
356頁
分區安裝(不考)
虛擬文件系統(不考)
目錄實現
目錄的實現方法
最為簡單的目錄實現方法是使用存儲文件名和數據塊指針的線性列表(數組、鏈表等)
容易實現
但運行費時
采用線性搜索來查找特定條目(缺點)
許多操作系統采用軟件緩存來存儲最近訪問過的目錄信息
Hash表:采用Hash數據結構的線性表
減少了目錄搜索時間
碰撞:兩個文件名哈希到相同的位置
哈希表的最大困難是其通常固定的大小和哈希函數對大小的依賴性
分配方法
考選擇題
分配方法指的是如何為文件分配磁盤塊,常用的分配方法有以下三類
連續分配:每個文件占據磁盤上的一組連續的塊
特點:1簡單 - 只需要記錄文件的起始位置(塊號)及長度。2訪問文件很容易,所需的尋道時間也最少
存在的問題:1為新文件找空間比較困難(類似于內存分配中的連續內存分配方式)文件很難增長
鏈接分配:每個文件是磁盤塊的鏈表;磁盤塊分布在磁盤的任何地方。
優點:1簡單 - 只需起始位置2.文件創建與增長容易。
缺點:1.不能隨機訪問2.塊與塊之間的鏈接指針需要占用空間3. 存在可靠性問題
簇:將多個連續塊組成簇,磁盤以簇為單位進行分配
索引分配:將所有的數據塊指針集中到索引塊中。
1.索引塊中的第i個條目指向文件的第i塊。2目錄條目包括索引塊的地址
索引分配支持直接訪問,且沒有外部碎片問題
索引塊本身可能會浪費空間
鏈接方案:一個索引塊通常為一個磁盤塊。對于大文件,可以將多個索引塊鏈接起來。
多層索引:類似于內存的間接尋址方式(一級、二級間接…)
組合方案:如Unix的inode
空閑空間管理(了解)
效率與性能(不考)
后面都不考
十二章:大容量存儲器的結構
簡介和磁盤結構
了解
磁盤調度
了解
1.磁盤調度算法有哪些?每種方法的優缺點。
答:FCFS、SSTF、掃描(SCAN)算法 、循環掃描(CSCAN)算法、look調度
FCFS:先來先服務,它根據進程請求訪問磁盤的先后次序進行調度。
SCAN:掃描算法,磁頭不停的往復運動,由邊緣至中心然后返回,沿途執行已經到來的訪問。
CSCAN:循環掃描算法,在SCAN算法的基礎上規定磁頭單向移動。
在朝一個方向移動時會看是否有請求
磁盤管理
不考
交換空間管理
了解
考點
RAID結構(考點)
磁盤冗余陣列
一個磁盤損壞并不會導致數據的丟失,這里的多種磁盤組織技術,統稱為磁盤冗余陣列,用于提高性能和可靠性
鏡像
引入冗余復制整個磁盤,最為昂貴
通過并行處理改善性能、
位級分散
通過在磁盤上分散數據,可以改善傳輸率,數據分散是在多個磁盤上分散每個字節的各個位,這種分散就是位級分散。
RAID級別
鏡像法和分散法的結合使用
其他知識點不考
十三章:I/O
考點
Io硬件
426頁圖
輪詢和中斷
直接內存訪問(年年考)
DMA
在前面介紹過DMA工作過程
書432頁也有
主機向內存中寫入DMA命令塊,包含源地址指針、目的指針、字節數等等信息,CPU將其寫入DMA控制器后,DMA繼續下去直接操作內存總線,無需CPU幫助
IO應用接口
考點,選擇題
屬于操作系統的是設備控制器以上,不包括設備控制器這一層
435頁圖
緩沖(考點)
什么是緩沖什么是緩存?
buffer與cache操作的對象就不一樣。
buffer緩沖是為了提高內存和硬盤或其他I/0設備之間的數據交換的速度而設計的。
cache緩存是為了提高cpu和內存之間的數據交換速度而設計。
為什么引入緩沖(目的是什么?)
答:(1) 緩和CPU與I/O設備間速度不匹配的矛盾(2) 減少對cpu的中斷頻率,放寬對cpu中斷響應時間的限制(3)提高cpu和I/O設備之間的并行性
試從調度性,并發性,擁有資源和系統開銷幾個方面對線程與進程進行比較
調度
● 在傳統的操作系統中,作為擁有資源的基本單位和獨立調度、分派的基本單位都是進程。
● 在引入線程的操作系統中,把線程作為調度和分派的基本單位,而進程作為資源擁有的基本單位,把傳統進程的兩個屬性分開,使線程基本上不擁有資源,這樣線程便能輕裝前進,從而可顯著地提高系統的并發程度。
● 在同一進程中,線程的切換不會引起進程的切換,但從一個進程中的線程切換到另一個進程中的線程時,將會引起進程的切換。
并發性
在引入線程的操作系統中,不僅進程之間可以并發執行,而且在一個進程中的多個線程之間亦可并發執行,使得操作系統具有更好的并發性,從而能更加有效地提高系統資源的利用率和系統的吞吐量。
- 擁有資源
● 不論是傳統的操作系統,還是引入了線程的操作系統,進程都可以擁有資源,是系統中擁有資源的一個基本單位。
● 一般而言,線程自己不擁有系統資源(也有一點必不可少的資源),但它可以訪問其隸屬進程的資源,即一個進程的代碼段、數據段及所擁有的系統資源,如已打開的文件、I/O設備等,可以供該進程中的所有線程所共享。 - 系統開銷
● 在創建或撤消進程時,系統都要為之創建和回收進程控制塊,分配或回收資源,如內存空間和I/O設備等,操作系統所付出的開銷明顯大于線程創建或撤消時的開銷。
● 就切換代價而言,進程也是遠高于線程的。此外,由于一個進程中的多個線程具有相同的地址空間,在同步和通信的實現方面線程也比進程容易。在一些操作系統中,線程的切換、同步和通信都無須操作系統內核的干預。
概念題:
1.Thrashing顛簸
a process is busy swapping pages in and out
2.System call系統調用
進程與操作系統之間的接口
3.Critical section臨界區
進程中關于臨界資源的代碼段
4.Directory目錄
是為了對文件實施有效管理,將他們妥善的管理起來
5.Overlay
任何時候只在內存中保存所需的指令和數據,當需其他指令時,他們會裝入到剛剛不再需要的指令的內存空間內。通過在內存中只存放需要的指令和數據,使進程可以得到比自己已被分配的資源更大的資源。
6.SPOOLing
技術是利用高速的共享設備,將獨享設備變成邏輯上可共享的虛擬設備的技術,以提高設備利用率。
7.convoy effect護航現象
由于所有進程都在等待一個大進程釋放CPU資源,這樣就會產生護航現象
8.swapping交換
進程需要在內存中以便執行,不過進程可以暫時從內存中交換出來到備份存儲上,當需要執行時再調回到內存中
9.Overall覆蓋
覆蓋技術主要用于早期的操作系統 其實現過程是首先由程序員把程序按功能劃分成若干個相對獨立的程序段并規定好他們的執行和覆蓋順序
讓那些不會同時執行的程序段共享一個內存分區并把這些程序段組成一組,稱為覆蓋段 而把共享的內存分區成為覆蓋區 覆蓋段與覆蓋區一一對應.覆蓋段暫時先保存在磁盤上,當需要執行時再調入內存覆蓋區中.覆蓋前面的程序段.從而達到了較小的內存空間運行加大程序的目的
10.上下文切換(context switch):將CPU切換到另一個進程需要保存當前進程的狀態和恢復另一個進程的狀態
11.設備隊列(device queue):等待待定I/O設備的進程列表
12.級聯終止(cascading termination):如果一個進程終止(正常或不正常),那么它的所有子進程也必須終止。
13.進程(process): 進程是執行中的程序,包括程序計數器,進程堆棧段,數據段。
14.進程控制塊(PCB):包括 進程狀態(process state),程序計數器(program counter),
CPU寄存器(CPU register),CPU調度信息(CPU-scheduling information),內存管理信息(memory-management information),記賬信息(accounting information),I/O狀態信息(I/O status information)
15.線程庫(thread library):提供創建和線程管理的API
16.線程(thread):CPU使用的基本單元,它由線程ID,程序計數器,寄存器集合和棧組成。
17.無窮阻塞(indefinite blocking)或饑餓(starvation):(優先級調度算法)使某個低優先級進程無窮等待CPU
18.老化(aging):解決無窮阻塞(或饑餓)。逐漸增加在系統中等待很長時間的進程的優先級
19.死鎖(deadlock):在多道程序環境下,多個進程可能競爭一定數量的資源。某個進程申請資源,如果這時資源不可用,那么該進程進入等待狀態。如果所申請的資源被其他等待進程占有,那么該等待進程有可能再也無法改變其狀態。
20.時間片(time quantum或者time slice)一個較小時間單元,通常為10~100ms
21.分析評估算法(analytic evaluation):使用給定算法和系統負荷,產生一個公式或數字,以評估對于該負荷下算法的性能分析。
22.確定性建模(deterministic modeling):采用預先確定的負荷,計算在給定負荷下每種算法的性能。
23.競爭條件(race condition):多個進程并發訪問和操作同一數據且執行結果與訪問發生的特定順序有關。
24.事物(transaction):執行單個邏輯功能的一組指令或操作
25.線程取消(thread cancellnation):在線程完成之前來終止線程的任務
26.目標線程(target thread):要取消的線程
27.異步延遲(asynchronous cancellation): 一個線程立即終止目標線程
28.延遲取消(deferred cancellation):目標線程不斷地檢查它是否應終止,這允許目標線程有機會按著有序方式來終止自己
29.取消點(cancellation point):一個線程可以被安全取消的點
30.CPU調度算法準則(五條):
CPU利用率(CPU utilization):需要使CPU盡可能的忙
吞吐量(throughput):指一個單位時間內所完成進程的數量
周轉時間(Turnaround time):從進程提交到進程完成的時間段
等待時間(waiting time):在就緒隊列中等待所花時間之和
響應時間(response time):從提交請求到產生第一響應的時間
31.中斷
在CPU運行過程中,由于內部或外部某個隨機事件的發生,使CPU暫停正在運行的程序,而轉去執行處理引起中斷事件的程序,完成后返回原來的程序繼續執行。這個過程稱為中斷。
32.外部碎片(external fragmentation):隨著進程裝入和移出內存,空閑內存空間被分為小片段,這些便是外部碎片。當所有總的可用內存之和可以滿足請求,但并不連續時,就出現了外部碎片問題。
33.內部碎片(internal fragmentation):通常將內存以固定大小的塊為單元來分配,采用這種方案,進程所分配的內存可能比所需要的要大。這兩個數字之差稱為內部碎片。這部分內存在分區內,但又不能使用。
34.緊縮(compaction):緊縮的目的是移動內存內容,以便所有空間合并成一整塊。
35.轉換表緩沖區(translation look-aside buffer,TLB):TLB是關聯的快速內存。TLB條目有兩部分組成:鍵(標簽)和值,當關聯內存跟給定值查找時,它會同時和所有鍵進行比較。這種查找方式比較快,不過硬件也比較昂貴。
36.命中率(hit ratio):頁碼在TLB中被查找到的百分比稱為命中率。
37.虛擬內存(virtual memory):將用戶邏輯內存與物理內存分開。這在現有物理內存有限的情況下,為程序員提供了巨大的虛擬內存。
38.按需調頁(demand paging):只有程序執行時才載入頁,那些從未訪問過的頁不會調入到物理內存。
39.懶惰交換(lazy swapper):懶惰交換只有在需要頁時,才將它調入內存。
40.交換空間(swap space):輔助存儲器用來保存不在內存中的頁。輔助存儲器通常為快速磁盤。它通常稱為交換設備,用于交換的這部分磁盤稱為交換空間。
41.顛簸(thrashing):如果一個進程在換頁上用的時間要多于執行時間,那么這個進程就在顛簸。
42.全局置換(global replacement):全局置換允許一個進程從所有幀集合中選擇一個置換幀,而不管該幀是否已分配其他進程,即一個進程可以從另一個進程中拿到幀。
43.局部置換(local replacement):局部置換要求每個進程僅從自己的分配幀中進行選擇。
44.工作集合(working set):如果一個頁正在使用中,那么它就在工作集合內,如果它不再使用,那么它會在其上次引用的多個時間單位后從工作集合中刪除。因此,工作幾何是程序局部的近似。
45.文件屬性(file attributes):文件屬性包括——名稱、標識符、類型、位置、大小、保護、時間、日期和用戶標識。
46.打開文件表(open-file table):操作系統維護一個個包含所有打開文件的信息表。每個打開文件包含以下信息:文件指針、文件打開計數器、文件磁盤位置、訪問權限。
47.生磁盤(raw disk):用于沒有合適文件系統的地方。
48.連續分配(contiguous allocation):方法要求每個文件在磁盤上占有一組連續的塊。磁盤地址為磁盤定義了一個線性的序列。用于訪問連續分配文件所需要的尋道數最小,在確實需要尋道時所需要的尋道時間也最小。
49.鏈接分配(link allocation):解決了連續分配的所有問題。采用鏈接分配,每個文件是磁盤的鏈表;磁盤塊分布在磁盤的任何地方。目錄包括文件第一塊的指針和最后一塊的指針。用戶不能使用這些指針。一個采用鏈接分配方法的變種是文件分配表(file-allocation table,FAT)的使用
50.簇(cluster):由多個塊組成。
51.索引分配(indexed allocation):通過把所有指針放在一起,即通過索引塊(index block)解決問題。每個文件都有索引塊,這是一個磁盤塊地址的數組。目錄條包括索引塊的地址。
52.空閑空間管理(free-space management):系統需要維護一個空閑空間鏈表(free-space list)以記錄空閑磁盤空間,即未分配給文件或目錄的空間。空閑空間管理分為以下幾種:位向量(Bit Vector)、鏈表(Linked List)、組(Grouping)、計數(Counting)。
53.管程 組成:
①局部于管程的共享變量說明;
②對該數據結構進行操作的一組過程;
③對局部于管程的數據設置初始值的語句。此外,還須為管程賦予一個名字。
1.簡答題
1.What is the difference between process and program?
程序是完成所需求的功能時,所應采取的順序步驟,是執行指令的有續集和,進程是執行中的程序,包括程序計數器,進程堆棧段,數據段。
程序和進程的區別:
程序是一個靜態的概念,作為一種資源可以永久的存放在磁盤中,進程是程序執行的動態活動過程,隨程序的執行而發生,隨程序的結束而消亡。
靜止狀態的程序和數據是相互獨立的信息集合,進程中的程序和數據是一個不可分割的實體。
一個程序可以對應多個進程
程序是靜態的,是永久存在的,而進程是動態的,且存在生命周期。程序是一組有序的指令集合,進程是程序及數據在計算機上的一次執行。
What is the difference between process and thread?
線程劃分的尺度小,所以并發性高,而進程劃分的尺度相對較大。線程是CPU執行的基本單元,而進程是內存分配的基本單元。
進程和線程的區別:
進程是運行中的程序,是一個動態的概念,獲得了計算機資源,執行了任務。而線程是進程中的一個單一的組成部分,一叫做輕量級進程,是程序執行的最小單位。
父進程和子進程有自身的數據和代碼空間,而同一個進程的各個線程是共享進程的代碼和數據,文件等,自己保存寄存器的值。
進程是資源分配的最小單位,線程是程序執行的最小單位。
2.What is the cause of trashing? How does the system detect thrashing? Once it detects thrashing, what can the system do to eliminate this problem?
原因:進程所需的最少數量得不到滿足,從而產生頻繁連續的頁錯誤和頁置換,使CPU使用效率低,從而產生顛簸現象。
檢測:可以通過比較多道程序程度和CPU使用率來檢測。
處理方法:a)減低多道程序設計程度b)采用局部置換,即顛簸進程只能置換自己的頁c)采用局部模型檢查某一時刻進程所需要的幀數,為其分配足夠多的頁。
3.What is SPOOLing? Describe how SPOOLing works using printer as an example.
利用高速的共享設備,將獨享設備變成邏輯上可共享的虛擬設備的技術,以提高設備利用率。
系統對于用戶的打印輸出,但并不真正把打印機分配給該用戶進程,而是先在輸出井中申請一個空閑盤塊區,并將要打印的數據送入其中;然后為用戶申請并填寫請求打印表,將該表掛到請求打印隊列上。若打印機空閑,輸出程序從請求打印隊首取表,將要打印的數據從輸出并傳送到內存緩沖區,再進行打印,直到打印隊列為空。
4.Consider a system consisting of 4 resources of the same type that are shared by three processes, each of which needs at most 2 resources. Show that the system is deadlock free.
因為一共有4個資源,所以3個人無論怎么分配,都至少有一個人持有兩個資源,也就是說至少有一個人可以順利執行,其他人等他執行完便可以相繼的順利執行了,所以不存在死鎖的現象。
5.What is system call? How many kinds of system calls are there? And what the mainly function of each kind?
進程與操作系統之間的接口。
系統調用提供了進程與操作系統之間的接口,在最底層,系統調用允許運行程序直接向操作系統發出請求,系統調用允許用戶組進程向操作系統請求服務。
系統調用分五類:進程控制、文件管理、設備管理、信息維護、通信。
進程控制:創建進程、終止進程、取得進程屬性等。
文件管理:創建刪除文件、對文件打開關閉、讀寫以及重定位、取得文件屬性等。
設備管理:請求釋放設備、對設備讀寫以及重定位、取得設備信息等。
信息維護:用戶程序與操作系統之間的信息傳遞,可以訪問操作系統的進程信息。
通 信:創建刪除通信連接、發送接收信息、連接中斷遠程設備等。
6.Give a brief explanation of three major methods of allocating disk space: contiguous, linked, and indexed. Which types FAT and Unix File System respectively belong to?
答:連續分配:要求每個文件在磁盤上占有一組連續的塊
鏈接分配:每個文件是磁盤塊的鏈表,只需開始塊的地址即可
索引分配:把指向文件的所有指針單獨存到了索引塊中,目錄條目中包含了索引塊的地址
FAT:鏈接分配
Unix File System:索引分配
7.What's the difference between External Fragmentation and Internal Fragmentation?
外部碎片:隨著進程裝入和移出內存,自由空間被分為小片段,當所有總的內存之和滿足請求但并不連續時,就會出現外部碎片現象。
內部碎片:將內存以固定大小的單元進行分配,進程所分配的可能比所需要的大,這兩個數字之差稱為內部碎片。這部分內存在分區內而又不能用。
8.Consider a system with 6 tape drives, being shared by N processes. Each process needs at most 2 tape drives at a time. What value of N can make the system deadlock-free?
n(x-1)+1<=m
n 進程數
m 資源數
x 一個進程最多可以申請的資源數
答案:5
9.What is deadlock? What is startvation? How do they differ from each other?
在多道程序系統中,當一組進程中的每個進程均無限期地等待被改組進程中的另一進程所占有且永遠不會釋放的資源,此時的系統處于死鎖狀態,簡稱死鎖。
饑餓是無限期的等待。
饑餓沒有等待時間的上限 只是某一個程序不能運行 死鎖則是系統不能繼續運行。
死鎖進程處于等待狀態,饑餓不然。死鎖可以檢測,饑餓不然
10.What is a process? What are attributes of a process?
進程是一個可并發執行的具有獨立功能的程序關于某個數據集合的一次執行過程,也是操作系統進行資源分配和保護的基本單位。
進程狀態,程序計數器,cpu寄存器,cpu調度信息,內存管理信息,記賬信息,io狀態信息
11.什么是死鎖?產生死鎖的原因和必要條件是什么?
答:(1)在多道程序系統中,當一組進程中的每個進程均無限期地等待被改組進程中的另一進程所占有且永遠不會釋放的資源,此時的系統處于死鎖狀態,簡稱死鎖。
(2)死鎖產生的原因:(a)系統提供的資源有限;(b)進程推進順序不當。
(3)產生死鎖的必要條件:互斥,占有并等待,循環等待,非搶占
12.形成死鎖的必要條件(4條):
互斥(mutual exclusion):至少有一個資源必須處于非共享模式,即一次只有一個進程使用。如果另一進程申請該資源,那么申請進程必須等到該資源被釋放為止。
占有并等待(hold and wait):一個進程必須占有至少一個資源,并等待另一資源,而該資源為其他進程所占有。
非搶占(no preemption):資源不能被強占,即資源只能被進程在完成任務后自愿釋放。
循環等待(circular wait):有一組等待進程{P0,P1,……,Pn},P0等待的資源為P1所占有,P1等待的資源為P2所占有……P(n-1)等待的資源為Pn所占有,Pn等待的資源為P0所占有。
13.死鎖恢復的方法(兩種):
終止進程(兩種)
終止所有死鎖進程
一次只終止一個進程,直到所有取消死鎖循環為止
資源搶占
此方法需要考慮3種問題
選擇一個犧牲品
回滾
饑餓
14.說明作業調度,中級調度和進程調度的區別,并分析下述問題應由哪一級調度程序負責。
(1) 在可獲得處理機時,應將它分給哪個就緒進程;
(2) 在短期繁重負載下,應將哪個進程暫時掛起。
答:(1) 作業調度用于決定把外存中處于后備隊列中的哪些作業調入內存,并為它們創建進程,分配資源,然后將新創建進程插入就緒隊列;中級調度負責將內存中暫時不具備運行條件的進程換到外存交換區存放,但內存空閑時,又將外存中具備運行條件的進程重新換入內存;進程調度決定將處理機分配給就緒進程隊列的哪個進程。
(2)進程調度、中級調度
15.多線程(multiple processes)的好處(四點):
響應度高(Responsiveness),資源共享(Resource sharing),經濟(Economy),多處理器體系系統結構的利用(Utilization of MP architectures)
16.What is the difference between Hard and Soft real-time systems?
硬實施:有固定的期限,必須在期限內完成。軟實施:只是把任務置于最高優先級
17.List and describe the three memory allocation algorithms covered in lectures. Which is more commonly used in practice?
連續分配(單區間,多區間),非連續分配(分頁,分段)
最常用:分頁,分段
18.What file access pattern is particularly suited to chained file allocation on disk?
其他訪問模式
What file allocation strategy is most appropriate for random access files?
索引分配
19.What are three requirements of any solution to the critical sections problem? Why are the requirements needed?
前進,互斥,有限等待
沒有互斥就會產生競爭條件,幾個進程交替修改公共變量造成不一致。沒有前進的話,其他進程都不在臨界區的時候,其他進程無法進入臨界區
20.What is convoy effect ? Given an example to explain
很多小進程等待一個大進程的完成。
例如在FCFS里面。
所有其他進程都等待一個大進程釋放CPU,導致CPU和設備的使用率變得更低。 FCFS調度算法是非搶占的。一旦CPU被分配給了一個進程,該進程就會保持CPU直到釋放CPU為止。
21.What is an interrupt? Explain briefly giving an example.
中斷是當有緊急事務需要CPU暫時替換出當前任務執行新任務并在執行新任務后恢復到就任務的現場。
斷電的時候CPU保存Word中數據。
22.What resources are used when a thread created? How do they differ from those when a process is created?
因為一個線程小于一個進程,因此,創建線程所用的資源一般比創建進程所用的資源少。創建一個進程需要分配進程控制塊(PCB),一個相當大的數據結構,PCB包括了一個內存映射,打開文件的目錄和外界變量。分配和管理內存映射通常是最費時的活動。創建一個用戶或內核線程包括分配一個小的數據結構來控制寄存器的設置,堆棧和優先級。
進程被創建時需要:代碼段 數據段 堆棧 程序計數器
線程創建時需要: 棧 代碼數據公用 程序計數器
23.What is the producer consumer problem? Give an example of its occurrence in operating systems
臨界區只有固定數量的資源,生產者和消費者不可以同時訪問臨界區資源。
打印機
24.Describe a two-level page table? How does it compare to a simple page table array?
第一級頁表是根據邏輯地址找到第二級頁表的基址,第二級頁表根據邏輯地址找到實際物理地址。
當內存較大,每個頁表較小時需要較大量的頁條目,簡單頁表過于龐大。
25.What is a directory?
可以看做是一個符號表,將文件名翻譯成包含文件的各種屬性如:名字,類型,大小,存儲位置等信息的條 目,從而建立起和物理地址的映射關系,實現按名存取文件
26.Although DMA does not use the CPU, the maximum transfer rate is still limited. Consider reading a block from the disk. Name three factors that might ultimately limit the rate of transfer.
硬盤緩沖區的大小,磁盤的轉速,磁盤的seek time。
27.Suppose that we have a message-passing system using mailboxes. When sending to a full mailbox or trying to receive from an empty one, a process does not block. Instead, it gets an error code back. The process responds to the error code by just trying again, over and over, until it succeeds. Does this scheme lead to race conditions?
競爭條件是指多個進程同時訪問和操作共享數據,從而使共享數據的值由最后完成修改的線程決定。而上面的消息傳遞機制屬于異步機制,這種操作不滿足競爭條件。
28.Under what circumstances do page faults occur? Describe the actions taken by the operating system when a page fault occurs?
在內存中找不到請求頁時會發生頁錯誤。
操作系統回到另外一張表中判斷請求頁是否有效,然后會到內存中獲取空閑幀,并把請求頁交換到空閑幀去,再重置頁表中相關參數,最后重新執行指令。
29.The file system buffer cache does both buffering and caching. Describe why buffering is needed. Describe how buffering can improve performance (potentially to the detriment of file system robustness).
不論何時文件系統需要從它的底層的物理設備讀取一個緩沖區的時候,它都試圖從 buffer cache 中得到一個塊。如果它不能從 buffer cache 中得到一個緩沖區,它就從適當大小的空閑列表中取出一個干凈的緩沖區,這個新的緩沖區會進入到 buffer cache 中。如果它需要的緩沖區已經在 buffer cache 中,那么它可能是也可能不是最新。如果它不是最新,或者它是一個新的塊緩沖區,文件系統必須請求設備驅動程序從磁盤上讀取適當的數據塊。
30.Describe four general strategies for dealing with deadlocks.
忽略問題
通過破壞死鎖產生的四個必要條件阻止死鎖。
通過資源分配來動態避免死鎖。
允許系統進入一個死鎖狀態,然后恢復。
31.Describe the two general roles of an operating system, and elaborate why these roles are important
程序控制者:最大化用戶正在進行的工作。
資源分配者:管理各種資源,并保證系統內各種請求之前的有效性和公平性。
32.Multi-programming (or multi-tasking) enables more than a single process to apparently execute simultaneously. How is this achieved on a uniprocoessor?
通過信號量,通過信號量的wait和signal操作,使得同一時刻只有一個進程執行。
33.Systems that support sequential files always have an operation to rewind files. Do systems that support random access files need this too?
不需要。支持隨機訪問文件的系統可以將文件指針指定到任意位置,也就無需再有重置指針的方法了。
34.Why are multi-level page tables often used instead of ordinary (single-level) page tables? What is the added cost associated with using multi-level page tables?
由于現代操作系統中頁表空間較大,我們也不可能連續地在內存中分配這個頁表,所以需要將頁表進行再分頁。
增加的代價是在頁表中頁表結構變得復雜,搜索時間變長。
35.As a process executes, which states does it change among? How can a process change its state from one to another?
新建,就緒,運行,等待,終止 狀態轉換的說明新-就緒:新進程被允許后進入就緒隊列就緒-運行:當處理機空閑時,系統按照一定調度算法從就緒狀態中選擇一個使其占用處理機運行。運行-就緒:分配給進程的時間片用完時,或出現一個更緊急的進程時運行-等待:運行的進程需要等待某一事件發生后,才能繼續往下運行等待-就緒:處于等待的進程,如果其等待的事件已經發生,表示阻塞的原因已解除,則該進程從等待轉為就緒
36.Direct memory access is used for high-speed I/O devices in order to avoid increasing the CPU’s execution load.
(1) How does the CPU interface with device to coordinate the transfer?
有一個dma控制器,cpu通過設置dma控制器的寄存器,由dma控制器來控制硬盤進行數據傳輸
(2) How does the CPU know when the memory operations are complete?
dma控制器通過中斷通知cpu
37.What is a locality?
局部模型:當進程執行時,它從一個局部移向另一個局部。局部是一個經常使用頁的集合。
What is a working set?
一定固定數量的并且已經映射到內存的頁面的集合。