作業系統知識梳理

weixin_34138377發表於2017-01-26

第一章:概述

什麼是作業系統?

是一段一直執行在計算機上的程式

是資源的分配者

向上管理軟體向下管理硬體

為使用者提供良好介面

中斷的概念?

中斷指當出現需要時,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、程式計數器、暫存器集合和棧組成。它與屬於同一程式的其他執行緒共享程式碼段、資料段和其他資源。

多執行緒的優點?

響應度高

資源共享

經濟

多處理器體系結構的利用(增加了併發功能)

什麼是執行緒?

執行緒是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頁置換:(重點)

替換最久沒有被使用的

詳細對比見附錄1

幀分配(瞭解即可)

系統顛簸(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⒒撼濯J俏了提高記憶體和硬碟⒒蚱淥鸌/0裝置V間的資料交換的速度而設計的。

cache⒒捍妾J俏了提高cpu和記憶體之間的資料交換速度而設計。

為什麼引入緩衝(目的是什麼?)

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

試從排程性,併發性,擁有資源和系統開銷幾個方面對執行緒與程式進行比較

排程
● 在傳統的作業系統中,作為擁有資源的基本單位和獨立排程、分派的基本單位都是程式。
● 在引入執行緒的作業系統中,把執行緒作為排程和分派的基本單位,而程式作為資源擁有的基本單位,把傳統程式的兩個屬性分開,使執行緒基本上不擁有資源,這樣執行緒便能輕裝前進,從而可顯著地提高系統的併發程度。
● 在同一程式中,執行緒的切換不會引起程式的切換,但從一個程式中的執行緒切換到另一個程式中的執行緒時,將會引起程式的切換。

併發性
在引入執行緒的作業系統中,不僅程式之間可以併發執行,而且在一個程式中的多個執行緒之間亦可併發執行,使得作業系統具有更好的併發性,從而能更加有效地提高系統資源的利用率和系統的吞吐量。

  1. 擁有資源
    ● 不論是傳統的作業系統,還是引入了執行緒的作業系統,程式都可以擁有資源,是系統中擁有資源的一個基本單位。
    ● 一般而言,執行緒自己不擁有系統資源(也有一點必不可少的資源),但它可以訪問其隸屬程式的資源,即一個程式的程式碼段、資料段及所擁有的系統資源,如已開啟的檔案、I/O裝置等,可以供該程式中的所有執行緒所共享。

  2. 系統開銷
    ● 在建立或撤消程式時,系統都要為之建立和回收程式控制塊,分配或回收資源,如記憶體空間和I/O裝置等,作業系統所付出的開銷明顯大於執行緒建立或撤消時的開銷。
    ● 就切換代價而言,程式也是遠高於執行緒的。此外,由於一個程式中的多個執行緒具有相同的地址空間,在同步和通訊的實現方面執行緒也比程式容易。在一些作業系統中,執行緒的切換、同步和通訊都無須作業系統核心的干預。

附錄1
FIFO 與LRU FIFO 先進先出


剛開始記憶體為空 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 會刪除最不常訪問的

剛開始記憶體為空 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

                                                    作業系統考前前夕

                                                    覺得好就給寶寶點個讚唄

相關文章