版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2009碩士研究生入學(xué)考試輔導(dǎo)
操作系統(tǒng)原理
北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)系
PekingUniversity
內(nèi)容提綱
■推薦參考書列表
■考試大綱概況
■考查內(nèi)容及要求
■知識(shí)點(diǎn)及復(fù)習(xí)要點(diǎn)
■樣題練習(xí)與講解
參考書(1/2)
■陳向群、楊芙清編著,操作系統(tǒng)教程
(第2版),北京大學(xué)出版社,2006
■湯子瀛等編著,計(jì)算機(jī)操作系統(tǒng)(第3,
版),西安電子科技大學(xué)出版社,2007
參考書(2/2)
AndrewS?Tanenbaum著,陳向群,馬洪兵
等譯,現(xiàn)代操作系統(tǒng)(第2版),機(jī)械工業(yè)出
版社,2005
]本課程考試大綱概況
■考查目標(biāo)
■了解操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)中的作用、地位、
發(fā)展和特點(diǎn)。
■理解操作系統(tǒng)的基本概念、原理,掌握操作
系統(tǒng)設(shè)計(jì)方法與實(shí)現(xiàn)技術(shù)。
■能夠運(yùn)用所學(xué)的操作系統(tǒng)原理、方法與技術(shù)
分析問題和解決問題。
■操作系統(tǒng)34分
■單項(xiàng)選擇題18分(9小題,每小題2分)
■綜合應(yīng)用題16分(2小題,每小題8分)
復(fù)習(xí)方法建議
■圍繞大綱,系統(tǒng)地復(fù)習(xí)。既要建立系統(tǒng)的
概念原理體系,也要善于抓重點(diǎn),把重點(diǎn)
學(xué)懂學(xué)透。
■抓住知識(shí)點(diǎn),掌握正確的概念。
■適當(dāng)做題,但不要被大量的樣題擾亂
內(nèi)容提綱
?推薦參考書列表
■考試大綱概況
■考查內(nèi)容及要求
■知識(shí)點(diǎn)及復(fù)習(xí)要點(diǎn)
■樣題練習(xí)與講解
考查內(nèi)容及要求
?1概述-4文件管理
■1.1操作系統(tǒng)基本概念■4.1文件管理概述
■L2操作系統(tǒng)的分類■4.2文件系統(tǒng)的實(shí)現(xiàn)
■1.3操作系統(tǒng)的運(yùn)行環(huán)境-4.3磁盤組織與管理
-2進(jìn)程管理■5輸入輸出(I/O)概述
■2.1進(jìn)程與線程.5.1I/O管理概述
■2.2處理機(jī)調(diào)度■5.2I/O內(nèi)核子系統(tǒng)
■2.3進(jìn)程同步
■2.4死鎖
■3存儲(chǔ)管理
■3.1存儲(chǔ)管理基礎(chǔ)
■3.2虛擬頁式存儲(chǔ)管理方案
概述
操作系統(tǒng)的概念、特征、功能和提供的
服務(wù)
■掌握操作系統(tǒng)的定義,每個(gè)特征的含義,
操作系統(tǒng)功能和服務(wù)的主要內(nèi)容
■例如操作系統(tǒng)管理哪些資源,如何管理;
提供接口有什么,如何提供
■要求對(duì)操作系統(tǒng)的基本概念有清晰的理解,
能夠判斷給出的說法的正誤
概述
操作系統(tǒng)的發(fā)展與分類
■要求掌握操作系統(tǒng)的主要類型和發(fā)展歷史,
特別是批處理、分時(shí)、分布式、嵌入式等
有代表性的操作系統(tǒng)的特點(diǎn)
■能夠分辨說法的正誤
■能夠辨別任意兩種操作系統(tǒng)的區(qū)別與優(yōu)缺
占
八、、
概述
■操作系統(tǒng)的運(yùn)行環(huán)境
■掌握計(jì)算機(jī)系統(tǒng)中關(guān)鍵的硬件特征及其與操作
系統(tǒng)的關(guān)系
■特別是處理器的特權(quán)級(jí)和特權(quán)指令、主要狀態(tài)
寄存器的含義和功能,中斷機(jī)制
■能夠判斷說法的正誤
考查內(nèi)容
-1概述-4文件管理
■1.1操作系統(tǒng)基本概-4.1文件管理概述
念■4.2文件系統(tǒng)的實(shí)現(xiàn)
■;2操作系統(tǒng)的分類
-4.3磁盤組織與管理
-1.3操作系統(tǒng)的運(yùn)行■5輸入輸出(I/O)概述
環(huán)境■5.1I/O管理概述
■2進(jìn)程管理-5.2I/O內(nèi)核子系統(tǒng)
-2.1進(jìn)程與線程
-2.2處理機(jī)調(diào)度
.2.3進(jìn)程同步
■2.4死鎖
■3存儲(chǔ)管理
-3.1存儲(chǔ)管理基礎(chǔ)
-3.2虛擬頁式存儲(chǔ)管
例方窣
進(jìn)程管理
進(jìn)程與線程
■掌握進(jìn)程概念,進(jìn)程的狀態(tài)與轉(zhuǎn)換,進(jìn)程控制,
進(jìn)程組織,進(jìn)程通信(共享內(nèi)存,消息傳遞,
管道),線程概念與多線程模型
■特別是
■并發(fā)環(huán)境下的特點(diǎn),引入進(jìn)程的意義
■與進(jìn)程狀態(tài)相關(guān)的原理,如轉(zhuǎn)換條件,等待與就緒
隊(duì)列,控制原語的功能
■三種進(jìn)程通信方法的特點(diǎn),對(duì)比
■引入多線程的意義,進(jìn)程和其中多線程之間的關(guān)系
■能夠判斷說法的正誤
進(jìn)程管理
■處理機(jī)調(diào)度
■掌握調(diào)度概念,調(diào)度時(shí)機(jī)、切換與過程,基本準(zhǔn)則,
調(diào)度方式,典型調(diào)度算法
■先來先服務(wù),短作業(yè)(短任務(wù)、短進(jìn)程、短線程)優(yōu)先,時(shí)
間片輪轉(zhuǎn),優(yōu)先級(jí),高響應(yīng)比優(yōu)先,多級(jí)反饋隊(duì)列
■特別是
■調(diào)度方式:搶占■非搶占(剝奪■非剝奪)
.各種調(diào)度算法:調(diào)度的執(zhí)行序列,算法的優(yōu)缺點(diǎn)
■能夠識(shí)別說法的正誤
■能夠按照要求的調(diào)度算法給出調(diào)度結(jié)果,計(jì)算調(diào)度算
法的平均響應(yīng)時(shí)間等參數(shù)
■這部分內(nèi)容的出題率近100%,重中之重
進(jìn)程管理
■F程同步
-掌握進(jìn)程同步的基本概念,實(shí)現(xiàn)臨界區(qū)互斥的基本方
法(軟件和硬件實(shí)現(xiàn)方法),信號(hào)量,管程,經(jīng)典同
步問題(生產(chǎn)者■消費(fèi)者問題,讀者■寫者問題,哲學(xué)家
進(jìn)餐問題)
-特別是
■深刻理解同步互斥的含義
■準(zhǔn)確理解信號(hào)量、PV原語的含義、功能
■解決同步互斥問題的基本思路和方法
-能夠?qū)σ粋€(gè)問題進(jìn)行判斷屬于哪類問題(同步互斥)
-能夠用PV原語解決問題,要求清晰地定義信號(hào)量、其
含義,并給出初值;編寫程序邏輯正確,不死鎖
■這部分內(nèi)容的出題率近100%,重中之重
進(jìn)程管理
死鎖
■掌握死鎖的概念,處理策略,預(yù)防,避免,用銀行家
算法判別系統(tǒng)安全狀態(tài),死鎖檢測(cè)和解除
■特別是
■死鎖基本概念中涉及到的概念,如資源分類等
■用銀行家算法判別系統(tǒng)安全狀態(tài)
■四種處理策略的概念和相關(guān)的方法
■能夠識(shí)別說法的正誤
■能夠用銀行家算法解決判別系統(tǒng)安全狀態(tài)的問題
考查內(nèi)容
-1概述-4文件管理
■1.1操作系統(tǒng)基本概-4.1文件管理概述
念■4.2文件系統(tǒng)的實(shí)現(xiàn)
■;2操作系統(tǒng)的分類
-4.3磁盤組織與管理
-1.3操作系統(tǒng)的運(yùn)行■5輸入輸出(I/O)概述
環(huán)境■5.1I/O管理概述
-2進(jìn)程管理-5.2I/O內(nèi)核子系統(tǒng)
-2.1進(jìn)程與線程
-2.2處理機(jī)調(diào)度
■2.3進(jìn)程同步
■2.4死鎖
-3存儲(chǔ)管理
-3.1存儲(chǔ)管理基礎(chǔ)
-3.2虛擬頁式存儲(chǔ)管
鋰方窣
存儲(chǔ)管理
■存儲(chǔ)管理基礎(chǔ)
■掌握內(nèi)存管理概念,程序裝入與鏈接,邏輯地址與物
理地址空間,內(nèi)存保護(hù),交換與覆蓋,連續(xù)分配管理
方式,單一連續(xù)分配,分區(qū)分配,非連續(xù)分配管理方
式,分頁管理方式,分段管理方式,段頁式管理方式
■特別是
■地址空間及地址轉(zhuǎn)換的概念和過程
■各種內(nèi)存管理的特點(diǎn)和基本思想,實(shí)現(xiàn)過程,利用的硬件
分區(qū)管理,分頁管理
■交換與覆蓋,保護(hù),鏈接
■能夠判別說法的正誤
■能夠按照某種管理方法來解決回收、分配中的問題
-能夠按照內(nèi)存管理方式分析地址變換過程如
存儲(chǔ)管理
虛擬頁式存儲(chǔ)管理方案
-掌握虛擬內(nèi)存基本概念,請(qǐng)求分頁管理,頁面置
換算法(OPT,FIFO,LRU,時(shí)鐘置換算法),
頁面分配策略,抖動(dòng),工作集,請(qǐng)求分段管理方
式,請(qǐng)求段頁式管理方式
-特別是
-虛擬內(nèi)存概念及其相關(guān)概念,如局部性原理,工作集等
■頁面置換算法,請(qǐng)求分頁管理
-能夠識(shí)別說法的正誤
-能夠根據(jù)要求分析給定頁面訪問序列下的缺頁次
數(shù)、嵌頁率,料藥問題
-這部分內(nèi)容的出題率很高
考查內(nèi)容
-1概述-4文件管理
■1.1操作系統(tǒng)基本概■4.1文件管理概述
念■4.2文件系統(tǒng)的實(shí)現(xiàn)
■;2操作系統(tǒng)的分類
-4.3磁盤組織與管理
-1.3操作系統(tǒng)的運(yùn)行■5輸入輸出(I/O)概述
環(huán)境■5.1I/O管理概述
-2進(jìn)程管理-5.2I/O內(nèi)核子系統(tǒng)
-2.1進(jìn)程與線程
-2.2處理機(jī)調(diào)度
■2.3進(jìn)程同步
■2.4死鎖
■3存儲(chǔ)管理
-3.1存儲(chǔ)管理基礎(chǔ)
-3.2虛擬頁式存儲(chǔ)管
例方窣
文件管理
■文件管理概述
-掌握文件概念,文件結(jié)構(gòu)(順序文件,索引文件,
索引順序文件),目錄結(jié)構(gòu)(文件控制塊和索引
節(jié)點(diǎn),單級(jí)目錄結(jié)構(gòu)和兩級(jí)目錄結(jié)構(gòu),樹形目錄
結(jié)構(gòu),圖形目錄結(jié)構(gòu)),文件共享(共享動(dòng)機(jī),
共享方式,共享語義),文件保護(hù)(訪問類型,
訪問控制)
-特別是
■不同文件結(jié)構(gòu)的特點(diǎn),不同目錄結(jié)構(gòu)的特點(diǎn)
-文件共享和保護(hù)的概念
-能夠識(shí)別說法的正誤,對(duì)基本概念進(jìn)行辨識(shí)和定
義
文件管理
■文件系統(tǒng)的實(shí)現(xiàn)
■掌握文件系統(tǒng)層次結(jié)構(gòu),目錄實(shí)現(xiàn),文件實(shí)
現(xiàn)
■特別是
■目錄實(shí)現(xiàn)的過程和特點(diǎn),如按名存取,目錄項(xiàng)分解,
相對(duì)路徑,絕對(duì)路徑
■文件操作的概念和實(shí)現(xiàn)過程
■能夠?qū)δ夸泴?shí)現(xiàn)和文件實(shí)現(xiàn)中某個(gè)操作的功
能、結(jié)果、實(shí)現(xiàn)方法進(jìn)行選擇和辨識(shí)
文件管理
磁盤組織與管理
■掌握磁盤的結(jié)構(gòu),磁盤調(diào)度算法,磁盤的管理
■特別是
■幾種磁盤調(diào)度算法(綜合磁臂,磁頭,扇區(qū)三個(gè)因素)
■磁盤的組織結(jié)構(gòu),優(yōu)化方法
■能夠根據(jù)要求計(jì)算給定磁盤訪問序列的調(diào)度結(jié)果,分
析磁盤存取時(shí)間
-能夠結(jié)合文件結(jié)構(gòu)和目錄結(jié)構(gòu)分析磁盤訪問次數(shù)
■能夠根據(jù)給定參數(shù)分析磁盤空間利用率、磁盤塊訪問
時(shí)間,給出優(yōu)化方案和結(jié)果
考查內(nèi)容
-1概述-4文件管理
■1.1操作系統(tǒng)基本概-4.1文件管理概述
念■4.2文件系統(tǒng)的實(shí)現(xiàn)
■;2操作系統(tǒng)的分類
-4.3磁盤組織與管理
-1.3操作系統(tǒng)的運(yùn)行■5輸入輸出(I/O)概述
環(huán)境■5.1I/O管理概述
-2進(jìn)程管理-5.2I/O內(nèi)核子系統(tǒng)
-2.1進(jìn)程與線程
-2.2處理機(jī)調(diào)度
■2.3進(jìn)程同步
■2.4死鎖
■3存儲(chǔ)管理
-3.1存儲(chǔ)管理基礎(chǔ)
-3.2虛擬頁式存儲(chǔ)管
例方窣
輸入輸出(I/O)概述
■I/O管理概述
■掌握I/O設(shè)備概念,I/O管理目標(biāo),I/O管理功
能,I/O應(yīng)用接口,I/O控制方式
■特別是
■設(shè)備分類
■不同I/O控制方式的特點(diǎn),如中斷,DMA,通道
■能夠辨識(shí)說法的正誤
■能夠選擇或判斷I/O處理過程和操作
輸入輸出(I/O)概述
■I/O內(nèi)核子系統(tǒng)
■掌握I/O調(diào)度概念,高速緩存與緩沖區(qū),設(shè)
備分配與回收,假脫機(jī)技術(shù)(SPOOLing),出
錯(cuò)處理
■特別是
■假脫機(jī)技術(shù)的概念和原理
-緩沖區(qū)概念和管理操作
■能夠辨識(shí)說法的正誤
■能夠選擇或判斷某個(gè)過程或操作
內(nèi)容提綱
I
■推薦參考書列表
■考試大綱概況
■考查內(nèi)容及要求
■知識(shí)點(diǎn)及復(fù)習(xí)要點(diǎn)
■樣題練習(xí)與講解
知識(shí)點(diǎn)及復(fù)習(xí)要點(diǎn)
■概述?
■進(jìn)程線程
■內(nèi)存管理
■文件管理
■設(shè)備管理
操作系統(tǒng)的定義
操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的一個(gè)系統(tǒng)軟件,是一些程序模
塊的集合——
■它們能以盡量有效、合理的方式組織和管理計(jì)算機(jī)的軟
硬件資源
■合理的組織計(jì)算機(jī)的工作流程,控制程序的執(zhí)行并向用
戶提供各種服務(wù)功能
■使得用戶能夠靈活、方便、有效的使用計(jì)算機(jī),使整個(gè)
計(jì)算機(jī)系統(tǒng)能高效地運(yùn)行
操作系統(tǒng)的特征
并發(fā)(concurrency):處理多個(gè)同時(shí)性活動(dòng)的能力
共享(sharing):操作系統(tǒng)與多個(gè)用戶的程序共同使
用計(jì)算機(jī)系統(tǒng)中的資源(共享有限的系統(tǒng)資源)
虛擬(Virtual):一個(gè)物理實(shí)體映射為若干個(gè)對(duì)應(yīng)的
邏輯實(shí)體一一分時(shí)或分空間。虛擬是操作系統(tǒng)管理系
統(tǒng)資源的重要手段,可提高資源利用率
隨機(jī)性:操作系統(tǒng)必須隨時(shí)對(duì)以不可預(yù)測(cè)次序發(fā)生的
事件進(jìn)行響應(yīng)
不確定性:由共享和并發(fā)引起
操作系統(tǒng)的功能和提供的服務(wù)
■進(jìn)程(線程)管理
■協(xié)調(diào)多道程序,處理機(jī)分配調(diào)度策略、分配實(shí)施和回收
■存儲(chǔ)管理
■分配回收,擴(kuò)充,共享,保護(hù)
■文件管理
■文件的存儲(chǔ)、檢索,修改,共享、保密和保護(hù)
■設(shè)備管理
■I/O操作,外部設(shè)備的分配、啟動(dòng)和故障處理,提供一個(gè)
良好的界面
■用戶接口
■向用戶提供使用手段,系統(tǒng)調(diào)用,命令方式
4操作系統(tǒng)的分類
■批處理操作系統(tǒng)(多道批處理)
■分時(shí)系統(tǒng)
■實(shí)時(shí)操作系統(tǒng)■
■個(gè)人計(jì)算機(jī)操作系統(tǒng)
■網(wǎng)絡(luò)操作系統(tǒng)
■分布式操作系統(tǒng)J
■嵌入式操作系統(tǒng)
批處理操作系統(tǒng)特點(diǎn)
■多道
內(nèi)存中同時(shí)存放幾個(gè)作業(yè)
某個(gè)作業(yè)占用CPU,若由于某種原因暫時(shí)
不用CPU,則系統(tǒng)讓第二個(gè)作業(yè)占用CPU
.成批處理
用戶自己不能干預(yù)自己作業(yè)的運(yùn)行,一旦發(fā)現(xiàn)
作業(yè)錯(cuò)誤不能及時(shí)改正,并延長(zhǎng)開發(fā)軟件時(shí)間,
所以適用于成熟的程序
批處理操作系統(tǒng)優(yōu)缺點(diǎn)
優(yōu)點(diǎn):作業(yè)流程自動(dòng)化-資源利用率高
吞吐量大---
單位時(shí)間內(nèi)完成的工作總量大
缺點(diǎn):用戶交互性差,調(diào)試程序困難
(無交互手段:整個(gè)作業(yè)完成后或中間出錯(cuò)
時(shí),才與用戶交互,不利于調(diào)試和修改)
作業(yè)平均周轉(zhuǎn)時(shí)間長(zhǎng)
短作業(yè)的周轉(zhuǎn)時(shí)間顯著增長(zhǎng)
分時(shí)操作系統(tǒng)特點(diǎn)
■多路性
-同時(shí)有多個(gè)用戶使用一臺(tái)計(jì)算機(jī)
■宏觀上:是多個(gè)人同時(shí)使用一個(gè)CPU
■微觀上:多個(gè)人在不同時(shí)刻輪流使用CPU
■交互性
-用戶根據(jù)系統(tǒng)響應(yīng)結(jié)果進(jìn)一步
-提出新請(qǐng)求(用戶直接干預(yù)每一步)
■“獨(dú)占”性
-用戶感覺不到計(jì)算機(jī)為其他人服務(wù)
■OS提供虛機(jī)器,各個(gè)用戶的虛機(jī)器互不干擾
■及時(shí)性
-系統(tǒng)對(duì)用戶提出的請(qǐng)求及時(shí)響應(yīng)
I實(shí)時(shí)操作系統(tǒng)
■指使計(jì)算機(jī)能及時(shí)響應(yīng)外部事件的請(qǐng)求,
在規(guī)定的嚴(yán)格時(shí)間內(nèi)完成對(duì)該事件的處理,
并控制所有實(shí)時(shí)設(shè)備和實(shí)時(shí)任務(wù)協(xié)調(diào)一致
地工作的操作系統(tǒng)
■硬實(shí)時(shí)系統(tǒng)
■,某個(gè)動(dòng)作絕對(duì)必須在規(guī)定的時(shí)刻或時(shí)間范圍
完成
■軟實(shí)時(shí)系統(tǒng)
■接受偶爾違反最終時(shí)限
實(shí)時(shí)操作系統(tǒng)
q時(shí)系統(tǒng)與批處理系統(tǒng)和分時(shí)系統(tǒng)的區(qū)別
■專用系統(tǒng):許多實(shí)時(shí)系統(tǒng)是專用系統(tǒng),而批處
理與分時(shí)系統(tǒng)通常是通用系統(tǒng)
■實(shí)時(shí)控制:實(shí)時(shí)系統(tǒng)用于控制實(shí)時(shí)過程,要求
對(duì)外部事件的迅速響應(yīng),具有較強(qiáng)的中斷處理
機(jī)構(gòu)
■高可靠性:實(shí)時(shí)系統(tǒng)用于控制重要過程,要求
高度可靠,具有較高冗余(如雙機(jī)系統(tǒng))
■事件驅(qū)動(dòng)和隊(duì)列驅(qū)動(dòng):實(shí)時(shí)系統(tǒng)的工作方式:
接受外部消息,分析消息,調(diào)用相應(yīng)處理程序
進(jìn)行處理。
分布式操作系統(tǒng)
分布式系統(tǒng):處理和控制的分散(相對(duì)于集中
式系統(tǒng))
分布式系統(tǒng)是以計(jì)算機(jī)網(wǎng)絡(luò)為基礎(chǔ)的9它的基
本特征是處理上的分布,即功能和任務(wù)的分布
分布式操作系統(tǒng)的所有系統(tǒng)任務(wù)可在系統(tǒng)中任
何處理機(jī)上運(yùn)行,自動(dòng)實(shí)現(xiàn)全系統(tǒng)范圍內(nèi)的任
務(wù)分配并自動(dòng)調(diào)度各處理機(jī)的工作負(fù)載
r.分布式操作系統(tǒng)
W--------------------------------------------
特征:
1.是一個(gè)統(tǒng)一的操作系統(tǒng)
若干個(gè)計(jì)算機(jī)可相互協(xié)作共同完成一項(xiàng)任務(wù)
2.資源進(jìn)一步共享
3.透明性:
資源共享,分布對(duì)用戶來講是不知道的
4.自治性:
處于分布式系統(tǒng)的多個(gè)主機(jī)處于平等地位,無主
從關(guān)系
5.處理能力增強(qiáng)、速度更快、可靠性增強(qiáng)
網(wǎng)絡(luò)和分布式的比較
耦合程度
分布式系統(tǒng)是緊密耦合系統(tǒng),分布式OS是在各機(jī)上
統(tǒng)一建立的,直接管理CPU、存儲(chǔ)器和外設(shè);統(tǒng)一進(jìn)行
全系統(tǒng)的管理;網(wǎng)絡(luò)通常容許異種OS互連,各機(jī)上各
種服務(wù)程序需按不同網(wǎng)絡(luò)協(xié)議互操作
并行性
分布式OS可以將一個(gè)進(jìn)程分散在各機(jī)上并行執(zhí)行”
進(jìn)程遷移“;網(wǎng)絡(luò)則各機(jī)上的進(jìn)程獨(dú)立
透明性
用戶是否知道或指定資源在哪個(gè)機(jī)器上
分布式系統(tǒng)的網(wǎng)絡(luò)資源調(diào)度對(duì)用戶透明,用戶不了
解所占有資源的位置;網(wǎng)絡(luò)操作系統(tǒng)中對(duì)網(wǎng)絡(luò)資源的使
用要由用戶明確指定
健壯性
分布式系統(tǒng)要求更強(qiáng)的容錯(cuò)能力(工作時(shí)系統(tǒng)重構(gòu))
嵌入式操作系統(tǒng)
■耿入式系統(tǒng)
■以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件
可裁剪、適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、
體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)
■限制條件:大小、內(nèi)存、能源1
■嵌入式操作系統(tǒng)r
■安裝在有限的內(nèi)存里(ROM)
■運(yùn)行在嵌入式系統(tǒng)環(huán)境中,對(duì)整個(gè)嵌入式系統(tǒng)以
及它所操作、控制的各種部件裝置等等資源進(jìn)行
統(tǒng)一協(xié)調(diào)、調(diào)度、指揮和控制的系統(tǒng)軟件
處理器的特權(quán)指令和非特權(quán)指令
特權(quán)指令:只能由操作系統(tǒng)使用的指令
■使用多道程序設(shè)計(jì)技術(shù)的計(jì)算機(jī)指令系統(tǒng)必須要區(qū)
分為特權(quán)指令和非特權(quán)指令
■特權(quán)指令一般引起處理器狀態(tài)的切換
-處理器通過特殊的機(jī)制將處理器狀態(tài)切換到操作系統(tǒng)運(yùn)行
的特權(quán)狀態(tài)(管態(tài))
■然后將處理權(quán)移交給操作系統(tǒng)中的一段特殊代碼,這一個(gè)
過程稱為陷入
]處理器的狀態(tài)
根據(jù)運(yùn)行程序?qū)Y源和機(jī)器指令的使用權(quán)限
將處理器設(shè)置為不同狀態(tài)一一程序狀態(tài)字PSW
多數(shù)系統(tǒng)將處理器工作狀態(tài)劃分為管態(tài)和目態(tài)
管態(tài):操作系統(tǒng)管理程序運(yùn)行的狀態(tài),較高的特權(quán)
級(jí)別,又稱為特權(quán)態(tài)(特態(tài))、核心態(tài)、系統(tǒng)態(tài)
目態(tài):用戶程序運(yùn)行時(shí)的狀態(tài),較低的特權(quán)級(jí)別,
又稱為普通態(tài)(普態(tài))、用戶態(tài)
具體處理器將CPU狀態(tài)劃分為兩種、三種或四種
存儲(chǔ)訪問局部性原理
提高存儲(chǔ)系統(tǒng)性能的關(guān)鍵:程序存儲(chǔ)訪問局部性原理
■程序執(zhí)行時(shí),有很多的循環(huán)和子程序調(diào)用,一旦進(jìn)入
這樣的程序段,就會(huì)重復(fù)存取相同的指令集合
■對(duì)數(shù)據(jù)存取也有局部性,在較短的時(shí)間內(nèi),穩(wěn)定地保
持在一個(gè)存儲(chǔ)器的局部區(qū)域
處理器主要和存儲(chǔ)器的局部打交道
在經(jīng)過一段時(shí)間以后,使用的代碼和數(shù)據(jù)集合會(huì)改變
磁盤
控制器
總線
物理地址
MMU:內(nèi)存管理單元
中斷的概念
■CPU對(duì)系統(tǒng)發(fā)生的某個(gè)事件作出的一種反應(yīng)
■CPU暫停正在執(zhí)行的程序,保留現(xiàn)場(chǎng)后自動(dòng)轉(zhuǎn)去執(zhí)
行相應(yīng)事件的處理程序,處理完成后返回?cái)帱c(diǎn),繼
續(xù)執(zhí)行被打斷的程序
特點(diǎn):
引入中斷的目的
■解決主機(jī)與外設(shè)的并行1)中斷是隨機(jī)的
工作問題2)中斷是可恢復(fù)的
■實(shí)現(xiàn)實(shí)時(shí)控制3)中斷是自動(dòng)處理的
中斷的概念
「I/O中斷
「中斷(外中斷)
Y時(shí)鐘中斷
I硬件故障
廣義中斷V"系統(tǒng)調(diào)用
缺頁異常
異常(內(nèi)中斷)斷點(diǎn)指令
例外其他程序性異常
I(如算術(shù)溢出等)
中斷(狹義)與異常的區(qū)別:
中斷:與正執(zhí)行指令無關(guān),可以屏蔽
異常:與正執(zhí)行指令有關(guān),不可屏蔽
.中斷類型
■強(qiáng)迫性中斷
■正在運(yùn)行的程序所不期望的,由于某種硬件故障或外部請(qǐng)
求引起的
?輸入/輸出(I/O)中斷:主要來自外部設(shè)備通道
?程序性中斷:運(yùn)行程序中本身的中斷,如溢出,缺頁中斷地址越界)
■時(shí)鐘中斷
■控制臺(tái)中斷
■自愿性中斷
■用戶在程序中有意識(shí)安排的中斷,用戶在編制程序時(shí)因?yàn)?/p>
要求操作系統(tǒng)提供服務(wù),有意使用“訪管”指令或系統(tǒng)調(diào)
用,使中斷發(fā)生
■系統(tǒng)調(diào)用
■斷點(diǎn)調(diào)試
知識(shí)點(diǎn)及復(fù)習(xí)要點(diǎn)
■概述1
■進(jìn)程線程管理
■內(nèi)存管理
■文件管理
■設(shè)備管理
發(fā)程序
并發(fā)環(huán)境:
一定時(shí)間內(nèi),物理機(jī)器上有兩個(gè)或兩個(gè)以
上的程序同時(shí)處于開始運(yùn)行但尚未結(jié)束的
狀態(tài),并且次序不是事先確定的
ABAB
BA
BA
并發(fā)程序
CPUIDEVIICP【J,DEV2?CPU
A1O152O
—3040t(s)
-DEV1
B1----------H_CEU---------JEV2|CPUIDEV2?
1020253040
在順序環(huán)境下,A先執(zhí)行,B再執(zhí)行
CPU利用率=40/80=50%
DEVI利用率=15/80=18.75%
DEV2禾用率=25/80=31.25%
并發(fā)程序
ACPUDEVIICPUDEV2CPU
1_11一十
1111111L
1)15253():!54045
BDEVICPUDEV2CPUDEV2
在并發(fā)環(huán)境下CPU利用=40/45=89%
DEV1并發(fā)環(huán)境下利用==15/45=33%
DEV2并發(fā)環(huán)境下利用=25/45=56%
進(jìn)程的概念
■定義
進(jìn)程是具有獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合
上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)
度的獨(dú)立單位,又稱任務(wù)(Task)
進(jìn)程狀態(tài)轉(zhuǎn)換
狀態(tài)轉(zhuǎn)換:
在進(jìn)程運(yùn)行過程中,由于進(jìn)程自身進(jìn)展情況及
外界環(huán)境的變化,這三種基本狀態(tài)可以依據(jù)一
定的條件相互轉(zhuǎn)換
①就緒—運(yùn)行
②運(yùn)行—就緒
③運(yùn)行一等待
④等待一就緒
、■進(jìn)程轉(zhuǎn)換原因
二
■就緒-->運(yùn)行
-調(diào)度程序選擇一個(gè)新的進(jìn)程運(yùn)行
■運(yùn)行-->就緒
■運(yùn)行進(jìn)程用完了時(shí)間片
?一個(gè)高優(yōu)先級(jí)進(jìn)程處于就緒狀態(tài),中斷正在運(yùn)行的進(jìn)程
■運(yùn)行-->等待
■當(dāng)一個(gè)進(jìn)程必須等待時(shí)
?os尚未完成服務(wù)(系統(tǒng)調(diào)用)
■對(duì)一資源的訪問尚不能進(jìn)行(同步互斥)
?初始化I/O且必須等待結(jié)果(I/O)
■等待某一進(jìn)程提供輸入(IPC)
■等待一〉就緒
.當(dāng)所等待的事件發(fā)生時(shí)
進(jìn)程的其他狀態(tài)
■創(chuàng)建狀態(tài)
-OS已完成為創(chuàng)建一進(jìn)程所必要的工作
■已構(gòu)造了進(jìn)程標(biāo)識(shí)符
■已創(chuàng)建了管理進(jìn)程所需的表格
■但還沒有允許執(zhí)行該進(jìn)程(尚未同意)
-因?yàn)橘Y源有限
■終止?fàn)顟B(tài)
■不再有執(zhí)行資格,占有的資源將要被釋放
■掛起(suspend)狀態(tài)
■進(jìn)程沒有占用內(nèi)存空間,處在掛起狀態(tài)的進(jìn)程映像在
磁盤上調(diào)節(jié)負(fù)載,對(duì)換)
調(diào)度的基本準(zhǔn)則
■一般原則:
■公平:保證每個(gè)進(jìn)程得到合理的CPU時(shí)間
■高效:CPU保持忙碌狀態(tài),CPU利用率高
■針對(duì)某類操作系統(tǒng)確定原則:
■響應(yīng)時(shí)間:交互式系統(tǒng),越短越好
■周轉(zhuǎn)時(shí)間:使批處理用戶等待時(shí)間盡可能短
■吞吐量:批處理系統(tǒng)情況下,單位時(shí)間內(nèi)處
理的進(jìn)程個(gè)數(shù)盡可能多
進(jìn)程調(diào)度方式
兩種占用CPU的方式:
可剝奪式(可搶占式Preemptive):
當(dāng)有比正在運(yùn)行的進(jìn)程優(yōu)先級(jí)更高的進(jìn)程就
緒時(shí),系統(tǒng)可強(qiáng)行剝奪正在運(yùn)行進(jìn)程的CPU,提
供給具有更高優(yōu)先級(jí)的進(jìn)程使用
不可剝奪式(不可搶占式Non-preemptive):
某一進(jìn)程被調(diào)度運(yùn)行后,除非由于它自身的
原因不能運(yùn)行,否則一直運(yùn)行下去
進(jìn)程調(diào)度的時(shí)機(jī)
當(dāng)一個(gè)進(jìn)程運(yùn)行完畢,或由于某種錯(cuò)誤而終止運(yùn)行
當(dāng)一個(gè)進(jìn)程在運(yùn)行中處于等待狀態(tài)(等待I/O)
時(shí)間片用完
當(dāng)有一個(gè)優(yōu)先級(jí)更高的進(jìn)程就緒(可搶占式)
如:新創(chuàng)建一個(gè)進(jìn)程;一個(gè)等待進(jìn)程變成就緒
在進(jìn)程通信中,執(zhí)行中的進(jìn)程執(zhí)行了某種原語操作
(P操作,阻塞原語,喚醒原語)
進(jìn)程中斷/異常/系統(tǒng)調(diào)用返回到用戶態(tài)時(shí)
進(jìn)程切換
■『個(gè)進(jìn)程讓出處理器,由另一個(gè)進(jìn)程占用處理器的過程
-進(jìn)程的切換使系統(tǒng)中的各進(jìn)程均有機(jī)會(huì)占用CPU
■進(jìn)程的切換是由進(jìn)程狀態(tài)的變化引起的,而進(jìn)程狀態(tài)的變化又
與出現(xiàn)中斷事件有關(guān)
■當(dāng)有中斷事件發(fā)生時(shí),當(dāng)前運(yùn)行的進(jìn)程被中斷,中斷響應(yīng)后由
操作系統(tǒng)處理出現(xiàn)的中斷事件。中斷處理后,某些進(jìn)程的狀態(tài)
會(huì)發(fā)生變化,也可能又創(chuàng)建了一些新的進(jìn)程。因此,要進(jìn)行隊(duì)
列的調(diào)整。然后,進(jìn)程調(diào)度根據(jù)預(yù)定的調(diào)度算法從就緒隊(duì)列選
一個(gè)進(jìn)程占用CPU。這個(gè)占用CPU運(yùn)行的進(jìn)程可能仍是被中斷的
進(jìn)程,也可能是另一個(gè)進(jìn)程
,何時(shí)切換進(jìn)程?
■只要OS取得對(duì)CPU的控制,進(jìn)程切換就可
能發(fā)生,如:
■系統(tǒng)調(diào)用
■來自程序的顯式請(qǐng)求(如:打開文件),該進(jìn)程通
常會(huì)被阻塞
■異常
■最末一條指令導(dǎo)致出錯(cuò),會(huì)引起進(jìn)程變?yōu)橥顺鰻顟B(tài)
■中斷
■外部因素影響當(dāng)前指令的執(zhí)行,控制被轉(zhuǎn)移至中斷
處理程序
進(jìn)程切換的過程
■保存處理器的上下文,包括程序計(jì)數(shù)器和其它寄存器
■用新狀態(tài)和其它相關(guān)信息更新正在運(yùn)行進(jìn)程的PCB
-把原來的進(jìn)程移至合適的隊(duì)列—就緒、阻塞‘
■選擇另一個(gè)要執(zhí)行的進(jìn)程.
■更新被選中進(jìn)程的PCB”
■從被選中進(jìn)程中重裝入CPU上下文
線程的引入
■進(jìn)程的缺點(diǎn)
■時(shí)間、空間開銷大,限制了并發(fā)度的提高
■線程?
■也稱輕量級(jí)進(jìn)程
■進(jìn)程中的一個(gè)運(yùn)行實(shí)體,是一個(gè)CPU調(diào)度單位
■一個(gè)進(jìn)程中的線程共享進(jìn)程的資源(內(nèi)存、文件等)
進(jìn)程與線程
■引入線程的好處
■創(chuàng)建和終止一個(gè)線程花費(fèi)時(shí)間少
■兩個(gè)線程的切換花費(fèi)時(shí)間少
■如果機(jī)器設(shè)有“存儲(chǔ)I,恢復(fù)]所有寄存器”指令,則
整個(gè)切換過程用幾條指令即可完成)
■線程之間相互通信無須調(diào)用內(nèi)核
■同一進(jìn)程內(nèi)的線程共享內(nèi)存和文件
■適合多處理機(jī)系統(tǒng)
4線程模型
二線程和進(jìn)程的關(guān)系
■單線程進(jìn)程
■多線程進(jìn)程
多線程進(jìn)程模型
單線程進(jìn)程模型
用
線程
戶控制塊
棧PCB
核
用
戶
心
棧
棧
用戶地址空間用戶
地址
空間
核
心
線程控制塊棧
包含了寄存器映像,線程優(yōu)先數(shù)和線程狀態(tài)信息
線程模型(2/3)
單線程進(jìn)程模型
PCB
用戶地址空間
線程控制塊
包含了寄存器映像,線程優(yōu)先數(shù)和線程
狀態(tài)信息
線程模型(3/3)
多線程進(jìn)程模型
線程
控制塊
PCB
用
戶
用戶棧
地址
空間核
心
棧
、■進(jìn)程的同步與互斥
■進(jìn)程的同步
■指系統(tǒng)中多個(gè)進(jìn)程中發(fā)生的事件存在某種時(shí)序關(guān)系,
需要相互合作,共同完成一項(xiàng)任務(wù)。
■進(jìn)程的同步
■由于各進(jìn)程要求共享資源,而有些資源需要互斥使用,
因此各進(jìn)程間競(jìng)爭(zhēng)使用這些資源,進(jìn)程的這種關(guān)系為
進(jìn)程的互斥
■臨界資源
■系統(tǒng)中某些資源一次只允許一個(gè)進(jìn)程使用,稱這樣的
資源為臨界資源或互斥資源
■臨界區(qū)
■在進(jìn)程中涉及到臨界資源的程序段
.實(shí)現(xiàn)臨界區(qū)互斥的方法
■軟件解法
■定義變量,進(jìn)入臨界區(qū)前和退出后執(zhí)行相應(yīng)函數(shù)Paterson算法
■需要忙等待(busywaiting)
■實(shí)現(xiàn)過于復(fù)雜,需要高的編程技巧
■硬件解法:
■提供專門的硬件指令,允許對(duì)一個(gè)字的內(nèi)容進(jìn)行檢測(cè)和修正,或交
換兩個(gè)字的內(nèi)容
■“測(cè)試并設(shè)置”(TS)指令,“交換”指令,“開關(guān)中斷”指令
■目的:解決共享變量的完整性和正確性
■簡(jiǎn)單、有效,特別適用于多處理機(jī)
■缺點(diǎn):(1)忙等待;(2)“饑餓”現(xiàn)象
信號(hào)量:seaphore
■是一個(gè)數(shù)據(jù)結(jié)構(gòu)】)信號(hào)量的物理含義:
■定義如下:S>0表示有s個(gè)資源可用
strucsemaphores=o表示無資源可用
SVO則IS|表示S等待隊(duì)列中的進(jìn)程
(個(gè)數(shù)
intvalue;
pointer_PCBqueue;P(S):表示申請(qǐng)一個(gè)資源
)"V(S):表示釋放一個(gè)資源
信號(hào)量的初值應(yīng)該大于等于0
■信號(hào)量說明:
semaphores;
P操作和V操作
I)V(s)
(
s.value=s.value-1;s.value=s.value+1;
if(s.value<0)if(s.value<=0)
((,
該進(jìn)程狀態(tài)置為等待狀態(tài)
將該進(jìn)程插入等待隊(duì)列末尾喚醒等待隊(duì)列中等待的進(jìn)程
重新調(diào)度改變?yōu)榫途w態(tài),并將其插入就緒隊(duì)列
■P.V操作必須成對(duì)出現(xiàn),有一個(gè)P操作就一定有一個(gè)V操作
■當(dāng)為互斥操作時(shí),它們同處于同一進(jìn)程
■當(dāng)為同步操作時(shí),則不在同一進(jìn)程中出現(xiàn)
■如果P(S1)和P(S2)兩個(gè)操作在一起,那么P操作的順序至關(guān)重要,一個(gè)同
步P操作與一個(gè)互斥P操作在一起時(shí)同步P操作在互斥P操作前
■而兩個(gè)V操作的順序無關(guān)緊要
空典的生產(chǎn)者一消費(fèi)者問題(同步為主)
■P進(jìn)程不能往“滿”的緩沖區(qū)中放產(chǎn)品,
設(shè)置信號(hào)量為S1
■Q進(jìn)程不能從“空”的緩沖區(qū)中取產(chǎn)品,
設(shè)置信號(hào)量S2
■S1初值為1,S2初值為0
注意:
while(true){while(true){
■私有信號(hào)量用于控制生產(chǎn)一個(gè)產(chǎn)品;P(s2);
進(jìn)程執(zhí)行順序
P(s1);從緩沖區(qū)取產(chǎn)品;
■可以擴(kuò)展理解為:
送產(chǎn)品到緩沖區(qū);V(s1);
控制進(jìn)程執(zhí)行的次數(shù)
V(s2);消費(fèi)產(chǎn)品;
■生產(chǎn)者比消費(fèi)者多1
次,消費(fèi)者比生產(chǎn)者);
多。次
多個(gè)緩沖區(qū)的生產(chǎn)者和消費(fèi)者(帶互斥的同步)
■S1初值為工,S2初值為0
-mutextl用于生產(chǎn)者互斥寫緩沖區(qū),
初值為工
■mutext2用于消費(fèi)者互斥讀緩沖區(qū),初
值為工
10,
i=0;j=o;
while(true){while(true){
注意:生產(chǎn)產(chǎn)品;P(S2);
■生產(chǎn)者消費(fèi)者問題可P(S。;P(mutex2);
以擴(kuò)展為倉庫問題,P(mutex1);從Buffer。]取產(chǎn)品;
往Buffer[i]放產(chǎn)品;
商店賣貨問題,零件j=(j+1)%n;
裝配問題。i=(i+1)%n;V(mutex2);
V(mutex1);V(Si);
■數(shù)量限制引申為進(jìn)程V(S2);消費(fèi)產(chǎn)品;
的執(zhí)行次數(shù)限制,當(dāng)};
作私有信號(hào)量的初值
商店賣食品問題
某商店有兩種食品A和B,最大數(shù)量各為m個(gè)。該商店
將A、B兩種食品搭配出售,每次各取一個(gè)。為避免食
品變質(zhì),遵循先到食品先出售的原則,有兩個(gè)食品公司
分別不斷地供應(yīng)A、B兩種食品(每次一個(gè))。為保證正常
銷售,當(dāng)某種食品的數(shù)量比另一種的數(shù)量超過k(kvm)
個(gè)時(shí),暫停對(duì)數(shù)量大的食品進(jìn)貨,補(bǔ)充數(shù)量少的食品。
-(1)問共需設(shè)置幾個(gè)進(jìn)程?
■(2)試用P、V操作解決上述問題中的同步和互斥關(guān)系。
商店賣食品問題
■這是一個(gè)三進(jìn)程同步互斥問題,互相之間的制約可以看成是執(zhí)行
次數(shù)的約束
■食品A和商店c之間同步,Sac=m,sca=O;
■食品B和商店c之間同步,Sbc=m,scb=O;
■食品A和食品B直接同步,Sab=k,sba=k;
■三者之間的對(duì)貨架操作互斥,定義mutex=1;
B:
(
P(sac);P(sbc);P(sca);
P(sab);P(sba);P(scb);
p(mutex);p(mutex);p(mutex);
store(A);store(B);take_A&B;
v(sca);v(scb);v(sac);
v(sba);v(sab);v(sbc);
v(mutext);v(mutext);v(mutext);
1;_____1;_____1;______
讀者寫者問題(互斥為主)
問題描述:
有兩組并發(fā)進(jìn)程:讀者和寫者,共享一組數(shù)據(jù)區(qū)
要求:
允許多個(gè)讀者同時(shí)執(zhí)行讀操作
不允許讀者、寫者同時(shí)操作
不允許多個(gè)寫者同時(shí)操作
第一類讀寫者問題:讀者優(yōu)先
■如果讀者到:
-1)無讀者、寫者,新讀者可以讀
-2)有寫者等,但有其它讀者正在讀,則新讀者也可以讀
?3)有寫者寫,新讀者等
■如果寫者到:
-1)無讀者,新寫者可以寫
-2)有讀者,新寫者等待
-3)有其它寫者,新寫者等待
第一類讀者寫者問題的解法
讀者:寫者:
(
P(mutex);
readcount++;
if(readcount==1)P(w);
P(w);寫
V(mutex);
讀V(w);
P(mutex);
readcount};
if(readcount==0)
V(w);
V(mutex);
);
第二類讀者寫者問題一寫者優(yōu)先
Integerrcount=0zwcount=0;
1)多個(gè)讀者可以同Semaphoremutexl=mutex2=w=r=l;
時(shí)進(jìn)行讀
讀者:
2)寫者必須互斥寫者:
(
(只允許一個(gè)寫(
P(r);P(w);
P(mutex1);
者寫,也不能讀P(mutex2)
者寫者同時(shí)進(jìn)行)rcount++;
if(rcount==1)P(w);wcount++;
3)寫者優(yōu)先于讀者V(mutex1);If(wcount==1)P(r);
(一旦有寫者,V(r);V(mutex2);
則后續(xù)讀者必須讀寫
等待,喚醒時(shí)優(yōu)P(mutex1);P(mutex2);
rcountwcount
先考慮寫者)
if(rcount==0)V(w);If(wcount==0)V(r);
注意:V(mutex1);V(mutex2);
};
■讀寫者問題可以改為為V(w);
過橋問題,巴拿馬運(yùn)河};
問題等
■單向互斥或雙向互斥
巴拿馬運(yùn)河問題
巴拿馬運(yùn)河建在太平洋和大西洋之間。由于太平洋和大
西洋水面高度不同,有巨大落差,所以運(yùn)河中修建有T
(T>=2)級(jí)船閘,并且只能允許單向通行。船閘依次
編號(hào)為1,2,……,To由大西洋來的船需經(jīng)由船閘T,
T-1,……,2,1通過運(yùn)河到太平洋;由太平洋來的船
需經(jīng)由船閘1,2,……,T-1,T通過運(yùn)河到大西洋。
試用P,V操作正確解決大西洋和太平洋的船只通航問
題。
巴拿馬運(yùn)河問題
記錄由太平洋往大西洋航行的船只,PtoAcnt=0
記錄此船閘正由大西洋往太平洋航行的船只AtoPcnt=0
對(duì)PtoAcount互斥,Mutex1=1
對(duì)AtoPcount互斥,Mutex2=1
太平洋往大西洋方向的信號(hào)量
大西洋往太平洋方向的信號(hào)量E=1
PtoA:AtoP:
({
P(W);P(E);
P(mutex1);P(mutex2);
PtoAcount++;AtoPcount++;
if(PtoAcount==1)P(E);if(AtoPcount==1)P(W);
V(mutex1);V(mutex2);
過閘過閘
P(mutex1);P(mutex2);
PtoAcountAtoPcount
if(PtoAcount==0)V(E);if(AtoPcount==0)V(W);
V(mutex1);V(mutex2);
};};
哲學(xué)家就餐問題(互斥為主)
問題描述:
■有五個(gè)哲學(xué)家圍坐在一圓桌旁,桌中央有一盤通心粉,每人面前
有一只空盤子,每?jī)扇酥g放一只筷子
■每個(gè)哲學(xué)家的行為是思考,感到饑餓,然后吃通心粉
■為了吃通心粉,每個(gè)哲學(xué)家必須拿到兩只筷子,并且每個(gè)人只能
直接從自己的左邊或右邊去取筷子
解法1:
為防止死鎖發(fā)生可采取的措施:
#defineN5
-最多允許4個(gè)哲學(xué)家同時(shí)坐在桌子周圍
voidphilosopher(inti){
-僅當(dāng)一個(gè)哲學(xué)家左右兩邊的筷子都可用時(shí),
while(true){才允許他拿筷子(4)
思考;-給所有哲學(xué)家編號(hào),奇數(shù)號(hào)的哲學(xué)家必須首
取fork。];Work[(i+1)%5];先拿左邊的筷子,偶數(shù)號(hào)的哲學(xué)家則反之
進(jìn)食;為了避免死鎖,把哲學(xué)家分為三種狀態(tài),思
放fork。];放fork[(i+1)%5];考,饑餓,進(jìn)食,并且一次拿到兩只筷子,
否則不拿
)
)
voidphilosopher(inti)
{while(true)
哲學(xué)家就餐問題解法(2)(
思考;
■#defineN5P(&mutex);
>#defineTHINKING0state[i]=HUNGRY;
?#defineHUNGRY1test(i);
>#defineEATING2V(&mutex);
■#typedefintsemaphore;P(&s[i]);
拿左筷子;拿右筷子;
■intstate[N];
進(jìn)食;
■semaphoremutex=1;放左筷子;放右筷子;
■semaphores[N];叫&mutex)
voidtest(inti)state[i]=THINKING;
{test([i-1]%5);
if(state[i]==HUNGRY)test([i+1]%5);
&&(state[(i-1)%5]!=EATING)V(&mutex);
&&(state[(i+1)%5]!=EATING))
()
state[i]=EATING;state[i]=THINKING
V(&s[i]);
s[i]=0
}
}
理發(fā)師問題(多進(jìn)程同步)
■題目:
■理發(fā)店里有一位理發(fā)師,一把理發(fā)椅和N把供等候理
發(fā)的顧客坐的椅子
■如果沒有顧客,則理發(fā)師便在理發(fā)椅上睡覺。當(dāng)一個(gè)
顧客到來時(shí),他必須先喚醒理發(fā)師
■如果顧客到來時(shí)理發(fā)師正在理發(fā),則如果有空椅子,
可坐下來等;否則離開
理發(fā)師問題
■定義
■理發(fā)師的私有信號(hào)量:等待理發(fā)的顧客c=0;
■顧客的私有信號(hào)量:等待顧客的理發(fā)師b=0;
■等待椅子的顧客數(shù)waiting=O;互斥訪問waiting變
量的mutex=1;
Customer:Barber:注意:
(
P(mutex);P(c);■理發(fā)師問題可以改為
if(waiting<N){P(mutex);牙醫(yī)問題,網(wǎng)球場(chǎng)問
waiting++;waiting-題,學(xué)生上機(jī)問題,
V(c);v(b);銀行柜員
V(mutex1);V(mutex);
P(b);理發(fā)■可以采用計(jì)數(shù)器加互
理發(fā);};斥信號(hào)量方法實(shí)現(xiàn)
}
else■也可以用私有信號(hào)量
V(mutex1);控制執(zhí)行順序
};
閱覽室問題
假定一個(gè)閱覽室最多可容納100人,讀者進(jìn)入
和離開閱覽室時(shí)都必須在閱覽室門口的一個(gè)登
記表上進(jìn)行登記(進(jìn)入時(shí)登記,離開時(shí)去掉登
記項(xiàng)),而且每次只允許一人登記或去掉登記,
問:
(1)應(yīng)編寫幾個(gè)程序完成此項(xiàng)工作,程序的
主要?jiǎng)幼魇切┦裁???yīng)設(shè)置幾個(gè)進(jìn)程?進(jìn)程與
程序間的對(duì)應(yīng)關(guān)系如何?
(2)用P,V操作寫出這些進(jìn)程的同步通信
關(guān)系。
閱覽室問題
定義登記過程的互斥信號(hào)量mutex=1
閱覽室可進(jìn)人數(shù)信號(hào)量mc=100;
所有學(xué)生進(jìn)程共用一個(gè)程序
Student:
(
P(mc);
P(mutex);
登記;
V(mutex);
閱讀;
P(mutex);
去除登記;
V(mutex);
V(mc);
L_________
網(wǎng)球場(chǎng)問題
■某高校有m個(gè)網(wǎng)球場(chǎng),n個(gè)學(xué)生預(yù)約打網(wǎng)
球,有k個(gè)裁判。每?jī)蓚€(gè)學(xué)生組成一隊(duì),
占用一個(gè)網(wǎng)球場(chǎng)練習(xí),并安排一個(gè)裁判進(jìn)
行判分(沒有安排時(shí),裁判休息)。
■請(qǐng)用PV操作完成網(wǎng)球場(chǎng)的分配和學(xué)生練
習(xí)過程
網(wǎng)球場(chǎng)問題
■用私有信號(hào)量實(shí)現(xiàn)多個(gè)進(jìn)程之間的同步,引入場(chǎng)地管理進(jìn)程,完成分配場(chǎng)
地和安排裁判的功能
-定義私有信號(hào)量,分別是
■想打球?qū)W生數(shù)student=O;場(chǎng)地?cái)?shù)site=m,裁判數(shù)judge=k;
?學(xué)生允許進(jìn)場(chǎng)信號(hào)量enter=O;學(xué)生打球結(jié)束信號(hào)量finish=O;安排教練信號(hào)
量call;
Student:monitor:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中式居住空間設(shè)計(jì)核心要點(diǎn)
- 中班幼兒禮貌教育實(shí)施總結(jié)
- 護(hù)士五分鐘演講健康宣教
- 中藥的煎藥方法
- 《客戶關(guān)系管理》課件-2.2.3 客戶分級(jí)實(shí)訓(xùn)
- 《客戶關(guān)系管理》課件-1.5.2 旅游行業(yè)客戶標(biāo)簽與畫像實(shí)戰(zhàn)應(yīng)用
- 《機(jī)械創(chuàng)新設(shè)計(jì)》課件-硬件模塊基礎(chǔ)
- 中考語文文言文教學(xué)設(shè)計(jì)詳解
- 二年級(jí)語文教學(xué)設(shè)計(jì)范本解析
- 教研組教學(xué)方案及實(shí)施細(xì)則
- 電大??啤豆芾碛⒄Z1》歷年期末考試試題及答案匯編
- 老年人護(hù)理需求評(píng)估表
- 《非政府組織管理》教學(xué)大綱
- QGW1799.1電力安全工作規(guī)程變電部分無附錄
- 核對(duì)稿100和200單元概述
- GB/T 19809-2005塑料管材和管件聚乙烯(PE)管材/管材或管材/管件熱熔對(duì)接組件的制備
- 無機(jī)及分析化學(xué)考試題(附答案)
- 體質(zhì)中醫(yī)基礎(chǔ)理論課件
- 滬教版2022年五年級(jí)語文上冊(cè)期末整理復(fù)習(xí)全能練習(xí)單
- 靈芝孢子油課件
- 電力工程檢驗(yàn)批質(zhì)量驗(yàn)收記錄【完整版】
評(píng)論
0/150
提交評(píng)論