第一章:概述
什么是操作系統?
是一段一直運行在計算機上的程序
是資源的分配者
向上管理軟件向下管理硬件
為用戶提供良好接口
中斷的概念?
中斷指當出現需要時,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設備之間的并行性
試從調度性,并發性,擁有資源和系統開銷幾個方面對線程與進程進行比較
調度
● 在傳統的操作系統中,作為擁有資源的基本單位和獨立調度、分派的基本單位都是進程。
● 在引入線程的操作系統中,把線程作為調度和分派的基本單位,而進程作為資源擁有的基本單位,把傳統進程的兩個屬性分開,使線程基本上不擁有資源,這樣線程便能輕裝前進,從而可顯著地提高系統的并發程度。
● 在同一進程中,線程的切換不會引起進程的切換,但從一個進程中的線程切換到另一個進程中的線程時,將會引起進程的切換。
并發性
在引入線程的操作系統中,不僅進程之間可以并發執行,而且在一個進程中的多個線程之間亦可并發執行,使得操作系統具有更好的并發性,從而能更加有效地提高系統資源的利用率和系統的吞吐量。
擁有資源
● 不論是傳統的操作系統,還是引入了線程的操作系統,進程都可以擁有資源,是系統中擁有資源的一個基本單位。
● 一般而言,線程自己不擁有系統資源(也有一點必不可少的資源),但它可以訪問其隸屬進程的資源,即一個進程的代碼段、數據段及所擁有的系統資源,如已打開的文件、I/O設備等,可以供該進程中的所有線程所共享。系統開銷
● 在創建或撤消進程時,系統都要為之創建和回收進程控制塊,分配或回收資源,如內存空間和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
操作系統考前前夕
覺得好就給寶寶點個贊唄