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