滁州學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系_第1頁(yè)
滁州學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系_第2頁(yè)
滁州學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系_第3頁(yè)
滁州學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系_第4頁(yè)
滁州學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系_第5頁(yè)
已閱讀5頁(yè),還剩85頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、計(jì)算機(jī)與信息工程學(xué)院-操作系統(tǒng) 課程教案滁州學(xué)院計(jì)算機(jī)與信息工程學(xué)院課程教案課程名稱(chēng): 操作系統(tǒng) 授課教師: 李元金 學(xué)習(xí)對(duì)象:2015級(jí)計(jì)算機(jī)科學(xué)與技術(shù)(對(duì)口) 任課時(shí)間: 2016年9月-2016年12月 滁州學(xué)院計(jì)算機(jī)與信息工程學(xué)院2016年8月89第1講 操作系統(tǒng)引論(1)一、 教學(xué)目標(biāo) 1.掌握操作系統(tǒng)的目標(biāo)、作用;2.了解操作系統(tǒng)的發(fā)展過(guò)程;二、 重點(diǎn)與難點(diǎn)分析1.重點(diǎn):操作系統(tǒng)的目標(biāo)和作用; 2.難點(diǎn): 無(wú)三、 教學(xué)內(nèi)容與教學(xué)過(guò)程1.課程簡(jiǎn)介 (15分鐘)自我介紹、理論課與實(shí)驗(yàn)課介紹、介紹課程地位、學(xué)習(xí)目的、教學(xué)內(nèi)容、學(xué)習(xí)要求、考核方式、實(shí)驗(yàn)教學(xué)安排等。教學(xué)提示:考核成績(jī)包括2部

2、分:平時(shí)占40 %,期末筆試占60%。 2. 講授新課復(fù)習(xí)計(jì)算機(jī)系統(tǒng)組成:硬件系統(tǒng)、軟件系統(tǒng)(操作系統(tǒng)在軟件系統(tǒng)中的地位)。 操作系統(tǒng)的目標(biāo)和作用 (20分鐘)操作系統(tǒng)的目標(biāo):有效性、方便性、可擴(kuò)充性、開(kāi)放性; 操作系統(tǒng)的作用,從不同的觀點(diǎn)出發(fā)觀察操作系統(tǒng)的作用:用戶觀點(diǎn):作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口;資源管理觀點(diǎn):作為計(jì)算機(jī)系統(tǒng)資源的管理者;發(fā)展觀點(diǎn):實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象。教學(xué)提示:結(jié)合Windows操作系統(tǒng)舉例講解。推動(dòng)操作系統(tǒng)發(fā)展的主要?jiǎng)恿Γ翰粩嗵岣哂?jì)算機(jī)資源的利用率;方便用戶;器件的不斷更新?lián)Q代;計(jì)算機(jī)體系結(jié)構(gòu)的不斷發(fā)展。 操作系統(tǒng)的發(fā)展過(guò)程 (47分鐘)無(wú)操作系統(tǒng)的計(jì)算機(jī)系

3、統(tǒng):人工操作方式:電子管計(jì)算機(jī),無(wú)操作系統(tǒng),由手工控制作業(yè)的輸入輸出,通過(guò)控制臺(tái)開(kāi)關(guān)啟動(dòng)程序運(yùn)行;特點(diǎn):用戶獨(dú)占全機(jī)及CPU等待人工操作;脫機(jī)輸入/輸出方式:引入I/O機(jī)的概念,解決前者的缺點(diǎn);特點(diǎn):減少了CPU的空閑時(shí)間且提高I/O速度;單道批處理系統(tǒng):系統(tǒng)對(duì)作業(yè)的處理都是成批進(jìn)行的、且內(nèi)存中始終只保持一道作業(yè);批處理系統(tǒng)的引入是為了提高系統(tǒng)資源的利用率和吞吐量;特征:自動(dòng)性、順序性、單道性;多道批處理系統(tǒng):系統(tǒng)中同時(shí)駐留多個(gè)作業(yè);多道引入的優(yōu)點(diǎn):提高CPU利用率;提高內(nèi)存和I/O設(shè)備利用率;提高了系統(tǒng)吞吐量;特征:多道性、無(wú)序性、調(diào)度性:作業(yè)調(diào)度、進(jìn)程調(diào)度缺點(diǎn):平均周轉(zhuǎn)時(shí)間長(zhǎng)、無(wú)交互能力多

4、道批處理系統(tǒng)需要解決的問(wèn)題。教學(xué)提示:引導(dǎo)學(xué)生思考引入多道程序會(huì)帶來(lái)什么問(wèn)題?處理機(jī)管理問(wèn)題、內(nèi)存管理問(wèn)題、I/O管理問(wèn)題、文件管理問(wèn)題、作業(yè)管理問(wèn)題。由多道批處理系統(tǒng)引出操作系統(tǒng)及其定義: 操作系統(tǒng)是一組控制和管理計(jì)算機(jī)硬件和軟件資源,合理地對(duì)各類(lèi)作業(yè)進(jìn)行調(diào)度,以及方便用戶使用的程序的集合。分時(shí)系統(tǒng):指一臺(tái)主機(jī)上連接了多個(gè)帶有顯示器和鍵盤(pán)的終端,同時(shí)允許多個(gè)用戶通過(guò)自己的終端,以交互方式使用計(jì)算機(jī),共享主機(jī)中的資源。滿足用戶的需求:人機(jī)交互性、共享主機(jī)、便于用戶上機(jī)分時(shí)系統(tǒng)在實(shí)現(xiàn)中的關(guān)鍵問(wèn)題:及時(shí)接收:多終端卡、輸入緩沖區(qū);及時(shí)處理:交互作業(yè)應(yīng)在內(nèi)存、響應(yīng)時(shí)間應(yīng)短。分時(shí)系統(tǒng)的實(shí)現(xiàn)方法:交互式

5、作業(yè)直接進(jìn)入內(nèi)存、以分配時(shí)間片方式實(shí)現(xiàn)。分時(shí)系統(tǒng)的特征:多路性、獨(dú)立性、及時(shí)性、交互性實(shí)時(shí)系統(tǒng):引入:要求及時(shí)處理的場(chǎng)合概念系統(tǒng)能及時(shí)響應(yīng)外部事件的請(qǐng)求,在規(guī)定時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行。類(lèi)型:實(shí)時(shí)控制、實(shí)時(shí)信息處理實(shí)時(shí)任務(wù)類(lèi)型:按任務(wù)執(zhí)行是否呈現(xiàn)周期性來(lái)劃分周期性的(聯(lián)系周期);非周期性的(聯(lián)系開(kāi)始或完成截止時(shí)間)根據(jù)對(duì)截止時(shí)間的要求來(lái)劃分硬實(shí)時(shí)任務(wù)、軟實(shí)時(shí)任務(wù)。實(shí)時(shí)、分時(shí)的比較:多路性:相同;獨(dú)立性:相同;及時(shí)性:實(shí)時(shí)系統(tǒng)要求更高;交互性:分時(shí)系統(tǒng)交互性更強(qiáng);可靠性:實(shí)時(shí)系統(tǒng)要求更高。通用操作系統(tǒng):各種操作系統(tǒng)的出現(xiàn),致使操作系統(tǒng)日益完善,出現(xiàn)了通用操作系統(tǒng)

6、。通用操作系統(tǒng)兼有多道批處理、分時(shí)、實(shí)時(shí)處理的功能。操作系統(tǒng)的進(jìn)一步發(fā)展:個(gè)人計(jì)算機(jī)上的操作系統(tǒng)、嵌入式操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)、智能化操作系統(tǒng)。微機(jī)操作系統(tǒng)的發(fā)展:?jiǎn)斡脩魡稳蝿?wù)操作系統(tǒng)、單用戶多任務(wù)操作系統(tǒng)、多用戶多任務(wù)操作系統(tǒng)。3.教學(xué)小結(jié) (5分鐘)本講首先介紹課程的基本情況以及要求,然后介紹操作系統(tǒng)的目標(biāo)和作用以及操作系統(tǒng)的發(fā)展歷史。參考資料和深入學(xué)習(xí)途徑孫鐘秀.操作系統(tǒng)教程(第四版)M. 北京:高等教育出版社,2008.張獻(xiàn)忠.操作系統(tǒng)M. 北京 :電子工業(yè)出版社,2007.Andrew S. Tanenbaum著,陳向群,馬洪兵等譯. 現(xiàn)代操作系統(tǒng)M. 北京:機(jī)械工業(yè)

7、出版社,2005.四、 作業(yè)與實(shí)驗(yàn)布置 (3分鐘)1.作業(yè)P33 1.設(shè)計(jì)現(xiàn)代OS的主要目標(biāo)是什么?4.試說(shuō)明推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁础?.何謂脫機(jī)I/O和聯(lián)機(jī)I/O?7.實(shí)現(xiàn)分時(shí)系統(tǒng)的關(guān)鍵是什么?應(yīng)如何解決?12.試從交互性、及時(shí)性以及可靠性方面,將分時(shí)系統(tǒng)與實(shí)時(shí)系統(tǒng)進(jìn)行比較。 2.實(shí)驗(yàn) 本講無(wú)實(shí)驗(yàn)第2講 操作系統(tǒng)引論(2)一、 教學(xué)目標(biāo) 1.掌握操作系統(tǒng)的基本特性;2.理解操作系統(tǒng)的主要功能模塊;3.了解操作系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)方法。二、 重點(diǎn)與難點(diǎn)分析1.重點(diǎn):操作系統(tǒng)的基本特性、操作系統(tǒng)的主要功能模塊; 2.難點(diǎn): 操作系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)方法。三、 教學(xué)內(nèi)容與教學(xué)過(guò)程1.復(fù)習(xí)

8、上一講內(nèi)容 (10分鐘)操作系統(tǒng)的目標(biāo)和作用、操作系統(tǒng)的發(fā)展過(guò)程等。 2.講授新課操作系統(tǒng)的基本特征(17分鐘)并發(fā)性并行性:兩或多個(gè)事件在同一時(shí)刻發(fā)生。并發(fā)性:兩或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生。進(jìn)程:系統(tǒng)中能獨(dú)立運(yùn)行并作為資源分配的基本單位。引入線程后,獨(dú)立運(yùn)行的單位變?yōu)榫€程。教學(xué)提示:只有一個(gè)CPU的計(jì)算機(jī)運(yùn)行時(shí)任務(wù)之間只能并發(fā)處理不能并行處理。共享性系統(tǒng)中資源可供內(nèi)存中多個(gè)并發(fā)執(zhí)行的進(jìn)程(線程)共同使用?;コ夤蚕恚阂欢螘r(shí)間只允許一個(gè)進(jìn)程訪問(wèn)該資源。臨界資源:在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問(wèn)的資源。同時(shí)訪問(wèn):微觀上仍是互斥的。教學(xué)提示:并發(fā)和共享是操作系統(tǒng)的兩個(gè)最基本的特征。虛擬技術(shù)虛擬:通

9、過(guò)某種技術(shù)把一個(gè)物理實(shí)體變?yōu)槿舾蓚€(gè)邏輯上的對(duì)應(yīng)物。教學(xué)提示:在操作系統(tǒng)里有兩種實(shí)驗(yàn)虛擬技術(shù)的方式,即時(shí)分復(fù)用技術(shù)和空分復(fù)用技術(shù)。異步性進(jìn)程以人們不可預(yù)知的速度向前推進(jìn)。 OS的主要功能(55分鐘)處理機(jī)管理在傳統(tǒng)的多道環(huán)境下,處理機(jī)的運(yùn)行及分配都是以進(jìn)程為單位,因此處理機(jī)管理可歸結(jié)為進(jìn)程管理,引入線程后,也包括對(duì)線程的管理。 存儲(chǔ)器管理為多道程序的運(yùn)行提供良好的環(huán)境,方便用戶使用存儲(chǔ)器,提高存儲(chǔ)器的利用率以及能從邏輯上擴(kuò)充內(nèi)存。設(shè)備管理完成用戶進(jìn)程提出的I/O請(qǐng)求;為用戶進(jìn)程分配其所需的I/O設(shè)備;提高CPU和I/O利用率以及I/O速度,方便用戶。文件管理對(duì)用戶文件和系統(tǒng)文件進(jìn)行管理,以方便用

10、戶使用,并保證文件的安全性。教學(xué)提示:操作系統(tǒng)主要任務(wù),是為多道程序的運(yùn)行提供良好的運(yùn)行環(huán)境,以保證多道程序能有條不紊、高效地運(yùn)行,并能最大程度地提高系統(tǒng)中各種資源的利用率和方便用戶的使用。操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì)傳統(tǒng)的操作系統(tǒng)結(jié)構(gòu)無(wú)結(jié)構(gòu)操作系統(tǒng)。模塊化結(jié)構(gòu)操作系統(tǒng)。分層次式結(jié)構(gòu)操作系統(tǒng)?,F(xiàn)代結(jié)構(gòu)的操作系統(tǒng)微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)。無(wú)結(jié)構(gòu)操作系統(tǒng)一組過(guò)程集,各過(guò)程可相互調(diào)用,也叫整體系統(tǒng)結(jié)構(gòu)。缺點(diǎn):邏輯復(fù)雜,維護(hù)困難。傳統(tǒng)的操作系統(tǒng)結(jié)構(gòu)模塊化操作系統(tǒng)通過(guò)分解來(lái)控制大型軟件復(fù)雜度。如:進(jìn)程模塊、內(nèi)存模塊,各模塊內(nèi)進(jìn)一步劃分子模塊。優(yōu)點(diǎn):提高了OS設(shè)計(jì)的可維護(hù)性。增強(qiáng)的OS的可適應(yīng)性。加速了OS的開(kāi)發(fā)過(guò)程:并

11、行開(kāi)發(fā)模塊。缺點(diǎn):接口不易確定。模塊依賴(lài)關(guān)系可能復(fù)雜(對(duì)于大型軟件而言)。分層式操作系統(tǒng)。有序分層。優(yōu)點(diǎn):易保證系統(tǒng)的正確性。易擴(kuò)充和易維護(hù)性。缺點(diǎn):系統(tǒng)效率低?,F(xiàn)代結(jié)構(gòu)的操作系統(tǒng)3.教學(xué)小結(jié) (5分鐘)本講首先復(fù)習(xí)了上一講所講解的主要內(nèi)容,然后介紹了操作系統(tǒng)的主要特征,最后講解了操作系統(tǒng)的主要功能和設(shè)計(jì)。四、 作業(yè)與實(shí)驗(yàn)布置 (3分鐘)1.作業(yè)P33 13.操作系統(tǒng)有哪幾大特征?其最基本的特征是什么?18.是什么原因使得操作系統(tǒng)具有異步性特征?19.模塊接口法存在哪些問(wèn)題?可通過(guò)什么樣的途徑來(lái)解決?24.微內(nèi)核操作系統(tǒng)具有哪些優(yōu)點(diǎn)?它為何能有這些優(yōu)點(diǎn)? 2.實(shí)驗(yàn) 本講無(wú)實(shí)驗(yàn)第3講 進(jìn)程管理(

12、1)一、 教學(xué)目標(biāo) 1.掌握前趨圖,順序執(zhí)行和并發(fā)執(zhí)行的特征;2.掌握進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換;3.掌握進(jìn)程與程序的聯(lián)系與區(qū)別;二、 重點(diǎn)與難點(diǎn)1.重點(diǎn):進(jìn)程的概念、狀態(tài)的切換條件及因果關(guān)系。2.難點(diǎn):進(jìn)程狀態(tài)的切換。三、 教學(xué)過(guò)程的具體安排1.復(fù)習(xí)上一講內(nèi)容 (10分鐘) 操作系統(tǒng)的特征、操作系統(tǒng)的功能、操作系統(tǒng)的設(shè)計(jì)等。2.講授新課(72分鐘)程序的順序執(zhí)行及特征程序的順序執(zhí)行: I1C1P1I2C2P2 教學(xué)提示:程序順序執(zhí)行時(shí)的特征:順序性;封閉性; 可再現(xiàn)性。 前趨圖:前趨圖(Precedence Graph)是一個(gè)有向無(wú)循環(huán)圖,記為DAG(Directed Acyclic Graph

13、),用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。圖中的每個(gè)結(jié)點(diǎn)可用于描述一個(gè)程序段或進(jìn)程,乃至一條語(yǔ)句;結(jié)點(diǎn)間的有向邊則用于表示兩個(gè)結(jié)點(diǎn)之間存在的偏序(Partial Order)或前趨關(guān)系(Precedence Relation)“”。P1P2P3P4程序的并發(fā)執(zhí)行及其特征 程序的并發(fā)執(zhí)行:教學(xué)提示:程序并發(fā)執(zhí)行時(shí)的特征: 間斷性;失去封閉性;不可再現(xiàn)性。 進(jìn)程的特征與狀態(tài)進(jìn)程的特征和定義:結(jié)構(gòu)特征;動(dòng)態(tài)性;并發(fā)性;獨(dú)立性;異步性。定義。進(jìn)程的三種基本狀態(tài): 就緒(Ready)狀態(tài);執(zhí)行狀態(tài);阻塞狀態(tài)。進(jìn)程的三種基本狀態(tài)及其轉(zhuǎn)換如下圖: 掛起狀態(tài)引入掛起狀態(tài)的原因 終端用戶的請(qǐng)求;父進(jìn)程請(qǐng)求;負(fù)荷調(diào)節(jié)的

14、需要;操作系統(tǒng)的需要。具有掛起狀態(tài)的進(jìn)程狀態(tài)圖(如下圖) 進(jìn)程控制塊進(jìn)程控制塊的作用:其作用是將一個(gè)不能獨(dú)立運(yùn)行的程序變成一個(gè)可以獨(dú)立運(yùn)行的基本單位,一個(gè)能與其他進(jìn)程并發(fā)執(zhí)行的進(jìn)程。教學(xué)提示:操作系統(tǒng)利用PCB來(lái)對(duì)并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理,PCB是進(jìn)程存在的唯一標(biāo)志。進(jìn)程與PCB是一一對(duì)應(yīng)的。PCB(process control block)常駐內(nèi)存。進(jìn)程控制塊中的信息:進(jìn)程控制塊中的信息如下表所示。pid進(jìn)程狀態(tài)現(xiàn)場(chǎng)優(yōu)先級(jí)阻塞原因程序地址同步機(jī)制資源清單鏈接指針進(jìn)程控制塊的組織方式鏈接:索引:進(jìn)程控制 進(jìn)程控制就是對(duì)系統(tǒng)中的所有進(jìn)程實(shí)施管理,進(jìn)程控制一般有原語(yǔ)來(lái)實(shí)現(xiàn)。所謂原語(yǔ)是一種特殊

15、的系統(tǒng)功能調(diào)用,它可以完成一個(gè)特定的功能,其特點(diǎn)是原語(yǔ)執(zhí)行時(shí)不可被中斷。常用原語(yǔ):創(chuàng)建原語(yǔ)終止原語(yǔ)阻塞原語(yǔ)、喚醒原語(yǔ)進(jìn)程的創(chuàng)建:進(jìn)程圖(Process Graph)DEFGHBCIJKLMA3.教學(xué)小結(jié) (5分鐘)本講首先復(fù)習(xí)了上一講所講解的主要內(nèi)容,然后介紹了程序的并發(fā)運(yùn)行與順序運(yùn)行,最后講解了進(jìn)程控制塊以及它的創(chuàng)建。四、 作業(yè)與實(shí)驗(yàn)(3分鐘)1.作業(yè)P812.試畫(huà)出下面四條語(yǔ)句的前趨圖: S1: a: =x+y; S2: b: =z+1; S3: c: =a-b; S4: w: =c+1;6.試從動(dòng)態(tài)性、并發(fā)性和獨(dú)立性上比較進(jìn)程和程序。7.試說(shuō)明PCB的作用,為什么說(shuō)PCB進(jìn)程存在的惟一標(biāo)

16、志?9.為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質(zhì)?2.實(shí)驗(yàn) 實(shí)驗(yàn)一:Linux系統(tǒng)基本操作 第4講 進(jìn)程管理(2)一、 教學(xué)目標(biāo) 1.理解臨界資源、臨界區(qū)的概念;2.掌握常用的信號(hào)量機(jī)制;二、 重點(diǎn)與難點(diǎn)分析1.重點(diǎn):臨界資源、信號(hào)量機(jī)制;2.難點(diǎn):信號(hào)量機(jī)制。三、 教學(xué)內(nèi)容與教學(xué)過(guò)程1.復(fù)習(xí)(10分鐘)復(fù)習(xí)上一講內(nèi)容,前趨圖,順序執(zhí)行和并發(fā)執(zhí)行的特征,進(jìn)程與PCB等。2.講授新課 進(jìn)程同步的基本概念 (12分鐘)進(jìn)程同步任務(wù)對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),以使并發(fā)執(zhí)行的諸進(jìn)程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。兩種形式的制約關(guān)系:進(jìn)程間接制約;進(jìn)程直接制約。教學(xué)提

17、示:臨界資源:一次僅允許一個(gè)進(jìn)程訪問(wèn)的資源。舉例:生產(chǎn)者消費(fèi)者問(wèn)題Dijkstra把同步問(wèn)題抽象成一種生產(chǎn)者和消費(fèi)者關(guān)系,計(jì)算機(jī)系統(tǒng)中的許多問(wèn)題都可以被歸結(jié)為生產(chǎn)者和消費(fèi)者關(guān)系,例如,生產(chǎn)者可以是計(jì)算進(jìn)程,消費(fèi)者是打印進(jìn)程,輸入時(shí)輸入進(jìn)程是生產(chǎn)者,計(jì)算進(jìn)程是消費(fèi)者。我們可以通過(guò)一個(gè)緩沖區(qū)把生產(chǎn)者和消費(fèi)者聯(lián)系起來(lái)。臨界區(qū):進(jìn)程訪問(wèn)臨界資源的那段代碼。訪問(wèn)臨界資源的描述:進(jìn)入?yún)^(qū):檢查有無(wú)進(jìn)程進(jìn)入臨界區(qū):退出區(qū):將訪問(wèn)標(biāo)志復(fù)位剩余區(qū)RepeatEntry sectionCritical sectionExit sectionremainder sectionUntil false同步機(jī)制應(yīng)遵循的準(zhǔn)則

18、:空閑讓進(jìn);忙則等待;有限等待;讓權(quán)等待。 信號(hào)量機(jī)制 (37分鐘)解決進(jìn)程同步問(wèn)題可以使用中斷機(jī)制,特殊的機(jī)器指令以及信號(hào)量機(jī)制等。重點(diǎn)講解信號(hào)量機(jī)制,信號(hào)量機(jī)制是由荷蘭學(xué)者Dijkstra在1965年提出來(lái)的有效的進(jìn)程同步工具。信號(hào)量機(jī)制得到廣泛的發(fā)展,經(jīng)過(guò)了整型信號(hào)量、記錄型信號(hào)量、AND型信號(hào)量、信號(hào)量集。整型信號(hào)量:一個(gè)整型量S,通過(guò)2個(gè)原子操作wait(S)和signal(S)來(lái)訪問(wèn)。(P、V操作)Wait(S): while S= 0 do no-opS:=S-1;Signal(S):S:=S+1;記錄型信號(hào)量:procedure wait(s)var S: semaphoreb

19、eginS.value:=S.value 1;if S.value 0 them block (S.L)endAND型信號(hào)量:Swait(S1,S2,Sn)if S11 and and Sn 1 then for i:=1 to n do Si:=Si-1; endforelseplace the process in the waiting queue with the first Si found with Si1, and set the program count of this process to the beginning of swait operationend if Ssi

20、gnal(S1,S2,Sn)for i:=1 to n do Si:=Si+1; Remove all the process waiting in the queue associated with Si into the ready queue endfor信號(hào)量集: Swait(S1,t1,d1,Sn,tn,dn)if Siti and and Sn tn then for i:=1 to n do Si:=Si-di; endforelseplace the executing process in the waiting queue of the first Si found wit

21、h Siti, and set the program counter to of the beginning of Swait operationend if Ssignal(S1,d1,Sn,dn)for i:=1 to n do Si:=Si+1; Remove all the process waiting in the queue associated with Si into the ready queue endfor教學(xué)提示:結(jié)合各個(gè)信號(hào)量機(jī)制的描述,講解其具體功能及每部分的含義,尤其是 記錄型信號(hào)量中S.value不同取值代表的意義。 信號(hào)量的應(yīng)用 (10分鐘)利用信號(hào)量實(shí)現(xiàn)

22、進(jìn)程互斥(舉例如下)var mutex: semaphore:=1beginparbeginprocess1:beginrepeat wait(mutex); critical setion signal(mutex); remainder sectionuntil false; endprocess2: begin repeat wait(mutex); critical setion signal(mutex); remainder sectionuntil false;endpar end利用信號(hào)量實(shí)現(xiàn)前趨關(guān)鍵舉例:(前趨圖為教材中的圖2-12)Var a,b,c,d,e,f,g:sem

23、aphore:=0,0,0,0,0,0,0;Beginparbegin begin S1; signal(a); signal(b); end; begin wait(a);S2; signal(c); signal(d); end; begin wait(b);S3; signal(e); end; begin wait(c);S4; signal(f); end; begin wait(d);S5; signal(g); end; begin wait(e); wait(f);wait(g);S6; end;parendend 教學(xué)提示:結(jié)合實(shí)例講解利用信號(hào)量解決互斥和前趨關(guān)系的方法 管程

24、機(jī)制 (15分鐘)教學(xué)提示:為什么要引入管程機(jī)制?管程的定義:(Hansan):一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程所執(zhí)行(在該數(shù)據(jù)結(jié)構(gòu)上)的一組操作,這組操作能同步進(jìn)程和改變管程中的數(shù)據(jù)。管程的組成:管程的名稱(chēng);局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說(shuō)明;對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過(guò)程;對(duì)局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語(yǔ)句。管程的特征:模塊化;抽象數(shù)據(jù)類(lèi)型;信息掩蔽。管程與進(jìn)程的區(qū)別:從六個(gè)方面進(jìn)行闡述。條件變量:引入條件變量的原因:防止進(jìn)程在管程內(nèi)阻塞或掛起,而是使其它進(jìn)程長(zhǎng)時(shí)間等待。條件的說(shuō)明形式:Var x,y:condtion;條件變量的操作wait,signal,表示為x.wait,x.sing

25、al。教學(xué)提示:重點(diǎn)講解x.wait,x.signal的含義3. 教學(xué)小結(jié) (3分鐘)本講主要介紹了進(jìn)程的同步、臨界資源、臨界去的概念。進(jìn)程同步的信號(hào)量機(jī)制及應(yīng)用、管程機(jī)制。四、 作業(yè)與實(shí)驗(yàn)(3分鐘)1.作業(yè)P8113.在創(chuàng)建一個(gè)進(jìn)程時(shí)所要完成的主要工作是什么?14.在撤銷(xiāo)一個(gè)進(jìn)程時(shí)所要完成的主要工作是什么?17.為什么進(jìn)程在進(jìn)入臨界區(qū)之前應(yīng)先執(zhí)行“進(jìn)入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出區(qū)”代碼?21.如何利用信號(hào)量機(jī)制來(lái)實(shí)現(xiàn)多個(gè)進(jìn)行對(duì)臨界資源的互斥訪問(wèn)?并舉例說(shuō)明之。2.實(shí)驗(yàn) 本講無(wú)實(shí)驗(yàn)第5講 進(jìn)程管理(3)一、 教學(xué)目標(biāo) 1.掌握利用信號(hào)量機(jī)制解決經(jīng)典的進(jìn)程同步問(wèn)題的方法; 2.掌握P、V

26、操作的實(shí)現(xiàn);二、 重點(diǎn)與難點(diǎn)分析1.重點(diǎn):P、V操作、信號(hào)量機(jī)制;2.難點(diǎn):信號(hào)量機(jī)制解決經(jīng)典的進(jìn)程同步問(wèn)題。三、 教學(xué)內(nèi)容與教學(xué)過(guò)程1.復(fù)習(xí)(5分鐘)復(fù)習(xí)上一講內(nèi)容,臨界資源、臨界區(qū),信號(hào)量機(jī)制等。2.講授新課生產(chǎn)者一消費(fèi)者問(wèn)題(15分鐘)Dijkstra把同步問(wèn)題抽象成一種生產(chǎn)者和消費(fèi)者關(guān)系,計(jì)算機(jī)系統(tǒng)中的許多問(wèn)題都可以被歸結(jié)為生產(chǎn)者和消費(fèi)者關(guān)系,例如,生產(chǎn)者可以是計(jì)算進(jìn)程,消費(fèi)者是打印進(jìn)程,輸入時(shí)輸入進(jìn)程是生產(chǎn)者,計(jì)算進(jìn)程是消費(fèi)者。我們可以通過(guò)一個(gè)緩沖區(qū)把生產(chǎn)者和消費(fèi)者聯(lián)系起來(lái)。上述生產(chǎn)者-消費(fèi)者問(wèn)題是一個(gè)同步問(wèn)題。即生產(chǎn)者和消費(fèi)者之間滿足如下條件:消費(fèi)者想接收數(shù)據(jù)時(shí),有界緩沖區(qū)中至少有

27、一個(gè)單元是滿的;生產(chǎn)者想發(fā)送數(shù)據(jù)時(shí),有界緩沖區(qū)中至少有一個(gè)單元是空的。由于有界緩沖區(qū)是臨界資源,因此,各生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程之間必須互斥執(zhí)行。由以上分析我們?cè)O(shè)公用信號(hào)量mutex保證生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程之間的互斥,設(shè)信號(hào)量empty表示有界緩沖區(qū)中的空單元數(shù),初值為n;信號(hào)量full表示有界緩沖區(qū)中的非空單元數(shù),初值為0。信號(hào)量mutex表示有界緩沖區(qū)中的個(gè)數(shù),初值為1。利用記錄型信號(hào)量解決生產(chǎn)者一消費(fèi)者問(wèn)題:mutex:使諸進(jìn)程互斥地訪問(wèn)緩沖區(qū)(n個(gè)緩沖區(qū))empty、 full:空、滿緩沖區(qū)數(shù)量。Var mutex,empty,full:semaphore:=1,n,0; buffer

28、:array0,1,n-1 of item;in, out: integer: =0,0;begin parbeginproducer: begin repeat Produce an item in nextp; 利用AND信號(hào)量解決生產(chǎn)者消費(fèi)者問(wèn)題:var mutex, empty, full: semaphore:=1,n,0;buffer:array0,n-1 of item;in out: integer :=0,0; beginparbegin哲學(xué)家進(jìn)餐問(wèn)題(15分鐘)有五個(gè)哲學(xué)家共用一張圓桌,分別坐在周?chē)奈鍙堃巫由?,在圓桌上有五個(gè)碗和五只筷子,他們的生活方式是交替地進(jìn)行思考和進(jìn)

29、餐。平時(shí),一個(gè)哲學(xué)家進(jìn)行思考,饑餓時(shí)便試圖取其左右最靠近他的筷子,只有在他拿到兩只筷子時(shí)才能進(jìn)餐,進(jìn)餐完畢,放下筷子繼續(xù)思考。Var chopstick: array0, , 4 of semaphore:=(1,1,1,1,1);repeat swait(chopsticki); wait(chopstick(i+1)mod 5 ); eat; signal(chopsticki) ; signal(chopstick(i+1)mod 5 ); think;Until false上述解決哲學(xué)家進(jìn)餐問(wèn)題的方法,可以保證不會(huì)有兩個(gè)相鄰的哲學(xué)家同時(shí)進(jìn)餐,但是可能引起死鎖。解決方法:至多允許有四位哲

30、學(xué)家同時(shí)去拿左邊的筷子,最終能保證至少有一位哲學(xué)家能夠進(jìn)餐,并在用畢時(shí)能釋放出他用過(guò)的兩只筷子,從而使更多的哲學(xué)家能夠進(jìn)餐。僅當(dāng)哲學(xué)家的左右兩只筷子均可用時(shí),才允許他拿起筷子進(jìn)餐。規(guī)定奇數(shù)號(hào)哲學(xué)家先拿他左邊的筷子,然后再去拿右邊的筷子,而偶數(shù)號(hào)哲學(xué)家則相反。Var chopstick: array0, , 4 of semaphore:=(1,1,1,1,1);processi repeat think; Sswait(chopstick(i+1)mod 5,chopsticki); eat Ssignal(chopstick(i+1)mod 5,chopsticki);Until false

31、教學(xué)提示:結(jié)合各個(gè)信號(hào)量機(jī)制的描述,講解其具體功能及每部分的含義,尤其是 記錄型信號(hào)量中S.value不同取值代表的意義。讀者寫(xiě)者問(wèn)題(10分鐘)一個(gè)數(shù)據(jù)文件或記錄,可被多個(gè)進(jìn)程共享,把只要求讀該文件的進(jìn)程成為“Reader進(jìn)程”,其他進(jìn)程則稱(chēng)為“Write進(jìn)程”。保證一個(gè)Write進(jìn)程必須與其他進(jìn)程互斥地訪問(wèn)共享對(duì)象的同步問(wèn)題。var rmutex, wmutex: semaphore: =1,1; readcount:integer: =0; begin parbegin reader: begin repeat wait(rmutex); if readcount=0 then wait

32、(wmutex); readcount:=readcount+1; signal(rmutex);perform read operationwait(rmutex);readcount:=readcount-1;if readcount=0 then signal(wmutex);signal(rmutex); until false; endwriter: beginrepeat wait(wmutex); perform write operation; signal(wmutex);until false;end parend end教學(xué)提示:結(jié)合實(shí)例講解利用信號(hào)量解決互斥和前趨關(guān)系的

33、方法 P操作和V操作(5分鐘)P(s):若S=0,繼續(xù)取s值減1V(s):若S0,繼續(xù)取s值加1教學(xué)提示:P和V操作重在理解。信號(hào)量及P、V操作討論(5分鐘)對(duì)于兩個(gè)并發(fā)進(jìn)程,互斥信號(hào)量的值僅取1、0和-1三個(gè)值 若1表示沒(méi)有進(jìn)程進(jìn)入臨界區(qū)若0表示有一個(gè)進(jìn)程進(jìn)入臨界區(qū)若-1表示一個(gè)進(jìn)程進(jìn)入臨界區(qū),另一個(gè)進(jìn)程等待進(jìn)入。 信號(hào)量的物理含義:S0表示有S個(gè)資源可用S=0表示無(wú)資源可用S0則| S |表示S等待隊(duì)列中的進(jìn)程個(gè)數(shù)P(S):表示申請(qǐng)一個(gè)資源 V(S):表示釋放一個(gè)資源。信號(hào)量的初值應(yīng)該大于等于0例題(30分鐘)例1:設(shè)某計(jì)算進(jìn)程和打印進(jìn)程共用一個(gè)單緩沖區(qū),進(jìn)程負(fù)責(zé)不斷地計(jì)算數(shù)據(jù)并送入緩沖區(qū)

34、中,進(jìn)程負(fù)責(zé)不斷地從緩沖區(qū)中取出數(shù)據(jù)去打印。通過(guò)分析可知,CP、必須遵守以下同步規(guī)則:當(dāng)進(jìn)程把計(jì)算結(jié)果送入緩沖區(qū)時(shí),IOP進(jìn)程才 能從緩沖區(qū)中取出結(jié)果去打印;當(dāng)IOP進(jìn)程把緩沖區(qū)中的數(shù)據(jù)取出打印后,進(jìn)程才能把下一個(gè)計(jì)算結(jié)果送入緩沖區(qū)。用P、V操作解決下圖之同步問(wèn)題 教學(xué)提示:分別考慮對(duì)緩沖區(qū)S和T的同步,再合并考慮例2:桌上有一空盤(pán),最多允許存放一只水果。爸爸可向盤(pán)中放一個(gè)蘋(píng)果或放一個(gè)桔子,兒子專(zhuān)等吃盤(pán)中的桔子,女兒專(zhuān)等吃蘋(píng)果。試用P、V操作實(shí)現(xiàn)爸爸、兒子、女兒三個(gè)并發(fā)進(jìn)程的同步。教學(xué)提示:設(shè)置一個(gè)信號(hào)量表示可否向盤(pán)中放水果,一個(gè)信號(hào)量表示可否取桔子,一個(gè)信號(hào)量表示可否取蘋(píng)果。例3:四個(gè)進(jìn)程A

35、、B、C、D都要讀一個(gè)共享文件F,系統(tǒng)允許多個(gè)進(jìn)程同時(shí)讀文件F。但限制是進(jìn)程A和進(jìn)程C不能同時(shí)讀文件F,進(jìn)程B和進(jìn)程D也不能同時(shí)讀文件F。為了使這四個(gè)進(jìn)程并發(fā)執(zhí)行時(shí)能按系統(tǒng)要求使用文件,現(xiàn)用P,V操作進(jìn)行管理。定義二個(gè)信號(hào)量S1、S2,初值均為1,即:S1=1,S2=1。其中進(jìn)程A和C使用信號(hào)量S1,進(jìn)程B和D使用信號(hào)量S2。A:P(S1) V(S1)B: P(S2) V(S2)C: P(S1) V(S1) D:P(S2) V(S2)例4:有一閱覽室,讀者進(jìn)入時(shí)必須先在一張登記表上進(jìn)行登記,該表為每一座位列一表目,包括座號(hào)和讀者姓名。讀者離開(kāi)時(shí)要消掉登記信號(hào),閱覽室中共有100個(gè)座位,請(qǐng)問(wèn):為

36、描述讀者的動(dòng)作,應(yīng)編寫(xiě)幾個(gè)程序?設(shè)置幾個(gè)進(jìn)程?進(jìn)程與程序間的對(duì)應(yīng)關(guān)系如何?用類(lèi)Pascal語(yǔ)言和P, V操作寫(xiě)出這些進(jìn)程間的同步算法。應(yīng)編寫(xiě)1個(gè)程序;設(shè)置2個(gè)進(jìn)程;進(jìn)程與程序間的對(duì)應(yīng)關(guān)系是:多對(duì)1。Beginmutex: =1cobeginP1: repeatP(S1);P(mutex);登記信息;V(muetx);V(S2)就座,閱讀;until false coendendP2: repeatP(S2)P(mutex);消掉信息;V(muetx);V(S1);離開(kāi)閱覽室;until false3. 教學(xué)小結(jié) (3分鐘)本講主要介紹了利用信號(hào)量機(jī)制解決經(jīng)典的進(jìn)程同步問(wèn)題、P、V操作的實(shí)現(xiàn)等。

37、四、 作業(yè)與實(shí)驗(yàn)(2分鐘)1.作業(yè)P8123.在生產(chǎn)者-消費(fèi)者問(wèn)題中,如果缺少了signal(full)或到sign(empty),對(duì)執(zhí)行結(jié)果將會(huì)有何影響?24.在生產(chǎn)者-消費(fèi)者問(wèn)題中,如果將兩個(gè)wait操作即wait(full)和wait(mutex)互換位置,或者將signal(mutex)與signal(full)互換位置,結(jié)果會(huì)如何?25.我們?yōu)槟撑R界資源設(shè)置一把鎖W,當(dāng)W=1時(shí)表示關(guān)鎖;當(dāng)W=0時(shí)表示鎖已打開(kāi)。試寫(xiě)出開(kāi)鎖和關(guān)鎖的原語(yǔ),并利用它們?nèi)?shí)現(xiàn)互斥。26.試修改下面生產(chǎn)者-消費(fèi)者問(wèn)題解法中的錯(cuò)誤: producer: consumer: begin begin repeat r

38、epeat wait(mutex); produce an item in nextp; wait(empty); wait(mutex); nextc:=buffer(out); wait(full); out:=out+1; signal(mutex); signal(mutex); until false; until false;27.試?yán)糜涗浶托盘?hào)量寫(xiě)出一個(gè)不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問(wèn)題的算法。2.實(shí)驗(yàn) 本講無(wú)實(shí)驗(yàn)第6講 進(jìn)程管理(4)一、 教學(xué)目標(biāo) 1.掌握共享緩沖區(qū)進(jìn)程同步問(wèn)題的方法; 2.掌握P、V操作的實(shí)現(xiàn);3.了解進(jìn)程通信的類(lèi)型; 4.理解消息傳遞系統(tǒng)中的發(fā)送和接收原語(yǔ);5

39、.理解線程的概念、線程間的同步、通信以及線程的實(shí)現(xiàn);二、 重點(diǎn)與難點(diǎn)分析1.重點(diǎn):共享緩沖區(qū)進(jìn)程同步問(wèn)題的方法, P、V操作的實(shí)現(xiàn);消息傳遞系統(tǒng)中的發(fā)送和接收原語(yǔ);2.難點(diǎn):P、V操作的實(shí)現(xiàn)。三、 教學(xué)內(nèi)容與教學(xué)過(guò)程1.復(fù)習(xí)(10分鐘)復(fù)習(xí)上一講內(nèi)容,信號(hào)量機(jī)制解決經(jīng)典的進(jìn)程同步問(wèn)題的方法、P、V操作的實(shí)現(xiàn)等。2.講授新課P、V操作實(shí)現(xiàn)(30分鐘)例1:本題考核的主要內(nèi)容是進(jìn)程互斥與同步問(wèn)題。為了保證 系統(tǒng)的控制流程,專(zhuān)門(mén)設(shè)一個(gè)Monitor進(jìn)程,用于控制學(xué)生進(jìn)入機(jī)房及計(jì)算機(jī)的分配與使用。從題目上看,雖然沒(méi)有明確指出這一進(jìn)程,但實(shí)際上這一進(jìn)程應(yīng)當(dāng)是存在的。BEGINSemaphore: stu

40、dent, computer, enter, finish, check;student:=0;computer:=2m;enter:=0; finish:=0;check:=0;COBEGIN Process Procedure Student() Begin V (student); /表示有學(xué)生到達(dá) P(computer); /等待獲取一臺(tái)計(jì)算機(jī) P(enter); /等待進(jìn)入許可 do it with parnter(); V(finish); /實(shí)習(xí)完成 P(check); /等待老師檢查 V(computer); /釋放計(jì)算機(jī)資源 EndProcess Procedure Teac

41、her()BeginL1:P(finish); /等待學(xué)生實(shí)習(xí)完成 P(finish); /等待另一個(gè)學(xué)生實(shí)習(xí)完成 check the work(); V(check); /表示檢查完成 V(check); /表示檢查完成 goto L1;End教學(xué)提示:要結(jié)合前講的P、V操作一道進(jìn)行。進(jìn)程通信和進(jìn)程通信的類(lèi)型(20分鐘)概念:進(jìn)程間的信息交換。實(shí)例:信號(hào)量機(jī)制(一種低級(jí)通信)缺點(diǎn):效率低;通信對(duì)用戶不透明高級(jí)通信效率高,通信實(shí)現(xiàn)細(xì)節(jié)對(duì)用戶透明共享存儲(chǔ)器系統(tǒng)在共享存儲(chǔ)系統(tǒng)中,互相通信的進(jìn)程共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲(chǔ)區(qū),進(jìn)程之間能夠通過(guò)這些空間進(jìn)行通信。故其可分成以下兩種類(lèi)型?;诠蚕頂?shù)據(jù)結(jié)構(gòu)的

42、通信方式(低級(jí)通信)要求諸進(jìn)程公用某些數(shù)據(jù)結(jié)構(gòu),借以實(shí)現(xiàn)諸進(jìn)程的信息交換。在生產(chǎn)者-消費(fèi)者問(wèn)題中,就是用有界緩沖區(qū)這種數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)通信的。produce-consume中的緩沖區(qū),低效,不透明。系統(tǒng)只提供了一個(gè)共享存儲(chǔ)器,適于少量通信?;诠蚕泶鎯?chǔ)區(qū)的通信方式(高級(jí)通信)為了傳輸大量數(shù)據(jù),在存儲(chǔ)器中劃出了一塊共享存儲(chǔ)區(qū),進(jìn)程可通過(guò)對(duì)共享存儲(chǔ)區(qū)中數(shù)據(jù)的讀或?qū)憗?lái)實(shí)現(xiàn)通信。系統(tǒng)提供:共享存儲(chǔ)區(qū)通信過(guò)程:向系統(tǒng)申請(qǐng)一個(gè)或多個(gè)分區(qū) 獲得分區(qū)后即可讀/寫(xiě)特點(diǎn):高效,速度快。消息傳遞系統(tǒng)(用于單機(jī),多機(jī),網(wǎng)絡(luò))數(shù)據(jù)交換以格式化的消息(報(bào)文)為單位實(shí)現(xiàn):一組通信命令(原語(yǔ))。是目前的主要通信方式,分為直接通

43、信方式、間接通信方式管道通信管道:用于連接一個(gè)讀進(jìn)程和一個(gè)寫(xiě)進(jìn)程以實(shí)現(xiàn)他們之間通信的一個(gè)共享文件。又名pipe文件。寫(xiě)進(jìn)程以字符流的形式向管道送入大量數(shù)據(jù);讀進(jìn)程則從管道中接收數(shù)據(jù),故又稱(chēng)為管道通信。其能有效傳輸大量數(shù)據(jù)。 教學(xué)提示:管道機(jī)制提供以下協(xié)調(diào)能力互斥、同步、對(duì)方是否存在。消息傳遞通信的實(shí)現(xiàn)方式(20分鐘)直接通信方式send(Receiver, message); 發(fā)送一個(gè)消息給接收進(jìn)程receive(Sender, message);接收sennder發(fā)來(lái)的消息例:解決生產(chǎn)消費(fèi)問(wèn)題。repeat produce an item in nextp; send(consumer, n

44、extp); until false; repeat receive( producer, nextc); consumer the item in nextc; until false;間接通信方式(可以實(shí)現(xiàn)非實(shí)時(shí)通信)指進(jìn)程之間的通信,需要通過(guò)作為共享數(shù)據(jù)結(jié)構(gòu)的實(shí)體,這種實(shí)體稱(chēng)為信箱。發(fā)送進(jìn)程接收進(jìn)程信箱消息在信箱中可以安全地保存,只允許核準(zhǔn)的目標(biāo)用戶隨時(shí)讀取。這樣既可實(shí)現(xiàn)實(shí)時(shí)通信,又可實(shí)現(xiàn)非實(shí)時(shí)通信。原語(yǔ)信箱的創(chuàng)建與撤消:信箱名 屬性(公用、私用、共享)(共享者名字),不需要時(shí)可撤銷(xiāo)之 消息的發(fā)送和接收Send (mailbox, message)Receive (mailbox, me

45、ssage)信箱類(lèi)型私用:擁有者有讀/寫(xiě)數(shù),其它只有寫(xiě)權(quán),(單向通信鏈路實(shí)現(xiàn))存在期進(jìn)程存在期。公用:系統(tǒng)創(chuàng)建,核準(zhǔn)進(jìn)程可以發(fā)送,也可讀取發(fā)送給自己的消息。雙向通信鏈路實(shí)現(xiàn),存在期=系統(tǒng)存在期。共享信箱:一般進(jìn)程創(chuàng)建,并指明其共享者。擁有者和共享者都可取走發(fā)送給自己的消息。發(fā)送接收進(jìn)程之間的關(guān)系:一對(duì)一關(guān)系;多對(duì)一關(guān)系;一對(duì)多關(guān)系;多對(duì)多關(guān)系:公用信箱。教學(xué)提示:要能夠正確理解私用、公用和共享信箱的真正意義。消息傳遞系統(tǒng)實(shí)現(xiàn)中的若干問(wèn)題(10分鐘)通信鏈路建立通信鏈路發(fā)送進(jìn)程建立系統(tǒng)自動(dòng)建立通信鏈路的分類(lèi)根據(jù)連接方法分為點(diǎn)-點(diǎn)連接通信鏈路多點(diǎn)連接鏈路根據(jù)通信方式分為單向鏈路雙向鏈路根據(jù)通向鏈路

46、的容量分為無(wú)容量通信鏈路有容量通信鏈路消息格式定長(zhǎng)格式變長(zhǎng)格式進(jìn)程同步方式發(fā)送進(jìn)程阻塞,接收進(jìn)程阻塞(匯合)發(fā)送進(jìn)程不阻塞,接收進(jìn)程阻塞。發(fā)送進(jìn)程和接收進(jìn)程均不阻塞。 教學(xué)提示:本部分內(nèi)容主要是了解性的。消息緩沖隊(duì)列通信機(jī)制(15分鐘)數(shù)據(jù)結(jié)構(gòu)消息緩沖區(qū)type message buffer =recordsender:size:text:next:指向下一指針endPCB中有關(guān)通信的數(shù)據(jù)項(xiàng):type pcb=recordmq 消息隊(duì)列首指針mutex 消息隊(duì)列互斥信息量sm 消息隊(duì)列資源信息量(表資源消息數(shù))end發(fā)送原語(yǔ)procedure send(receiver, a) begin g

47、etbuf(a.size, i); i.sender:=a.sender; i.size:=a.size; i.text:=a.text; i.next:=0; getid(PCB set, receiver.j); wait(j.mutex); insert(j.mq, i); signal(j.mutex); signal(j.sm);end接收原語(yǔ)procedure receive(b)begin j:=internal name; wait(j.sm); wait(j.mutex); remove(j.mq, i); signal(j.mutex); b.sender:=i.sende

48、r; b.size:=i.size; b.text:=i.text;end教學(xué)提示:P和V操作重在理解。線程(9分鐘)線程的基本概念 線程的引入減少并發(fā)執(zhí)行時(shí)的時(shí)空開(kāi)銷(xiāo),進(jìn)程的創(chuàng)建、撤消、切換較費(fèi)時(shí)空,因它既是調(diào)度單位,又是資源擁有者。創(chuàng)建進(jìn)程系統(tǒng)在創(chuàng)建一個(gè)進(jìn)程時(shí),必須為它分配其所必需的、除處理機(jī)以外的所有資源,如內(nèi)存空間、I/O 設(shè)備,以及建立相應(yīng)的PCB。撤銷(xiāo)進(jìn)程系統(tǒng)在撤銷(xiāo)進(jìn)程時(shí),必須先對(duì)其所占有的資源執(zhí)行回收操作,然后再撤銷(xiāo)PCB。進(jìn)程切換對(duì)進(jìn)程切換時(shí),由于要保留當(dāng)前進(jìn)程的CPU 環(huán)境和設(shè)置新選中進(jìn)程的CPU環(huán)境,因而花費(fèi)不少的處理機(jī)時(shí)間。3. 教學(xué)小結(jié) (3分鐘)本講主要介紹了共享緩沖

49、區(qū)進(jìn)程同步問(wèn)題的方法,以及它們實(shí)現(xiàn)等;進(jìn)程通信和進(jìn)程通信的類(lèi)型、消息傳遞系統(tǒng)實(shí)現(xiàn)中的若干問(wèn)題、消息緩沖隊(duì)列通信機(jī)制、線程等。四、 作業(yè)與實(shí)驗(yàn)(3分鐘)1.作業(yè)P8128.在測(cè)量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù)時(shí),把所采集的數(shù)據(jù)送往一單緩沖區(qū);計(jì)算任務(wù)從該單緩沖區(qū)中取出數(shù)據(jù)進(jìn)行計(jì)算。試寫(xiě)出利用信號(hào)量機(jī)制實(shí)現(xiàn)兩任務(wù)共享單緩沖區(qū)的同步算法?30.如何利用管程來(lái)解決生產(chǎn)者-消費(fèi)者問(wèn)題?31.什么是AND信號(hào)量?試?yán)肁ND信號(hào)量寫(xiě)出生產(chǎn)者-消費(fèi)者問(wèn)題的解決。32.什么是信號(hào)量集?試?yán)眯盘?hào)量集寫(xiě)出讀者-寫(xiě)者問(wèn)題的解法。37.試說(shuō)明線程具有哪些屬性?38.試從調(diào)度性、并發(fā)性、擁有資源及系統(tǒng)開(kāi)銷(xiāo)方面對(duì)進(jìn)程和線程進(jìn)行比較?39.為了在多線程O(píng)S中實(shí)現(xiàn)進(jìn)行之間的同步與通信,通常提供了哪幾種同步機(jī)制?40.用于實(shí)現(xiàn)線程同步的私用信號(hào)量和公用信號(hào)量之間有何差異?2.實(shí)驗(yàn)實(shí)驗(yàn)二:進(jìn)程創(chuàng)建第7講 處理機(jī)調(diào)度與死鎖(1)一、 教學(xué)目標(biāo) 1.理解處理機(jī)調(diào)度的層次; 2.理解調(diào)度隊(duì)列模型和選擇調(diào)度方式和算法的準(zhǔn)則3.掌握先來(lái)先服務(wù)、短作業(yè)(進(jìn)程)優(yōu)先、時(shí)間片輪轉(zhuǎn)和優(yōu)先權(quán)調(diào)度算法;4.理解多級(jí)反饋隊(duì)列調(diào)度算法;二、 重點(diǎn)與難點(diǎn)分析1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論