操作系統(tǒng)知識梳理

第一章:概述

什么是操作系統(tǒng)?

是一段一直運行在計算機上的程序

是資源的分配者

向上管理軟件向下管理硬件

為用戶提供良好接口

中斷的概念?

中斷指當(dāng)出現(xiàn)需要時,CPU暫時停止當(dāng)前程序的執(zhí)行轉(zhuǎn)而執(zhí)行處理新情況的程序和執(zhí)行過程。

中斷向量的概念?

各種設(shè)備的中斷處理子程序的地址數(shù)組

什么是系統(tǒng)調(diào)用?

由操作系統(tǒng)實現(xiàn)提供的所有系統(tǒng)調(diào)用所構(gòu)成的集合即(Application Programming Interface,API)。是應(yīng)用程序同系統(tǒng)之間的接口。

內(nèi)存是什么?

內(nèi)存是處理器可以直接訪問的唯一的大容量存儲區(qū)域,他通常是用被稱為動態(tài)隨機訪問內(nèi)存的半導(dǎo)體技術(shù)來實現(xiàn)的,是一組內(nèi)存字的數(shù)組,每個字都有其地址。

存儲系統(tǒng)的速度

寄存器>高速緩存>主存>電子磁盤 >磁盤> 光盤 >磁帶

什么是DMA及其工作原理?(課本第十頁有解釋)
DMA即直接內(nèi)存訪問模式,簡單來說,總線控制權(quán)在CPU“手上”,外連設(shè)備無權(quán)直接訪問內(nèi)存,需要CPU參與,但DMA控制器從CPU那“偷出”幾個時鐘來控制總線,讓外連設(shè)備可以直接訪問內(nèi)存,這樣外連設(shè)備的讀寫就不需要CPU參與,降低了CPU的占用率。(通俗解釋版本) 是一種不經(jīng)過CPU而直接從內(nèi)存存取數(shù)據(jù)的數(shù)據(jù)交換模式,在DMA模式下,CPU只須向DMA控制器下達指令,讓DMA控制器來處理數(shù)據(jù)的傳送,數(shù)據(jù)傳送完畢再把信息反饋給CPU,這樣就很大程度上減輕了CPU資源占有率,可以大大節(jié)省系統(tǒng)資源。(答題版本) 什么是多道程序系統(tǒng)?(課本11頁)多處理器系統(tǒng)也稱并行系統(tǒng)或者是緊耦合系統(tǒng),這類系統(tǒng)有多個緊密通信的CPU,他們共享計算機總線,有時還有時鐘、內(nèi)存和外設(shè)等。 多道程序系統(tǒng)的優(yōu)點?1、增加吞吐量2、規(guī)模經(jīng)濟3、增加可靠性 非對稱多處理系統(tǒng)每個處理器都有各自特定的任務(wù),一個主處理器控制系統(tǒng),其他處理器或者向主處理器要任務(wù)或者完成預(yù)定任務(wù)對稱多處理系統(tǒng)每個處理器都要完成操作系統(tǒng)的任務(wù),所有處理器對等,沒有主從關(guān)系 什么是多道程序設(shè)計?是在計算機內(nèi)存中同時存放幾道相互獨立的程序,使它們在管理程序控制之下,相互穿插的運行。 兩個或兩個以上程序在計算機系統(tǒng)中同處于開始到結(jié)束之間的狀態(tài)。目的是為了提高CPU的利用率,充分發(fā)揮計算機系統(tǒng)部件的并行性 什么是分時系統(tǒng)?分時系統(tǒng)是多道程序設(shè)計邏輯上的一個延伸。把處理機時間劃分成很短的時間片輪流地分配給各個聯(lián)機作業(yè)使用。如果某個作業(yè)在分配給他的時間片用完之前計算還未完成,該作業(yè)就暫時中斷,等待下一輪繼續(xù)計算。此時處理機讓給另一個作業(yè)使用。此時,多個用戶分享使用同一臺計算機。多個程序分時共享硬件和軟件資源,分時系統(tǒng)具有多用戶性和交互性。(寶寶結(jié)合課本15頁和百度百科加百度知道暖心歸納的) 作業(yè)池在分時和多道程序設(shè)計中需要在存儲器中同時保存多個作業(yè),但主存較小不能容納太多作業(yè),所以這些作業(yè)開始儲存在磁盤上,這個儲存地址叫作業(yè)池 作業(yè)調(diào)度在作業(yè)池中選擇作業(yè)進入內(nèi)存,這樣的決策叫做作業(yè)調(diào)度 CPU調(diào)度如果有多個任務(wù)要執(zhí)行,系統(tǒng)必須做出選擇讓其中一個執(zhí)行,這個決策叫做CPU調(diào)度 雙重模式操作(重點中的重點)指用戶模式和(內(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)工作方式,檢測用戶的訪問權(quán)限,修改虛擬存儲器管理的段表、頁表,完成任務(wù)的創(chuàng)建和切換等。 常見的特權(quán)指令
有關(guān)對I/O設(shè)備使用的指令 如啟動I/O設(shè)備指令、測試I/O設(shè)備工作狀態(tài)和控制I/O設(shè)備動作的指令等。

有關(guān)訪問程序狀態(tài)的指令 如對程序狀態(tài)字(PSW)的指令等。

存取特殊寄存器指令 如存取中斷寄存器、時鐘寄存器等指令。

轉(zhuǎn)換到用戶模式就是一個特權(quán)指令(課本17頁)第二章:操作系統(tǒng)結(jié)構(gòu)系統(tǒng)調(diào)用(重點)課本41頁圖系統(tǒng)調(diào)用類型分為五大類:進程控制、文件管理、設(shè)備管理、信息維護、通信操作系統(tǒng)的結(jié)構(gòu)1、簡單結(jié)構(gòu)可以訪問硬件,不穩(wěn)定2、分層方法系統(tǒng)模塊化,分層法的優(yōu)點在于構(gòu)造和調(diào)試的簡單化3、微內(nèi)核將所有非基本部分從內(nèi)核中移走,并將它們實現(xiàn)為系統(tǒng)程序或者是用戶程序,微內(nèi)核通常包括最小的進程和內(nèi)存管理以及通信功能 優(yōu)點:便于擴充操作系統(tǒng),所有的新服務(wù)可以在用戶空間增加,因而不需要修改內(nèi)核。 第三章:進程 什么是進程(也叫作業(yè))?進程是執(zhí)行中的程序,是具有某一功能的程序,是在某一數(shù)據(jù)集上的一次執(zhí)行過程,是資源分配和調(diào)度的獨立單元。還包括有程序計數(shù)器、處理器寄存器、進程堆棧段等。進程的特性:并發(fā)性和動態(tài)性 進程的狀態(tài):重點:(73頁進程狀態(tài)圖)新的、運行、等待、就緒、終止 進程控制塊(PCB)重點圖(74頁+82頁代碼)(產(chǎn)生中斷時PCB怎么活動,也就是上下文切換)包括:進程狀態(tài)、進程編號、程序計數(shù)器、寄存器... 3.4(85頁——90頁)全是重點進程間通信 進程間關(guān)系分為獨立進程和協(xié)作進程協(xié)作進程分為共享內(nèi)存和消息傳遞 While(true) While(((in+1)%size)==out);Buffer[in]=nextproducer;In=(in+1)%size;}生產(chǎn)者進程

While(true)

While(in==out)

;

Nextconsumer=buffer[out];

Out=(out+1)%size;

}

消費者進程

第四章:線程

什么是線程?

線程是CPU使用的基本單元,它由線程ID、程序計數(shù)器、寄存器集合和棧組成。它與屬于同一進程的其他線程共享代碼段、數(shù)據(jù)段和其他資源。

多線程的優(yōu)點?

響應(yīng)度高

資源共享

經(jīng)濟

多處理器體系結(jié)構(gòu)的利用(增加了并發(fā)功能)

什么是線程?

線程是CPU使用的基本單元,它由線程ID、程序計數(shù)器、寄存器集合和棧組成

它與屬于同一進程的其他線程共享代碼段、數(shù)據(jù)段和其他資源。

如果直接使用進程并發(fā),會產(chǎn)生什么問題?

進程創(chuàng)建很耗時間與資源,使系統(tǒng)性能下降

進程與線程的對比

從調(diào)度方面:

線程作為調(diào)度和分派的基本單位,而進程作為資源擁有的基本單位

從資源方面:

進程間相互獨立,同一進程的各線程間共享資源。線程自己不擁有系統(tǒng)資源,某進程內(nèi)的線程在其它進程不可見。

從并發(fā)方面:

在引入線程的操作系統(tǒng)中,不僅進程之間可以并發(fā)執(zhí)行,而且在一個進程中的多個線程之間亦可以并發(fā)執(zhí)行,使得操作系統(tǒng)具有更好的并發(fā)性,從而能更加有效地提高系統(tǒng)資源的利用率和系統(tǒng)的吞吐量。但進程并發(fā)代價大,線程代價小

從執(zhí)行方面:

忘了....(哈哈..如果知道補充好告訴偶哦)

用戶級線程

指不需要內(nèi)核支持而在用戶程序中實現(xiàn)的線程,其不依賴于操作系統(tǒng)核心,應(yīng)用進程利用線程庫提供創(chuàng)建、同步、調(diào)度和管理線程的函數(shù)來控制用戶線程。

內(nèi)核級線程

由操作系統(tǒng)內(nèi)核創(chuàng)建和撤銷。內(nèi)核維護進程及線程的上下文信息以及線程切換。

以下是用戶級線程和內(nèi)核級線程的區(qū)別

用戶級線程的程序?qū)嶓w是運行在用戶態(tài)下的程序,而內(nèi)核支持線程的程序?qū)嶓w則是可以運行在任何狀態(tài)下的程序

內(nèi)核線程的優(yōu)點:

當(dāng)有多個處理機時,一個進程的多個線程可以同時執(zhí)行

缺點:

由內(nèi)核進行調(diào)度

用戶進程優(yōu)點:

線程的調(diào)度不需要內(nèi)核直接參與,控制簡單

可以在不支持線程的操作系統(tǒng)中實現(xiàn)

代價比內(nèi)核線程小

缺點:

多個處理機下,同一個進程中的線程只能在同一個處理機下時分復(fù)用

線程池

為了限制線程的數(shù)量,在進程開始時,先創(chuàng)建好一定數(shù)量的線程,放到池中,等待服務(wù)的使用

優(yōu)點:

先創(chuàng)建好了線程,處理速度快;

線程池限制了線程的數(shù)量,對那些不能支持數(shù)量大線程并發(fā)的系統(tǒng)非常重要;

第五章:CPU調(diào)度

CPU調(diào)度的背景和概念(重點)

為了解決單處理器CPU利用率低的問題,采用多道程序設(shè)計,此時會有多個進程在內(nèi)存中,當(dāng)其中一個進程執(zhí)行一段時間后必須等待時,此時操作系統(tǒng)會奪走CPU的使用權(quán)交給另一個進程,這就是CPU調(diào)度

分派程序(重點)

其實就是將CPU使用權(quán)交給短期調(diào)度選擇的進程的過程

功能

切換上下文

切換到用戶模式

跳轉(zhuǎn)到用戶程序的合適 位置,以重啟程序

周轉(zhuǎn)時間:進程完全結(jié)束的時間減去進程到達的時間

調(diào)度算法(重點)

FCFS

Easy......

了解護航效應(yīng)(convoy effect)的概念

SJF(最小等待時間)

1、非搶占

若進程到達時間都是同一時間:

則操作系統(tǒng)會直接根據(jù)作業(yè)時間的大小進行選擇(必須完整的執(zhí)行完一個進程再換到另一個進程)

若進程到達時間都不是同一時間:

則操作系統(tǒng)在最短時間作業(yè)選擇的時候,開始只考慮已經(jīng)到了的進程,當(dāng)執(zhí)行完一個進程后(必須完整的執(zhí)行完一個進程再換到另一個進程),又有進程到達,則把該進程納入考慮范圍內(nèi),繼續(xù)進行最短時間作業(yè)選擇...

2、搶占

若進程到達時間都是同一時間:

則與非搶占是一樣的效果.....

若進程到達時間都不是同一時間:

則執(zhí)行搶占的方法(參考141頁的例子,有搶占和非搶占)

優(yōu)先級調(diào)度算法

若進程到達時間都是同一時間:

直接按照優(yōu)先級進行選擇

若進程到達時間不是同一時間:

開始只考慮已經(jīng)到了的進程,當(dāng)執(zhí)行完一個進程后(必須完整的執(zhí)行完一個進程再換到另一個進程),又有進程到達,則把該進程納入考慮范圍內(nèi),繼續(xù)按照優(yōu)先級進行選擇...

輪轉(zhuǎn)法調(diào)度(最快響應(yīng))

Easy...不做詳解

多級隊列調(diào)度(了解概念即可)

進程分配到獨立的隊列中,每個隊列有自己獨立的調(diào)度算法,只能在這個隊列中

多級反饋隊列調(diào)度(了解概念即可)

進程分配到獨立的隊列中,每個隊列有自己獨立的調(diào)度算法,但進程可以根據(jù)執(zhí)行效果在不同隊列中流動

了解概念即可

親和性

課本148

負載平衡

將工作平均分配到多個等待的處理器中,防止其中一個處理器壓力山大...

確定模型

1、分析評估法

用一套評估方法去給模型打分

2、確定模型法

直接用數(shù)據(jù)去測試模型,看看結(jié)果

第六章:進程同步

臨界區(qū)問題(重點 critical section,理解概念)

互斥、前進、有限等待(對應(yīng)洋文一定要知道呀)

(mutual exclusion、progress、bounded waiting)

硬件同步(了解即可)

信號量(重點中的重點,算法大題應(yīng)該就是它)

Wait(s) signal (s){

While(s<=0) s++;

; }

S--;

}

該方法常用,但出現(xiàn)了

實現(xiàn)(重點)

忙等待:

就是當(dāng)有一個進程在臨界區(qū)的時候,任何試圖進入其臨界區(qū)的進程都必須在進入代碼連續(xù)循環(huán)

三個重點內(nèi)容 經(jīng)典同步問題

1、有限緩沖問題

該算法適用于解決生產(chǎn)者消費者問題,一般需要定義一個緩沖區(qū)大小的變量empty 初始化為n ,一個full初始化為0,表示正在緩沖區(qū)的個數(shù),mutex初始化為1,用于實現(xiàn)互斥,用這三個變量就能解決這類問題 177頁

2、讀者寫者問題

課本中程序同時達到目的為

1、沒有寫的時候,后續(xù)讀的直接進入

2、有一個在寫,后續(xù)的讀和寫都得等待

3、有一個在讀,后續(xù)的讀繼續(xù)讀,寫進入等待

具體怎么實現(xiàn)的看178頁代碼啦~

3、哲學(xué)家進餐問題

簡單來說,就是一個wait(a[i]);一個wait(a[i+1]%5)

這兩個wait后如果哲學(xué)家進入了臨界區(qū),就表示這個哲學(xué)家此時占用了他相鄰的兩根筷子,別人就不能用了,知道signal(a[i]) 和signal(a[i+1]%5) ,說明吃完了放下筷子進入思考...

管程(了解)

第七章:死鎖

死鎖和死鎖狀態(tài)的概念

在多道程序環(huán)境下,多個進程可能競爭一定數(shù)量的資源。某個進程申請資源,如果這時資源不可用,那么該進程進入等待狀態(tài)。如果所申請的資源被其他等待進程占有,那么該等待進程可能再也無法改變其狀態(tài)。這種情況稱為死鎖 deadlock。

當(dāng)一組進程的每個進程都在等待一個事件,而這一事件只能有這一組進程的另一個進程所引起,那么這組進程就處于死鎖狀態(tài)。

必要條件

互斥、占有并等待、非搶占、循環(huán)等待

資源分配圖

沒有環(huán),一定沒有死鎖;有環(huán),只是有可能有死鎖(若每個資源只有一個實例,則有環(huán)就必然死鎖,這也是 為什么只有一個實例的時候,可以采用資源分配圖算法,而有多個的時候一般使用銀行家算法)

死鎖處理方法

1、死鎖預(yù)防

讓四個必要條件其中一個不滿足就行,在必要條件之前加上否定就行

2、死鎖避免

安全序列

系統(tǒng)能按某個順序給每個進程分配資源而能避免死鎖,這個順序就是安全序列

安全狀態(tài)無死鎖,不安全狀態(tài)只是可能導(dǎo)致死鎖

安全序列不是唯一的,滿足條件即可,但考試基本老師會給只有唯一的安全序列的套路,哈哈,便于批卷

資源分配圖算法:

用于每個資源有單個實例的情況

銀行家算法:

安全性算法

就是尋找能給所有進程分配資源的一個安全序列

課本222頁的舉例是必考題

資源請求算法

當(dāng)一個進程請求資源的時候,先判斷有沒有那么多給它,如果有,再判斷如果給它,新狀態(tài)下有沒有安全序列

死鎖恢復(fù)辦法

進程終止

資源搶占

第八章:內(nèi)存管理

內(nèi)存概念:

內(nèi)存是處理器可以直接訪問的唯一的大容量存儲區(qū)域,他通常是用被稱為動態(tài)隨機訪問內(nèi)存的半導(dǎo)體技術(shù)來實現(xiàn)的,是一組內(nèi)存字的數(shù)組,每個字都有其地址。

輸入隊列:也叫作業(yè)池,在磁盤上等待調(diào)入進內(nèi)存的進程

CPU產(chǎn)生的地址叫邏輯地址,也叫虛地址、可重定位地址

MMU:內(nèi)存管理單元,完成虛地址到物理地址的映射

邏輯地址+基地址(存在于重定位寄存器也叫基地址寄存器中)=物理地址

動態(tài)加載:課本240

滾入、滾出了解概念

連續(xù)內(nèi)存分配

外部碎片:

進程塊之間的空閑內(nèi)存

內(nèi)部碎片:

分配給進程的內(nèi)存大于它所需要的,多出來的那部分

重點(分頁)

分頁使得內(nèi)存非連續(xù)

物理內(nèi)存中的塊叫幀,邏輯內(nèi)存上的塊叫頁

將邏輯地址通過頁表映射到物理內(nèi)存地址的計算:

1、首先找到邏輯地址的頁號p(也就是在邏輯地址上是第幾塊)

2、用找到的p通過頁表直接找到物理地址上幀的塊數(shù)m

3、頁偏移是指這個邏輯地址在其所在的那個頁塊偏移的數(shù),不是從最開始數(shù),只是從其所屬的塊開始數(shù),在第一就偏移0....

4、m乘以幀的大小加上頁偏移就是物理內(nèi)存地址

分頁技術(shù)不會產(chǎn)生外部碎片

內(nèi)部碎片的計算:

比如 100大小的進程

頁大小是30(幀和頁一樣大也是30),需要3個幀,但還有10的內(nèi)存,也需要分配一個幀,所以產(chǎn)生了30-10=20的內(nèi)部碎片

TLB:

轉(zhuǎn)換表緩沖區(qū)

有效內(nèi)存訪問時間:和求期望類似

效內(nèi)存訪問時間=概率一時間一+概率二時間二...自己體會

頁表結(jié)構(gòu)(了解)

分段(重點內(nèi)容)

也是一種非連續(xù)分配

其邏輯地址由<segment-number,offset>組成

段表的概念 還有圖(課本261頁)不做解釋了...

段表的目的:

將二維的用戶定義地址映射為一維地址

.頁表的作用是實現(xiàn)從頁號到物理塊號的地址映射。

在頁式管理系統(tǒng)中,用戶程序中使用的地址稱為 邏輯地址 ,實際訪問主存時由系統(tǒng)將它轉(zhuǎn)化為 物理地址 。

分頁管理是把內(nèi)存分為大小相等的區(qū),每個區(qū)稱為頁幀(或頁框),而把程序的邏輯空間分為若干頁,頁的大小與頁幀的大小 相等 。

在分頁存儲管理中,為了加快地址變換速度,頁面大小的值常取2的整數(shù)次冪。

在請求式分頁系統(tǒng)中,被調(diào)出的頁面又立刻被調(diào)入,這種頻繁的調(diào)頁現(xiàn)象稱為顛簸。

分段管理中,若邏輯地址中的段內(nèi)地址大于段表中該段的段長,則發(fā)生 地址越界中斷。

段頁式存儲管理中,每道程序都有一個 段 表和若干個 頁 表。

頁式管理系統(tǒng)的邏輯地址結(jié)構(gòu)由 頁號 和 頁內(nèi)位移 組成。

分段管理中的地址映射過程是:首先找到該作業(yè)段表的 起始地址 ,然后根據(jù)邏輯地址中的 段號 去查找段表得到該段的內(nèi)存起始地址,再與邏輯地址中的 段內(nèi)位移 相加得到物理地址。

請求分頁存儲管理也稱為動態(tài)頁面管理,不是把一個進程映象的所有頁面一次性全部裝入內(nèi)存,而只裝入一部分,其余部分在執(zhí)行中動態(tài)調(diào)入。

在段頁式管理中,邏輯地址分解為段號、頁號、頁內(nèi)位移 三部分。

第九章:虛擬內(nèi)存

背景(重點)

將用戶看到的邏輯內(nèi)存和物理內(nèi)存分開

只將部分程序放入內(nèi)存就能執(zhí)行

邏輯地址空間可以比物理內(nèi)存空間大

許多情況下整個程序不是必須的

優(yōu)點:比實際空間大

  不必擔(dān)心內(nèi)存空間的限制

  允許地址空間被多個進程共享

虛擬內(nèi)存的實現(xiàn):

按需調(diào)頁(demand paging)

顧名思義,在需要某段程序的時候?qū)⑵湔{(diào)人內(nèi)存的技術(shù)

275頁重點內(nèi)容,老師說應(yīng)該背下來

純粹按需調(diào)頁

支持按需調(diào)頁的硬件

頁表

次級存儲器

產(chǎn)生頁錯誤有兩種情況

1、不允許訪問

2、未調(diào)入內(nèi)存,需要在后備存儲中將其調(diào)入

寫時復(fù)制(了解原理)

頁面置換(重點)

基本頁置換

如果沒有空閑幀就查找當(dāng)前沒有使用的幀,并將其釋放(犧牲幀),然后將其內(nèi)容寫到交換空間,并改變頁表和幀表

引用串的計算(重點):

會給定一組地址

0100,0432,0103,0104,0890....

如果頁大小是100B

則將所有地址除以頁大小100,向下取整后

得1、4、1、1、8

第三步,將相鄰的相同的數(shù)合為一個就行(也就是將兩個相鄰相同的1,保留一個就行)

得1、4、1、8

FIFO頁置換:

替換最早進入的

這個...不好說明,很簡單,課本284頁

最優(yōu)置換(OPT):

替換最久將會被使用的

雖然名字為最優(yōu),但后期預(yù)測其實是很難的,所以2很多時候

課本285頁

LRU頁置換:(重點)

替換最久沒有被使用的

詳細對比見附錄1

幀分配(了解即可)

系統(tǒng)顛簸(thrashing 重點中的重點)

什么是顛簸?產(chǎn)生顛簸的原因是什么?

(1)顛簸是由于內(nèi)存空間競爭引起的。當(dāng)需要將一個新頁面調(diào)入內(nèi)存時,因內(nèi)存空間緊張,不得不將一個舊頁面置換出去,而剛剛置換出去的舊頁面可能又要被使用,因此需要重新將它調(diào)入。若一個進程頻繁地進行頁面調(diào)入調(diào)出,勢必加大系統(tǒng)的開銷,使系統(tǒng)運行效率降低。通常稱這種現(xiàn)象為該進程發(fā)生了顛簸。(2)產(chǎn)生顛簸的原因主要有:系統(tǒng)內(nèi)的進程數(shù)量太多,致使一個進程分得的存儲塊過少;系統(tǒng)采取的置換算法不夠合理。

工作集合模型:

沒聽,那節(jié)課后邊睡著了

第十章:文件(這章以后基本只考概念)

文件屬性:

名稱、標識符、類型、位置、大小、保護、時間、日期和用戶標識

文件操作:

創(chuàng)建文件、寫文件、讀文件(維護一個讀位置的指針)、在文件中重定位(也叫文件尋址)、刪除文件(釋放空間,也就是全部刪除)、截短文件(刪除內(nèi)容保留屬性)

首次使用文件時,調(diào)用open(),操作系統(tǒng)維護一個包含打開文件的信息表(打開文件表)

系統(tǒng)調(diào)用open()通常返回一個指向打開文件表中的一個條目的指針。

解決多個進程打開同一文件的問題:

操作系統(tǒng)采用兩級內(nèi)部表,分別是進程的表和整個系統(tǒng)的表

四個概念324頁

文件指針

文件打開計數(shù)器

文件磁盤位置

訪問權(quán)限

文件類型(了解)

訪問方法(重點)

順序訪問

磁帶類型,文件信息按順序一個一個處理,并且自動前移文件指針,以跟蹤IO位置

適用于順序訪問設(shè)備,也適用于隨機訪問設(shè)備

直接訪問(相對訪問)

基于文件的磁盤模型

文件由固定長度的邏輯記錄組成,以允許程序按任意順序進行快速讀寫

對訪問大量信息極為有用(數(shù)據(jù)庫經(jīng)常使用)

其他訪問方式

在直接訪問的基礎(chǔ)上,建立一個文件索引(索引包里包括文件塊的指針),查找文件時,首先搜索索引,再根據(jù)指針直接訪問文件

目錄結(jié)構(gòu)

存儲結(jié)構(gòu)

磁盤分區(qū):

一個磁盤上裝有多個文件系統(tǒng),或一部分用于文件系統(tǒng)而另一部分用于其他地方,如交換空間或非格式化的磁盤空間

卷:

帶有文件系統(tǒng)的磁盤分區(qū)叫卷

目錄概述

記住相關(guān)操作,除了基本的創(chuàng)建、刪除...還有跟蹤文件系統(tǒng),也就是定期備份整個文件系統(tǒng)到磁盤

單層目錄結(jié)構(gòu)

所有文件位于同一目錄

特點:

便于了解和支持

缺點:

隨著文件數(shù)目的增加,單層目錄不能重名,會使用戶難以記住所有文件名稱

雙層目錄結(jié)構(gòu)

第一層是主文件目錄(MFD),也就是用戶目錄,每個用戶目錄都有自己飛用戶目錄文件(UFD),也就是第二層;

當(dāng)一個用戶引用特定文件時,只需要搜索他自己特定的UFD,不同用戶可具有相同文件名

雙層目錄結(jié)構(gòu)其實就是高度為2的樹

樹狀結(jié)構(gòu)目錄

將雙層目錄結(jié)構(gòu)繼續(xù)擴展

目錄包括一組文件和子目錄,每個子目錄有相同結(jié)構(gòu)(樹),創(chuàng)建和刪除目錄條目都需要調(diào)用特定的系統(tǒng)調(diào)用

通常情況下每個進程都有一個當(dāng)前目錄,進程需要文件時首先查看當(dāng)前目錄(也就是先看相對地址),如果沒找到,再根據(jù)指定路徑或者改變當(dāng)前目錄

絕對路徑名:

從樹根開始給出目錄名知道文件

相對路徑名:

從當(dāng)前目錄開始定義路徑

無環(huán)圖目錄

樹狀結(jié)構(gòu)目錄的一個擴展,樹狀結(jié)構(gòu)目錄不允許共享文件和目錄,無環(huán)圖目錄可以

實現(xiàn)共享的方法

如Unix采用創(chuàng)建一個鏈接,實際上是另一文件或目錄的指針

通用圖目錄

339頁了解一下

文件系統(tǒng)安裝(了解)

第十一章:文件系統(tǒng)實現(xiàn)

分層設(shè)計的文件系統(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ū)

每個卷的控制塊,包含卷或者分區(qū)的詳細信息,如分區(qū)塊數(shù),塊大小,空閑塊的數(shù)量和指針,UFS稱之為超級塊,在NTFS中它存在于主控文件表中

系統(tǒng)范圍內(nèi)的打開文件表

包含每個發(fā)開文件的FCB副本和其他信息

單個進程的打開文件表

包括一個指向系統(tǒng)范圍內(nèi)已經(jīng)打開卷文件表中合適條目的指針和其他信息

考點

創(chuàng)建文件的主要過程

應(yīng)用程序調(diào)用邏輯文件系統(tǒng),邏輯文件系統(tǒng)知道目錄結(jié)構(gòu)形式,它將分配一個新的FCB,然后系統(tǒng)將相應(yīng)的目錄信息讀入內(nèi)存,用新的文件名更新該目錄和FCB

考點

打開和關(guān)閉文件的過程

356頁

分區(qū)安裝(不考)

虛擬文件系統(tǒng)(不考)

目錄實現(xiàn)

目錄的實現(xiàn)方法

最為簡單的目錄實現(xiàn)方法是使用存儲文件名和數(shù)據(jù)塊指針的線性列表(數(shù)組、鏈表等)

容易實現(xiàn)

但運行費時

采用線性搜索來查找特定條目(缺點)

許多操作系統(tǒng)采用軟件緩存來存儲最近訪問過的目錄信息

Hash表:采用Hash數(shù)據(jù)結(jié)構(gòu)的線性表

減少了目錄搜索時間

碰撞:兩個文件名哈希到相同的位置

哈希表的最大困難是其通常固定的大小和哈希函數(shù)對大小的依賴性

分配方法

考選擇題

分配方法指的是如何為文件分配磁盤塊,常用的分配方法有以下三類

連續(xù)分配:每個文件占據(jù)磁盤上的一組連續(xù)的塊

特點:1簡單 - 只需要記錄文件的起始位置(塊號)及長度。2訪問文件很容易,所需的尋道時間也最少

存在的問題:1為新文件找空間比較困難(類似于內(nèi)存分配中的連續(xù)內(nèi)存分配方式)文件很難增長

鏈接分配:每個文件是磁盤塊的鏈表;磁盤塊分布在磁盤的任何地方。

優(yōu)點:1簡單 - 只需起始位置2.文件創(chuàng)建與增長容易。

缺點:1.不能隨機訪問2.塊與塊之間的鏈接指針需要占用空間3. 存在可靠性問題

簇:將多個連續(xù)塊組成簇,磁盤以簇為單位進行分配

索引分配:將所有的數(shù)據(jù)塊指針集中到索引塊中。

              1.索引塊中的第i個條目指向文件的第i塊。2目錄條目包括索引塊的地址

索引分配支持直接訪問,且沒有外部碎片問題

索引塊本身可能會浪費空間

鏈接方案:一個索引塊通常為一個磁盤塊。對于大文件,可以將多個索引塊鏈接起來。

多層索引:類似于內(nèi)存的間接尋址方式(一級、二級間接…)

組合方案:如Unix的inode

空閑空間管理(了解)

效率與性能(不考)

后面都不考

十二章:大容量存儲器的結(jié)構(gòu)

簡介和磁盤結(jié)構(gòu)

了解

磁盤調(diào)度

了解

1.磁盤調(diào)度算法有哪些?每種方法的優(yōu)缺點。

答:FCFS、SSTF、掃描(SCAN)算法 、循環(huán)掃描(CSCAN)算法、look調(diào)度

FCFS:先來先服務(wù),它根據(jù)進程請求訪問磁盤的先后次序進行調(diào)度。

SCAN:掃描算法,磁頭不停的往復(fù)運動,由邊緣至中心然后返回,沿途執(zhí)行已經(jīng)到來的訪問。

CSCAN:循環(huán)掃描算法,在SCAN算法的基礎(chǔ)上規(guī)定磁頭單向移動。

在朝一個方向移動時會看是否有請求

磁盤管理

不考

交換空間管理

了解

考點

RAID結(jié)構(gòu)(考點)

磁盤冗余陣列

一個磁盤損壞并不會導(dǎo)致數(shù)據(jù)的丟失,這里的多種磁盤組織技術(shù),統(tǒng)稱為磁盤冗余陣列,用于提高性能和可靠性

鏡像

引入冗余復(fù)制整個磁盤,最為昂貴

通過并行處理改善性能、

位級分散

通過在磁盤上分散數(shù)據(jù),可以改善傳輸率,數(shù)據(jù)分散是在多個磁盤上分散每個字節(jié)的各個位,這種分散就是位級分散。

RAID級別

鏡像法和分散法的結(jié)合使用

其他知識點不考

十三章:I/O

考點

Io硬件

426頁圖

輪詢和中斷

直接內(nèi)存訪問(年年考)

DMA

在前面介紹過DMA工作過程

書432頁也有

主機向內(nèi)存中寫入DMA命令塊,包含源地址指針、目的指針、字節(jié)數(shù)等等信息,CPU將其寫入DMA控制器后,DMA繼續(xù)下去直接操作內(nèi)存總線,無需CPU幫助

IO應(yīng)用接口

考點,選擇題

屬于操作系統(tǒng)的是設(shè)備控制器以上,不包括設(shè)備控制器這一層

435頁圖

緩沖(考點)

什么是緩沖什么是緩存?

buffer與cache操作的對象就不一樣。

buffer⒒撼濯J俏了提高內(nèi)存和硬盤⒒蚱淥鸌/0設(shè)備V間的數(shù)據(jù)交換的速度而設(shè)計的。

cache⒒捍妾J俏了提高cpu和內(nèi)存之間的數(shù)據(jù)交換速度而設(shè)計。

為什么引入緩沖(目的是什么?)

答:(1) 緩和CPU與I/O設(shè)備間速度不匹配的矛盾(2) 減少對cpu的中斷頻率,放寬對cpu中斷響應(yīng)時間的限制(3)提高cpu和I/O設(shè)備之間的并行性

試從調(diào)度性,并發(fā)性,擁有資源和系統(tǒng)開銷幾個方面對線程與進程進行比較

調(diào)度
● 在傳統(tǒng)的操作系統(tǒng)中,作為擁有資源的基本單位和獨立調(diào)度、分派的基本單位都是進程。
● 在引入線程的操作系統(tǒng)中,把線程作為調(diào)度和分派的基本單位,而進程作為資源擁有的基本單位,把傳統(tǒng)進程的兩個屬性分開,使線程基本上不擁有資源,這樣線程便能輕裝前進,從而可顯著地提高系統(tǒng)的并發(fā)程度。
● 在同一進程中,線程的切換不會引起進程的切換,但從一個進程中的線程切換到另一個進程中的線程時,將會引起進程的切換。

并發(fā)性
在引入線程的操作系統(tǒng)中,不僅進程之間可以并發(fā)執(zhí)行,而且在一個進程中的多個線程之間亦可并發(fā)執(zhí)行,使得操作系統(tǒng)具有更好的并發(fā)性,從而能更加有效地提高系統(tǒng)資源的利用率和系統(tǒng)的吞吐量。

  1. 擁有資源
    ● 不論是傳統(tǒng)的操作系統(tǒng),還是引入了線程的操作系統(tǒng),進程都可以擁有資源,是系統(tǒng)中擁有資源的一個基本單位。
    ● 一般而言,線程自己不擁有系統(tǒng)資源(也有一點必不可少的資源),但它可以訪問其隸屬進程的資源,即一個進程的代碼段、數(shù)據(jù)段及所擁有的系統(tǒng)資源,如已打開的文件、I/O設(shè)備等,可以供該進程中的所有線程所共享。

  2. 系統(tǒng)開銷
    ● 在創(chuàng)建或撤消進程時,系統(tǒng)都要為之創(chuàng)建和回收進程控制塊,分配或回收資源,如內(nèi)存空間和I/O設(shè)備等,操作系統(tǒng)所付出的開銷明顯大于線程創(chuàng)建或撤消時的開銷。
    ● 就切換代價而言,進程也是遠高于線程的。此外,由于一個進程中的多個線程具有相同的地址空間,在同步和通信的實現(xiàn)方面線程也比進程容易。在一些操作系統(tǒng)中,線程的切換、同步和通信都無須操作系統(tǒng)內(nèi)核的干預(yù)。

附錄1
FIFO 與LRU FIFO 先進先出


剛開始內(nèi)存為空 null, null, null
使用2,缺頁讀入 2, null, null
使用3,缺頁讀入 2, 3, null
使用2,直接使用 2, 3, null
使用1,缺頁讀入 2, 3, 1
使用5,缺頁讀入 3, 1, 5 因為2是最先讀入的,所以就把它刪掉
使用2,缺頁讀入 1, 5, 2
使用4,缺頁讀入 5, 2, 4
使用5,直接使用 5, 2, 4
使用3,缺頁讀入 2, 4, 3
使用2,直接使用 2, 4, 3
使用5,缺頁讀入 4, 3, 5
使用2,缺頁讀入 3, 5, 2

共9次缺頁

LRU 會刪除最不常訪問的

剛開始內(nèi)存為空 null, null, null
使用2,缺頁讀入 2, null, null
使用3,缺頁讀入 3, 2, null
使用2,直接使用 2, 3, null
使用1,缺頁讀入 1, 2, 3
使用5,缺頁讀入 5, 1, 2 因為最近1和2都訪問過而3是很早之前用過的,所以就把它刪掉
使用2,直接使用 2, 5, 1
使用4,缺頁讀入 4, 2, 5
使用5,直接使用 5, 4, 2
使用3,缺頁讀入 3, 5, 4
使用2,缺頁讀入 2, 3, 5
使用5,直接使用 5, 2, 3
使用2,直接使用 2, 5, 3

共7次缺頁

1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6.

FIFO 先進先出

1個幀的時候

                                                    作者:張俊怡

                                                    2016/7/20

                                                    操作系統(tǒng)考前前夕

                                                    覺得好就給寶寶點個贊唄
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容