若對你有幫助,記得點贊、關注我哦!
所用教材:左萬曆 周長林 彭濤(編著) 打印下來,考前背一背,100分get !!!
此處本來是放目錄的,終於有一天發現CSDN居然自帶能跳轉的目錄,orz 富文本編輯器最大的缺點就在於“排版太累”
第一章 概述5’簡答
一、操作系統的特性
程序併發性:多個程序在宏觀上同時向前推進
資源共享性:操作系統和多個用戶程序共用系統中的各種資源
異步性:在操作系統之上,宏觀上同時運行的多個程序交替執行
虛擬性:利用某種技術把一個物理實體變爲若干個邏輯實體
二、操作系統的硬件環境
定時裝置
絕對時鐘:記載實際時間,不發生中斷。
間隔時鐘:定時發生中斷,是實現多道程序的基礎——保證操作系統獲得控制權
系統棧
作用:1. 保存中斷現場 2. 保存操作系統子程序轉移返回點、參數、局部變量、返回值
位置:內存中操作系統空間的一個固定區域
特權指令和非特權指令
特權指令:只有在管態才能執行的指令 (管態:操作系統運行時所處的狀態)
非特權指令:在管態和目態下均可執行的指令,只與運行程序本身有關,不影響系統狀態。(目態:一般用戶程序運行時所處的狀態)
處理器狀態和狀態轉換
處理器狀態:系統態(管態,核心態)、用戶態(目態,常態)
狀態轉換:管態 —> 目態(置程序狀態字PSW) 目態 —> 管態(中斷,trap)
地址映射機構
邏輯地址(虛地址):程序中產生的地址
物理地址(實地址):存儲器地址
存儲保護設施
防止應用程序:1. 侵犯操作系統空間 2. 侵犯其它用戶空間
地址檢查:1. 越界檢查 2. 越權檢查(對共享區域)
中斷裝置
發現並響應中斷的硬件機構
通道和DMA控制器
三、操作系統的運行機理
第二章 進程、線程與作業5’簡答
一、進程的概念
具有一定獨立功能的程序關於一個數據集合的一次運行活動
二、進程的狀態
運行態:佔有CPU正在向前推進
就緒態:可以運行,但未得到CPU
等待態:等待某一事件的發生
三、進程的狀態轉換
四、進程控制塊
定義:標誌進程存在的數據結構,其中包含系統對進程進行管理所需要的全部信息
內容:進程標識(pid)、進程狀態、現場信息、調度參數、所屬用戶(uid)等
五、進程隊列
就緒隊列:系統一個或若干個(根據調度算法確定)
等待隊列:每一個等待事件一個
運行隊列:每一個處理機一個
六、進程的類型和特性
類型:
系統進程:運行操作系統程序,完成系統管理(服務)功能
用戶進程:運行用戶程序,爲用戶服務(在操作系統之上運行的所有應用程序都被稱爲用戶進程)
特性:
併發性:可以與其它進程一道向前推進
動態性:動態產生、消亡,生存期內狀態動態變化
獨立性:一個進程是可以調度的基本單位
交互性:同時運行的進程可能發生相互作用
異步性:進程以各自獨立,不可預知的速度向前推進
結構性:每個進程都有一個進程控制塊(PCB)
七、線程的概念
定義:進程內一個相對獨立的執行流
八、線程控制塊
定義(TCB):標誌線程存在的數據結構,其中包含對線程管理需要的全部信息
內容:線程標識、線程狀態、調度參數、現場
存放位置:
用戶級線程:目態空間(運行系統)
核心級線程:系統空間
九、線程的實現
用戶級別線程:
實現方法:1. 基於library函數,系統不可見 2. 線程創建、撤銷、狀態轉換在 目態完成 3. TCB在用戶空間,每個進程一個系統棧
優點:1. 不依賴於操作系統,調度靈活 2. 切換速度快
缺點:同一個進程中多個線程不能真正並行,一個線程進入系統受阻,進程中其它線程不能執行
核心級別線程:
實現方法:1. 基於系統調用 2. 創建、撤銷、狀態轉換由操作系統完成
優點:1. 同一個進程內多線程可以並行執行 2. 一個線程進入核心等待,其它線程仍可以執行
缺點:1. 系統開銷大,同一線程內多線程切換速度慢 2. 調度算法不能靈活控制
混合級別線程
第三章 中斷與處理器調度10’
一、處理器調度算法衡量指標
平均週轉時間
二、常用處理器調度算法
- 先到先服務算法(FCFS):按進入就緒態的次序來調度。
優點:公平,不會出現餓死
缺點:短進程(線程)的等待時間長,從而平均等待時間較長
- 最短作業優先(SJF):按照CPU陣發時間遞增的次序調度,易於證明其平均週轉時間最短。
優點:最大限度地降低了平均等待時間
缺點:不公平;容易產生飢餓,甚至餓死
- 最短剩餘時間優先算法(SRTN):
(剝奪式算法)當CPU空閒時,選擇剩餘時間最短的進程或者線程。當一個新進程或線程到達時,比較新進程所需時間與當前運行進程的估計剩餘時間。如果新進程所需的運行時間短,則切換運行進程。
- 最高響應比優先算法(HRN):
對於同時到達的任務處理時間較短的任務將被優先調度,處理時間較長的任務將隨着時間的增加而動態提升響應比,因而不會出現飢餓現象。
- 最高優先數優先算法(HPF):
當需要進行處理器分配時,系統在可運行的進程中選擇優先數最高者使其投入運行。
賦予優先數的方法:
①靜態優先數:進程進入系統時被賦予,在生命週期內固定不變。適合批處理進程
優點:較簡單;開銷較小
缺點:公平性差,可能會造成低優先數進程長期等待。
②動態優先數:進程在創建時被賦予,在生命週期內動態變化。
優點:資源利用率高,公平性好
缺點:開銷較大;實現較複雜
- 循環輪轉算法(RR):
系統爲每一個進程規定一個時間片,所有進程按照其時間片的長短輪流地進行。適用於分時系統,公平;響應及時。
①基本輪轉
②改進輪轉
- 分類排隊算法(MLQ):
以多個就緒進程隊列爲特徵的,這些隊列將系統中所有可運行的進程按照某種原則加以分類,以實現所期望的調度目標。
- 反饋算法(FB)
三、實時調度及其算法
定義:滿足實時任務各自時間約束條件的調度
算法:
- 最早截至期優先調度:
定義:優先選擇完成截止期最早的實時任務。對於新到達的實時任務,如果其完成截止期先於正在運行任務的完成截至期,則重現分派處理器,即剝奪。
- 速率單調調度:
定義:將任務的週期作爲調度參數,其發生頻度越高,則調度級別越高。
四、例題
第四章 互斥、同步與通信20’
一、與時間有關的錯誤
進程執行交叉
涉及公共變量
二、公共變量、臨界區、臨界資源
共享變量:多個進程都需要訪問的變量(表示:shared<一組變量>)
臨界區:訪問共享變量的程序段(表示:shared<一組變量>do<語句>)
臨界資源:一次只允許一個進程使用的資源
三、進程互斥
定義:多個進程不能同時進入關於同一組共享變量的臨界區域,否則可能發生與時間有關的錯誤
四、臨界區框架
五、Peterson互斥算法
六、忙式等待
定義:不進入等待狀態的等待
七、基於TS指令的互斥算法
八、開關中斷硬件互斥方法
九、進程同步
定義:一組進程,爲協調其推進速度,在某些關鍵點處需要相互等待與相互喚醒,進程之間這種相互制約的關係稱爲進程同步。
十一、信號量、PV操作、PV原語
定義:一種稱爲信號量類型的變量以及對於此種變量所能進行的兩個操作,即P操作和V操作
PV原語和信號量定義:
P原語
V原語
信號量
- 進程同步:司機和售票員問題
- 進程互斥:生產者與消費者問題
- 進程互斥:讀者與寫者問題
十二、進程通信模式
共享內存模式:相互通信的進程之間要有公共內存,一組向該內存中寫,另一組進程由該公共內存中讀
消息傳遞模式:操作系統爲用戶進程之間的通信提供兩個基本的系統調用命令,即發送命令和接收命令
第五章 死鎖與飢餓5’
一、死鎖的類型
競爭資源引起的死鎖
進程通信引起的死鎖
其他原因引起的死鎖
二、死鎖的條件
資源獨佔:一個資源在同一時間只能分給一個進程
不可剝奪:資源只能由其佔有者在使用完後資源釋放
保持申請:進程在佔有部分資源後還可以申請新的資源,而且在申請新資源的時候並不釋放它已經佔有的資源
循環等待:存在一個循環等待鏈
三、死鎖的處理
(靜態)死鎖預防:通過破壞死鎖產生的必要條件實現,對進程有關資源的活動加限制,所有進程遵循這種限制,即可保證沒有死鎖發生。預防分配策略、有序分配策略
(動態)死鎖避免:在進程運行之前,爲其分配所需的全部資源(預先分配策略)
四、餓死與活鎖
餓死:當飢餓到一定程度的進程所賦予的任務即使完成也不再具有實際意義時,稱該 進程被餓死
活鎖:在忙式等待條件下發生的飢餓
五、銀行家算法
資源分配算法
安全性檢測算法
六、例題
第六章 存儲管理25’
一、靜態等長分配
位示圖bit map
空閒頁面表free page list
空閒頁面鏈idle page link
二、動態異長分配
常用於:界地址、段式存儲管理方式 【空閒區域表】
- 最先適應:取第一個可滿足區域
優點:儘量使用低地址空間,高區保持大空閒區域
缺點:可能分割大空閒區
- 最佳適應:取最小可滿足區域
優點:儘量使用小空閒區,保持大空閒區
缺點:可能形成碎片
- 最壞適應:取最大可滿足區域
優點:防止形成碎片
缺點:分割大空閒區
三、四種存儲管理方式
單一連續區存儲管理
內存空間劃分:採用動態異長分區方法,整個內存被動態劃分爲若干個長度各異的區域
進程空間劃分:由連續的區域構成
所需表目:
內存分配表:用於記錄內存中所有已經被分配的區域
空閒區域表:用於記錄內存中所有尚未分配的區域
所需寄存器:
首址寄存器(b):整個系統有一個,用於保存正在運行進程的起始地址
限長寄存器(l):整個系統有一個,用於保存正在運行進程的長度
地址映射:a -> a+b (a代表邏輯地址,b代表進程起始地址)
地址映射步驟:
1.由程序確定邏輯地址a;
2.a與l比較判斷是否越界,不滿足:0 <= a <= l-1,越界;
3.a與b相加得到物理地址。
頁式存儲管理
內存空間劃分:內存空間靜態地劃分爲若干個等長區域,每個區域稱爲一個物理頁 架,每個頁架通常由2i個單元,從0開始一次編址,稱爲頁內地址。
進程空間劃分:內存空間靜態地劃分爲若干個等長區域,每個區域稱爲一個邏輯頁 面,每個頁架通常由2i個單元,從0開始一次編址,稱爲頁內地址。
所需表目:
頁表:用於記錄進程的邏輯頁面和內存頁框之間的對應關係
總頁表:用於記錄頁框的使用情況
所需寄存器:
頁表首址寄存器:用於保存正在運行進程的頁表的首址
頁表長度寄存器:用於保存正在運行進程的頁表長度
快表:
地址映射:物理地址=頁架首址+頁內地址=頁架號*2i + 頁內地址
地址映射步驟:
邏輯地址(p,d) -> 物理地址(f,d)
(1) 由程序確定邏輯地址(p,d);
(2) 由p查快表得頁架號f;
如查不到:
(3) 由p與l比較,判別是否越界:
不滿足:0 <= p <= l-1,越界;
(4) 由p和b查頁表得f;
(5) parbegin
f與d合併得物理地址
(p,f)添加到快表,如滿淘汰一個;
parend
(3) f與d合併得物理地址
段式存儲管理
內存空間劃分:內存空間靜態地劃分爲若干個長度各異區域,每個區域稱爲一個物 理段,每個物理段在內存中有一個起始地址,稱爲段首址。將物 理段中的所有單元由0開始依次編址,稱爲段內地址。
進程空間劃分:內存空間靜態地劃分爲若干個長度各異區域,每個區域稱爲一個邏 輯段。將一個邏輯段中的所有單元由0開始依次編址,稱爲段內地址。 將一個進程的所有邏輯地址由0開始依次編號,稱爲段號
所需表目:
段表:該表用於記錄段號與段首址之間的關係
空閒表:用於記錄並管理內存中的空閒區域
所需寄存器:
段表首址寄存器:用於保存正在運行進程的段表的首址
段表長度寄存器:用於保存正在運行進程的段表的長度
快表:
地址映射:邏輯地址(s,d) -> 物理地址(b’+d)
地址映射步驟:
(1)由程序確定邏輯地址(s,d);
(2) 由s查快表得b’和l’
如查不到:
(3) 由s與l比較判斷是否越界
不滿足:0<=s<=l-1,越界;
(4) 由s和b查段表,得b’和l’
(5) 由d與l’比較,判斷是否越界
不滿足:0<=d<=l’-1,越界;
(6)parbegin
由b’+d得物理地址
(s,b’,l’)加入快表, 如快表滿淘汰一個;
parend
(3) 由d與l’比較,判斷是否越界
不滿足:0<=d<=l’-1,越界;
(4) 由b’+d得物理地址。
段頁式存儲管理
內存空間劃分:與頁式相同
進程空間劃分:與段式相同
所需表目:
段表:一個進程一個,用於記錄各段的頁表長度和頁表首址
頁表:每段一個,用於記錄一段中各個邏輯頁號和頁框號之間的對應關係
所需寄存器:
段表首址寄存器
段表長度寄存器
快表
地址映射:邏輯地址(s,p,d) -> 物理地址(f,d)
地址映射步驟:
(1) 由程序確定邏輯地址;
(2) 由(s,p)查快表得f;
如找不到:
(3) 由s與l比較判斷是否越界:
不滿足:0<=s<=l-1, 越界
(4) 由s和b查段表得頁表(b’,l’)
(5) 由p與l’比較判斷是否越界:
不滿足:0<=p<=l’-1, 越界
(6) 由b’與p查頁表得f
(7) parbegin
f與d合併得物理地址
(s,p,f)添加到快表,若快表已滿,淘汰一個
parend
(3) 由f與d合併得物理地址(f,d)
四、虛擬存儲系統
虛擬頁式存儲管理
基本原理:
進程運行前:全部裝入外存,部分裝入內存。
進程運行時: 訪問頁不在內存,發生缺頁中斷,中斷處理程序:
找到訪問頁在外存的地址;
在內存找一空閒頁面;
如沒有,按淘汰算法淘汰一個;
如需要,將淘汰頁面寫回外存,修改頁表和總頁表;
讀入所需頁面(切換進程);
重新啓動中斷指令。
虛擬段式存儲管理
虛擬段頁式存儲管理
五、常用頁面替換算法
最佳算法:淘汰將來最長時間以後纔用到的,效率最高,但是不可實現
先進先出算法:淘汰最先調入的
最近最少使用算法:淘汰最近一次訪問距當前時間最長的
最近不用的先淘汰:淘汰最近一段時間未用到的
最不經常使用算法: 淘汰使用次數最少的
最頻繁使用算法:淘汰使用次數最多的
二次機會算法:淘汰裝入最久且最近未被訪問的頁面
時鐘算法:將頁面組織成環形,有一個指針指向當前位置。每次需要淘汰頁面時,從 指針所指的頁面開始檢查。如果當前頁面的訪問位爲0,即從上次檢測到 目前,該頁沒有訪問過,則將該頁替換。如果當前頁面的訪問位爲1,則 將其清0,並順時針移動指針到下一個位置。重複上述步驟直至找到一個 訪問位爲0的頁面
改進時鐘算法:
r=0, m=0:最佳
r=0, m=1:次佳,淘汰前回寫
r=1, m=0:再次
r=1, m=1:最後,淘汰前寫回
步驟1: 由指針當前位置開始掃描,選擇最佳淘汰頁面,不改變引用位,將第一個遇到的r=0且m=0的頁面作爲淘汰頁面;
步驟2:如步驟1失敗,再次從原位置開始,找r=0且m=1的頁面,將第一個滿足上述要求的頁面作爲淘汰頁面,同時將掃描過頁面的r位清0;
步驟3:若步驟2失敗,指針再次回到原位置,重新執行步驟1。若還失敗再次執行步驟2,此時定能找到。
六、例題
第七章 文件系統15’
一、文件訪問
順序訪問:按照從前到後的次序依次存取文件的各個信息項。
從文件起始位置開始順序訪問
從文件中間某處開始順序訪問
隨機訪問:無序存取文件的某些信息項。
按記錄編號隨機訪問
按關鍵字(key)隨機訪問
二、文件的邏輯組織
記錄式文件:基本單位是記錄
流式文件:基本單位是字節
三、文件的物理組織
順序結構:一個文件佔有若干連續的磁盤塊
優點:速度快,節省空間
缺點:長度變化困難
鏈接結構: 一文件可存於不連續塊中,塊間以指針相連。
優點:節省空間,長度變化容易。
缺點:隨機訪問速度慢。
索引結構:一文件可存於不連續塊中,塊號記在索引塊中
優點:速度快,長度變化容易
缺點:索引塊佔空間
散列結構:適用於定長記錄和按鍵隨機查找的訪問方式
倒排結構:以鍵值和記錄地址構成的索引結構
優點:適合不同的查找方式,速度快
缺點:索引會帶來較大開銷
四、文件控制塊
定義:標誌文件存在的數據結構,其中包含系統對文件進行管理所需要的全部信息
內容:文件名、文件號、文件類型、文件屬性、文件地址、文件長度、共享說明、建立 時間、最後修改時間、最後訪問日期、口令、其它。
五、文件目錄的改進
將文件控制塊劃分爲次部和主部:提高查找速度、實現文件連接
六、根目錄和當前目錄
根目錄:在樹狀結構的文件系統中,根節點對應的目錄
當前目錄:現在文件系統爲用戶提供一個目前正在使用的工作目錄
七、目錄查找
從根目錄查找:當文件路徑名以“/”起始時,表示要求從根目錄開始查找
從當前目錄查找:當文件路徑名不以“/”起始時,表示要求從當前目錄開始查找
查找算法:
·順序查找:依次與目錄文件中的各個目錄項進行比較,直至找到匹配項或者查到 目錄文件末尾
·散列查找:查找速度快,但是要求預先確定目錄文件的大小
·對分查找:要求目錄中的文件名稱按字典序存放
八、例題
第八章 設備與輸入輸出管理10’
一、磁盤引臂調度算法
- 先到先服務算法(FCFS)
- 最短查找時間優先算法(SSTF)
- 掃描算法和LOOK算法
- 循環掃描算法和循環LOOK算法
- N步掃描算法
- 凍結掃描算法
二、設備輸入輸出參數
n爲跨越磁道數、m爲跨越一個磁道所用的時間、s爲啓動時間、r爲磁盤轉速、b爲讀 寫字節數
尋道時間(Ts):Ts=m*n+s
旋轉延遲(Tr):Tr=1/(2*r)
傳輸時間(Tt):Tt=b/(r*N)
三、緩衝技術
定義:處理數據到達速度與離去速度不一致而採用的技術稱爲緩衝
四、虛擬設備
定義:利用共享設備實現的數量較多、速度較快的獨佔型設備稱
五、數據傳輸方式
程序控制查詢方式
中斷驅動方式
DMA方式
通道方式
六、一維地址和三維地址轉換
盤面數m、扇區數n、柱面號i、盤面號j、扇區號k、塊號b