part one 操作系統(tǒng)引論
什么是操作系統(tǒng)?
操作系統(tǒng)是位于硬件層之上,其他軟件層之下的一個系統(tǒng)軟件,是管理和控制計算機的軟硬件資源拂檩,合理組織計算機的工作流程,方便用戶使用計算機系統(tǒng)的程序集合嘲碧。
操作系統(tǒng)的歷史
- 穿孔卡片(無操作系統(tǒng)階段稻励,手工階段)【紙帶機】
- 簡單批處理系統(tǒng)(操作系統(tǒng)產(chǎn)生階段)【磁帶機】
- 多道批處理系統(tǒng)(利用率,吞吐量愈涩,宏觀并行钉迷,微觀交替執(zhí)行)
- 分時系統(tǒng)(適合軟件開發(fā))
- 實時系統(tǒng)(實時控制至非,實時信息處理)
批處理系統(tǒng)钠署,分時系統(tǒng)和實時操作系統(tǒng)構(gòu)成了現(xiàn)代操作系統(tǒng)的基本類型糠聪。
多道批處理系統(tǒng)的特征?
- 用戶脫機使用計算機
- 作業(yè)成批處理
- 多道程序并行
缺點是無交互性谐鼎。
操作系統(tǒng)的功能
- 進程管理
- 內(nèi)存管理
- 信息管理
操作系統(tǒng)的基本特征
- 并發(fā)性
- 共享性
- 虛擬性
- 異步性
什么是并行性舰蟆、并發(fā)性?
并行性:兩個或多個事件在同一時刻發(fā)生
并發(fā)性:兩個或多個事件在同一時間間隔發(fā)生
part two 進程管理
什么是進程狸棍?進程的五個特性 進程三要素
進程:一個具有獨立功能的程序在一個數(shù)據(jù)集上的一次動態(tài)執(zhí)行過程身害。
特性:
- 動態(tài)性
- 并發(fā)性
- 獨立性
- 異步性
- 結(jié)構(gòu)性
進程三要素:進程 = 程序 + 數(shù)據(jù) + PCB
進程和程序的區(qū)別?
- 進程是一個動態(tài)的概念草戈,程序是一個靜態(tài)的概念
- 進程是一個暫時性的概念塌鸯,程序是一個永久性的概念
- 進程具有數(shù)據(jù)結(jié)構(gòu)-PCB
- 進程和程序沒有一一對應的關(guān)系。
進程的三個基本狀態(tài)的轉(zhuǎn)換唐片?
進程的組成丙猬?
進程由程序、數(shù)據(jù)集合费韭、進程控制塊組成茧球。
PCB是進程存在的唯一標志,且與進程一一對應星持。
什么是原語抢埋?
原語一般由若干條指令所組成,是用來完成某個特定功能督暂,在執(zhí)行過程中不可被分割的程序段揪垄,是原子操作,即一個操作中的所有動作逻翁,要么全做饥努,要么全不做。 原語一旦執(zhí)行卢未,就要連續(xù)執(zhí)行完肪凛,中間不允許中斷。 原子操作在管態(tài)下執(zhí)行辽社,常駐內(nèi)存伟墙,通過關(guān)中斷來實現(xiàn)。
什么是臨界資源滴铅?
系統(tǒng)中一次只允許一個進程使用的一類資源戳葵,稱為臨界資源或互斥資源。
什么是進程的互斥汉匙?
對于異步環(huán)境下并發(fā)執(zhí)行的進程拱烁,某些進程要競爭某一臨界資源生蚁,而這資源最多允許一個進程使用,其他要使用該資源的進程必須等待戏自,直到該占用資源被釋放為止邦投,這就產(chǎn)生間接制約關(guān)系。把因間接制約而導致的交替執(zhí)行的過程稱為進程的互斥擅笔。
每個進程訪問臨界資源的那段代碼稱為臨界區(qū)志衣。
為禁止兩個資源同時進入臨界區(qū),同步機制的規(guī)則因遵循什么猛们?
空閑讓進(多中選一)念脯,忙則等待,有限等待弯淘,讓權(quán)等待绿店。
什么是信號量?
整性信號量S表示某類臨界資源實體庐橙,是一個數(shù)據(jù)結(jié)構(gòu)假勿,其值僅能由P、V操作來改變怕午。S >= 0表示S個某類可用某類臨界資源废登;S <= 0,則|S|表示S阻塞隊列中等待資源的進程個數(shù)。
信號量的使用規(guī)則郁惜?
- S必需置一次初值堡距,且只能置一次初值。
- 初值不能為負兆蕉。
- 只能對其執(zhí)行P羽戒、V操作。
- P虎韵、V操作必須成對操作易稠。
- 同步P必須在互斥P之前,V無所謂包蓝。
什么是同步驶社?
多個相互合作的并發(fā)進程在執(zhí)行次序上的協(xié)調(diào),在一些關(guān)鍵點上可能需要相互等待或相互交換信息测萎,以達到有效的資源共享和相互合作亡电,這種相互制約的關(guān)系稱為進程同步。
什么是進程通信硅瞧?
進程之間的信息交換叫做進程通信份乒。
什么是死鎖?死鎖產(chǎn)生的原因?
多道程序設(shè)計系統(tǒng)中或辖,兩個或兩個以上并發(fā)執(zhí)行的進程由于競爭資源而造成的一種互相等待的現(xiàn)象瘾英,如無外力協(xié)助,這些進程將永遠分配不到必須的資源而繼續(xù)向前推進颂暇,稱這種現(xiàn)象為死鎖缺谴。
死鎖產(chǎn)生的原因即與資源分配的策略有關(guān),又與進程執(zhí)行效率有關(guān)蟀架。
產(chǎn)生死鎖的必要條件
- 互斥條件
- 不剝奪條件
- 請求和保持條件
- 環(huán)路等待條件
死鎖的預防策略
- 破環(huán)互斥性條件
- 分配策略
- 資源可剝奪策略
- 破環(huán)環(huán)路等待條件
系統(tǒng)的兩種狀態(tài)
系統(tǒng)由以下兩種狀態(tài)
安全狀態(tài):指系統(tǒng)能夠按照某種順序如<P1瓣赂,P2,...片拍,Pn>(稱<P1,P2妓肢,...捌省,Pn>為安全序列)為每個進程分配所需的資源,直至最大需求碉钠,使得每個進程都能順利完成纲缓。
非安全狀態(tài):即在某個時刻系統(tǒng)中不存在一個安全序列,則稱系統(tǒng)處于不安全狀態(tài)或非安全狀態(tài)喊废。
非安全狀態(tài)可能出現(xiàn)死鎖祝高,死鎖是非安全狀態(tài)的子集。
進程調(diào)度的層次
作業(yè)從提交到運行結(jié)束污筷,要經(jīng)歷三級調(diào)度工闺。
- 作業(yè)調(diào)度(分鐘,小時或天)
- 進程調(diào)度(毫秒級)
- 中級調(diào)度
分時系統(tǒng)和時時系統(tǒng)一般不存在作業(yè)調(diào)度瓣蛀,批處理系統(tǒng)同時存在作業(yè)調(diào)度和進程調(diào)度陆蟆。
周轉(zhuǎn)時間 = 完成時間 - 就緒時間 = 等待時間 + 運行時間
加權(quán)周轉(zhuǎn)時間 = 周轉(zhuǎn)時間/運行時間
進程調(diào)度的算法
- 先來先服務(簡單,不公平惋增,無優(yōu)先級)
- 短作業(yè)優(yōu)先(時間短叠殷,”餓死”,一般用于作業(yè)調(diào)度)
- 輪轉(zhuǎn)法(公平诈皿,無優(yōu)先級林束,效率低,時間不易確定)
- 優(yōu)先級算法(有優(yōu)先級稽亏,“餓死”)
- 多級反饋隊列算法(復雜壶冒,性能好,應用廣)
什么是線程措左?
線程是進程的一個實體依痊,是被系統(tǒng)獨立調(diào)度和分派的基本單位。
part three 存儲管理
地址重定位(地址映射)
把用戶進程裝入內(nèi)存時,對有關(guān)指令的地址部分的修改定義為從邏輯地址到物理地址的過程胸嘁。
什么是交換技術(shù)
即把一個進程完整調(diào)入內(nèi)存瓶摆,在該進程運行一段時間后,再把它存回磁盤性宏∪壕空閑進程只要存儲磁盤上,所以當它們不運行時就不會占用內(nèi)存(盡管它們的一些進程會周期性地被喚醒以完成相關(guān)工作毫胜,然后又進入睡眠狀態(tài))书斜。
什么是碎片
內(nèi)存中若干不連續(xù)的,很小的空閑分區(qū)酵使,小到以至于絕大多數(shù)程序都無法利用荐吉。
空閑內(nèi)存管理
- 使用位圖的存儲管理(固定分區(qū),支持多道口渔,無虛擬存儲样屠,初裝有碎片)
- 使用鏈表的存儲管理(動態(tài)分區(qū),沒有徹底解決碎片問題)
什么是頁框
虛擬地址空間按照固定大小劃分成稱為頁面的若干單元缺脉。在物理內(nèi)存中對應的單元稱為頁框痪欲,又稱為頁架。
設(shè)某指令地址 W,頁面大小 L,
則頁號 P = (int)W/L 偏移量 D = W mod
頁表
將進程的每個頁面離散地裝入到內(nèi)存的各個頁架中攻礼,為保證進程的正確運行业踢,即能在內(nèi)存中找到該進程的各個頁面所對應的每個頁架,系統(tǒng)記錄每個頁面對應頁架而形成的一張對應表礁扮。
顛簸
又稱為”抖動“知举,由于缺少頁面過于頻繁,反復將頁面調(diào)入調(diào)出內(nèi)存的現(xiàn)象深员。
抖動產(chǎn)生的原因
- 為進程分配的頁架過少
- 頁面置換算法選擇不當
- 程序結(jié)構(gòu)不合理
抖動的預防
- 增加為進程分配的頁架數(shù)
- 改進頁面置換算法
- 編程時负蠕,充分考慮局部性原理
part four 設(shè)備管理
設(shè)備的共享性分類
- 獨占設(shè)備
- 共享設(shè)備
- 虛擬設(shè)備
設(shè)備獨立性
應用程序獨立于具體使用的物理設(shè)備。
I/O數(shù)據(jù)控制方式的發(fā)展階段
- 程序直接控制方式
- 中斷控制方式
- DMA控制方式
- 通道方式
中斷
計算機系統(tǒng)內(nèi)發(fā)生了某一急需處理的事件倦畅,使得CPU暫時中止當前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應的事件處理程序遮糖,待處理完畢后又返回到原來被中斷出繼續(xù)執(zhí)行。
引起中斷發(fā)生的事件稱為中斷源叠赐。
中斷源向CPU發(fā)出的請求中斷處理的信號稱為中斷請求欲账。
CPU收到中斷請求后轉(zhuǎn)向相應事件處理程序的過程稱為中斷相應。
考試:硬件故障中斷>自愿性中斷>程序性中斷>外部中斷>I/O中斷
緩沖技術(shù)芭概,緩沖技術(shù)的分類
引入緩沖可以進一步改善CPU和I/O設(shè)備之間的速度不匹配的情況赛不。
緩沖的種類:
- 單緩沖
- 雙緩沖
- 循環(huán)緩沖
- 緩沖池
循環(huán)緩沖(環(huán)形緩沖)沒有緩沖隊列。
磁盤訪問時間包含那三部分
- 尋道時間:磁頭移動到指定柱面的機械運動時間
- 旋轉(zhuǎn)延遲時間:磁盤旋轉(zhuǎn)到指定扇區(qū)的機械運動時間
- 數(shù)據(jù)傳輸時間: 從指定扇區(qū)讀/寫數(shù)據(jù)的時間
磁盤調(diào)度
- 先來先服務(公平罢洲,簡單踢故,尋道時間長)
- 最短尋道時間優(yōu)先(尋道時間短文黎,”饑餓“)
- 掃描算法(避免”饑餓“,不利于兩端的請求)
- 循環(huán)掃描算法(消除了兩端訪問的不公平)
part five 文件管理
文件和文件系統(tǒng)
文件:具有符號名的一組相關(guān)元素的有序序列殿较,是一段程序或數(shù)據(jù)的集合耸峭。
文件系統(tǒng):管理文件的數(shù)據(jù)結(jié)構(gòu)和相應的管理軟件以及訪問文件的一組操作。
按名存取的物理結(jié)構(gòu)分類
物理結(jié)構(gòu):從系統(tǒng)的角度考察文件在實際存儲設(shè)備上的存放形式淋纲。
按文件的邏輯存儲結(jié)構(gòu)分類
- 有結(jié)構(gòu)文件:又稱為記錄式文件劳闹。(數(shù)據(jù)庫,數(shù)據(jù)結(jié)構(gòu)洽瞬,文檔)
- 無結(jié)構(gòu)文件:又稱為流式文件本涕。(源程序,可執(zhí)行文件伙窃,庫函數(shù))
文件結(jié)構(gòu)
又稱文件的組織形式菩颖,如何將記錄構(gòu)成一個文件,以及如何將一個文件存儲在外存上对供。
文件目錄
為了便于
文件目錄分為一級目錄位他,二級目錄和多級目錄。多級目錄也稱為樹狀結(jié)構(gòu)产场。