欠下的總是要還的叶圃,對(duì)操作系統(tǒng)的學(xué)習(xí)森书!
持續(xù)更新:
操作系統(tǒng)
操作系統(tǒng)引論
進(jìn)程的描述與控制
前趨圖和程序執(zhí)行
-
前趨圖
- 程序執(zhí)行的先后順序圖
程序順序執(zhí)行
程序并發(fā)執(zhí)行
進(jìn)程的描述
-
進(jìn)程的定義和特征
-
進(jìn)程實(shí)體(進(jìn)程映像)
- 程序段
- 相關(guān)數(shù)據(jù)段
- PCB
-
進(jìn)程的特征
- 動(dòng)態(tài)性
- 并發(fā)性
- 獨(dú)立性
- 異步性
-
-
進(jìn)程的基本狀態(tài)及轉(zhuǎn)換
-
三種狀態(tài)
就緒
執(zhí)行
-
阻塞
- 靜止阻塞
- 活動(dòng)阻塞
-
引入
- 創(chuàng)建
- 激活
-
-
掛起操作和進(jìn)程狀態(tài)的轉(zhuǎn)換
掛起
-
終止
- 操作系統(tǒng)善后
- PCB清零
-
進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu)
-
數(shù)據(jù)結(jié)構(gòu)分類
-
內(nèi)存
- 內(nèi)存表
-
設(shè)備
- 設(shè)備表
-
文件
- 文件表
-
進(jìn)程
-
進(jìn)程1....n
- 進(jìn)程實(shí)體及資源
-
-
-
PCB作用
- 作為獨(dú)立運(yùn)行基本單位的標(biāo)志
- 能實(shí)現(xiàn)間斷性運(yùn)行方式
- 提供進(jìn)程管理所需要的信息
- 提供進(jìn)程調(diào)度所需要的信息
- 實(shí)現(xiàn)與其他進(jìn)程的同步與通信
-
PCB中的信息
-
進(jìn)程標(biāo)識(shí)符
- 外部標(biāo)識(shí)符
- 內(nèi)部標(biāo)識(shí)符
-
處理機(jī)狀態(tài)
-
處理及寄存器中的內(nèi)容組成
-
通用寄存器
- 用戶寄存器
指令計(jì)數(shù)器
程序狀態(tài)字
用戶棧指針
-
-
-
進(jìn)程調(diào)度信息
進(jìn)程狀態(tài)
進(jìn)程的優(yōu)先級(jí)
進(jìn)程調(diào)度所需的其他信息
-
事件
- 阻塞原因
-
-
PCB的組織方式
- 線性方式
- 鏈接方式
- 索引方式
-
進(jìn)程控制
-
操作系統(tǒng)內(nèi)核
-
OS內(nèi)核兩大功能
-
支撐功能
- 中斷處理
- 時(shí)鐘管理
- 原語(yǔ)操作
-
資源管理功能
- 進(jìn)程管理
- 存儲(chǔ)器管理
- 設(shè)備管理
-
-
-
進(jìn)程的創(chuàng)建
- 申請(qǐng)空白PCB
- 為新進(jìn)程分配其運(yùn)行所需的資源
- 初始化進(jìn)程控制塊
- 如果進(jìn)程就緒隊(duì)列能夠接納新進(jìn)程,就將新進(jìn)程插入就緒隊(duì)列
-
進(jìn)程的終止
-
終止原因
- 正常結(jié)束
- 異常結(jié)束
-
終止過(guò)程
- 根據(jù)被終止的進(jìn)程標(biāo)識(shí)符吃警,檢索PCB,讀取進(jìn)程狀態(tài)
- 若處于執(zhí)行態(tài)啄育,立即終止執(zhí)行,并置調(diào)度標(biāo)志為真拌消,用于指示該進(jìn)程被終止后應(yīng)重新調(diào)度
- 若該進(jìn)程還有子孫進(jìn)程挑豌,也予以終止
- 將被終止進(jìn)程所擁有的全部資源或者歸還父進(jìn)程,或系統(tǒng)
- 將被終止的進(jìn)程墩崩,移出其所在隊(duì)列或列表氓英,等待其他程序收集信息
-
-
進(jìn)程的阻塞與喚醒
-
阻塞原因
- 資源親求失敗
- 等待某種操作的完成
- 新數(shù)據(jù)尚未到達(dá)
- 等待新任務(wù)的到達(dá)
-
阻塞過(guò)程
- 自身過(guò)程(調(diào)用block)
- 將PCB插入阻塞隊(duì)列
-
喚醒步驟
- 1、其他進(jìn)程調(diào)用wakeup
- 2鹦筹、從阻塞隊(duì)列移出
- 3铝阐、將狀態(tài)修改為就緒
- 4、將PCB插入就緒隊(duì)列
-
-
進(jìn)程的掛起與激活
-
掛起
1铐拐、調(diào)用suspend源語(yǔ)
-
2徘键、檢查狀態(tài):
- 處于就緒->改為靜止就緒
- 活動(dòng)阻塞->靜止阻塞
PCB移至某指定內(nèi)存區(qū)域
-
激活
1、調(diào)用active
2遍蟋、從外存調(diào)入內(nèi)存
-
3吹害、檢查狀態(tài)
- 靜止就緒->活動(dòng)就緒
- 靜止阻塞->活動(dòng)阻塞
-
進(jìn)程同步
-
進(jìn)程同步的基本概念
-
兩種制約關(guān)系
- 間接相互制約
- 直接相互制約
臨界資源
臨界區(qū)
-
同步機(jī)制應(yīng)遵守的規(guī)則
- 空閑讓進(jìn)
- 忙則等待
- 有限等待
- 讓權(quán)等待
-
-
硬件同步機(jī)制
-
關(guān)中斷
-
在進(jìn)入鎖測(cè)試前關(guān)閉中斷
-
缺點(diǎn)
- 1、濫用關(guān)中斷權(quán)力可能導(dǎo)致嚴(yán)重后果
- 2虚青、時(shí)間過(guò)長(zhǎng)會(huì)影響系統(tǒng)效率
- 3它呀、不適用于多CPU
-
-
Test-and-Set實(shí)現(xiàn)互斥
Swap
-
-
信號(hào)量機(jī)制
- 1、整型信號(hào)量
- 2棒厘、記錄型信號(hào)量
- 3纵穿、AND型信號(hào)量
- 4、信號(hào)量集
-
信號(hào)量的應(yīng)用
- 實(shí)現(xiàn)進(jìn)程互斥
- 實(shí)現(xiàn)前趨關(guān)系
-
管程機(jī)制
- 資源管理程序
經(jīng)典進(jìn)程的同步問(wèn)題
- 生產(chǎn)者消費(fèi)者問(wèn)題
- 哲學(xué)家進(jìn)餐問(wèn)題
- 讀者-寫者問(wèn)題
進(jìn)程通信
-
進(jìn)程通信的類型
-
管道通信系統(tǒng)
-
需要提供的能力
- 互斥
- 同步
- 確定對(duì)方存在
-
-
消息傳遞系統(tǒng)
- 直接通信方式
- 間接通信方式
-
共享存儲(chǔ)器系統(tǒng)
- 基于共享數(shù)據(jù)結(jié)構(gòu)的通信方式
- 基于共享存儲(chǔ)區(qū)的通信方式
-
客戶機(jī)-服務(wù)器系統(tǒng)
-
套接字
- 1奢人、基于文件型
- 2谓媒、基于網(wǎng)絡(luò)型
遠(yuǎn)程過(guò)程調(diào)用
遠(yuǎn)程方法調(diào)用
-
-
-
消息傳遞通信的實(shí)現(xiàn)方式
-
直接消息傳遞系統(tǒng)
- 直接通信原語(yǔ)
- 消息的格式
- 進(jìn)程的同步方式
- 通信鏈路
信箱
-
直接消息傳遞系統(tǒng)實(shí)例
線程的基本概念
-
線程的引入
- 減少程序在并發(fā)執(zhí)行時(shí)的時(shí)空開(kāi)銷
-
線程與進(jìn)程的比較
-
進(jìn)程的基本屬性
- 擁有資源的獨(dú)立單位
- 可獨(dú)立調(diào)度和分配的基本單位
-
線程
- 作為調(diào)度和分配的基本單位
-
比較dian
- 調(diào)度基本單位
- 并發(fā)性
- 資源
- 獨(dú)立性
- 系統(tǒng)開(kāi)銷
- 支持多處理機(jī)
-
-
線程的狀態(tài)和線程控制塊
-
線程狀態(tài)
- 執(zhí)行
- 就緒
- 阻塞
-
TCB
- 線程標(biāo)識(shí)符
- 一組寄存器
- 線程運(yùn)行狀態(tài)
- 優(yōu)先級(jí)
- 線程轉(zhuǎn)悠存儲(chǔ)區(qū)
- 信號(hào)屏蔽
- 堆棧指針
-
線程的實(shí)現(xiàn)
-
線程的實(shí)現(xiàn)方式
- 內(nèi)核支持線程KST
- 用戶級(jí)線程ULT
- 組合方式
- 多對(duì)多模型
線程的實(shí)現(xiàn)
-
線程的創(chuàng)建和終止
- 線程的創(chuàng)建
處理機(jī)調(diào)度與死鎖
處理機(jī)調(diào)度的層次和調(diào)度算法的目標(biāo)
-
處理機(jī)調(diào)度的層次
-
高級(jí)調(diào)度
- 對(duì)象是作業(yè)
-
低級(jí)調(diào)度
- 進(jìn)程調(diào)度
- 短程調(diào)度
- 對(duì)象是進(jìn)程
-
中級(jí)調(diào)度
- 內(nèi)存調(diào)度
-
-
處理機(jī)調(diào)度的目標(biāo)
- 資源利用率
- 公平性
- 平衡性
- 策略強(qiáng)調(diào)執(zhí)行
-
批處理系統(tǒng)的目標(biāo)
- 平均周轉(zhuǎn)時(shí)間短
- 系統(tǒng)吞吐量高
- 處理機(jī)利用率大
-
分時(shí)系統(tǒng)的目標(biāo)
- 響應(yīng)塊
- 均衡性
-
實(shí)時(shí)系統(tǒng)的目標(biāo)
- 截至?xí)r間的保證
- 可預(yù)測(cè)性
作業(yè)與作業(yè)調(diào)度
-
批處理系統(tǒng)中的作業(yè)
-
作業(yè)的定義
- 比程序廣泛
- 程序和數(shù)據(jù)
- 作業(yè)說(shuō)明書
作業(yè)步
-
作業(yè)運(yùn)行的三個(gè)階段
- 收容階段
- 運(yùn)行階段
- 完成階段
-
作業(yè)的三個(gè)狀態(tài)
- 后備狀態(tài)
- 運(yùn)行狀態(tài)
- 完成狀態(tài)
-
-
調(diào)度算法
先來(lái)先服務(wù)
短作業(yè)優(yōu)先
優(yōu)先級(jí)調(diào)度算法
-
高響應(yīng)比優(yōu)先調(diào)度算法
- R=(等待時(shí)間+要求服務(wù)時(shí)間)/要求服務(wù)時(shí)間=響應(yīng)時(shí)間/要求服務(wù)時(shí)間
最早截至?xí)r間優(yōu)先
-
最低松弛度優(yōu)先
- 任務(wù)越緊,優(yōu)先級(jí)越高
-
調(diào)度算法的分類
- 輪轉(zhuǎn)調(diào)度算法
- 優(yōu)先級(jí)調(diào)度算法
- 多隊(duì)列調(diào)度算法
- 多級(jí)反饋隊(duì)列
死鎖
-
定義
- 每個(gè)進(jìn)程都在等待別人的條件
-
產(chǎn)生死鎖的必要條件
- 互斥條件
- 請(qǐng)求和保持條件
- 不可搶占條件
- 循環(huán)等待條件
-
死鎖處理
-
預(yù)防
-
破壞請(qǐng)求和保持條件
-
第一種協(xié)議
- 第開(kāi)始運(yùn)行就請(qǐng)求全部資源
-
第二種協(xié)議
- 獲得初期運(yùn)行的資源就開(kāi)始運(yùn)行
-
破壞不可搶占條件
破壞循壞等待條件
-
-
避免死鎖
- 系統(tǒng)安全狀態(tài)
- 銀行家算法
檢測(cè)死鎖
-
解除死鎖
- 搶占資源
- 終止進(jìn)程
-
存儲(chǔ)器規(guī)則
存儲(chǔ)器的層次
- CPU寄存器
- 主存
- 賦存
程序的裝入和鏈接
-
程序的裝入
- 絕對(duì)裝入
- 可重定位
- 動(dòng)態(tài)運(yùn)行的裝入
-
程序的鏈接
- 靜態(tài)鏈接
- 裝入時(shí)動(dòng)態(tài)鏈接
- 運(yùn)行時(shí)動(dòng)態(tài)鏈接
-
連續(xù)分配存儲(chǔ)的管理方式
- 單一連續(xù)分配
- 固定連續(xù)分配
- 動(dòng)態(tài)分區(qū)分配
-
分區(qū)算法
-
基于順序搜索的動(dòng)態(tài)分區(qū)分配算法
- 首次適應(yīng)算法
- 循環(huán)首次適應(yīng)算法
- 最佳適應(yīng)算法
- 最壞適應(yīng)算法
-
基于索引搜索的動(dòng)態(tài)分區(qū)分配算法
- 快速適應(yīng)算法
- 伙伴系統(tǒng)
- 哈希算法
-
動(dòng)態(tài)可重定位分區(qū)分配
- 緊湊
- 動(dòng)態(tài)重定位
- 動(dòng)態(tài)重定位分區(qū)分配算法
-
對(duì)換
-
類型
- 整體對(duì)換
- 頁(yè)面(分段)對(duì)換
對(duì)換空間的管理