版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機與信息工程學(xué)院-操作系統(tǒng) 課程教案滁州學(xué)院計算機與信息工程學(xué)院課程教案課程名稱: 操作系統(tǒng) 授課教師: 李元金 學(xué)習(xí)對象:2015級計算機科學(xué)與技術(shù)(對口) 任課時間: 2016年9月-2016年12月 滁州學(xué)院計算機與信息工程學(xué)院2016年8月89第1講 操作系統(tǒng)引論(1)一、 教學(xué)目標(biāo) 1.掌握操作系統(tǒng)的目標(biāo)、作用;2.了解操作系統(tǒng)的發(fā)展過程;二、 重點與難點分析1.重點:操作系統(tǒng)的目標(biāo)和作用; 2.難點: 無三、 教學(xué)內(nèi)容與教學(xué)過程1.課程簡介 (15分鐘)自我介紹、理論課與實驗課介紹、介紹課程地位、學(xué)習(xí)目的、教學(xué)內(nèi)容、學(xué)習(xí)要求、考核方式、實驗教學(xué)安排等。教學(xué)提示:考核成績包括2部
2、分:平時占40 %,期末筆試占60%。 2. 講授新課復(fù)習(xí)計算機系統(tǒng)組成:硬件系統(tǒng)、軟件系統(tǒng)(操作系統(tǒng)在軟件系統(tǒng)中的地位)。 操作系統(tǒng)的目標(biāo)和作用 (20分鐘)操作系統(tǒng)的目標(biāo):有效性、方便性、可擴充性、開放性; 操作系統(tǒng)的作用,從不同的觀點出發(fā)觀察操作系統(tǒng)的作用:用戶觀點:作為用戶與計算機硬件系統(tǒng)之間的接口;資源管理觀點:作為計算機系統(tǒng)資源的管理者;發(fā)展觀點:實現(xiàn)了對計算機資源的抽象。教學(xué)提示:結(jié)合Windows操作系統(tǒng)舉例講解。推動操作系統(tǒng)發(fā)展的主要動力:不斷提高計算機資源的利用率;方便用戶;器件的不斷更新?lián)Q代;計算機體系結(jié)構(gòu)的不斷發(fā)展。 操作系統(tǒng)的發(fā)展過程 (47分鐘)無操作系統(tǒng)的計算機系
3、統(tǒng):人工操作方式:電子管計算機,無操作系統(tǒng),由手工控制作業(yè)的輸入輸出,通過控制臺開關(guān)啟動程序運行;特點:用戶獨占全機及CPU等待人工操作;脫機輸入/輸出方式:引入I/O機的概念,解決前者的缺點;特點:減少了CPU的空閑時間且提高I/O速度;單道批處理系統(tǒng):系統(tǒng)對作業(yè)的處理都是成批進行的、且內(nèi)存中始終只保持一道作業(yè);批處理系統(tǒng)的引入是為了提高系統(tǒng)資源的利用率和吞吐量;特征:自動性、順序性、單道性;多道批處理系統(tǒng):系統(tǒng)中同時駐留多個作業(yè);多道引入的優(yōu)點:提高CPU利用率;提高內(nèi)存和I/O設(shè)備利用率;提高了系統(tǒng)吞吐量;特征:多道性、無序性、調(diào)度性:作業(yè)調(diào)度、進程調(diào)度缺點:平均周轉(zhuǎn)時間長、無交互能力多
4、道批處理系統(tǒng)需要解決的問題。教學(xué)提示:引導(dǎo)學(xué)生思考引入多道程序會帶來什么問題?處理機管理問題、內(nèi)存管理問題、I/O管理問題、文件管理問題、作業(yè)管理問題。由多道批處理系統(tǒng)引出操作系統(tǒng)及其定義: 操作系統(tǒng)是一組控制和管理計算機硬件和軟件資源,合理地對各類作業(yè)進行調(diào)度,以及方便用戶使用的程序的集合。分時系統(tǒng):指一臺主機上連接了多個帶有顯示器和鍵盤的終端,同時允許多個用戶通過自己的終端,以交互方式使用計算機,共享主機中的資源。滿足用戶的需求:人機交互性、共享主機、便于用戶上機分時系統(tǒng)在實現(xiàn)中的關(guān)鍵問題:及時接收:多終端卡、輸入緩沖區(qū);及時處理:交互作業(yè)應(yīng)在內(nèi)存、響應(yīng)時間應(yīng)短。分時系統(tǒng)的實現(xiàn)方法:交互式
5、作業(yè)直接進入內(nèi)存、以分配時間片方式實現(xiàn)。分時系統(tǒng)的特征:多路性、獨立性、及時性、交互性實時系統(tǒng):引入:要求及時處理的場合概念系統(tǒng)能及時響應(yīng)外部事件的請求,在規(guī)定時間內(nèi)完成對該事件的處理,并控制所有實時任務(wù)協(xié)調(diào)一致地運行。類型:實時控制、實時信息處理實時任務(wù)類型:按任務(wù)執(zhí)行是否呈現(xiàn)周期性來劃分周期性的(聯(lián)系周期);非周期性的(聯(lián)系開始或完成截止時間)根據(jù)對截止時間的要求來劃分硬實時任務(wù)、軟實時任務(wù)。實時、分時的比較:多路性:相同;獨立性:相同;及時性:實時系統(tǒng)要求更高;交互性:分時系統(tǒng)交互性更強;可靠性:實時系統(tǒng)要求更高。通用操作系統(tǒng):各種操作系統(tǒng)的出現(xiàn),致使操作系統(tǒng)日益完善,出現(xiàn)了通用操作系統(tǒng)
6、。通用操作系統(tǒng)兼有多道批處理、分時、實時處理的功能。操作系統(tǒng)的進一步發(fā)展:個人計算機上的操作系統(tǒng)、嵌入式操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)、智能化操作系統(tǒng)。微機操作系統(tǒng)的發(fā)展:單用戶單任務(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.張獻忠.操作系統(tǒng)M. 北京 :電子工業(yè)出版社,2007.Andrew S. Tanenbaum著,陳向群,馬洪兵等譯. 現(xiàn)代操作系統(tǒng)M. 北京:機械工業(yè)
7、出版社,2005.四、 作業(yè)與實驗布置 (3分鐘)1.作業(yè)P33 1.設(shè)計現(xiàn)代OS的主要目標(biāo)是什么?4.試說明推動多道批處理系統(tǒng)形成和發(fā)展的主要動力是什么。5.何謂脫機I/O和聯(lián)機I/O?7.實現(xiàn)分時系統(tǒng)的關(guān)鍵是什么?應(yīng)如何解決?12.試從交互性、及時性以及可靠性方面,將分時系統(tǒng)與實時系統(tǒng)進行比較。 2.實驗 本講無實驗第2講 操作系統(tǒng)引論(2)一、 教學(xué)目標(biāo) 1.掌握操作系統(tǒng)的基本特性;2.理解操作系統(tǒng)的主要功能模塊;3.了解操作系統(tǒng)的結(jié)構(gòu)設(shè)計方法。二、 重點與難點分析1.重點:操作系統(tǒng)的基本特性、操作系統(tǒng)的主要功能模塊; 2.難點: 操作系統(tǒng)的結(jié)構(gòu)設(shè)計方法。三、 教學(xué)內(nèi)容與教學(xué)過程1.復(fù)習(xí)
8、上一講內(nèi)容 (10分鐘)操作系統(tǒng)的目標(biāo)和作用、操作系統(tǒng)的發(fā)展過程等。 2.講授新課操作系統(tǒng)的基本特征(17分鐘)并發(fā)性并行性:兩或多個事件在同一時刻發(fā)生。并發(fā)性:兩或多個事件在同一時間間隔內(nèi)發(fā)生。進程:系統(tǒng)中能獨立運行并作為資源分配的基本單位。引入線程后,獨立運行的單位變?yōu)榫€程。教學(xué)提示:只有一個CPU的計算機運行時任務(wù)之間只能并發(fā)處理不能并行處理。共享性系統(tǒng)中資源可供內(nèi)存中多個并發(fā)執(zhí)行的進程(線程)共同使用?;コ夤蚕恚阂欢螘r間只允許一個進程訪問該資源。臨界資源:在一段時間內(nèi)只允許一個進程訪問的資源。同時訪問:微觀上仍是互斥的。教學(xué)提示:并發(fā)和共享是操作系統(tǒng)的兩個最基本的特征。虛擬技術(shù)虛擬:通
9、過某種技術(shù)把一個物理實體變?yōu)槿舾蓚€邏輯上的對應(yīng)物。教學(xué)提示:在操作系統(tǒng)里有兩種實驗虛擬技術(shù)的方式,即時分復(fù)用技術(shù)和空分復(fù)用技術(shù)。異步性進程以人們不可預(yù)知的速度向前推進。 OS的主要功能(55分鐘)處理機管理在傳統(tǒng)的多道環(huán)境下,處理機的運行及分配都是以進程為單位,因此處理機管理可歸結(jié)為進程管理,引入線程后,也包括對線程的管理。 存儲器管理為多道程序的運行提供良好的環(huán)境,方便用戶使用存儲器,提高存儲器的利用率以及能從邏輯上擴充內(nèi)存。設(shè)備管理完成用戶進程提出的I/O請求;為用戶進程分配其所需的I/O設(shè)備;提高CPU和I/O利用率以及I/O速度,方便用戶。文件管理對用戶文件和系統(tǒng)文件進行管理,以方便用
10、戶使用,并保證文件的安全性。教學(xué)提示:操作系統(tǒng)主要任務(wù),是為多道程序的運行提供良好的運行環(huán)境,以保證多道程序能有條不紊、高效地運行,并能最大程度地提高系統(tǒng)中各種資源的利用率和方便用戶的使用。操作系統(tǒng)結(jié)構(gòu)設(shè)計傳統(tǒng)的操作系統(tǒng)結(jié)構(gòu)無結(jié)構(gòu)操作系統(tǒng)。模塊化結(jié)構(gòu)操作系統(tǒng)。分層次式結(jié)構(gòu)操作系統(tǒng)。現(xiàn)代結(jié)構(gòu)的操作系統(tǒng)微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)。無結(jié)構(gòu)操作系統(tǒng)一組過程集,各過程可相互調(diào)用,也叫整體系統(tǒng)結(jié)構(gòu)。缺點:邏輯復(fù)雜,維護困難。傳統(tǒng)的操作系統(tǒng)結(jié)構(gòu)模塊化操作系統(tǒng)通過分解來控制大型軟件復(fù)雜度。如:進程模塊、內(nèi)存模塊,各模塊內(nèi)進一步劃分子模塊。優(yōu)點:提高了OS設(shè)計的可維護性。增強的OS的可適應(yīng)性。加速了OS的開發(fā)過程:并
11、行開發(fā)模塊。缺點:接口不易確定。模塊依賴關(guān)系可能復(fù)雜(對于大型軟件而言)。分層式操作系統(tǒng)。有序分層。優(yōu)點:易保證系統(tǒng)的正確性。易擴充和易維護性。缺點:系統(tǒng)效率低。現(xiàn)代結(jié)構(gòu)的操作系統(tǒng)3.教學(xué)小結(jié) (5分鐘)本講首先復(fù)習(xí)了上一講所講解的主要內(nèi)容,然后介紹了操作系統(tǒng)的主要特征,最后講解了操作系統(tǒng)的主要功能和設(shè)計。四、 作業(yè)與實驗布置 (3分鐘)1.作業(yè)P33 13.操作系統(tǒng)有哪幾大特征?其最基本的特征是什么?18.是什么原因使得操作系統(tǒng)具有異步性特征?19.模塊接口法存在哪些問題?可通過什么樣的途徑來解決?24.微內(nèi)核操作系統(tǒng)具有哪些優(yōu)點?它為何能有這些優(yōu)點? 2.實驗 本講無實驗第3講 進程管理(
12、1)一、 教學(xué)目標(biāo) 1.掌握前趨圖,順序執(zhí)行和并發(fā)執(zhí)行的特征;2.掌握進程的基本狀態(tài)及其轉(zhuǎn)換;3.掌握進程與程序的聯(lián)系與區(qū)別;二、 重點與難點1.重點:進程的概念、狀態(tài)的切換條件及因果關(guān)系。2.難點:進程狀態(tài)的切換。三、 教學(xué)過程的具體安排1.復(fù)習(xí)上一講內(nèi)容 (10分鐘) 操作系統(tǒng)的特征、操作系統(tǒng)的功能、操作系統(tǒng)的設(shè)計等。2.講授新課(72分鐘)程序的順序執(zhí)行及特征程序的順序執(zhí)行: I1C1P1I2C2P2 教學(xué)提示:程序順序執(zhí)行時的特征:順序性;封閉性; 可再現(xiàn)性。 前趨圖:前趨圖(Precedence Graph)是一個有向無循環(huán)圖,記為DAG(Directed Acyclic Graph
13、),用于描述進程之間執(zhí)行的前后關(guān)系。圖中的每個結(jié)點可用于描述一個程序段或進程,乃至一條語句;結(jié)點間的有向邊則用于表示兩個結(jié)點之間存在的偏序(Partial Order)或前趨關(guān)系(Precedence Relation)“”。P1P2P3P4程序的并發(fā)執(zhí)行及其特征 程序的并發(fā)執(zhí)行:教學(xué)提示:程序并發(fā)執(zhí)行時的特征: 間斷性;失去封閉性;不可再現(xiàn)性。 進程的特征與狀態(tài)進程的特征和定義:結(jié)構(gòu)特征;動態(tài)性;并發(fā)性;獨立性;異步性。定義。進程的三種基本狀態(tài): 就緒(Ready)狀態(tài);執(zhí)行狀態(tài);阻塞狀態(tài)。進程的三種基本狀態(tài)及其轉(zhuǎn)換如下圖: 掛起狀態(tài)引入掛起狀態(tài)的原因 終端用戶的請求;父進程請求;負(fù)荷調(diào)節(jié)的
14、需要;操作系統(tǒng)的需要。具有掛起狀態(tài)的進程狀態(tài)圖(如下圖) 進程控制塊進程控制塊的作用:其作用是將一個不能獨立運行的程序變成一個可以獨立運行的基本單位,一個能與其他進程并發(fā)執(zhí)行的進程。教學(xué)提示:操作系統(tǒng)利用PCB來對并發(fā)執(zhí)行的進程進行控制和管理,PCB是進程存在的唯一標(biāo)志。進程與PCB是一一對應(yīng)的。PCB(process control block)常駐內(nèi)存。進程控制塊中的信息:進程控制塊中的信息如下表所示。pid進程狀態(tài)現(xiàn)場優(yōu)先級阻塞原因程序地址同步機制資源清單鏈接指針進程控制塊的組織方式鏈接:索引:進程控制 進程控制就是對系統(tǒng)中的所有進程實施管理,進程控制一般有原語來實現(xiàn)。所謂原語是一種特殊
15、的系統(tǒng)功能調(diào)用,它可以完成一個特定的功能,其特點是原語執(zhí)行時不可被中斷。常用原語:創(chuàng)建原語終止原語阻塞原語、喚醒原語進程的創(chuàng)建:進程圖(Process Graph)DEFGHBCIJKLMA3.教學(xué)小結(jié) (5分鐘)本講首先復(fù)習(xí)了上一講所講解的主要內(nèi)容,然后介紹了程序的并發(fā)運行與順序運行,最后講解了進程控制塊以及它的創(chuàng)建。四、 作業(yè)與實驗(3分鐘)1.作業(yè)P812.試畫出下面四條語句的前趨圖: S1: a: =x+y; S2: b: =z+1; S3: c: =a-b; S4: w: =c+1;6.試從動態(tài)性、并發(fā)性和獨立性上比較進程和程序。7.試說明PCB的作用,為什么說PCB進程存在的惟一標(biāo)
16、志?9.為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質(zhì)?2.實驗 實驗一:Linux系統(tǒng)基本操作 第4講 進程管理(2)一、 教學(xué)目標(biāo) 1.理解臨界資源、臨界區(qū)的概念;2.掌握常用的信號量機制;二、 重點與難點分析1.重點:臨界資源、信號量機制;2.難點:信號量機制。三、 教學(xué)內(nèi)容與教學(xué)過程1.復(fù)習(xí)(10分鐘)復(fù)習(xí)上一講內(nèi)容,前趨圖,順序執(zhí)行和并發(fā)執(zhí)行的特征,進程與PCB等。2.講授新課 進程同步的基本概念 (12分鐘)進程同步任務(wù)對多個相關(guān)進程在執(zhí)行次序上進行協(xié)調(diào),以使并發(fā)執(zhí)行的諸進程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。兩種形式的制約關(guān)系:進程間接制約;進程直接制約。教學(xué)提
17、示:臨界資源:一次僅允許一個進程訪問的資源。舉例:生產(chǎn)者消費者問題Dijkstra把同步問題抽象成一種生產(chǎn)者和消費者關(guān)系,計算機系統(tǒng)中的許多問題都可以被歸結(jié)為生產(chǎn)者和消費者關(guān)系,例如,生產(chǎn)者可以是計算進程,消費者是打印進程,輸入時輸入進程是生產(chǎn)者,計算進程是消費者。我們可以通過一個緩沖區(qū)把生產(chǎn)者和消費者聯(lián)系起來。臨界區(qū):進程訪問臨界資源的那段代碼。訪問臨界資源的描述:進入?yún)^(qū):檢查有無進程進入臨界區(qū):退出區(qū):將訪問標(biāo)志復(fù)位剩余區(qū)RepeatEntry sectionCritical sectionExit sectionremainder sectionUntil false同步機制應(yīng)遵循的準(zhǔn)則
18、:空閑讓進;忙則等待;有限等待;讓權(quán)等待。 信號量機制 (37分鐘)解決進程同步問題可以使用中斷機制,特殊的機器指令以及信號量機制等。重點講解信號量機制,信號量機制是由荷蘭學(xué)者Dijkstra在1965年提出來的有效的進程同步工具。信號量機制得到廣泛的發(fā)展,經(jīng)過了整型信號量、記錄型信號量、AND型信號量、信號量集。整型信號量:一個整型量S,通過2個原子操作wait(S)和signal(S)來訪問。(P、V操作)Wait(S): while S= 0 do no-opS:=S-1;Signal(S):S:=S+1;記錄型信號量:procedure wait(s)var S: semaphoreb
19、eginS.value:=S.value 1;if S.value 0 them block (S.L)endAND型信號量: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信號量集: 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é)合各個信號量機制的描述,講解其具體功能及每部分的含義,尤其是 記錄型信號量中S.value不同取值代表的意義。 信號量的應(yīng)用 (10分鐘)利用信號量實現(xiàn)
22、進程互斥(舉例如下)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利用信號量實現(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é)合實例講解利用信號量解決互斥和前趨關(guān)系的方法 管程
24、機制 (15分鐘)教學(xué)提示:為什么要引入管程機制?管程的定義:(Hansan):一個數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進程所執(zhí)行(在該數(shù)據(jù)結(jié)構(gòu)上)的一組操作,這組操作能同步進程和改變管程中的數(shù)據(jù)。管程的組成:管程的名稱;局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明;對該數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程;對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語句。管程的特征:模塊化;抽象數(shù)據(jù)類型;信息掩蔽。管程與進程的區(qū)別:從六個方面進行闡述。條件變量:引入條件變量的原因:防止進程在管程內(nèi)阻塞或掛起,而是使其它進程長時間等待。條件的說明形式:Var x,y:condtion;條件變量的操作wait,signal,表示為x.wait,x.sing
25、al。教學(xué)提示:重點講解x.wait,x.signal的含義3. 教學(xué)小結(jié) (3分鐘)本講主要介紹了進程的同步、臨界資源、臨界去的概念。進程同步的信號量機制及應(yīng)用、管程機制。四、 作業(yè)與實驗(3分鐘)1.作業(yè)P8113.在創(chuàng)建一個進程時所要完成的主要工作是什么?14.在撤銷一個進程時所要完成的主要工作是什么?17.為什么進程在進入臨界區(qū)之前應(yīng)先執(zhí)行“進入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出區(qū)”代碼?21.如何利用信號量機制來實現(xiàn)多個進行對臨界資源的互斥訪問?并舉例說明之。2.實驗 本講無實驗第5講 進程管理(3)一、 教學(xué)目標(biāo) 1.掌握利用信號量機制解決經(jīng)典的進程同步問題的方法; 2.掌握P、V
26、操作的實現(xiàn);二、 重點與難點分析1.重點:P、V操作、信號量機制;2.難點:信號量機制解決經(jīng)典的進程同步問題。三、 教學(xué)內(nèi)容與教學(xué)過程1.復(fù)習(xí)(5分鐘)復(fù)習(xí)上一講內(nèi)容,臨界資源、臨界區(qū),信號量機制等。2.講授新課生產(chǎn)者一消費者問題(15分鐘)Dijkstra把同步問題抽象成一種生產(chǎn)者和消費者關(guān)系,計算機系統(tǒng)中的許多問題都可以被歸結(jié)為生產(chǎn)者和消費者關(guān)系,例如,生產(chǎn)者可以是計算進程,消費者是打印進程,輸入時輸入進程是生產(chǎn)者,計算進程是消費者。我們可以通過一個緩沖區(qū)把生產(chǎn)者和消費者聯(lián)系起來。上述生產(chǎn)者-消費者問題是一個同步問題。即生產(chǎn)者和消費者之間滿足如下條件:消費者想接收數(shù)據(jù)時,有界緩沖區(qū)中至少有
27、一個單元是滿的;生產(chǎn)者想發(fā)送數(shù)據(jù)時,有界緩沖區(qū)中至少有一個單元是空的。由于有界緩沖區(qū)是臨界資源,因此,各生產(chǎn)者進程和消費者進程之間必須互斥執(zhí)行。由以上分析我們設(shè)公用信號量mutex保證生產(chǎn)者進程和消費者進程之間的互斥,設(shè)信號量empty表示有界緩沖區(qū)中的空單元數(shù),初值為n;信號量full表示有界緩沖區(qū)中的非空單元數(shù),初值為0。信號量mutex表示有界緩沖區(qū)中的個數(shù),初值為1。利用記錄型信號量解決生產(chǎn)者一消費者問題:mutex:使諸進程互斥地訪問緩沖區(qū)(n個緩沖區(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信號量解決生產(chǎn)者消費者問題:var mutex, empty, full: semaphore:=1,n,0;buffer:array0,n-1 of item;in out: integer :=0,0; beginparbegin哲學(xué)家進餐問題(15分鐘)有五個哲學(xué)家共用一張圓桌,分別坐在周圍的五張椅子上,在圓桌上有五個碗和五只筷子,他們的生活方式是交替地進行思考和進
29、餐。平時,一個哲學(xué)家進行思考,饑餓時便試圖取其左右最靠近他的筷子,只有在他拿到兩只筷子時才能進餐,進餐完畢,放下筷子繼續(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é)家進餐問題的方法,可以保證不會有兩個相鄰的哲學(xué)家同時進餐,但是可能引起死鎖。解決方法:至多允許有四位哲
30、學(xué)家同時去拿左邊的筷子,最終能保證至少有一位哲學(xué)家能夠進餐,并在用畢時能釋放出他用過的兩只筷子,從而使更多的哲學(xué)家能夠進餐。僅當(dāng)哲學(xué)家的左右兩只筷子均可用時,才允許他拿起筷子進餐。規(guī)定奇數(shù)號哲學(xué)家先拿他左邊的筷子,然后再去拿右邊的筷子,而偶數(shù)號哲學(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é)合各個信號量機制的描述,講解其具體功能及每部分的含義,尤其是 記錄型信號量中S.value不同取值代表的意義。讀者寫者問題(10分鐘)一個數(shù)據(jù)文件或記錄,可被多個進程共享,把只要求讀該文件的進程成為“Reader進程”,其他進程則稱為“Write進程”。保證一個Write進程必須與其他進程互斥地訪問共享對象的同步問題。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é)合實例講解利用信號量解決互斥和前趨關(guān)系的
33、方法 P操作和V操作(5分鐘)P(s):若S=0,繼續(xù)取s值減1V(s):若S0,繼續(xù)取s值加1教學(xué)提示:P和V操作重在理解。信號量及P、V操作討論(5分鐘)對于兩個并發(fā)進程,互斥信號量的值僅取1、0和-1三個值 若1表示沒有進程進入臨界區(qū)若0表示有一個進程進入臨界區(qū)若-1表示一個進程進入臨界區(qū),另一個進程等待進入。 信號量的物理含義:S0表示有S個資源可用S=0表示無資源可用S0則| S |表示S等待隊列中的進程個數(shù)P(S):表示申請一個資源 V(S):表示釋放一個資源。信號量的初值應(yīng)該大于等于0例題(30分鐘)例1:設(shè)某計算進程和打印進程共用一個單緩沖區(qū),進程負(fù)責(zé)不斷地計算數(shù)據(jù)并送入緩沖區(qū)
34、中,進程負(fù)責(zé)不斷地從緩沖區(qū)中取出數(shù)據(jù)去打印。通過分析可知,CP、必須遵守以下同步規(guī)則:當(dāng)進程把計算結(jié)果送入緩沖區(qū)時,IOP進程才 能從緩沖區(qū)中取出結(jié)果去打印;當(dāng)IOP進程把緩沖區(qū)中的數(shù)據(jù)取出打印后,進程才能把下一個計算結(jié)果送入緩沖區(qū)。用P、V操作解決下圖之同步問題 教學(xué)提示:分別考慮對緩沖區(qū)S和T的同步,再合并考慮例2:桌上有一空盤,最多允許存放一只水果。爸爸可向盤中放一個蘋果或放一個桔子,兒子專等吃盤中的桔子,女兒專等吃蘋果。試用P、V操作實現(xiàn)爸爸、兒子、女兒三個并發(fā)進程的同步。教學(xué)提示:設(shè)置一個信號量表示可否向盤中放水果,一個信號量表示可否取桔子,一個信號量表示可否取蘋果。例3:四個進程A
35、、B、C、D都要讀一個共享文件F,系統(tǒng)允許多個進程同時讀文件F。但限制是進程A和進程C不能同時讀文件F,進程B和進程D也不能同時讀文件F。為了使這四個進程并發(fā)執(zhí)行時能按系統(tǒng)要求使用文件,現(xiàn)用P,V操作進行管理。定義二個信號量S1、S2,初值均為1,即:S1=1,S2=1。其中進程A和C使用信號量S1,進程B和D使用信號量S2。A:P(S1) V(S1)B: P(S2) V(S2)C: P(S1) V(S1) D:P(S2) V(S2)例4:有一閱覽室,讀者進入時必須先在一張登記表上進行登記,該表為每一座位列一表目,包括座號和讀者姓名。讀者離開時要消掉登記信號,閱覽室中共有100個座位,請問:為
36、描述讀者的動作,應(yīng)編寫幾個程序?設(shè)置幾個進程?進程與程序間的對應(yīng)關(guān)系如何?用類Pascal語言和P, V操作寫出這些進程間的同步算法。應(yīng)編寫1個程序;設(shè)置2個進程;進程與程序間的對應(yīng)關(guān)系是:多對1。Beginmutex: =1cobeginP1: repeatP(S1);P(mutex);登記信息;V(muetx);V(S2)就座,閱讀;until false coendendP2: repeatP(S2)P(mutex);消掉信息;V(muetx);V(S1);離開閱覽室;until false3. 教學(xué)小結(jié) (3分鐘)本講主要介紹了利用信號量機制解決經(jīng)典的進程同步問題、P、V操作的實現(xiàn)等。
37、四、 作業(yè)與實驗(2分鐘)1.作業(yè)P8123.在生產(chǎn)者-消費者問題中,如果缺少了signal(full)或到sign(empty),對執(zhí)行結(jié)果將會有何影響?24.在生產(chǎn)者-消費者問題中,如果將兩個wait操作即wait(full)和wait(mutex)互換位置,或者將signal(mutex)與signal(full)互換位置,結(jié)果會如何?25.我們?yōu)槟撑R界資源設(shè)置一把鎖W,當(dāng)W=1時表示關(guān)鎖;當(dāng)W=0時表示鎖已打開。試寫出開鎖和關(guān)鎖的原語,并利用它們?nèi)崿F(xiàn)互斥。26.試修改下面生產(chǎn)者-消費者問題解法中的錯誤: 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)糜涗浶托盘柫繉懗鲆粋€不會出現(xiàn)死鎖的哲學(xué)家進餐問題的算法。2.實驗 本講無實驗第6講 進程管理(4)一、 教學(xué)目標(biāo) 1.掌握共享緩沖區(qū)進程同步問題的方法; 2.掌握P、V操作的實現(xiàn);3.了解進程通信的類型; 4.理解消息傳遞系統(tǒng)中的發(fā)送和接收原語;5
39、.理解線程的概念、線程間的同步、通信以及線程的實現(xiàn);二、 重點與難點分析1.重點:共享緩沖區(qū)進程同步問題的方法, P、V操作的實現(xiàn);消息傳遞系統(tǒng)中的發(fā)送和接收原語;2.難點:P、V操作的實現(xiàn)。三、 教學(xué)內(nèi)容與教學(xué)過程1.復(fù)習(xí)(10分鐘)復(fù)習(xí)上一講內(nèi)容,信號量機制解決經(jīng)典的進程同步問題的方法、P、V操作的實現(xiàn)等。2.講授新課P、V操作實現(xiàn)(30分鐘)例1:本題考核的主要內(nèi)容是進程互斥與同步問題。為了保證 系統(tǒng)的控制流程,專門設(shè)一個Monitor進程,用于控制學(xué)生進入機房及計算機的分配與使用。從題目上看,雖然沒有明確指出這一進程,但實際上這一進程應(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é)生到達 P(computer); /等待獲取一臺計算機 P(enter); /等待進入許可 do it with parnter(); V(finish); /實習(xí)完成 P(check); /等待老師檢查 V(computer); /釋放計算機資源 EndProcess Procedure Teac
41、her()BeginL1:P(finish); /等待學(xué)生實習(xí)完成 P(finish); /等待另一個學(xué)生實習(xí)完成 check the work(); V(check); /表示檢查完成 V(check); /表示檢查完成 goto L1;End教學(xué)提示:要結(jié)合前講的P、V操作一道進行。進程通信和進程通信的類型(20分鐘)概念:進程間的信息交換。實例:信號量機制(一種低級通信)缺點:效率低;通信對用戶不透明高級通信效率高,通信實現(xiàn)細(xì)節(jié)對用戶透明共享存儲器系統(tǒng)在共享存儲系統(tǒng)中,互相通信的進程共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲區(qū),進程之間能夠通過這些空間進行通信。故其可分成以下兩種類型?;诠蚕頂?shù)據(jù)結(jié)構(gòu)的
42、通信方式(低級通信)要求諸進程公用某些數(shù)據(jù)結(jié)構(gòu),借以實現(xiàn)諸進程的信息交換。在生產(chǎn)者-消費者問題中,就是用有界緩沖區(qū)這種數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)通信的。produce-consume中的緩沖區(qū),低效,不透明。系統(tǒng)只提供了一個共享存儲器,適于少量通信?;诠蚕泶鎯^(qū)的通信方式(高級通信)為了傳輸大量數(shù)據(jù),在存儲器中劃出了一塊共享存儲區(qū),進程可通過對共享存儲區(qū)中數(shù)據(jù)的讀或?qū)憗韺崿F(xiàn)通信。系統(tǒng)提供:共享存儲區(qū)通信過程:向系統(tǒng)申請一個或多個分區(qū) 獲得分區(qū)后即可讀/寫特點:高效,速度快。消息傳遞系統(tǒng)(用于單機,多機,網(wǎng)絡(luò))數(shù)據(jù)交換以格式化的消息(報文)為單位實現(xiàn):一組通信命令(原語)。是目前的主要通信方式,分為直接通
43、信方式、間接通信方式管道通信管道:用于連接一個讀進程和一個寫進程以實現(xiàn)他們之間通信的一個共享文件。又名pipe文件。寫進程以字符流的形式向管道送入大量數(shù)據(jù);讀進程則從管道中接收數(shù)據(jù),故又稱為管道通信。其能有效傳輸大量數(shù)據(jù)。 教學(xué)提示:管道機制提供以下協(xié)調(diào)能力互斥、同步、對方是否存在。消息傳遞通信的實現(xiàn)方式(20分鐘)直接通信方式send(Receiver, message); 發(fā)送一個消息給接收進程receive(Sender, message);接收sennder發(fā)來的消息例:解決生產(chǎ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;間接通信方式(可以實現(xiàn)非實時通信)指進程之間的通信,需要通過作為共享數(shù)據(jù)結(jié)構(gòu)的實體,這種實體稱為信箱。發(fā)送進程接收進程信箱消息在信箱中可以安全地保存,只允許核準(zhǔn)的目標(biāo)用戶隨時讀取。這樣既可實現(xiàn)實時通信,又可實現(xiàn)非實時通信。原語信箱的創(chuàng)建與撤消:信箱名 屬性(公用、私用、共享)(共享者名字),不需要時可撤銷之 消息的發(fā)送和接收Send (mailbox, message)Receive (mailbox, me
45、ssage)信箱類型私用:擁有者有讀/寫數(shù),其它只有寫權(quán),(單向通信鏈路實現(xiàn))存在期進程存在期。公用:系統(tǒng)創(chuàng)建,核準(zhǔn)進程可以發(fā)送,也可讀取發(fā)送給自己的消息。雙向通信鏈路實現(xiàn),存在期=系統(tǒng)存在期。共享信箱:一般進程創(chuàng)建,并指明其共享者。擁有者和共享者都可取走發(fā)送給自己的消息。發(fā)送接收進程之間的關(guān)系:一對一關(guān)系;多對一關(guān)系;一對多關(guān)系;多對多關(guān)系:公用信箱。教學(xué)提示:要能夠正確理解私用、公用和共享信箱的真正意義。消息傳遞系統(tǒng)實現(xiàn)中的若干問題(10分鐘)通信鏈路建立通信鏈路發(fā)送進程建立系統(tǒng)自動建立通信鏈路的分類根據(jù)連接方法分為點-點連接通信鏈路多點連接鏈路根據(jù)通信方式分為單向鏈路雙向鏈路根據(jù)通向鏈路
46、的容量分為無容量通信鏈路有容量通信鏈路消息格式定長格式變長格式進程同步方式發(fā)送進程阻塞,接收進程阻塞(匯合)發(fā)送進程不阻塞,接收進程阻塞。發(fā)送進程和接收進程均不阻塞。 教學(xué)提示:本部分內(nèi)容主要是了解性的。消息緩沖隊列通信機制(15分鐘)數(shù)據(jù)結(jié)構(gòu)消息緩沖區(qū)type message buffer =recordsender:size:text:next:指向下一指針endPCB中有關(guān)通信的數(shù)據(jù)項:type pcb=recordmq 消息隊列首指針mutex 消息隊列互斥信息量sm 消息隊列資源信息量(表資源消息數(shù))end發(fā)送原語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接收原語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í)行時的時空開銷,進程的創(chuàng)建、撤消、切換較費時空,因它既是調(diào)度單位,又是資源擁有者。創(chuàng)建進程系統(tǒng)在創(chuàng)建一個進程時,必須為它分配其所必需的、除處理機以外的所有資源,如內(nèi)存空間、I/O 設(shè)備,以及建立相應(yīng)的PCB。撤銷進程系統(tǒng)在撤銷進程時,必須先對其所占有的資源執(zhí)行回收操作,然后再撤銷PCB。進程切換對進程切換時,由于要保留當(dāng)前進程的CPU 環(huán)境和設(shè)置新選中進程的CPU環(huán)境,因而花費不少的處理機時間。3. 教學(xué)小結(jié) (3分鐘)本講主要介紹了共享緩沖
49、區(qū)進程同步問題的方法,以及它們實現(xiàn)等;進程通信和進程通信的類型、消息傳遞系統(tǒng)實現(xiàn)中的若干問題、消息緩沖隊列通信機制、線程等。四、 作業(yè)與實驗(3分鐘)1.作業(yè)P8128.在測量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù)時,把所采集的數(shù)據(jù)送往一單緩沖區(qū);計算任務(wù)從該單緩沖區(qū)中取出數(shù)據(jù)進行計算。試寫出利用信號量機制實現(xiàn)兩任務(wù)共享單緩沖區(qū)的同步算法?30.如何利用管程來解決生產(chǎn)者-消費者問題?31.什么是AND信號量?試?yán)肁ND信號量寫出生產(chǎn)者-消費者問題的解決。32.什么是信號量集?試?yán)眯盘柫考瘜懗鲎x者-寫者問題的解法。37.試說明線程具有哪些屬性?38.試從調(diào)度性、并發(fā)性、擁有資源及系統(tǒng)開銷方面對進程和線程進行比較?39.為了在多線程OS中實現(xiàn)進行之間的同步與通信,通常提供了哪幾種同步機制?40.用于實現(xiàn)線程同步的私用信號量和公用信號量之間有何差異?2.實驗實驗二:進程創(chuàng)建第7講 處理機調(diào)度與死鎖(1)一、 教學(xué)目標(biāo) 1.理解處理機調(diào)度的層次; 2.理解調(diào)度隊列模型和選擇調(diào)度方式和算法的準(zhǔn)則3.掌握先來先服務(wù)、短作業(yè)(進程)優(yōu)先、時間片輪轉(zhuǎn)和優(yōu)先權(quán)調(diào)度算法;4.理解多級反饋隊列調(diào)度算法;二、 重點與難點分析1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市地下空間沉降監(jiān)測與開發(fā)合同7篇
- 2025年度棉花產(chǎn)業(yè)環(huán)保治理與污染防控合同4篇
- 2025年沙地生態(tài)保護與可持續(xù)發(fā)展承包合同3篇
- 2025年度戶外廣告牌使用權(quán)及維護合同4篇
- 二零二五版杭州二手房買賣合同產(chǎn)權(quán)變更與登記服務(wù)協(xié)議3篇
- 2025年度光伏發(fā)電項目個人工勞務(wù)分包合同2篇
- 2025年度苗木種植保險合同匯編3篇
- 二零二五年度廚房設(shè)備安裝與智能化節(jié)能改造合同4篇
- 二零二五年度地產(chǎn)樣板間軟裝設(shè)計定制合同3篇
- 2025年拋光技術(shù)成果轉(zhuǎn)化與應(yīng)用合同4篇
- 墓地銷售計劃及方案設(shè)計書
- 從偏差行為到卓越一生3.0版
- 優(yōu)佳學(xué)案七年級上冊歷史
- 鋁箔行業(yè)海外分析
- 紀(jì)委辦案安全培訓(xùn)課件
- 超市連鎖行業(yè)招商策劃
- 醫(yī)藥高等數(shù)學(xué)智慧樹知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項目 投標(biāo)方案(技術(shù)標(biāo))
- 【公司利潤質(zhì)量研究國內(nèi)外文獻綜述3400字】
- 工行全國地區(qū)碼
- 新疆2022年中考物理試卷及答案
評論
0/150
提交評論