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