【操作系统】最全复习提纲及例题
第一章 概述【填空、判斷、選擇】
1、操作系統(tǒng)的概念、基本類型、基本特征、基本功能、管態(tài)/目態(tài);
概念:管家、調(diào)度、橋梁。控制和管理計(jì)算機(jī)軟硬件資源,合理組織多道程序運(yùn)行,方便用戶使用程序集合。
基本類型:單道批處理系統(tǒng)、多單批處理系統(tǒng)、分時(shí)系統(tǒng)、實(shí)時(shí)系統(tǒng)
特征:并發(fā)、共享、虛擬、異步
功能:進(jìn)程管理(處理機(jī)管理)、內(nèi)存管理(存儲(chǔ)管理)、設(shè)備管理、文件管理、提供用戶接口
系統(tǒng)態(tài)(管態(tài)、核心態(tài)):程序在OS內(nèi)核執(zhí)行。CPU能執(zhí)行任何指令,能訪問任何寄存器、存儲(chǔ)器。
用戶態(tài)(目態(tài)):程序在OS外殼執(zhí)行。不能執(zhí)行特權(quán)指令,不能隨意訪問寄存器、存儲(chǔ)器。
2、操作系統(tǒng)的目標(biāo)、作用、結(jié)構(gòu)設(shè)計(jì)方法;
目標(biāo):方便性、有效性、可擴(kuò)充性和開放性
作用:1.作為用戶和計(jì)算機(jī)軟硬件系統(tǒng)的接口2.作為計(jì)算機(jī)系統(tǒng)資源的管理者
3.實(shí)現(xiàn)對(duì)計(jì)算機(jī)資源的抽象
結(jié)構(gòu)設(shè)計(jì)方法:1.整體式結(jié)構(gòu) 2.模塊化結(jié)構(gòu) 3.層次式結(jié)構(gòu) 4.微內(nèi)核OS結(jié)構(gòu)
第二章 進(jìn)程管理【重點(diǎn)!大題】
1、多道程序設(shè)計(jì)技術(shù) 單道批處理在宏觀上的并行,微觀上的串行
2、進(jìn)程的概念、特征、基本狀態(tài)及與程序的區(qū)別和聯(lián)系;
進(jìn)程的概念:可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合上的一次執(zhí)行過程,系統(tǒng)資源分配的基本單位
特征:動(dòng)態(tài)性,并發(fā)性,獨(dú)立性,異步性,結(jié)構(gòu)性 基本狀態(tài):就緒態(tài),執(zhí)行態(tài),阻塞態(tài)
3、PCB程序控制塊,程序存在的唯一標(biāo)識(shí) 進(jìn)程實(shí)體=程序+數(shù)據(jù)+PCB
前趨圖:有向無(wú)環(huán)圖,描述進(jìn)程之間執(zhí)行的先后順序 進(jìn)程圖:描述進(jìn)程間關(guān)系的一顆有向樹
4、原語(yǔ)的概念:由若干條指令構(gòu)成的原子操作,要么全做要么全不做。許多系統(tǒng)調(diào)用就是原語(yǔ)
特征:不可中斷性 實(shí)現(xiàn)方法:屏蔽中斷
進(jìn)程控制原語(yǔ)的種類:創(chuàng)建與終止,阻塞與喚醒,掛起與激活
5、同步:合作 互斥:競(jìng)爭(zhēng) 臨界資源:一個(gè)時(shí)間段不能同時(shí)訪問的資源 臨界區(qū):訪問臨界資源的那段代碼
記錄型信號(hào)量:
wait(semaphore *S){S->value--;if(S->value<0)block(S->list); } signal(semaphore *S){S->value++;if(S->value<=0)wakeup(S->list); }與整型的區(qū)別:實(shí)現(xiàn)了讓權(quán)等待原則,條件不符合進(jìn)程會(huì)block
1.系統(tǒng)中有三個(gè)進(jìn)程GET、PRO和PUT,共用兩個(gè)緩沖區(qū)BUF1和BUF2。假設(shè)BUF1中最多可放11個(gè)信息,現(xiàn)已放入了兩個(gè)信息;BUF2最多可放5個(gè)信息。GET進(jìn)程負(fù)責(zé)不斷地將輸入信息送入BUF1中,PRO進(jìn)程負(fù)責(zé)從BUF1中取出信息進(jìn)行處理,并將處理結(jié)果送到BUF2中,PUT進(jìn)程負(fù)責(zé)從BUF2中讀取結(jié)果并輸出。試寫出正確實(shí)現(xiàn)GET、PRO、PUT的同步與互斥的算法(要求:(1)用類C語(yǔ)言描述,條理清楚,注釋恰當(dāng);(2)信號(hào)量原語(yǔ)統(tǒng)一使用wait和signal。)
代碼:
Semaphore empty1=9,full1=2, empty2=5,full1=0,mutex1=mutex2=1; int main(){Cobegin //并發(fā)開始GET(); PRO(); PUT();Coend //并發(fā)結(jié)束return 0; } //GET進(jìn)程 void GET(){while(1){ wait(empty1); wait(mutex1);將信息送入buf1;signal(mutex1); signal(full1);} } //PRO進(jìn)程 void PRO(){while(1){ wait(full1); wait(mutex1);從buf1中取出信息;signal(mutex1); signal (empty1);wait(empty2); wait(mutex2);將信息送入buf2;signal(mutex2); signal(full2);} } //PUT進(jìn)程 void PUT(){while(1) {wait(full2); wait(mutex2);從buf2中取出信息;signal(mutex2);signal (empty2); } }2. 某自動(dòng)質(zhì)量檢測(cè)系統(tǒng)有三個(gè)進(jìn)程Q、A、B組成。進(jìn)程Q每次取一件產(chǎn)品進(jìn)行檢測(cè),把檢測(cè)后的產(chǎn)品存放在貨架F上,F的容量為每次只能存放一件產(chǎn)品……
Semaphore empty=1,fullA =0,fullB =0; 進(jìn)程 Q:{ Wait(empty);F:=檢測(cè)后的產(chǎn)品;If F=合格產(chǎn)品 thenSignal (fullA);elseSignal (fullB); }進(jìn)程 A:{ Wait(fullA);拿產(chǎn)品Signal (empty);貼標(biāo)簽后包裝; }進(jìn)程 B:{Wait(fullB);拿產(chǎn)品Signal (empty);貼標(biāo)簽后包裝; }7、線程:進(jìn)程中一個(gè)相對(duì)獨(dú)立的執(zhí)行流。 種類:執(zhí)行,就緒,阻塞
引入線程的目的:減少程序在并發(fā)執(zhí)行時(shí)所付出的時(shí)空開銷,使操作系統(tǒng)具有更好的并發(fā)性。
第三章 處理機(jī)調(diào)度與死鎖
1、調(diào)度的層次與作用:
高級(jí)調(diào)度:又稱長(zhǎng)程調(diào)度,作業(yè)調(diào)度,主要用于多道批處理系統(tǒng)中,外存調(diào)入內(nèi)存
低級(jí)調(diào)度:又稱進(jìn)程調(diào)度,短程調(diào)度,多道批處理,分時(shí)和實(shí)時(shí),就緒隊(duì)列調(diào)入處理機(jī)
中級(jí)調(diào)度:又稱內(nèi)存調(diào)度,調(diào)至外存,掛起
2、常用調(diào)度算法
(先來(lái)先服務(wù)FCFS、短作業(yè)優(yōu)先SJF、高響應(yīng)比優(yōu)先HRRN)
HRRN優(yōu)先權(quán)=1+ t 等待/ t 運(yùn)行
計(jì)算:
開始時(shí)間 結(jié)束時(shí)間 周轉(zhuǎn)時(shí)間=完成-到達(dá) 帶權(quán)周轉(zhuǎn)=周轉(zhuǎn)/運(yùn)行
例1)根據(jù)圖示,該系統(tǒng)應(yīng)采用什么進(jìn)程調(diào)度策略? 怎么改進(jìn)?
該分時(shí)系統(tǒng)采用的是時(shí)間片輪轉(zhuǎn)調(diào)度策略,用多級(jí)反饋調(diào)度策略進(jìn)行改進(jìn)
2)把圖中每個(gè)狀態(tài)變化的可能原因填寫在下表中。
1、進(jìn)程被選中,變?yōu)檫\(yùn)行狀態(tài) 2、進(jìn)程阻塞,進(jìn)行IO操作,等待磁盤讀文件 3、進(jìn)程阻塞,進(jìn)行IO操作,等待打印機(jī)輸出 4、打印結(jié)束,阻塞的進(jìn)程轉(zhuǎn)為就緒狀態(tài),排入就緒隊(duì)列尾部 5、讀文件結(jié)束,阻塞的進(jìn)程轉(zhuǎn)為就緒狀態(tài),排入就緒隊(duì)列尾部 6、時(shí)間片到,運(yùn)行狀態(tài)的進(jìn)程轉(zhuǎn)為就緒狀態(tài),排入就緒隊(duì)列尾部3、死鎖的概念、產(chǎn)生的原因及必要條件;
概念:相互等待對(duì)方釋放資源
產(chǎn)生的原因:資源競(jìng)爭(zhēng),進(jìn)程推進(jìn)順序不當(dāng)
四個(gè)必要條件:互斥條件,請(qǐng)求和保持條件,不可搶占條件,循環(huán)等待條件
4、處理死鎖的基本方法:預(yù)防、避免、檢測(cè)、解除死鎖
5、銀行家算法計(jì)算:
4、在銀行家算法中,若有下面的系統(tǒng)各類資源對(duì)進(jìn)程的分配情況,available1622 問:
(1)從以上情況分析可以看出,此時(shí)存在一個(gè)安全序列{p0,p3,p4,p1,p2},故該狀態(tài)是安全的。
(2)4類,分別有3、9、14、14個(gè)
(3)根據(jù)銀行家算法檢查:
a)Request2(1,2,2,2)<=need(2,3,5,6)
b)Request2(1,2,2,2)<=available(1,6,2,2)
c)設(shè)分配,修改available=0400,allocation=2576,need=1134
當(dāng)前分配安全資源,現(xiàn)存need已不能滿足任何需要,很明顯沒有安全序列,固假設(shè)分配不能執(zhí)行
第四章 存儲(chǔ)管理
1、存儲(chǔ)管理的目的、功能:
目的:提高存儲(chǔ)器的利用率,解決cpu與存儲(chǔ)器速度不匹配問題
功能:內(nèi)存的分配與回收,內(nèi)存的共享與保護(hù),地址映射,內(nèi)存擴(kuò)充
2、重定位的概念及方法:
概念:把程序中的邏輯地址變成內(nèi)存中的物理地址的過程
方法:靜態(tài)重定位:在程序執(zhí)行之前進(jìn)行,由專門設(shè)計(jì)的重定位裝配程序完成。
動(dòng)態(tài)重定位:在程序執(zhí)行過程中,每次訪問內(nèi)存之前將程序地址變換為內(nèi)存地址,這種變換是依靠硬件地址變換機(jī)構(gòu)實(shí)現(xiàn)
3、內(nèi)碎片:分區(qū)之內(nèi)未被利用的空間 外碎片:分區(qū)之間難以利用的空閑分區(qū)(通常是小空閑分區(qū))
4、常用分區(qū)分配算法及對(duì)應(yīng)的空閑區(qū)排列方式;
5、基本分頁(yè)(分段)的概念、頁(yè)(段)表的作用、地址變換過程及物理地址計(jì)算;
將程序的邏輯地址空間劃分為固定大小的頁(yè);
物理內(nèi)存劃分為固定大小的塊(頁(yè)架,頁(yè)框);
例:某頁(yè)式存儲(chǔ)系統(tǒng)頁(yè)表如下,設(shè)每頁(yè)1KB,請(qǐng)寫出邏輯地址為8300時(shí)所對(duì)應(yīng)的頁(yè)號(hào)和頁(yè)內(nèi)地址,以及在內(nèi)存中對(duì)應(yīng)的物理地址。(請(qǐng)?jiān)敿?xì)寫出運(yùn)算過程)
(1)8300 ÷ 1024=8······108,故頁(yè)號(hào)為8,頁(yè)內(nèi)地址為108 所以物理地址 4×1024+108=4204
(2)(a):地址(1,10)的段號(hào)為1,查表得基址為2300,段長(zhǎng)為14,物理地址為:2300 + 10 = 2310。
(b):地址(4,112)的段號(hào)為4,查表得基址為1952, 段長(zhǎng)為96;由于段內(nèi)位移為112,大于段長(zhǎng)96,
發(fā)生段越界,產(chǎn)生越界中斷。
例:在請(qǐng)求分頁(yè)系統(tǒng)中,某用戶的編程空間為16個(gè)頁(yè)面,每頁(yè)1K,分配的內(nèi)存空間為8K……
答:104B(H) 答:13192 答:24A0(H)的頁(yè)號(hào)為9,而其頁(yè)面當(dāng)前不在內(nèi)存,所以會(huì)發(fā)一個(gè)缺頁(yè)中斷,請(qǐng)求系統(tǒng)調(diào)頁(yè)。
6、分頁(yè)與分段的區(qū)別、各自的優(yōu)缺點(diǎn);
分頁(yè):有效解決了碎片問題,有效提高內(nèi)存的利用率
分段:更好地實(shí)現(xiàn)數(shù)據(jù)共享與保護(hù),段長(zhǎng)可動(dòng)態(tài)增長(zhǎng),便于動(dòng)態(tài)鏈接
第五章 虛擬存儲(chǔ)器
1、虛擬存儲(chǔ)器的基本概念、理論依據(jù)、基本特征及關(guān)鍵技術(shù);
基本概念:由操作系統(tǒng)提供的一個(gè)假想的特大的存儲(chǔ)器,以時(shí)間換空間
理論依據(jù):程序局部性原理 基本特征:多次性,對(duì)換性,虛擬性
關(guān)鍵技術(shù):請(qǐng)調(diào)+置換
2、頁(yè)面置換算法:
FIFO先進(jìn)先出(看長(zhǎng)度) OPT最佳置換算法(往右看換遠(yuǎn)的) LRU最近最久未使用(往左看換遠(yuǎn)的)
畫長(zhǎng)框做,缺頁(yè)次數(shù):只要有修改就算一次,一開始的添加也算
3、例:對(duì)一個(gè)將頁(yè)表存放在內(nèi)存中的分頁(yè)系統(tǒng):
(1)若訪問內(nèi)存需要0.2us,有效訪問時(shí)間為多少?
2 * 0.2=0.4us
(2)如果加一快表,假定設(shè)置快表的命中率高達(dá) 90%
0.9 * 0.2+( 1 - 0.9)* 2 * 0.2 = 0.22us
第六章 設(shè)備管理
1、設(shè)備管理的任務(wù)、功能及目標(biāo);
任務(wù):完成io,提高I/O速率,改善I/O利用率
功能:緩沖區(qū)管理,設(shè)備分配,設(shè)備處理,虛擬設(shè)備,設(shè)備獨(dú)立性
目標(biāo):方便性,并行性,均衡性,獨(dú)立性
2、I/O設(shè)備的分類,設(shè)備、控制器及通道的關(guān)系;
按特性分類:存儲(chǔ)設(shè)備、IO設(shè)備
按傳輸速率分類:低速、中速、高速設(shè)備
關(guān)系:控制器是cpu與I/O設(shè)備之間的接口
3、通道的基本概念及分類;
概念:實(shí)際上I/O通道是一種特殊的處理機(jī)
分類:字節(jié)多路通道、數(shù)組選擇通道、數(shù)組多路通道
4、緩沖區(qū)的概念、分類及引入目的;
單緩沖、雙緩沖計(jì)算處理數(shù)據(jù)的時(shí)間;
單緩沖= n(t讀入+t處理)+t傳送 雙緩沖= n(t讀入)+t處理+t傳送
5、I/O軟件的層次、各層主要功能、設(shè)備獨(dú)立性的概念;
用戶級(jí)I/O軟件:實(shí)現(xiàn)與用戶交互的接口 設(shè)備獨(dú)立性軟件:實(shí)現(xiàn)用戶程序與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口
設(shè)備驅(qū)動(dòng)程序:與硬件直接相關(guān)
中斷處理程序:保護(hù)被中斷進(jìn)程的CPU環(huán)境
設(shè)備獨(dú)立性:I/O軟件獨(dú)立于具體使用的物理設(shè)備
6、SPOOLING技術(shù)的作用及SPOOLING系統(tǒng)的組成;
作用:(1)提高了I/O的速度。(2)將獨(dú)占設(shè)備改造為共享設(shè)備。(3)實(shí)現(xiàn)了虛擬設(shè)備功能。
組成:輸入井輸出井、輸入緩沖區(qū)輸出緩沖區(qū)、輸入進(jìn)程輸出進(jìn)程、井管理程序
SPOOLing技術(shù)是一類典型的虛擬設(shè)備技術(shù),通常是用獨(dú)占設(shè)備來(lái)模擬共享設(shè)備。(F)
7、先來(lái)先服務(wù)FCFS 最短尋道時(shí)間優(yōu)先SSTF 掃描算法(電梯調(diào)度) SCAN 循環(huán)掃描算法CSCAN
例:(從72磁道開始)
FCFS 98 220 37 122 14 124 65 82
SSTF 65 82 98 122 124 37 14 220
SCAN 82 98 122 124 220 65 37 14
CSCAN 82 98 122 124 220 14 37 65
柱面數(shù)=移動(dòng)磁道數(shù)
第七章 文件管理
1、文件系統(tǒng)的組成、功能;
文件系統(tǒng)的層次結(jié)構(gòu):對(duì)象及其屬性、對(duì)對(duì)象操縱和管理的軟件集合、文件系統(tǒng)的接口
文件系統(tǒng)功能:用戶角度: 實(shí)現(xiàn)“按名存取”
系統(tǒng)角度:文件存儲(chǔ)空間的管理、文件的存儲(chǔ)與檢索、文件的共享與保護(hù)
2、打開操作的目的:把FCB從磁盤讀到內(nèi)存,在用戶和指定文件之間建立起一個(gè)連接
關(guān)閉操作的目的:將該文件從打開的文件表中的表目上刪除
3、如何加快目錄檢索?
為其建立一張索引表,以主文件中每條記錄的長(zhǎng)度及指向?qū)?yīng)記錄的指針作為相應(yīng)每個(gè)表項(xiàng)的內(nèi)容
4、目錄項(xiàng)分解法:把FCB分成兩部分,符號(hào)目錄項(xiàng):文件名,文件號(hào) 基本目錄項(xiàng):除文件名外的所有字段
例:一個(gè)盤塊大小為8KB的磁盤,采用耳機(jī)索引結(jié)構(gòu),索引表的一項(xiàng)占4B,計(jì)算該系統(tǒng)下文件最大多大?
答:一個(gè)盤塊中可存放索引項(xiàng)為8K/4=2K個(gè),二級(jí)索引文件最大可達(dá)32GB(2K2K8KB)
盤塊就是數(shù)據(jù)塊,索引表就是索引塊
例:若一個(gè)進(jìn)程要訪問偏移量為263168字節(jié)處的數(shù)據(jù)時(shí),需要經(jīng)過幾次間接?
因一個(gè)盤塊的大小為512B且每個(gè)盤塊號(hào)占2B,所以一個(gè)盤塊中最多存512/2=256個(gè)塊號(hào),又因偏移量的邏輯塊號(hào)為263168/512=514,且10+256<514<256*256,所以偏移地址的塊號(hào)在二次間接塊內(nèi)。
第八章 磁盤存儲(chǔ)器的管理
1、 文件的物理結(jié)構(gòu):順序文件結(jié)構(gòu)、鏈接文件結(jié)構(gòu)、索引文件結(jié)構(gòu)
例1、假設(shè)盤塊大小為512B,硬盤的大小為100MB,如果采用顯式鏈接管理方式,對(duì)應(yīng)的FAT為多少字節(jié)?
答:100MB/512B=200K個(gè)塊,需要18個(gè)二進(jìn)制位來(lái)描述塊號(hào);
按照FAT表的組織結(jié)構(gòu),每個(gè)表項(xiàng)需要擴(kuò)充成20位即2.5個(gè)字節(jié);所以FAT表的大小=2.5B*200K=500KB。
例2、某磁盤文件系統(tǒng),采用混合索引分配方式,13個(gè)地址項(xiàng)記錄在FCB中,第0-9個(gè)地址項(xiàng)為直接地址,第10個(gè)地址項(xiàng)為一次間接地址,第11個(gè)地址項(xiàng)為二次間接地址,第12個(gè)地址項(xiàng)為三次間接地址。如果每個(gè)盤塊的大小為512字節(jié),盤塊號(hào)需要用3個(gè)字節(jié)來(lái)描述(每個(gè)索引塊可記錄170個(gè)盤塊地址):
答:1)該文件系統(tǒng)中一個(gè)文件的最大長(zhǎng)度為:10+170+170170+170170*170=4942080塊
4942080 * 512字節(jié) = 2471040KB
2)5000/512得商為9,余數(shù)為392,即字節(jié)偏移量5000對(duì)應(yīng)的邏輯塊號(hào)為9,塊內(nèi)偏移量392
所以可以從第九個(gè)地址得到物理盤塊號(hào),塊內(nèi)偏移量392
例3、假設(shè)一個(gè)磁盤組有 100 個(gè)柱面,編號(hào)為 0-99,每個(gè)柱面有 32 個(gè)磁道,編號(hào)為 0-31,每個(gè)磁道有16 個(gè)扇區(qū),編號(hào)為0-15。現(xiàn)采用位示圖方法管理磁盤空間,磁盤塊與扇區(qū)大小相等…
1)若采用32 位的字組成位示圖,共需要多少個(gè)字? 2)第40 字的第18 位對(duì)應(yīng)于哪個(gè)柱面、哪個(gè)讀寫磁頭和哪個(gè)扇區(qū)?
1)(16×32×100)/32=1600,需要1600 個(gè)字。 //注:盤塊=柱面磁道扇區(qū)
2) 塊號(hào)是1298:40×32+18=1298 柱面號(hào)是2:[1298/(16×32)]=2
磁頭號(hào)是17:[(1298 mod (16×32))/16]=17 扇區(qū)號(hào)是2:(1298 mod (16×32))mod 16=2
例4、某UNIX操作系統(tǒng)的空閑盤塊號(hào)棧內(nèi)容為:空閑塊數(shù)為3,依次登記的空閑塊號(hào)為77、89、60,問此時(shí)若一個(gè)文件A需要5個(gè)盤塊,系統(tǒng)進(jìn)行分配后又有個(gè)文件B被刪除,它占用的盤塊塊號(hào)為100、101、109、500,分析分配和回收過程,說(shuō)明上述操作過后空閑盤塊號(hào)棧里的空閑塊個(gè)數(shù)及內(nèi)容如何?
答:分析:文件A需要五個(gè)盤塊,77、89、60全分配給A還不夠,文件B刪除后多出4個(gè)盤塊,101和100分配給A,所以空閑塊數(shù)2,然后依次登記的空閑塊數(shù)為109、500(用成組鏈接法)
總結(jié)
以上是生活随笔為你收集整理的【操作系统】最全复习提纲及例题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么MOSFET栅极与源极之间要加一个
- 下一篇: 毕业设计 超声波红外自动调速风扇系统