




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章引論
①為什么發(fā)明計(jì)算機(jī)系統(tǒng):方便、有效、可擴(kuò)充、開放
計(jì)算機(jī)系統(tǒng)作用:做接口、管理資源、資源的抽象
發(fā)展計(jì)算機(jī)系統(tǒng)的動(dòng)力:提高利用率、更加方便、應(yīng)用.體系.硬件更新都要跟上
②計(jì)算機(jī)系統(tǒng)發(fā)展史
一、無操作系統(tǒng)
(-)人工操作:?jiǎn)斡脩簟PU.內(nèi)存長(zhǎng)期空閑
(二)脫機(jī)輸入/輸出(OFF-LINEI/O):裝好卡片再上機(jī)。節(jié)約CPU空閑時(shí)間、提高
I/O速度
二、單道批操作系統(tǒng)
描述:有個(gè)監(jiān)督程序?qū)⒋艓系淖鳂I(yè)調(diào)入計(jì)算機(jī)
缺點(diǎn):I/O太慢,CPU太快
三、多道批操作系統(tǒng)
描述:A在I/O,B趁機(jī)CPU
優(yōu)點(diǎn):肯定提高資源利用率、系統(tǒng)吞吐量變大
缺點(diǎn):每個(gè)程序都要很久才處理完(作業(yè)要排隊(duì))、無交互能力
未解難題:內(nèi)存、處理機(jī)爭(zhēng)用、I/O設(shè)備、文件的組織和管理、作業(yè)管理、用戶和系統(tǒng)的
接口
四、分時(shí)系統(tǒng)
描述:解決人機(jī)交互問題
優(yōu)點(diǎn):終于有人機(jī)交互、多用戶共享主機(jī)
實(shí)際問題:由于多用戶,所以要有"多路卡"、作業(yè)直接入內(nèi)存、有個(gè)“時(shí)間片"調(diào)度作
業(yè)
特征:多路、獨(dú)立、及時(shí)(用戶可接受)、交互
五、實(shí)時(shí)系統(tǒng)
描述:工業(yè)(武器)控制系統(tǒng)、信息查詢系統(tǒng)、多媒體系統(tǒng)、嵌入式系統(tǒng)
類型1:周期性實(shí)時(shí):真的很周期;非周期性實(shí)時(shí):有開始截止時(shí)間和完成截止時(shí)間
類型2:硬實(shí)時(shí):工業(yè)、武器系統(tǒng);軟實(shí)時(shí):信息查詢系統(tǒng)和多媒體系統(tǒng)
與分時(shí)系統(tǒng)比較:多路、獨(dú)立、及時(shí)(毫秒級(jí))、交互、可靠
六、微機(jī)時(shí)代
(-)單用戶單任務(wù):8位機(jī)的CP/M、16位機(jī)的MS-DOS
(二)單用戶多任務(wù):目前的32位系統(tǒng),如Windows
(三)多用戶多任務(wù):UNIX、Solaris.Linux
③操作系統(tǒng)共同特性:
一、并發(fā)
(一)并發(fā)和并行宏觀上一樣,
并發(fā):?jiǎn)翁幚頇C(jī)系統(tǒng),微觀上交替運(yùn)行
并行:多處理機(jī)系統(tǒng),微觀上同時(shí)運(yùn)行
(二)引入進(jìn)程
進(jìn)程:在系統(tǒng)中能獨(dú)立運(yùn)行并作為資源分配的基本單位,由機(jī)器指令、數(shù)據(jù)和堆棧等組成,
能獨(dú)立運(yùn)行的活動(dòng)實(shí)體
特點(diǎn):用進(jìn)程就可以并發(fā)執(zhí)行了
二、共享
(-)互斥共享方式
例子:臨界資源,打印機(jī)、磁帶機(jī)
描述:你要先申請(qǐng)才能獲得資源
(二)同時(shí)訪問方式
描述:微觀上還是并發(fā)
例子:多用戶磁盤設(shè)備
條件:系統(tǒng)允許進(jìn)程并發(fā)、系統(tǒng)能有效管理資源
三、虛擬
(-)時(shí)分復(fù)用技術(shù)(利用空閑時(shí)間服務(wù)其他用戶)
虛擬處理機(jī)技術(shù):分身之術(shù)
虛擬設(shè)備:又是分身之術(shù),騙用戶以為有專人服務(wù)
時(shí)分復(fù)用:速度:<1/N
(二)空分復(fù)用技術(shù)
描述:將程序、電話線分成若干部分,然后各部分分時(shí)進(jìn)入內(nèi)存運(yùn)行
空分復(fù)用:空間:<1/N
四、異步
描述:因?yàn)橐l(fā),所以需要一個(gè)機(jī)制調(diào)度進(jìn)程
④操作系統(tǒng)主要功能
一、處理機(jī)管理功能
(-)進(jìn)程控制
描述:要并發(fā),就要進(jìn)程、要進(jìn)程,就要管理
(二)進(jìn)程同步
進(jìn)程互斥方式:臨界資源要互斥
進(jìn)程同步方式:合作完成共同任務(wù),同步機(jī)構(gòu)要協(xié)調(diào)先后次序(信號(hào)量控制)
(三)進(jìn)程通信
描述:對(duì)合作進(jìn)程而言,需要交換信息。當(dāng)他們處于同一計(jì)算機(jī)系統(tǒng)時(shí),通常采用直接通
信的方式。
例子:輸入進(jìn)程、計(jì)算進(jìn)程、打印進(jìn)程,需要信息交換
(四)調(diào)度
作業(yè)調(diào)度:選擇作業(yè)、建立進(jìn)程、分配資源、插入就緒隊(duì)列
進(jìn)程調(diào)度:從就緒隊(duì)列中選出進(jìn)程,分配CPU
二、存儲(chǔ)器管理功能
(-)內(nèi)存分配
任務(wù):分配空間、減少碎片、追加內(nèi)存空間
方式:靜態(tài)分配,裝入內(nèi)存時(shí)確定,不允許追加、不允許移動(dòng);動(dòng)態(tài)分配,允許追加、允
許移動(dòng)
(二)內(nèi)存保護(hù)
任務(wù)1:每道程序只在自己的內(nèi)存空間運(yùn)行,互不干擾
任務(wù)2:不允許用戶程序訪問操作系統(tǒng)程序和數(shù)據(jù)、也不允許用戶程序轉(zhuǎn)移到非共享的其
他用戶程序中執(zhí)行
(三)地址映射
任務(wù):存儲(chǔ)器要負(fù)責(zé)地址映射,在硬件支持下完成
(四)內(nèi)存擴(kuò)充
描述:用虛擬存儲(chǔ)技術(shù),從邏輯上擴(kuò)充內(nèi)存容量
任務(wù)1:請(qǐng)求-調(diào)入功能
任務(wù)2:置換功能
三、設(shè)備管理功能
任務(wù)1:完成用戶進(jìn)程的I/O請(qǐng)求:分配I/O設(shè)備,完成I/O操作
任務(wù)2:提高CPU和I/O利用率:提高I/O速度,方便用戶使用I/O設(shè)備
(-)緩沖管理
描述:在內(nèi)存中設(shè)置緩沖區(qū)(CPU高速性和I/O低速性)
例子:?jiǎn)尉彌_機(jī)制、雙向同時(shí)傳送數(shù)據(jù)的雙緩沖機(jī)制、多個(gè)設(shè)備共同使用的公用"緩沖池"
機(jī)制
(二)設(shè)備分配
描述:在系統(tǒng)中設(shè)置"設(shè)備控制表"、"控制器控制表"等數(shù)據(jù)結(jié)構(gòu),用于記錄設(shè)備和控
制器等標(biāo)識(shí)符和狀態(tài)。根據(jù)表就知道指定設(shè)備當(dāng)前是否可用、忙碌。分配時(shí),針對(duì)不同設(shè)
備要有不同"分配方式",對(duì)獨(dú)占設(shè)備還要考慮分配后是否安全
(三)設(shè)備處理
描述:CPU向設(shè)備控制器發(fā)出I/O命令,要求完成I/O操作、反之,CPU接收控制器發(fā)
出的中斷請(qǐng)求,并響應(yīng).處理
四、文件管理功能
描述:管理用戶、系統(tǒng)文件,方便使用;保證安全性
(-)文件儲(chǔ)存空間管理
背景:多用戶環(huán)境下,用戶自己管理文件存儲(chǔ),會(huì)困難和低效
任務(wù)1:為每個(gè)文件分配外存空間、提高外存利用率、進(jìn)而提高存取速度
任務(wù)2:系統(tǒng)中設(shè)置數(shù)據(jù)結(jié)構(gòu),記錄文件存儲(chǔ)空間使用情況,以供分配時(shí)參考
任務(wù)3:分配和回收
(二)目錄管理
任務(wù)1:為每個(gè)文件建立目錄項(xiàng),包括文件名、屬性、物理位置等,以實(shí)現(xiàn)按名存取
任務(wù)2:實(shí)現(xiàn)文件共享。
任務(wù)3:提供目錄查詢手段
(三)文件讀/寫管理和保護(hù)
文件讀/寫管理:根據(jù)用戶請(qǐng)求,從外存中讀取數(shù)據(jù),或?qū)?shù)據(jù)寫入外存
文件保護(hù):防止未經(jīng)核準(zhǔn)的用戶存取文件、防止冒名頂替存取文件、防止以不正確方式使
用文件
五、操作系統(tǒng)與用戶之間的接口
(-)用戶接口
描述:方便用戶直接.間接控制自己的作業(yè)
聯(lián)機(jī)用戶接口:等待用戶鍵入命令
脫機(jī)用戶接口:一開始就提供作業(yè)說明書,直到作業(yè)結(jié)束語句
圖形用戶接口:移動(dòng)鼠標(biāo)選擇菜單項(xiàng)
(二)程序接口
描述:舊系統(tǒng)用匯編語言寫,所以只有匯編語言的才能直接使用系統(tǒng)調(diào)用;如果是高級(jí)語
言,就用——對(duì)應(yīng)的庫函數(shù)
六、現(xiàn)代操作系統(tǒng)的新功能
(一)系統(tǒng)安全
描述:確保存儲(chǔ)和傳送數(shù)據(jù)的保密性、完整性和系統(tǒng)可用性,要用幾種技術(shù)
技術(shù):認(rèn)證技術(shù)、密碼技術(shù)、訪問控制技術(shù)、反病毒技術(shù)
(二)網(wǎng)絡(luò)的功能和服務(wù)
功能:網(wǎng)絡(luò)通信、資源管理、應(yīng)用互操作
(三)支持多媒體
功能:接納控制功能、實(shí)時(shí)調(diào)度、多媒體文件的存儲(chǔ)
⑤OS結(jié)構(gòu)設(shè)計(jì)
一、傳統(tǒng)操作系統(tǒng)結(jié)構(gòu)
(-)無結(jié)構(gòu)操作系統(tǒng)
又名:整體系統(tǒng)結(jié)構(gòu)
(-)模塊化結(jié)構(gòu)os
基本概念:
又名:模塊-接口法
描述:有模塊、子模塊、接口
模塊獨(dú)立性:
標(biāo)準(zhǔn):內(nèi)聚性越高,模塊獨(dú)立性越高、耦合度越低,模塊獨(dú)立性越高
優(yōu)點(diǎn):提高設(shè)計(jì)正確性.可理解性和可維護(hù)性、增強(qiáng)可適應(yīng)性、加快加速過程
缺點(diǎn):接口難以滿足需求、無序
(三)分層式結(jié)構(gòu)OS
基本概念:有序分層,自底向上法鋪設(shè)中間層
優(yōu)點(diǎn):易保證系統(tǒng)正確性、易擴(kuò)充和易維護(hù)
缺點(diǎn):系統(tǒng)效率降低
二、客戶/服務(wù)器模式(Client/serverModel)簡(jiǎn)介
(-)客戶/服務(wù)器模式的由來、組成和類型
組成:客戶機(jī)、服務(wù)器、網(wǎng)絡(luò)系統(tǒng)
(二)客戶/服務(wù)器之間的交互
描述:客戶發(fā)送請(qǐng)求消息、服務(wù)器接收消息、服務(wù)器回送消息、客戶機(jī)接收消息
(三)客戶/服務(wù)器模式的優(yōu)點(diǎn)
描述:數(shù)據(jù)分布處理和存儲(chǔ)、便于集中管理、靈活性和可擴(kuò)充性、易于改編應(yīng)用軟件
三、面向?qū)ο蟮某绦蛟O(shè)計(jì)
(-)OOP的基本概念
描述:抽象,具體事物為對(duì)象
對(duì)象:封裝好
對(duì)象類:創(chuàng)建多個(gè)相似對(duì)象
繼承:繼承父類,增加部分
(-)OOP的優(yōu)點(diǎn)
描述:"重用"提高產(chǎn)品質(zhì)量和生產(chǎn)率、使系統(tǒng)具有更好的易修改性和易擴(kuò)展性、易于保
證系統(tǒng)"正確性"和"可靠性"
四、微內(nèi)核os結(jié)構(gòu)
描述:支持多處理機(jī)
例子:卡內(nèi)基?梅隆的MachOS、Windows2000/XP
(-)基本概念
描述:足夠小的內(nèi)核、基于C/S模式、應(yīng)用"機(jī)制與策略分離"原理、采用OOP技術(shù)
(二)基本功能
描述:進(jìn)程管理、低級(jí)存儲(chǔ)器管理、中斷和陷入處理
(三)優(yōu)點(diǎn)
描述:提高可擴(kuò)展性、增強(qiáng)可靠性、可移植性強(qiáng)、提供對(duì)分布式系統(tǒng)的支持、融入OOP
(四)缺點(diǎn)
描述:效率降低
第二章進(jìn)程描述與控制
①前趨圖與程序執(zhí)行
一、前趨圖與程序執(zhí)行
(-)前趨圖
描述:前一個(gè)做完,才到后一個(gè)做、禁止循環(huán)
二、順序執(zhí)行
描述:一個(gè)跟一個(gè)
特征:)1面序、封閉(獨(dú)占資源)、可再現(xiàn)
三、并發(fā)執(zhí)行
描述:互不依賴才能并發(fā)執(zhí)行
特征:間斷、失去封閉、不可再現(xiàn)
②進(jìn)程的描述
一、進(jìn)程的定義和特征
進(jìn)程實(shí)體:程序段、相關(guān)的數(shù)據(jù)段和PCB
定義:進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位
特征:動(dòng)態(tài)、并發(fā)、獨(dú)立、異步
二、進(jìn)程的基本狀態(tài)及轉(zhuǎn)換
進(jìn)程的三基態(tài):就緒(只欠CPU)、執(zhí)行、阻塞(因故無法微賣執(zhí)行)
三態(tài)轉(zhuǎn)換:如圖
新增兩態(tài):創(chuàng)建狀態(tài)、終止?fàn)顟B(tài)
五態(tài)轉(zhuǎn)換:如圖
三、掛起操作和進(jìn)程狀態(tài)的轉(zhuǎn)換
掛起原因:終端用戶需要、父進(jìn)程請(qǐng)求、負(fù)荷調(diào)節(jié)、操作系統(tǒng)需要
引入掛起后的三態(tài)轉(zhuǎn)換:如圖
必
耿
引入掛起后的五態(tài)轉(zhuǎn)換:如圖
就緒
掛起阻塞
四、進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu)
進(jìn)程名O
進(jìn)程標(biāo)識(shí)符e送程4O,
用戶幺
標(biāo)識(shí)符信息用戶標(biāo)識(shí)用戶號(hào)
父進(jìn)程
家族聯(lián)系
子進(jìn)程
前用寄存器
處理機(jī)狀態(tài)信息(現(xiàn)指令il做器
場(chǎng))程序狀態(tài)字
用戶棧指針
進(jìn)程狀態(tài)
進(jìn)程優(yōu)先敷(級(jí)/權(quán))
進(jìn)程調(diào)度信息
等待收因
調(diào)度算法步效等
程序和數(shù)燃的地址
進(jìn)程同步和熱值機(jī)制
進(jìn)程控制信息
青■精電
能按指計(jì)
重新執(zhí)行時(shí),能從斷點(diǎn)繼續(xù)執(zhí)行.(
它們是用戶程序可以訪
問的,用于留存信息
通用寄存器一
指令計(jì)數(shù)器-存放要訪問的下一條
處理機(jī)狀態(tài)信息(現(xiàn)場(chǎng))指令的地址
程序狀態(tài)字、
用戶棧指計(jì)
其中含有狀態(tài)信息,
如條件碼、執(zhí)行方式、
中斷屏蔽標(biāo)志等,
存放過程和系統(tǒng)調(diào)
用參數(shù)及調(diào)用地址
指明進(jìn)程的當(dāng)前狀態(tài),
3)進(jìn)程調(diào)度信息作為進(jìn)程調(diào)度和對(duì)換時(shí)
的依據(jù)]
描述進(jìn)程使用處
進(jìn)程狀態(tài)"
理機(jī)的優(yōu)先級(jí)別
進(jìn)程優(yōu)先數(shù)(級(jí)/權(quán))的一個(gè)整數(shù)
進(jìn)程調(diào)度信息
等待原因
調(diào)度算法參數(shù)釘7;由執(zhí)行狀態(tài)轉(zhuǎn)變
一尸D為阻塞狀態(tài)所等
待發(fā)生的事件J
進(jìn)程調(diào)度所需的其他
信息,如等待CPI的
時(shí)間總和。
__________________
指進(jìn)程的程序和數(shù)據(jù)
所在的內(nèi)存或外存地
@)址^.
程序和數(shù)據(jù)的地址/
進(jìn)程同步和通信機(jī)制
-at?R
資源清單
鏈接啊%、\
資源管理功能:進(jìn)程管理、存儲(chǔ)器管理、設(shè)備管理
二、進(jìn)程的創(chuàng)建
層次結(jié)構(gòu):UNIX有父子關(guān)系,Windows只有控制與被控制關(guān)系
進(jìn)程圖:描述家庭關(guān)系的圖
引起創(chuàng)建進(jìn)程的事件:用戶登錄、作業(yè)調(diào)度、提供服務(wù)(譬如打?。?、應(yīng)用請(qǐng)求
進(jìn)程的創(chuàng)建:申請(qǐng)空白PCB、分配物理.邏輯資源、初始化PCB、如果能插入就緒,就插
三、進(jìn)程的終止
引起進(jìn)程終止的事件:正常結(jié)束、異常結(jié)束、外界干預(yù)
進(jìn)程的終止過程:根據(jù)標(biāo)識(shí)符、終止執(zhí)行.立即調(diào)度、子孫終止、資源歸還、移出隊(duì)列
四、進(jìn)程的阻塞與喚醒
引起進(jìn)程阻塞和喚醒的事件:向系統(tǒng)請(qǐng)求共享資源失敗、等待某操作完成、新數(shù)據(jù)尚未到
達(dá)、等待新任務(wù)到達(dá)
進(jìn)行阻塞過程:發(fā)生上述的某事件,就進(jìn)入block過程,主動(dòng)將狀態(tài)改為阻塞,PCB插入
阻塞隊(duì)列(分類插入),處理機(jī)分配給另一就緒進(jìn)程,切換,并保留被阻塞進(jìn)程的處理機(jī)
狀態(tài)
進(jìn)程喚醒過程:由釋放資源的進(jìn)程調(diào)用wakeup原語,即移出阻塞隊(duì)列,合作/相關(guān)的進(jìn)
程中安排wakeup
五、進(jìn)程的掛起與激活
進(jìn)程的掛起:活動(dòng)-靜止,suspend原語進(jìn)程正在執(zhí)行,就轉(zhuǎn)向調(diào)度程序重新調(diào)度
進(jìn)程的激活過程:從外存調(diào)入active原語到內(nèi)存,檢查進(jìn)程現(xiàn)行狀態(tài),靜止一活動(dòng)
搶占調(diào)度策略:靜止就緒進(jìn)程一就緒隊(duì)列,比較當(dāng)前進(jìn)程優(yōu)先度,有機(jī)會(huì)立即剝奪當(dāng)前進(jìn)
程運(yùn)行
④進(jìn)程同步
描述:能夠并發(fā)、改善利用率、提高吞吐量、但使系統(tǒng)復(fù)雜
一、進(jìn)程同步的基本概念
制約關(guān)系:間接相互制約關(guān)系、直接相互制約關(guān)系
間接相互制約關(guān)系:互斥共享
直接相互制約關(guān)系:合作共享,異步性要做好
臨界資源:生產(chǎn)者-消費(fèi)者問題、
臨界區(qū)、:進(jìn)入?yún)^(qū)、臨界區(qū)、退出區(qū)、剩余區(qū)
同步機(jī)制應(yīng)遵循的規(guī)則:空閑讓進(jìn)、忙則等待、有限等待、讓權(quán)等待
二、硬件同步機(jī)制
關(guān)中斷:缺點(diǎn)多:濫用關(guān)中斷.造成嚴(yán)重后果、關(guān)中斷時(shí)間過長(zhǎng)、不適用于多CPU系統(tǒng)
(因?yàn)橐粋€(gè)處理器關(guān)中斷并不能防止進(jìn)程在其他處理器上執(zhí)行相同的臨界段代碼)
Test-and-Set:不斷測(cè)試lock,如果是FALSE,就進(jìn)入臨界區(qū),并lock==TRUE;否則
測(cè)試到TS(s)==TRUE
Swap指令:一直等,直至!|key==TRUE
但以上都不符合"讓權(quán)等待"原則
三、信號(hào)量機(jī)制
進(jìn)入?yún)^(qū)的代碼用來檢查臨界資源是否
一個(gè)訪問臨界資茯正在被其它進(jìn)程使用,若正在被訪問.
則不能進(jìn)入臨界區(qū),若未被訪問,則
可進(jìn)入臨界區(qū),并設(shè)置訪問標(biāo)志為真。
\___________________
While(1)
{entrysection;〃進(jìn)入?yún)^(qū)“
criticalsection;〃臨界區(qū)
exitsection;〃退出區(qū)、
remaindersection;〃剩余吟福界區(qū)正在被訪.
1:的標(biāo)志設(shè)置為假。
整形信號(hào)量:s<o,就一直等,直到釋放互斥資源
記錄型信號(hào)量:整形信號(hào)量不符合"讓權(quán)等待"原則。如果有資源,就分配,如果無,就
插入阻塞隊(duì)列;釋放資源,如果有等待,就激活
AND型信號(hào)量:一口氣全分配
信號(hào)量集:有多個(gè)信號(hào)量(S信號(hào)量,至少要t個(gè),每次分配d個(gè))
——wlit(mutex)和signal(mutex)必須成對(duì)出班一
缺少wait(mutex)不能保證對(duì)臨鼻資源的互斥訪啰
少signal(nutex)會(huì)使臨界資源永遠(yuǎn)不被釋放大
而使因等待該資源而阻塞的進(jìn)程不能被喚醒。
procedurewait(S)
varS:semaphore;
beginn
S.value:=S.value-l;
ifS.value<0thenblock(S.L)
end
1)S.value>0表示有S.value個(gè)資源可用,S.value=0表
示無資源可用。
2)執(zhí)行S.vahie?l表示請(qǐng)求分配一個(gè)S代表的資源;
3)若S.vahievO,表示系統(tǒng)已無該類資源,申請(qǐng)者阻塞。
:時(shí),IS.vahiel表示該信號(hào)量上阻塞的進(jìn)程數(shù);
proceduresignal(S)
varS:semaphore;
begin
S.value:=S.value+l;
ifS.value<0thenwakeup(S.L);物理含義:
end
1)執(zhí)行s.vahie+1表示進(jìn)程釋放一個(gè)S代表的資源,;
2)若s.valuev=0,表示尚有進(jìn)程因等待S代表的資源而處
二阻塞狀態(tài),所以應(yīng)喚醒其中之一。
寺殊情況:當(dāng)S.value的初值為1,此時(shí)的信號(hào)量轉(zhuǎn)化為
反斥信號(hào)量。
四、信號(hào)量的應(yīng)用
利用信號(hào)量實(shí)現(xiàn)進(jìn)程互斥:mutex=(-1,0,1)=(無,一1臨一阻隊(duì),一臨一信隊(duì))
利用信號(hào)量實(shí)現(xiàn)前趨關(guān)系:需要的信號(hào)量被占用了,就這樣實(shí)現(xiàn)
用P、V操作實(shí)現(xiàn)進(jìn)程同步與互斥結(jié)論:
1)P、V操作必須成對(duì)出現(xiàn),有一個(gè)P操作就有一個(gè)V
操作。
當(dāng)為互斥操作時(shí),它們同處于一個(gè)進(jìn)程。
當(dāng)為同步操作時(shí),則不在同一進(jìn)程。
2)一個(gè)同步P操作與一個(gè)互斥P操作在一起時(shí),同步P
操作在互斥P操作前。而兩個(gè)V操作順序無關(guān)緊要。
五、管程機(jī)制
描述:為解決信號(hào)量機(jī)制分散、容易死鎖的問題,發(fā)明新同步工具——管程
定義:定義一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程所執(zhí)行(在該數(shù)據(jù)結(jié)構(gòu)上)的一組操作,這組操
作能同步進(jìn)程和改變管程中的數(shù)據(jù)
組成:管程名稱、數(shù)據(jù)結(jié)構(gòu)的說明、對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的過程、初始化的語句
特性:模塊化、抽象數(shù)據(jù)類型、信息掩蔽
管程與進(jìn)程不同:都有數(shù)據(jù)結(jié)構(gòu),一個(gè)公.一個(gè)私、管程操作同步.初始化.進(jìn)程順序執(zhí)行、
管程為解決互斥資源.進(jìn)程實(shí)現(xiàn)并發(fā)性、進(jìn)程調(diào)用管程.進(jìn)程主動(dòng).管程被動(dòng)、管程不能并發(fā).
進(jìn)程能并發(fā)、管程是os的一個(gè)資源管理模塊.進(jìn)程有動(dòng)態(tài)性
條件變量:增加一個(gè)條件變量,萬一發(fā)生意外,在管程中被掛起或被阻塞"下一個(gè)進(jìn)程都
可以繼續(xù)執(zhí)行
⑤經(jīng)典進(jìn)程的同步問題
一、生產(chǎn)者-消費(fèi)者問題
記錄型信號(hào)量解決:如果緩沖區(qū)空,而且能夠獲取信號(hào)量,就投放產(chǎn)品;如果緩沖區(qū)有產(chǎn)
品,而且能夠獲取信號(hào)量,就消費(fèi)
AND信號(hào)量解決:一口氣全分配
管程解決:利用管程只有一個(gè)進(jìn)程能夠使用的屬性
二、哲學(xué)家進(jìn)餐問題
記錄型信號(hào)量解決:先拿左.后那右、先放左.后放右
解決死鎖:最多4人取筷子、先檢查.有左右筷子才能取、奇左右.偶右左
AND信號(hào)量解決:一口氣全分配
三、讀者-寫者問題
描述:可以多讀一、一旦開始寫.就不能讀或?qū)?/p>
記錄型信號(hào)量解決:
讀操作:等rmutex就是為了改readcount一無人讀?看看是否在寫.等
wmutex—readcount++T■自增完成.rmutex還你一讀讀讀一等rmutex為了自減
readcount一無人讀?可以寫了.還你wmutex
寫操作:等wmutex.即無讀無寫一寫完.還你wmutex
利用信號(hào)量集機(jī)制:
讀:限制reader個(gè)數(shù)—如果mx是1.就讀一最后釋放一reader個(gè)數(shù)
寫:如果mx是1.并且讀者數(shù)為0.就寫一寫完釋放mx
⑥進(jìn)程通信
一、進(jìn)程通信類型
共享存儲(chǔ)器系統(tǒng):某些數(shù)據(jù)結(jié)構(gòu)和共享存儲(chǔ)區(qū)、管道通信系統(tǒng)、消息傳遞系統(tǒng)、C-S系統(tǒng)
二、消息傳遞通信的實(shí)現(xiàn)方式
(-)直接消息傳遞系統(tǒng)
1.直接通信原語:對(duì)稱尋址方式、非對(duì)稱尋址方式
2.消息格式:較短的減少系統(tǒng)處理和存儲(chǔ)的開銷、較長(zhǎng)可以方便
3.進(jìn)程同步方式:發(fā)塞收塞(進(jìn)程間緊密同步.無緩沖)、發(fā)通收塞(平常狀態(tài))、發(fā)通收
通(發(fā)生某事件無法繼續(xù)運(yùn)行)、(無發(fā)塞收通)
4.通信鏈路:用"建立連接"原語建立通信鏈路.用完拆、用"發(fā)送命令"原語建立鏈路,
還分單向和雙向
(二)信箱通信(間接)
1.定義:是數(shù)據(jù)結(jié)構(gòu).分信箱頭和信箱體
2.原語:創(chuàng)建和撤銷.發(fā)送和接收
3.類型:私用、公用(操作系統(tǒng)創(chuàng)建)、共享(進(jìn)程創(chuàng)建)
4.進(jìn)程之間的關(guān)系:一對(duì)一、多對(duì)一、一對(duì)多、多對(duì)多
三、直接消息傳遞系統(tǒng)實(shí)例
消息緩沖隊(duì)列通信機(jī)制中的數(shù)據(jù)結(jié)構(gòu):利用數(shù)據(jù)結(jié)構(gòu)式消息緩沖區(qū)、在PCB增加有關(guān)通信
的數(shù)據(jù)項(xiàng)
原語:設(shè)置發(fā)送區(qū)、申請(qǐng)PCB(B)的緩沖區(qū)i、復(fù)制到緩沖區(qū)、插入消息隊(duì)列、移出消息隊(duì)
列、復(fù)制到接收區(qū)、釋放緩沖區(qū)
⑦線程的基本概念
描述:就是為了提高程序并發(fā)執(zhí)行的程度
一、線程的引入
進(jìn)程的兩個(gè)基本屬性:進(jìn)程是一個(gè)可擁有資源的獨(dú)立單位、進(jìn)程同時(shí)是一個(gè)可獨(dú)立調(diào)度和
分派的基本單位
進(jìn)程并發(fā)執(zhí)行所需的時(shí)空開銷:創(chuàng)建進(jìn)程、撤銷進(jìn)程、進(jìn)程切換
線程一作為調(diào)度和分派的基本單位:線程輕裝上陣
二、線程與進(jìn)程比較
調(diào)度的基本單位:線程是調(diào)度和分派的基本單位、跨進(jìn)程,會(huì)切換進(jìn)程
并發(fā)性:線程的合作.能夠并發(fā)
擁有資源:有TCB.但只是必不可少、保證獨(dú)立運(yùn)行的資源
獨(dú)立性:同一進(jìn)程的不同線程共享進(jìn)程的內(nèi)存地址空間和資源
系統(tǒng)開銷:因?yàn)檩p裝.所以減少開銷、提升速度
支持多處理機(jī)系統(tǒng):對(duì)多線程進(jìn)程,多個(gè)線程可以分配到多個(gè)處理機(jī)上
三、線程的狀態(tài)和線程控制塊
線程運(yùn)行的三個(gè)狀態(tài):和進(jìn)程一樣
線程控制塊TCB:標(biāo)識(shí)符、一組寄存器、運(yùn)行狀態(tài)、優(yōu)先級(jí)、線程專有存儲(chǔ)區(qū)、信號(hào)屏蔽、
堆棧指針
多線程OS中的進(jìn)程屬性:進(jìn)程是可擁有資源的基本單位、多個(gè)線程可并發(fā)執(zhí)行、進(jìn)程已
不是可執(zhí)行的實(shí)體
⑧線程的實(shí)現(xiàn)
一、線程的實(shí)現(xiàn)方式
內(nèi)核支持線程KLT:
優(yōu)點(diǎn):內(nèi)核調(diào)度同一進(jìn)程多個(gè)線程并行執(zhí)行、一個(gè)線程阻塞.其他線程占有處理機(jī)、支持小
數(shù)據(jù)結(jié)構(gòu)和堆棧.切換較快開銷小、內(nèi)核本身采用多線程技術(shù)提高系統(tǒng)執(zhí)彳亍速度和效率
用戶級(jí)線程ULT:
優(yōu)點(diǎn):無需內(nèi)核.節(jié)省模式切換的開銷、調(diào)度算法進(jìn)程專用、與OS無關(guān).甚至可以在操作系
統(tǒng)平臺(tái)實(shí)現(xiàn)
缺點(diǎn):一個(gè)線程阻塞.同進(jìn)程的其他線程都會(huì)塞、只有一個(gè)CPU.只有一個(gè)線程能執(zhí)行、按
進(jìn)程分配.不公平
組合方式:
多對(duì)一模型:優(yōu)點(diǎn):開銷小、缺點(diǎn):一塞進(jìn)程全塞、只有一線程訪問內(nèi)核、多線程不能同
時(shí)在多個(gè)處理機(jī)上運(yùn)行
一對(duì)一模型:一個(gè)用戶級(jí)線程映射到一個(gè)內(nèi)核支持線程
多對(duì)多模型:一對(duì)一和多對(duì)一的結(jié)合
二、線程的實(shí)現(xiàn)
內(nèi)核支持線程的實(shí)現(xiàn):創(chuàng)建線程、保存信息、調(diào)度和切換線程、撤銷線程、回收資源
用戶級(jí)線程的實(shí)現(xiàn):
運(yùn)行時(shí)系統(tǒng):用于管理和控制線程的函數(shù)的集合,這些函數(shù)駐留用戶空間.并作為用戶級(jí)線
程與內(nèi)核之間的接口
內(nèi)核控制線程:連接到LWP,連接到LWP的線程才能與內(nèi)核通信
對(duì)于設(shè)置了用戶級(jí)線程的系統(tǒng),調(diào)度仍以進(jìn)程為單
位進(jìn)行。例若進(jìn)程A中包含1個(gè)用戶級(jí)線程,進(jìn)程B包含
假如系統(tǒng)設(shè)置的是內(nèi)核支持線程,則調(diào)度便是以線
程為單位進(jìn)行。例若進(jìn)程A中包含1個(gè)內(nèi)核支持線程,進(jìn)
三、線程的創(chuàng)建和終止
線程的創(chuàng)建:初始化線程、創(chuàng)建后返回線程標(biāo)識(shí)符
線程的終止:終止線程用函數(shù)或系統(tǒng)調(diào)用終止操作.但有些線程被建立就會(huì)一直執(zhí)行。大多
數(shù)os,線程被中止后并不立即釋放所占資源,只有“其他線程"執(zhí)行分離函數(shù)才會(huì)分離
資源,才能被其他線程利用。雖然未釋放的資源也可以被其他線程使用,但要有個(gè)"等待
線程終止”的連接命令作保險(xiǎn).否則一直阻塞
第三章處理機(jī)調(diào)度與死鎖
①處理機(jī)調(diào)度的層次和調(diào)度算法的目標(biāo)
描述:作業(yè)可能要經(jīng)歷多級(jí)處理機(jī)調(diào)度
一、處理機(jī)調(diào)度層次
(-)高級(jí)調(diào)度(長(zhǎng)程調(diào)度/作業(yè)調(diào)度)
對(duì)象是作業(yè)、決定將外存中處于后備隊(duì)列的作業(yè)調(diào)入內(nèi)存.創(chuàng)建進(jìn)程和分配資源.并放入就緒
隊(duì)列、主要存在于多道批處理系統(tǒng),分時(shí)和實(shí)時(shí)系統(tǒng)不設(shè)置高級(jí)調(diào)度
(二)低級(jí)調(diào)度(進(jìn)程調(diào)度;短程調(diào)度)
對(duì)象是進(jìn)程(/內(nèi)核級(jí)線程)、決定就緒隊(duì)列哪個(gè)進(jìn)程獲得處理機(jī)、多道批.分時(shí)和實(shí)時(shí)都
要配置
(三)中級(jí)調(diào)度(內(nèi)存調(diào)度)(存儲(chǔ)器的對(duì)換功能)
對(duì)象是暫時(shí)不能運(yùn)行的進(jìn)程、把這些進(jìn)程調(diào)到外存.設(shè)為掛起狀態(tài)、一有條件.稍微有空就變
為就緒狀態(tài)
★分級(jí)按運(yùn)行頻率劃分
二、處理機(jī)調(diào)度算法的目標(biāo)
(一)共同目標(biāo)
提高資源利用率、公平、平衡、策略強(qiáng)制執(zhí)行
(二)批處理系統(tǒng)目標(biāo)
處理機(jī)利用率高、平均周轉(zhuǎn)時(shí)間短、系統(tǒng)吞吐量高
]「3
,平均周轉(zhuǎn)時(shí)間描述沏T=-
作業(yè)的周轉(zhuǎn)時(shí)間T與系統(tǒng)為它提供服務(wù)的時(shí)間戛之比,
即為777小稱為帶權(quán)周轉(zhuǎn)時(shí)間,而平均帶權(quán)周轉(zhuǎn)時(shí)間則
可表示為:
nT
W=-洋
ni=l1Si
(三)分時(shí)系統(tǒng)目標(biāo)
響應(yīng)時(shí)間快、均衡性
(四)實(shí)時(shí)系統(tǒng)目標(biāo)
截止時(shí)間保證、可預(yù)測(cè)性
②作業(yè)與作業(yè)調(diào)度
一、批處理系統(tǒng)中的作業(yè)
(一)作業(yè)和作業(yè)步
作業(yè):包括程序.數(shù)據(jù)和作業(yè)說明書、在批處理系統(tǒng).作業(yè)是基本單位從外存調(diào)入內(nèi)存
作業(yè)步:獨(dú)立步驟
(二)作業(yè)控制塊(JCB)
包括作業(yè)標(biāo)識(shí)、用戶名稱、用戶賬號(hào)、作業(yè)類型、作業(yè)狀態(tài)、調(diào)度信息、資源需求、資源
使用情況等
流程:進(jìn)入系統(tǒng)一創(chuàng)建JCBT根據(jù)類型放到后備隊(duì)列等待調(diào)度T入內(nèi)存T根據(jù)JCB和作業(yè)
說明書控制一完成T回收資源.撤銷JCB
(三)作業(yè)運(yùn)行的三個(gè)階段和三種狀態(tài)
收容階段-后備狀態(tài)、運(yùn)行階段-運(yùn)行狀態(tài)、完成階段-完成狀態(tài)
二、作業(yè)調(diào)度的主要任務(wù)
也叫:接納調(diào)度
考慮:接納多少作業(yè)、接納哪些作業(yè)
三、先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF調(diào)度算法
(-)先來先服務(wù)FCFS
就這樣.完成或阻塞才分配到其他進(jìn)程、實(shí)際中和其他算法結(jié)合使用
有利于長(zhǎng)作業(yè)(進(jìn)程),不利于短作業(yè)(進(jìn)程)
(二)短作業(yè)優(yōu)先SJF
實(shí)際用得多、要預(yù)知作業(yè)運(yùn)行時(shí)間、長(zhǎng)作業(yè)、緊迫作業(yè)不利、無人機(jī)交互
四、優(yōu)先級(jí)調(diào)度算法和高響應(yīng)比優(yōu)先調(diào)度算法
(一)優(yōu)先級(jí)調(diào)度算法
外部賦予作業(yè)優(yōu)先級(jí)
(二)高響應(yīng)比優(yōu)先調(diào)度算法
集SJF.FCFS的優(yōu)點(diǎn).兼顧長(zhǎng)作業(yè)、但要做相應(yīng)比計(jì)算.增加系統(tǒng)開銷(Exp.做過類似)
優(yōu)先權(quán)=等待時(shí)間+要求服務(wù)時(shí)間=響應(yīng)時(shí)間
’-要求服務(wù)時(shí)間一要求服務(wù)時(shí)間
③進(jìn)程調(diào)度
一、進(jìn)程調(diào)度的任務(wù)、機(jī)制和方式
(-)進(jìn)程調(diào)度的任務(wù)
保存處理機(jī)的現(xiàn)場(chǎng)信息、按某種算法選取進(jìn)程、把處理器分配給進(jìn)程
(二)進(jìn)程調(diào)度機(jī)制
排隊(duì)器:插入就緒隊(duì)列
分配器:從就緒隊(duì)列取出.分配處理機(jī)
上下文切換器:保存、裝入新的CPU現(xiàn)場(chǎng)信息等內(nèi)容
(三)進(jìn)程調(diào)度方式
非搶占方式:只有完成或因某事無法繼續(xù)運(yùn)行、I/O、執(zhí)行了原語操作如block,才會(huì)引起
進(jìn)程調(diào)度
優(yōu)點(diǎn):簡(jiǎn)單、開銷小、適用大多數(shù)批處理系統(tǒng)
搶占方式:對(duì)分時(shí)系統(tǒng)而言.有人機(jī)交互、對(duì)實(shí)時(shí)系統(tǒng)而言.能滿足任務(wù)需求
主要原則:優(yōu)先權(quán)原則、短進(jìn)程優(yōu)先原則、時(shí)間片原則
二、輪轉(zhuǎn)調(diào)度算法
(-)輪轉(zhuǎn)法(RR)的基本原理
按FCFS策略排成就緒隊(duì)列,每隔一定時(shí)間就產(chǎn)生一次中斷
(二)進(jìn)程切換時(shí)機(jī)
時(shí)間片未用完就完成:馬上調(diào)度隊(duì)首進(jìn)程.啟動(dòng)新時(shí)間片
時(shí)間片完還沒完成:中斷.進(jìn)程被調(diào)到就緒隊(duì)列隊(duì)尾
(三)時(shí)間片大小的確定
太短有利于短進(jìn)程、太長(zhǎng)退化為FCFS算法.要計(jì)算平均周轉(zhuǎn)時(shí)間(帶權(quán)周轉(zhuǎn)時(shí)間)
三、優(yōu)先級(jí)調(diào)度算法
(-)優(yōu)先級(jí)調(diào)度算法的類型
非搶占式和搶占式
(二)優(yōu)先級(jí)的類型
確定優(yōu)先級(jí)的依據(jù):
靜態(tài)優(yōu)先級(jí):進(jìn)程類型(系統(tǒng)進(jìn)程優(yōu)先權(quán)高于用戶進(jìn)程優(yōu)先權(quán))、進(jìn)程對(duì)資源的需求(少
則優(yōu)先)、用戶需求(緊迫程度、花費(fèi))
動(dòng)態(tài)優(yōu)先級(jí):先賦予優(yōu)先級(jí),隨著進(jìn)程推進(jìn)或等待時(shí)間增加而改變
四、多隊(duì)列調(diào)度算法
將一條就緒隊(duì)列拆分成多條,各有各調(diào)度算法
五、多級(jí)反饋隊(duì)列調(diào)度算法
(-)調(diào)度機(jī)制
多條就緒隊(duì)列、隊(duì)列內(nèi)使用FCFS算法.一個(gè)時(shí)間片未完成就放到下一個(gè)隊(duì)列的末尾.最后一
個(gè)隊(duì)列用RR方式、按隊(duì)列優(yōu)先級(jí)調(diào)度.前隊(duì)列空才到本隊(duì)列運(yùn)行
(二)調(diào)度算法的性能
終端型用戶、短批處理作業(yè)用戶、長(zhǎng)批處理作業(yè)用戶
六、基于公平原則調(diào)度算法
(-)保證調(diào)度算法
保證處理機(jī)公平分配
功能:跟蹤進(jìn)程已經(jīng)執(zhí)行的處理時(shí)間、該時(shí)間除以n、計(jì)算實(shí)際處理時(shí)間和應(yīng)獲得時(shí)間之
比、匕瞰比率、比率最低的獲得處理機(jī)
(二)公平分享調(diào)度算法
考慮多用戶
④實(shí)時(shí)調(diào)度
描述:實(shí)時(shí)系統(tǒng)有兩種實(shí)時(shí)任務(wù)——HRT和SRT
一、實(shí)現(xiàn)實(shí)時(shí)調(diào)度的基本條件
(一)提供必要信息
就緒時(shí)間、開始截止和完成截止時(shí)間、處理時(shí)間、資源要求、優(yōu)先級(jí)
(二)系統(tǒng)處理能力強(qiáng)
(處理時(shí)間i/周期時(shí)間i)總和<1.未考慮任務(wù)切換花費(fèi)的時(shí)間還應(yīng)該留有余地
提高系統(tǒng)處理能力的途徑:?jiǎn)翁幚頇C(jī)系統(tǒng)增強(qiáng)處理能力.顯著減少每個(gè)任務(wù)的處理時(shí)間、多
處理機(jī)系統(tǒng).就變成(處理時(shí)間i/周期時(shí)間i)總和<N
(三)采用搶占式調(diào)度機(jī)制
執(zhí)行完關(guān)鍵程序和臨界區(qū)后,能及時(shí)將自己阻塞起來,以釋放處理機(jī)
(四)具有快速切換機(jī)制
對(duì)中斷的快速響應(yīng)能力、快速的任務(wù)分派能力
二、實(shí)時(shí)調(diào)度算法的分類
根據(jù)任務(wù)性質(zhì):H/S
根據(jù)調(diào)度方式:非搶占式/搶占式
(-)非搶占式調(diào)度算法
輪轉(zhuǎn)、優(yōu)先調(diào)度,不適合實(shí)時(shí)系統(tǒng)。進(jìn)程自動(dòng)放棄處理機(jī),才進(jìn)行調(diào)度。
(二)搶占式調(diào)度算法
基于時(shí)鐘中斷的搶占式優(yōu)先級(jí)調(diào)度算法:等待時(shí)鐘中斷發(fā)生才剝奪當(dāng)前任務(wù)的執(zhí)行
立即搶占優(yōu)先調(diào)度算法:好快好快只要任務(wù)未處于臨界區(qū).就立即剝奪當(dāng)前任務(wù)執(zhí)行
優(yōu)先權(quán)原則、短作業(yè)(進(jìn)程)優(yōu)先原則、時(shí)間片原則。
三、最早截止時(shí)間優(yōu)先EDF算法
非搶占式調(diào)度方式用于非周期實(shí)時(shí)任務(wù):開始截止時(shí)間早的排前
搶占式調(diào)度方式用于周期實(shí)時(shí)任務(wù):最早截止時(shí)間優(yōu)先算法
四、最低松弛度優(yōu)先LLF算法
緊急程度越高,優(yōu)先級(jí)越高。
松弛度二必須完成的時(shí)間點(diǎn)?本身所需運(yùn)行時(shí)間?當(dāng)前時(shí)間:
五、優(yōu)先級(jí)倒置
(-)優(yōu)先級(jí)倒置的形成
(二)優(yōu)先級(jí)倒置的解決方法
繼承動(dòng)態(tài)優(yōu)先級(jí)的方法:P3繼承P1的優(yōu)先級(jí).一方面避免P2搶占處理機(jī)、另一方面釋放
mutex資源
⑤死鎖概述
一、資源問題
指互斥資源、不可被搶占的資源
(-)可重用性資源和消耗性資源
可重用性資源:一個(gè)只能分配給一個(gè)進(jìn)程使用、順序?yàn)檎?qǐng)求.使用.釋放、數(shù)目相對(duì)固定.運(yùn)
行期間不能創(chuàng)建或刪除
可消耗性資源:在進(jìn)程運(yùn)行中數(shù)目不斷變化.可為0、可以不斷創(chuàng)建.放入緩沖區(qū)、可以由進(jìn)
程創(chuàng)建.使用并不再返回資源類
(二)可搶占性資源和不可搶占性資源
可搶占性資源:可以被其他進(jìn)程搶占.如CPU和主存
不可搶占性資源:一旦分配給進(jìn)程就不能強(qiáng)制收回.要做到底
二、計(jì)算機(jī)系統(tǒng)中的死鎖
(-)競(jìng)爭(zhēng)不可搶占性資源引起死鎖
我要你的,你要我的,形成環(huán)路,死鎖
(二)競(jìng)爭(zhēng)可消耗資源引起死鎖
譬如消息通信機(jī)制.先讀后寫.就會(huì)死鎖
(三)進(jìn)程推進(jìn)順序不當(dāng)引起死鎖
競(jìng)爭(zhēng)不可搶占性資源引起死鎖的翻版.多畫了一個(gè)圖
三、死鎖的定義、必要條件和處理方法
(-)死鎖的定義
這組死鎖進(jìn)程都在等其他進(jìn)程釋放所占資源
(二)產(chǎn)生死鎖的必要條件
互斥條件:一段時(shí)間只被一個(gè)進(jìn)程占用
請(qǐng)求和保持條件:進(jìn)程已經(jīng)保持至少一個(gè)條件.但有提出新資源請(qǐng)求
不可搶占條件:只能在進(jìn)程用完才能釋放
循環(huán)等待條件:存在循環(huán)鏈
(三)處理死鎖的方法
預(yù)防死鎖:設(shè)置限制條件.破壞產(chǎn)生死鎖四個(gè)必要條件來預(yù)防
避免死鎖:在資源動(dòng)態(tài)分配時(shí).用防止系統(tǒng)進(jìn)入不安全狀態(tài)
檢測(cè)死鎖:通過檢測(cè)機(jī)構(gòu)及時(shí)檢測(cè)死鎖.采取適當(dāng)措施以解脫
解除死鎖:撤銷進(jìn)程.回收資源.分配給處于阻塞的進(jìn)程
防范逐漸減弱.但資源利用率提高.進(jìn)程因資源因素而阻塞的頻度下降
⑥預(yù)防死鎖
一、破壞"請(qǐng)求和保持"條件
保證:進(jìn)程請(qǐng)求
資源時(shí),不持有不可搶占資源
第一種協(xié)議:一次性全部申請(qǐng),從而破壞"請(qǐng)求條件"、缺點(diǎn)是資源被嚴(yán)重浪費(fèi).進(jìn)程饑餓
第二種協(xié)議:先釋放資源.再請(qǐng)求新資源
二、破壞"不可搶占”條件
當(dāng)保持了某些不可搶占資源后提出新資源請(qǐng)求不得滿足.就必須釋放已經(jīng)保持的資源.等需
要時(shí)再申請(qǐng)
缺點(diǎn):增加周轉(zhuǎn)時(shí)間、增加系統(tǒng)開銷、降低系統(tǒng)吞吐量
三、破壞“循環(huán)等待"條件
總有一個(gè)進(jìn)程占據(jù)了較高序號(hào)的資源.此后它繼續(xù)申請(qǐng)的資源必然是空閑的
⑦避免死鎖
一、系統(tǒng)安全狀態(tài)
(-)安全狀態(tài)
計(jì)算一個(gè)資源分配的安全性.如果分配不會(huì)導(dǎo)致不安全狀態(tài).才可將資源分配給進(jìn)程
(二)安全狀態(tài)之例
(三)由安全狀態(tài)向不安全狀態(tài)的轉(zhuǎn)換
二、利用銀行家算法避免死鎖
(-)銀行家算法中的數(shù)據(jù)結(jié)構(gòu)
Availalbe、Max、Allocation.Need
(二)銀行家算法
睇wiki"銀行家算法”條目
聲明:Request是請(qǐng)求向量
Request<Need,否則出錯(cuò)
Request<Available,否則P等待
系統(tǒng)試探分配資源給P,并執(zhí)行Availalbe-=Requeset;Allocation+=Request;Need-
=Request
⑧死鎖的檢測(cè)與解除
一、死鎖的檢測(cè)
(-)資源分配圖
圓圈代表進(jìn)程、方格代表一類資源、邊代表資源分配
(二)死鎖的定理
簡(jiǎn)化資源分配圖.如果不能完全簡(jiǎn)化.就會(huì)死鎖
死鎖狀態(tài)的充分條件是:當(dāng)?shù)﹥H當(dāng)資源分配圖是
不可完全簡(jiǎn)化的(死鎖定理)。
(三)死鎖檢測(cè)中的數(shù)據(jù)結(jié)構(gòu)
類似于銀行家算法???
二、死鎖的解除
常用兩種方法:搶占資源、終止/撤銷進(jìn)程
(一)終止進(jìn)程的方法
終止所有死鎖進(jìn)程:會(huì)功虧一簫
逐個(gè)終止進(jìn)程:找到代價(jià)最小.考慮優(yōu)先級(jí)、已執(zhí)行時(shí)間.還需的時(shí)間、已用資源、交互式還
是批處理式
(二)付出代價(jià)最小的死鎖解除算法
很不實(shí)際
為把系統(tǒng)從死鎖狀態(tài)中解脫出來,所花費(fèi)的代價(jià)可
表示為:R(S)min=min{Cui}+min{Cuj)+min{Cul)+...
第四章存儲(chǔ)器管理
①存儲(chǔ)器的層次結(jié)構(gòu)
一、多層結(jié)構(gòu)的存儲(chǔ)器系統(tǒng)
CPU寄存器;
高速緩存Cache、主存儲(chǔ)器RAM、磁盤緩存;
固定磁盤、可移動(dòng)存儲(chǔ)介質(zhì)
二、可執(zhí)行存儲(chǔ)器
就是CPU寄存器和主存.訪問很快
二、主存儲(chǔ)器與寄存器
(-)主存儲(chǔ)器
又叫主存or內(nèi)存.相比CPU執(zhí)行速度.它還是很慢.所以引入寄存器和高速緩存
(二)寄存器
完全與CPU協(xié)同工作.但好貴
三、高速緩存和磁盤緩存
(-)高速緩存
備份主存中較常用的數(shù)據(jù).以減少CPU對(duì)主存儲(chǔ)器的訪問次數(shù)
(二)磁盤緩存
因?yàn)榇疟PI/O速度遠(yuǎn)低于主存訪問速度.所以設(shè)置磁盤緩存來暫存頻繁使用的一部分磁盤數(shù)
據(jù)和信息
②程序的裝入和鏈接
用戶程序要在OS中運(yùn)行.要先裝入內(nèi)存.再轉(zhuǎn)換為一個(gè)可執(zhí)行程序:編譯、鏈接、裝入
一、程序的裝入
(-)絕對(duì)裝入方式
當(dāng)OS很小.且僅能運(yùn)行單道程序時(shí).完全有可能知道程序駐留在內(nèi)存的位置,那么就可以產(chǎn)
生絕對(duì)地址的目標(biāo)代碼
(二)可重定位裝入方式(靜態(tài)重定位)
多道程序下.邏輯地址和物理地址不同.要加上起始地址.但只在進(jìn)程裝入時(shí)一次完成.故稱為
靜態(tài)重定位.可裝到內(nèi)存任何允許位置
嗷據(jù)地址和指多
地址都需要修附
(三)動(dòng)態(tài)運(yùn)行時(shí)的裝入方式
需要重定位寄存器,運(yùn)行時(shí)允許移動(dòng)
二、程序的鏈接
(一)靜態(tài)鏈接方式
要解決:對(duì)相對(duì)地址進(jìn)行修改(子程序的相對(duì)地址)、變換外部調(diào)用符號(hào)<生成可執(zhí)行文
件后不再拆開.又叫靜態(tài)鏈接方式)
(二)裝入時(shí)動(dòng)態(tài)鏈接
便于修改和更新(各模塊分開存放)、便于實(shí)現(xiàn)對(duì)目標(biāo)模塊的共享(靜態(tài)每個(gè)應(yīng)用模塊必
有目標(biāo)模塊的拷貝.無法共享.但動(dòng)態(tài)可以一個(gè)目標(biāo)鏈接多個(gè)應(yīng)用模塊)
(三)運(yùn)行時(shí)動(dòng)態(tài)鏈接
運(yùn)行時(shí)發(fā)現(xiàn)沒有.就由OS去找這個(gè)模塊內(nèi)功加快程序裝入過程和節(jié)約大量?jī)?nèi)存空間
③連續(xù)分配存儲(chǔ)管理方式
一、單一連續(xù)分配
分系統(tǒng)區(qū)和用戶區(qū)單用戶.單任務(wù)操作系統(tǒng)
二、固定分區(qū)分配
劃分分區(qū)的方法:大小相等(一臺(tái)計(jì)算機(jī)控制多臺(tái)相同冶煉爐)和大小不等
內(nèi)存分配:通常按大小排隊(duì).建立分區(qū)使用表.如果找不到大小足夠的分區(qū).就拒絕分配內(nèi)存
三、動(dòng)態(tài)分區(qū)分配
動(dòng)態(tài)分區(qū)分配中的數(shù)據(jù)結(jié)構(gòu):空閑分區(qū)表、空閑分區(qū)鏈
動(dòng)態(tài)分區(qū)分配算法:之后介紹4種分配算法和3中索引搜索算法
分區(qū)分配操作:分配內(nèi)存、回收內(nèi)存
四、基于順序搜索的動(dòng)態(tài)分區(qū)分配算法(不太大系統(tǒng))
首次適應(yīng)算法(FF)、
優(yōu)點(diǎn):保留了高址部分的大空閑區(qū)
缺點(diǎn):低址部分會(huì)留下許多碎片
循環(huán)首次適應(yīng)算法(NF)、
優(yōu)點(diǎn):使空閑分區(qū)分布得較均勻
缺點(diǎn):缺乏大的空閑分區(qū)
最佳適應(yīng)算法(BF)、
優(yōu)點(diǎn):可以避免“大材小用”
缺點(diǎn):會(huì)留下許多碎片
最壞適應(yīng)算法(WF)
五、基于索引搜索的動(dòng)態(tài)分區(qū)分配算法(大、中型系統(tǒng))
快速適應(yīng)算法(以空間換時(shí)間)、伙伴系統(tǒng)(合并回收與均勻分配)、哈希算法
六、動(dòng)態(tài)可重定位分區(qū)分配
緊湊、
“緊湊”而使程序移動(dòng)時(shí),只需用新
的起始地址置換原來的起始地址。
動(dòng)態(tài)重定位、動(dòng)態(tài)重定位分區(qū)分配算法
在動(dòng)態(tài)分區(qū)分配算法的基礎(chǔ)上
增加了“緊湊”的功能
④對(duì)換
一、多道程序環(huán)境下的對(duì)換技術(shù)
(一)甜奐的引入
避免內(nèi)存全部被阻塞.外存卻有很多作業(yè)無法進(jìn)入內(nèi)存
(二”搬的類型
整體對(duì)換(進(jìn)程對(duì)換)、頁面對(duì)換(部分對(duì)換)——支持虛擬存儲(chǔ)系統(tǒng)
為了實(shí)現(xiàn)“進(jìn)程對(duì)換”,系統(tǒng)必須實(shí)現(xiàn)三方面
功能:
(1)對(duì)換空間的管理
(2)進(jìn)程的換出
(3)進(jìn)程的換入。
二、對(duì)換空間的管理
(-)對(duì)換空間管理的主要目標(biāo)
文件區(qū)管理主要目標(biāo):先提高文件存儲(chǔ)空間的利用率.離散分配
對(duì)換空間管理的主要目標(biāo):先提高換入換出的速度,連續(xù)分配方式
(二”城區(qū)空閑盤塊管理中的數(shù)據(jù)結(jié)構(gòu)
與內(nèi)存的相似
(三)對(duì)奐空間的分配與回收
與內(nèi)存分配和回收雷同
三、進(jìn)程的換出與換入
(一)進(jìn)程的換出
選擇被換出的進(jìn)程:阻塞或睡眠狀態(tài)、優(yōu)先級(jí)最低、內(nèi)存駐留時(shí)間
進(jìn)程換出過程
(二)進(jìn)程的換入
如果發(fā)現(xiàn)許多進(jìn)程運(yùn)行時(shí)缺頁且內(nèi)存緊張.才啟動(dòng)對(duì)換程序.將部分進(jìn)程調(diào)至外存
如果缺頁率明顯減少.系統(tǒng)吞吐量已下降.則可以暫停運(yùn)行又搬程序
⑤分頁存儲(chǔ)管理方式
其實(shí)分三種:分頁、分段、段頁式
一、分頁存儲(chǔ)管理的基本方法
(—)頁面和物理塊
頁面:頁號(hào)
頁面大?。禾?進(jìn)程占用較多頁面、太多.碎片多、適中.lkB~8kB
(二)地址結(jié)構(gòu)
頁號(hào):P
頁內(nèi)地址(偏移量):d
兩個(gè)都有公式計(jì)算
地址為A,頁而的大小,L,則頁號(hào)P和頁
9地址]
P=小咕]
d=[A\MODL
(三)頁表
從頁號(hào)到物理塊號(hào)的映射
二、地址變換機(jī)構(gòu)
(-)基本的地址變換機(jī)構(gòu)
如果發(fā)現(xiàn)頁號(hào)2頁表長(zhǎng)度.就引發(fā)越界中斷;否則頁表始址+頁號(hào)*頁表項(xiàng)長(zhǎng)度=物理塊號(hào)
(二)具有快表的地址變換機(jī)構(gòu)
有個(gè)快表在高速緩存
三、訪問內(nèi)存的有效時(shí)間
EAT=t+t=2t(內(nèi)存)
EAT=a*X+(t+A)(l-a)+t=2t+入-1*a(快表)
四、兩級(jí)和多級(jí)頁表
(-)兩級(jí)頁表
(二)多級(jí)頁表
五、反置頁表
(-)反置頁表的引入
(二)地址變換
⑥分段存儲(chǔ)管理方式
一、分段存儲(chǔ)管理的基本方法
(-)方便編程
邏輯地址是由段名(段號(hào))和段內(nèi)偏移量(段內(nèi)地址)決定的
(二)信息共享
段是信息的邏輯單位.簡(jiǎn)化共享過程
(三)信息保護(hù)
就是可以加個(gè)標(biāo)識(shí).不允許讀寫
(四)動(dòng)態(tài)增長(zhǎng)
可以解決這個(gè)問題
(五)動(dòng)態(tài)鏈接
4.2.2
二、分段系統(tǒng)的基本原理
(一)分段
每個(gè)段有一個(gè)段號(hào),連續(xù)的分區(qū)
(二)段表
實(shí)現(xiàn)從邏輯段到物理內(nèi)存區(qū)的映射,段長(zhǎng)和基址
(三)地址變換機(jī)構(gòu)
段表項(xiàng)數(shù)目比頁表項(xiàng)數(shù)目少.其所需的聯(lián)想存儲(chǔ)器相對(duì)較少.減少存取數(shù)據(jù)的時(shí)間
(四)分頁和分段的主要區(qū)別
頁是信息的物理單位.分頁是系統(tǒng)管理上的需要
while段是存儲(chǔ)管理方式中的邏輯單位.分段目的在于更好滿足用戶的需要
頁大小固定.段大小不固定
分頁的用戶程序地址是一維的.分段是二維的
三、信息共享
分頁存儲(chǔ)管理能夠提高內(nèi)存的利用率。
分段存儲(chǔ)管理能很好地滿足用戶需要。
(-)分頁系統(tǒng)中對(duì)程序和數(shù)據(jù)的共享
每個(gè)進(jìn)程都有頁表.也都指向相同的物理塊號(hào)
(二)分段系統(tǒng)中的程序和數(shù)據(jù)的共享
可重入代碼是一種不允許任何進(jìn)程對(duì)它進(jìn)行修改的代碼
配以局部數(shù)據(jù)區(qū).把執(zhí)行中可能改變的部分拷貝到該數(shù)據(jù)區(qū).這樣執(zhí)行時(shí)只需對(duì)該數(shù)據(jù)區(qū)中的
內(nèi)容修改即可
四、段頁式存儲(chǔ)管理方式
分段T分頁.每段一個(gè)段名
段號(hào).比較.加法算段表段號(hào)一得到頁號(hào).(比較).加法算頁表頁號(hào)-得到物理塊號(hào).加頁內(nèi)地址
T得物理地址
第五章虛擬存儲(chǔ)器
出現(xiàn)問題:作業(yè)很大、大量作業(yè)要求運(yùn)行
①虛擬存儲(chǔ)器概述
一、常規(guī)存儲(chǔ)管理方式的特征和局部性原理
(-)常規(guī)存儲(chǔ)管理方式的特征
傳統(tǒng):一次性、駐留性
(二)局部性原理
絕大部分順序執(zhí)行、調(diào)用進(jìn)度不超過5、循環(huán)結(jié)構(gòu)由少數(shù)指令構(gòu)成.但多次執(zhí)行、多對(duì)數(shù)據(jù)
結(jié)構(gòu)的處理.這些處理局限于很小的部分
時(shí)間、空間局限性
(三)虛擬存儲(chǔ)器的基本工作情況
將少數(shù)頁面或段先裝入內(nèi)存即可運(yùn)行
二、虛擬存儲(chǔ)器的定義和特征
(-)虛擬存儲(chǔ)器的定義
有請(qǐng)求調(diào)入功能和置換功能.能邏輯上對(duì)內(nèi)存內(nèi)容加以擴(kuò)充的一種存儲(chǔ)器系統(tǒng)
(二)虛擬存儲(chǔ)器的特征
多次性、對(duì)換性、虛擬性
三、虛擬存儲(chǔ)器的實(shí)現(xiàn)方式
(-)分頁請(qǐng)求系統(tǒng)
硬件支持:請(qǐng)求分頁的頁表機(jī)制、缺頁中斷機(jī)制、地址變換機(jī)制
實(shí)現(xiàn)請(qǐng)求分頁的軟件
(二)請(qǐng)求分段系統(tǒng)
硬件支持:請(qǐng)求分段的段表機(jī)制、缺段中斷機(jī)構(gòu)、地址變換機(jī)構(gòu)
軟件支持
②請(qǐng)求分頁存儲(chǔ)管理方式
一、請(qǐng)求分頁中的硬件支持
(-)請(qǐng)求頁表機(jī)制
(二)缺頁中斷機(jī)構(gòu)
(三)地址變換機(jī)構(gòu)
二、請(qǐng)求分頁中的內(nèi)存分配
(-)最小物理塊數(shù)的確定
(二)內(nèi)存分配策略
策略:固定分配局部置換、可變分配全局置換、可變分配局部置換
(三)物理塊分配算法
算法:平均分配算法、按比例分配算法、考慮優(yōu)先權(quán)的分配算法
三、頁面調(diào)入策略
(-)何時(shí)調(diào)入頁面
預(yù)調(diào)頁策略:手動(dòng)指出哪些頁要調(diào)入內(nèi)存、成功率偏低
請(qǐng)求調(diào)頁策略:一次調(diào)入一頁.須較大系統(tǒng)開銷
(二)從何處調(diào)入頁面
系統(tǒng)擁有足夠的對(duì)換區(qū)空間:進(jìn)程進(jìn)行前就把進(jìn)程相關(guān)的文件拷貝到對(duì)換區(qū)
系統(tǒng)缺少足夠的對(duì)換區(qū)空間:未修改過的不到對(duì)換區(qū)以后要用再?gòu)奈募^(qū)調(diào)入
UNIX方式:從文件區(qū)入.出到對(duì)換區(qū)、允許頁面共享
(三)頁面調(diào)入過程
???
(四)缺頁率
???
③頁面置換算法
抖動(dòng):一個(gè)進(jìn)程在運(yùn)行中把大部分時(shí)間都花費(fèi)在頁面置換工作上
一、最佳置換算法和先進(jìn)先出置換算法
(一)最佳置換算法(看未來)
要知道未來需要哪頁.實(shí)際上不可能
(二)先進(jìn)先出頁面置換算法
剔走最老的頁
二、最近最久未使用和最少使用置換算法(LRU看過去)
(-)最近最久未使用
看最近的n個(gè),最老的踢走
(-)LRU置換算法的硬件支持
寄存器:8位寄存器.R7~R0.R值最小的頁被踢出
棧:最新訪問的是棧頂
(三)最少使用置換算法
現(xiàn)實(shí)使用這個(gè)多.一旦訪問就在最高位置一
三、Clock置換算法
(一)簡(jiǎn)單的CLOCK置換算法
也叫最近未使用算法.就是有個(gè)訪問位,1-0T換出
(二)改進(jìn)型CLOCK置換算法
四類:AM=00~ll
第一步:先找00
第二步:再找01,并置所有頁0X
第三步:再找00,最后找01,一定找到
優(yōu)點(diǎn):減少I/O
缺點(diǎn):增加系統(tǒng)開銷
四、頁面緩沖算法
(-)影響頁面換進(jìn)換出效率的若干因素
頁面置換算法、寫回磁盤的頻率、讀入內(nèi)存的頻率
(二)頁面緩沖算法PBA
顯著降低頁面換進(jìn)、換出頻率,減少頁面換進(jìn)換出的開銷
換入換出的開銷大幅減少,才能使用簡(jiǎn)單的置換策略,如FIFO
要在內(nèi)存中設(shè)置:空閑頁面鏈表、修改頁面鏈表
五、訪問內(nèi)存的有效時(shí)間
如果考慮快表的命中率和缺頁率:EAT=.......
如果僅考慮缺頁率:EAT=
④"抖動(dòng)”與工作集
一、多道程序度與"抖動(dòng)”
(一)現(xiàn)象
先增后減
(二)原因
進(jìn)程太多,物理塊不夠分
二、工作集
(一)工作集的基本概念
如果可以預(yù)知,就可以先調(diào)入內(nèi)存,大大降低缺頁率,從而顯著提高處理機(jī)利用率
(二)工作集的定義
引用的集合,類似FIFO
三、"抖動(dòng)”的預(yù)防方法
(-)采取局部置換策略
"抖動(dòng)”影響較小
(二)把工作集算法融入到處理機(jī)調(diào)度中
每個(gè)進(jìn)程在內(nèi)存的駐留頁面是否足夠多,如果是就調(diào)入新作業(yè)、否則增加新物理塊
(三)利用L=S準(zhǔn)則調(diào)節(jié)缺頁率
缺頁之間的平均時(shí)間=平均缺頁服務(wù)時(shí)間
(四)選擇暫停的進(jìn)程
先暫停優(yōu)先級(jí)最低的進(jìn)程、在選擇并不重要,但較大的進(jìn)程
⑤請(qǐng)求分段存儲(chǔ)管理方式
其實(shí)也類似于分頁,要硬件和軟件支持
一、請(qǐng)求分段中的硬件支持
(-)請(qǐng)求段表機(jī)制
段表項(xiàng):段名、段長(zhǎng)、段基址、存取方式、訪問字段A、修改位M、存在位P、增補(bǔ)位、
外存始址
A、M:改進(jìn)型CLOCK置換算法
P:本段是否調(diào)入內(nèi)存
增補(bǔ)位:看是否做過動(dòng)態(tài)增長(zhǎng)
(二)缺段中斷機(jī)制(圖5-12)
萬一虛段S不在內(nèi)存中,就阻塞請(qǐng)求進(jìn)程。如果沒有空閑區(qū),就要拼接空閑區(qū)或者淘汰實(shí)
段以形成空閑區(qū)
之后讀入段S,修改段表及內(nèi)存空區(qū)鏈
(三)地址變換機(jī)構(gòu)
就是一個(gè)地址變換機(jī)構(gòu)
二、分段的共享和保護(hù)
(-)共享段表
共享進(jìn)程計(jì)數(shù)count、存取控制字段、段號(hào)
(二)共享段的分配與回收
共享段的分配、共享段的回收
(三)分段保護(hù)
越界檢查、存取控制檢查、環(huán)保護(hù)機(jī)構(gòu)
第六章輸入輸出系統(tǒng)
①I/O系統(tǒng)的功能、模型和接口
一、I/O系統(tǒng)的基本功能
(-)隱藏物理設(shè)備的細(xì)節(jié)
(二)與設(shè)備的無關(guān)性
自動(dòng)安裝并尋找驅(qū)動(dòng)程序,即插即用
(三)提高處理機(jī)和I/O設(shè)備的利用率
讓處理機(jī)和I/O設(shè)備并行操作
(四)對(duì)I/O設(shè)備進(jìn)行控制
這是驅(qū)動(dòng)程序的功能
(五)確保對(duì)設(shè)備的正確共享
獨(dú)占設(shè)備:打印機(jī)、磁帶機(jī)
共享設(shè)備:磁盤
(六)錯(cuò)誤處理
低級(jí)能夠解決就不向高級(jí)報(bào)告,請(qǐng)求高級(jí)軟件解決
二、I/O系統(tǒng)的層次結(jié)構(gòu)和模型
(-)1/0軟件的層次結(jié)構(gòu)
用戶層I/O軟件
設(shè)備獨(dú)立性軟件:映射、保護(hù)、分塊、緩沖、分配
設(shè)備驅(qū)動(dòng)程序:設(shè)置設(shè)備寄存器、檢查狀態(tài)
中斷處理程序
(-)1/0系統(tǒng)中各種模塊之間的層次視圖
I/O系統(tǒng)上下接口(圖6-2)
I/O系統(tǒng)的分層:中斷處理程序-設(shè)備驅(qū)動(dòng)程序-設(shè)備獨(dú)立性軟件
三、I/O系統(tǒng)接口
(-)塊設(shè)備接口
塊設(shè)備、隱藏磁盤二維結(jié)構(gòu)、抽象命令映射為低層操作
(二)流設(shè)備接口(Unix的)
字符設(shè)備:效率低、不可尋址
get和put操作:有緩沖區(qū)
in-control指令:互斥方式實(shí)現(xiàn)共享
(三)網(wǎng)絡(luò)通信接口
②I/O設(shè)備和設(shè)備控制器
一、I/O設(shè)備
(-)1/0設(shè)備的類型
按使用特性:存儲(chǔ)設(shè)備、I/O設(shè)備(輸入輸出交互的)
按傳輸速率:低速、中速、高速
(二)設(shè)備與控制器之間的接口
接口:數(shù)據(jù)信號(hào)線、控制信號(hào)線、狀態(tài)信號(hào)線
二、設(shè)備控制器
(-)設(shè)備控制器的基本功能
接收和識(shí)別命令、數(shù)據(jù)交換、標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)、數(shù)據(jù)緩沖區(qū)、差錯(cuò)控制
(二)設(shè)備控制器的組成
設(shè)備控制器與處理機(jī)的接口、設(shè)備控制器與設(shè)備的接口、I/O邏輯
三、內(nèi)存映像I/O
(一)利用特定的I/O指令
缺點(diǎn):訪問內(nèi)存和訪問設(shè)備要兩種不同的指令
(二)內(nèi)存映像I/O
就是k為界限,04kwn-l,就是內(nèi)存地址;k>n,就是寄存器地址。統(tǒng)一了對(duì)內(nèi)存和對(duì)控
制器的訪問方法
四、I/O通道
(-)1/0通道設(shè)備的引入
這是一種特殊的處理機(jī),但只局限于I/O相關(guān)的指令、而且沒有自己的內(nèi)存
(二)通道類型
字節(jié)多路通道:一個(gè)大水喉,多條小水管;一個(gè)換頭快,一個(gè)速率慢
數(shù)組選擇通道:利用率低
數(shù)組多路通道:甚至可以并行操作
(三)"瓶頸"問題
增加通路即可解決
③中斷機(jī)構(gòu)和中斷處理程序
一、中斷簡(jiǎn)介
(-)中斷和陷入
中斷:由外部設(shè)備引起,暫停當(dāng)前程序,執(zhí)行中斷處理程序
陷入:CPU內(nèi)部事件引起的,多是出錯(cuò)故障
(二)中斷向量表和中斷優(yōu)先級(jí)
中斷向量表:asm有學(xué)
中斷優(yōu)先級(jí):現(xiàn)實(shí)中有多個(gè)中斷信號(hào)源,要規(guī)定不同優(yōu)先級(jí)
(三)對(duì)多中斷源的處理方式
屏蔽中斷:順序執(zhí)行。優(yōu)點(diǎn)簡(jiǎn)單;缺點(diǎn)無視實(shí)時(shí)中斷請(qǐng)求
嵌套中斷:有個(gè)優(yōu)先級(jí)
二、中斷處理程序步驟
測(cè)定是否有未響應(yīng)中斷信號(hào);
保護(hù)被中斷進(jìn)程的CPU環(huán)境;
轉(zhuǎn)入相應(yīng)設(shè)備處理程序;
中斷處理;
恢復(fù)CPU現(xiàn)場(chǎng)并退出中斷
④設(shè)備驅(qū)動(dòng)程序
一、設(shè)備驅(qū)動(dòng)程序概述
(-)設(shè)備驅(qū)動(dòng)程序的功能
接收命令和參數(shù),并轉(zhuǎn)換為低層操作序列
檢直I/O合法性,了解I/O工作狀態(tài),傳遞I/O設(shè)備操作有關(guān)參數(shù),設(shè)置設(shè)備工作方式
及時(shí)響應(yīng)設(shè)備控制器發(fā)來的中斷請(qǐng)求,并根據(jù)中斷類型,調(diào)用響應(yīng)中斷處理程序
(二)設(shè)備驅(qū)動(dòng)程序的特點(diǎn)
抽象的I/O請(qǐng)求轉(zhuǎn)換成具體的I/O操作,反映給I/O進(jìn)程
和硬件特性緊密相關(guān),終端驅(qū)動(dòng)程序可以只有一個(gè)
常用控制方式:中斷驅(qū)動(dòng)、DMA
一部分必須用匯編語言寫,很多驅(qū)動(dòng)程序基本部分已經(jīng)固化在ROM
允許可重入
(三)設(shè)備處理方式
一類設(shè)備一個(gè)進(jìn)程
一個(gè)I/O進(jìn)程負(fù)責(zé)各類設(shè)備的I/O操作
只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備驅(qū)動(dòng)程序,供用戶或系統(tǒng)進(jìn)程調(diào)用(目前用得最多)
二、設(shè)備驅(qū)動(dòng)程序的處理過程
(一)1省由象要求轉(zhuǎn)換為具體要求
(二)對(duì)服務(wù)請(qǐng)求進(jìn)行校驗(yàn)
譬如要求打印機(jī)輸入數(shù)據(jù)
(三)檢查設(shè)備的狀態(tài)
檢測(cè)寄存器中的不同位,了解設(shè)備的狀態(tài)
(四)傳送必要參數(shù)
波特率、奇偶校驗(yàn)等等參數(shù)
(五)啟動(dòng)I/O設(shè)備
了解數(shù)據(jù)是否到達(dá)
三、對(duì)I/O設(shè)備的控制方式
(-)使用輪詢的可編程I/O方式
無限等待,好浪費(fèi)CPU
(二)使用中斷的可編程I/O方式
百倍提高CPU利用率
(三)直接存儲(chǔ)器訪問方式
至少傳送一個(gè)數(shù)據(jù)塊,DMA方式提高CPU和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 柳州職業(yè)技術(shù)學(xué)院《新型材料毒理學(xué)評(píng)價(jià)》2023-2024學(xué)年第二學(xué)期期末試卷
- 眉山職業(yè)技術(shù)學(xué)院《寶石工藝學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 鐵嶺衛(wèi)生職業(yè)學(xué)院《食品制造與安全前沿科學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 德宏職業(yè)學(xué)院《果蔬加工工藝學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 嘉興南湖學(xué)院《休閑學(xué)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年煤礦市場(chǎng)分析:智能化與高效利用推動(dòng)行業(yè)轉(zhuǎn)型
- 2025年中考數(shù)學(xué)幾何模型歸納訓(xùn)練:最值模型之胡不歸模型解讀與提分訓(xùn)練(全國(guó)版)
- 遼寧廚房排煙施工方案
- 甘肅省白銀市2024-2025學(xué)年高二(上)期末生物試卷(含解析)
- 第12課 資本主義世界殖民體系的形成 課件- 課件-【知識(shí)精研】高一下學(xué)期統(tǒng)編版(2019)必修中外歷史綱要下
- 小學(xué)勞動(dòng)技術(shù)云教三年級(jí)下冊(cè)植物栽培種植小蔥(省一等獎(jiǎng))
- 2020年環(huán)境法律法規(guī)及其它要求清單
- 綜采工作面主要設(shè)備選型設(shè)計(jì)方案
- 籍貫對(duì)照表完整版
- 2023屆高考模擬作文“完美與缺陷”導(dǎo)寫及范文
- GB/T 7251.3-2017低壓成套開關(guān)設(shè)備和控制設(shè)備第3部分:由一般人員操作的配電板(DBO)
- GB/T 22576.7-2021醫(yī)學(xué)實(shí)驗(yàn)室質(zhì)量和能力的要求第7部分:輸血醫(yī)學(xué)領(lǐng)域的要求
- GB/T 16475-2008變形鋁及鋁合金狀態(tài)代號(hào)
- 2023年江蘇省中學(xué)生生物奧林匹克競(jìng)賽試題及答案
- 《男生女生》優(yōu)秀課件(共21張PPT)
- 領(lǐng)導(dǎo)干部應(yīng)對(duì)新媒體時(shí)代
評(píng)論
0/150
提交評(píng)論