操作系統(tǒng)設(shè)計原理 課件全套 第1-10章 操作系統(tǒng)概述-操作系統(tǒng)設(shè)計問題_第1頁
操作系統(tǒng)設(shè)計原理 課件全套 第1-10章 操作系統(tǒng)概述-操作系統(tǒng)設(shè)計問題_第2頁
操作系統(tǒng)設(shè)計原理 課件全套 第1-10章 操作系統(tǒng)概述-操作系統(tǒng)設(shè)計問題_第3頁
操作系統(tǒng)設(shè)計原理 課件全套 第1-10章 操作系統(tǒng)概述-操作系統(tǒng)設(shè)計問題_第4頁
操作系統(tǒng)設(shè)計原理 課件全套 第1-10章 操作系統(tǒng)概述-操作系統(tǒng)設(shè)計問題_第5頁
已閱讀5頁,還剩813頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2025/11/61操作系統(tǒng)2025/11/62課程的性質(zhì)與任務(wù)性質(zhì):操作系統(tǒng)是計算機系統(tǒng)中不可缺少的基礎(chǔ)系統(tǒng)軟件。它是用于管理和控制計算機系統(tǒng)中軟、硬件資源,是計算機系統(tǒng)直接與用戶打交道的界面,是計算機系統(tǒng)的靈魂和核心。本課程是計算機科學與技術(shù)專業(yè)的重要專業(yè)基礎(chǔ)課和必修課。2025/11/63課程的性質(zhì)與任務(wù)任務(wù):本課程的任務(wù)是學習并掌握計算機操作系統(tǒng)的基本原理和實現(xiàn)方法,培養(yǎng)具備一定的復(fù)雜軟件系統(tǒng)的設(shè)計與開發(fā)能力,并以UNIX、LINUX或Windows為實例,加深領(lǐng)會和理解操作系統(tǒng)的基本概念和基本原理,為今后適應(yīng)系統(tǒng)軟件的研究與開發(fā)工作以及企事業(yè)計算機系統(tǒng)的管理和維護工作打下良好的基礎(chǔ)。本課程支持的畢業(yè)要求指標點如下:指標點3.1:能運用數(shù)學、自然科學和工程科學的基本原理,識別和判斷計算機領(lǐng)域復(fù)雜工程問題的關(guān)鍵環(huán)節(jié)和影響因素。指標點3.3:能認識到計算機領(lǐng)域復(fù)雜工程問題的解決有多種方案可選擇,會通過文獻研究尋求可替代的解決方案。指標點4.1:針對計算機領(lǐng)域復(fù)雜工程問題,能夠遵循計算機系統(tǒng)開發(fā)和工程化的基本要求,確定設(shè)計目標和技術(shù)方案,并具有創(chuàng)新意識。指標點5.5:能夠?qū)嶒灲Y(jié)果進行輸入條件關(guān)聯(lián)分析和解釋,并通過信息綜合給出合理有效的結(jié)論。指標點10.1:掌握一門外語,具有外語聽說讀寫能力;了解不同的文化,具有一定的國際視野和跨文化交流和溝通的能力。本課程目標:課程目標1:能夠理解和解釋操作系統(tǒng)的基本概念、基本原理、功能和作用。課程目標2:能夠理解操作系統(tǒng)的實現(xiàn)是一個系統(tǒng)化的過程。課程目標3:能運用計算機系統(tǒng)工程科學的基本原理,識別和判斷操作系統(tǒng)功能模塊實現(xiàn)問題的關(guān)鍵環(huán)節(jié)和影響因素。課程目標4:能認識到操作系統(tǒng)功能模塊的實現(xiàn)有多種方案可選擇。課程目標5:能夠通過文獻研究,在相關(guān)操作系統(tǒng)功能模塊實現(xiàn)的多種方案中,尋求一種更合適的解決方案。課程目標6:能夠遵循系統(tǒng)化的基本要求,確定操作系統(tǒng)相關(guān)功能模塊設(shè)計目標和技術(shù)方案,并體現(xiàn)創(chuàng)新意識。課程目標7:能夠運用所學知識設(shè)計實現(xiàn)作系統(tǒng)的功能模塊相關(guān)算法。課程目標8:能夠?qū)嶒灲Y(jié)果進行輸入條件關(guān)聯(lián)分析和解釋,并能綜合應(yīng)用場景和技術(shù)需求,得出結(jié)論的有效性。課程目標9:能夠閱讀和理解操作系統(tǒng)相關(guān)英文資料,能基本聽懂文件系統(tǒng)英文授課內(nèi)容。課程目標10:能正確理解文件系統(tǒng)的英文表達問題,給出問題的解決方案。課程目標11:能理解操作系統(tǒng)對祖國建設(shè)與發(fā)展的重要作用。課程考核與參考書課程考核方法期末考試60%+平時40%(實驗20%+作業(yè)5%+大作業(yè)5%+隨堂測驗10%)要求缺勤超過15學時,不許參加期末考試作業(yè)超過1/3未交,不許參加期末考試學習方法:理解、思考、設(shè)計、暢想課程網(wǎng)頁:/course/94889994.html

參考書:1)毛啟容等編.《操作系統(tǒng)設(shè)計原理》.清華大學出版社,2025年;2)AndressSTanenbaum等.《ModernOperatingSystems》.Publisher:Pearson,2014年第四版2025/11/68第1章操作系統(tǒng)概述1.0計算機的系統(tǒng)結(jié)構(gòu)1.1操作系統(tǒng)的定義1.2操作系統(tǒng)的形成和發(fā)展1.3操作系統(tǒng)的分類1.4操作系統(tǒng)的運行環(huán)境1.5操作系統(tǒng)的結(jié)構(gòu)1.6現(xiàn)代操作系統(tǒng)

2025/11/691.0計算機的系統(tǒng)結(jié)構(gòu)一.計算機系統(tǒng)組成計算機系統(tǒng)(層次結(jié)構(gòu))軟件硬件及固件(裸機)應(yīng)用軟件系統(tǒng)軟件語言處理系統(tǒng)

常用的例行服務(wù)程序

操作系統(tǒng)1.0計算機的系統(tǒng)結(jié)構(gòu)2025/11/62025/11/6111.0計算機的系統(tǒng)結(jié)構(gòu)二、軟件與硬件的關(guān)系

硬件:計算機系統(tǒng)工作的基礎(chǔ)。軟件:提高計算機系統(tǒng)效率和方便用戶使用計算機的程序,完成一定的處理任務(wù)。它們二者相互依賴、相互促進、共同發(fā)展。

裸機(硬件)是僵尸,軟件是靈魂.2025/11/6121.1操作系統(tǒng)的定義1、科普的觀點:操作系統(tǒng)是計算機系統(tǒng)的管理和控制中心,它依照設(shè)計者制定的各種調(diào)度策略組織和管理計算機系統(tǒng)資源,使之能高效地運行。2、功能的觀點:操作系統(tǒng)是一個計算機資源管理系統(tǒng),它負責計算機系統(tǒng)的全部資源的分配、控制、調(diào)度和回收。3、用戶的觀點:操作系統(tǒng)是計算機與用戶之間的接口,用戶通過這種接口使用計算機。一.基本概念OS包含于各類系統(tǒng)中:移動設(shè)備、家電、控制系統(tǒng)、計算機;2025/11/6131.1操作系統(tǒng)的定義一.基本概念4、軟件的觀點:操作系統(tǒng)是程序和數(shù)據(jù)結(jié)構(gòu)的集合。5、管理的觀點:操作系統(tǒng)是計算機硬件和軟件資源合理而協(xié)調(diào)的管理者。6、

操作系統(tǒng)是一個大型的系統(tǒng)軟件,它負責計算機的全部軟、硬件資源的分配、調(diào)度工作,控制并協(xié)調(diào)并發(fā)活動,實現(xiàn)信息的存取和保護。它提供用戶接口,使用戶獲得良好的工作環(huán)境。操作系統(tǒng)使整個計算機系統(tǒng)實現(xiàn)了高效率和高度自動化。2025/11/6141.1操作系統(tǒng)的定義二.計算機系統(tǒng)的視圖

計算機硬件操作系統(tǒng)語言處理應(yīng)用軟件應(yīng)用用戶應(yīng)用程序員操作系統(tǒng)設(shè)計人員編譯程序設(shè)計者2025/11/6151.1操作系統(tǒng)的定義OS:對計算機硬件的第一層擴充;其它軟件系統(tǒng)工作于OS之上;操作系統(tǒng)內(nèi)的操作者包括幾種類別:一般用戶:操縱員:管理員:注意:和OS的用戶(使用者、程序)的區(qū)別。2025/11/6161.1操作系統(tǒng)的定義人機交互界面(虛擬機)資源管理三.操作系統(tǒng)的基本功能對應(yīng)OS定義中的兩大方面2025/11/6171.1操作系統(tǒng)的定義目標:提供一個友好的用戶訪問操作系統(tǒng)的接口。系統(tǒng)命令:供用戶組織和控制自己的作業(yè)運行。形式:命令行、菜單式、GUI、命令腳本;控制方式:聯(lián)機、脫機編程接口:供用戶程序和系統(tǒng)程序調(diào)用操作系統(tǒng)功能。系統(tǒng)調(diào)用、高級語言庫函數(shù);三.操作系統(tǒng)的基本功能(人機交互)2025/11/6181.1操作系統(tǒng)的定義計算機系統(tǒng)組成軟件資源存儲器外部設(shè)備處理器運行任務(wù)控制三.操作系統(tǒng)的基本功能(資源管理)OS功能模塊文件管理存儲管理設(shè)備管理處理器和進程管理作業(yè)管理計算機系統(tǒng)核心部分外加設(shè)備2025/11/6191.1操作系統(tǒng)的定義解決軟件資源的存儲、共享、保密和保護。文件存儲空間管理:解決如何存放信息,以提高空間利用率和讀寫性能。目錄管理:解決信息檢索問題。文件的屬性(如文件名)、單一副本賦予多文件名。文件的讀寫管理和存取控制:解決信息安全問題。系統(tǒng)設(shè)口令“哪個用戶”、用戶分類"哪個用戶組"、文件權(quán)限"針對用戶或用戶組的讀寫權(quán)"。軟件管理:軟件的版本、相互依賴關(guān)系、安裝和拆除等。三.操作系統(tǒng)的基本功能(資源管理——文件管理)如何更好地組織文件方便使用2025/11/6201.1操作系統(tǒng)的定義管理目標:提高利用率、方便用戶使用、提供足夠的存儲空間、方便進程并發(fā)運行。存儲分配與回收存儲保護:保證進程間互不干擾、相互保密;如:訪問合法性檢查、甚至要防止從"垃圾"中竊取其他進程的信息;地址映射(變換):進程邏輯地址到內(nèi)存物理地址的映射;內(nèi)存擴充(覆蓋、交換和虛擬存儲):提高內(nèi)存利用率、擴大進程的內(nèi)存空間;同一類型內(nèi)的公平性、高效率(吞吐量大)、作業(yè)周轉(zhuǎn)時間等。三.操作系統(tǒng)的基本功能(資源管理——存儲管理)2025/11/6211.1操作系統(tǒng)的定義設(shè)備操作:利用設(shè)備驅(qū)動程序(通常在內(nèi)核中)完成對設(shè)備的操作。還需處理外設(shè)的IRQ。設(shè)備獨立性(deviceindependence):提供統(tǒng)一的I/O設(shè)備接口,使應(yīng)用程序獨立于物理設(shè)備,提高可適應(yīng)性;在同樣的接口和操作下完成不同的內(nèi)容(如FAXModem作為Windows上的打印機設(shè)備)。三.操作系統(tǒng)的基本功能(資源管理——設(shè)備管理)目標:方便的設(shè)備使用、提高CPU與I/O設(shè)備利用率;2025/11/6221.1操作系統(tǒng)的定義設(shè)備分配與回收:在多用戶間共享I/O設(shè)備資源。虛擬設(shè)備(virtualdevice):設(shè)備由多個進程共享,每個進程如同獨占。緩沖區(qū)管理:匹配CPU和外設(shè)的速度,提高兩者的利用率(單緩沖區(qū)、雙緩沖區(qū)和公用緩沖區(qū))三.操作系統(tǒng)的基本功能(資源管理——設(shè)備管理)2025/11/6231.1操作系統(tǒng)的定義三.操作系統(tǒng)的基本功能(資源管理——處理器和進程管理)進程控制:創(chuàng)建、撤銷、掛起、改變運行優(yōu)先級等--主動改變進程的狀態(tài)進程同步:協(xié)調(diào)并發(fā)進程之間的推進步驟,以協(xié)調(diào)資源共享;--交換信息能力弱完成處理器資源的分配調(diào)度等功能。處理機調(diào)度的單位可為進程或線程。2025/11/6241.1操作系統(tǒng)的定義三.操作系統(tǒng)的基本功能(資源管理——處理器和進程管理)進程通信:進程之間傳送數(shù)據(jù),以協(xié)調(diào)進程間的協(xié)作,也可以用來協(xié)調(diào)進程之間的推進。--交換信息能力強進程調(diào)度:作業(yè)和進程的運行切換,以充分利用處理機資源和提高系統(tǒng)性能。--未必是進程控制操作所引起(可能是時間片輪轉(zhuǎn)、I/O操作)完成處理機資源的分配調(diào)度等功能。處理機調(diào)度的單位可為進程或線程。1.1操作系統(tǒng)的定義提供“作業(yè)控制語言”供用戶寫作業(yè)說明書。作業(yè)調(diào)度。在滿足資源需求的情況下,選擇哪些作業(yè)投入運行。方法:先來先服務(wù)、最短作業(yè)優(yōu)先、響應(yīng)比最高者優(yōu)先、優(yōu)先數(shù)法、分類調(diào)度法等注:通常在大中型操作系統(tǒng)中,才提供作業(yè)管理的功能。一般微機操作系統(tǒng)以及單用戶操作系統(tǒng)不考慮作業(yè)管理的功能。三.操作系統(tǒng)的基本功能(資源管理——作業(yè)管理)2025/11/62025/11/6261.2操作系統(tǒng)的形成和發(fā)展手工階段管理程序(初級OS)多用戶、多道作業(yè)和分時系統(tǒng)(unix)微型機操作系統(tǒng)通道和中斷技術(shù)的出現(xiàn)硬件的發(fā)展單用戶、單道作業(yè)(CDOS,MS-DOS)多任務(wù)OS(Windows,LINUX)嵌入式OS原始匯編系統(tǒng)分布式OS、云計算OS網(wǎng)絡(luò)的發(fā)展2025/11/6271.2操作系統(tǒng)的形成和發(fā)展工作方式用戶:用戶既是程序員,又是操作員;用戶是計算機專業(yè)人員;編程語言:為機器語言;輸入輸出:紙帶或卡片;計算機的工作特點用戶獨占全機:不出現(xiàn)資源被其他用戶占用,資源利用率低;CPU等待用戶:計算前,手工裝入紙帶或卡片;計算完成后,手工卸取紙帶或卡片;CPU利用率低;手工階段1946~1950年代(電子管),集中計算(計算中心),計算機資源昂貴;2025/11/6281.2操作系統(tǒng)的形成和發(fā)展60年代計算機硬件獲得兩個重大的進展:

通道技術(shù)和中斷技術(shù)通道:

是一種專用部件,負責外部設(shè)備與內(nèi)存之間信息的傳輸。中斷:指主機接到外界信號(來自CPU外部或內(nèi)部)時,立即中止原來的工作,轉(zhuǎn)去處理這一外來事件,處理完后,主機又回到原來工作點繼續(xù)工作。通道、中斷2025/11/6291.2操作系統(tǒng)的形成和發(fā)展主要功能:向用戶提供多個共享資源來運行他們的程序;幫助操作員控制用戶程序的執(zhí)行和管理計算機的部分資源。計算機的工作特點程序員與操作員分開;操作員通過命令與計算機交互。管理程序2025/11/6301.2操作系統(tǒng)的形成和發(fā)展定義

多道程序設(shè)計技術(shù)是在計算機內(nèi)存中同時存放幾道相互獨立的程序,它們在管理程序的控制下相互穿插地運行。特征:

-多道:內(nèi)存中同時存放幾個作業(yè);-宏觀上并行:都處于運行狀態(tài),但都未運行完;-微觀上串行:各作業(yè)交替使用CPU;多道程序設(shè)計讓多個任務(wù)在計算機中同時運行(宏觀)2025/11/6311.2操作系統(tǒng)的形成和發(fā)展優(yōu)點:資源利用率高:處理器和內(nèi)存利用率較高;作業(yè)吞吐量大:單位時間內(nèi)完成的工作總量大;缺點:用戶交互性差:整個作業(yè)完成后或中間出錯時,才與用戶交互,不利于調(diào)試和修改;作業(yè)平均周轉(zhuǎn)時間長:短作業(yè)的周轉(zhuǎn)時間顯著增長;多道程序設(shè)計的特點2025/11/6321.2操作系統(tǒng)的形成和發(fā)展“分時”的含義分時是指多個用戶分享使用同一臺計算機。多個程序分時共享硬件和軟件資源。多個用戶分時:單個用戶使用計算機的效率低,因而允許多個應(yīng)用程序同時在內(nèi)存中,分別服務(wù)于不同的用戶。有用戶輸入時由CPU執(zhí)行,處理完一次用戶輸入后程序暫停,等待下一次用戶輸入--時走時停;前臺和后臺程序(foreground&background)分時:后臺程序不占用終端輸入輸出,不與用戶交互--現(xiàn)在的圖形用戶界面(GUI),除當前交互的程序(有輸入交互)之外,其他程序均作為后臺;分配策略:按時間片(timeslice:各個程序在CPU上執(zhí)行的輪換時間)分配。分時操作系統(tǒng)讓多個用戶同時使用計算機2025/11/6331.2操作系統(tǒng)的形成和發(fā)展人機交互性好:在調(diào)試和運行程序時由用戶自己操作。共享主機:多個用戶同時使用。用戶獨立性:對每個用戶而言好象獨占主機。分時操作系統(tǒng)的特點2025/11/6341.2操作系統(tǒng)的形成和發(fā)展云計算:通過Internet以服務(wù)方式提供動態(tài)可伸縮的虛擬化資源的計算模式。云計算操作系統(tǒng):構(gòu)架于服務(wù)器、存儲、網(wǎng)絡(luò)等基礎(chǔ)硬件資源和單機操作系統(tǒng)、中間件、數(shù)據(jù)庫等用于管理海量的基礎(chǔ)硬件、軟件之上的云平臺綜合管理系統(tǒng)。喚來了基于網(wǎng)絡(luò)的分布式操作系統(tǒng)和虛擬化軟件的研究的春天云計算操作系統(tǒng)2025/11/6351.3操作系統(tǒng)的分類1.單用戶操作系統(tǒng)

2.批處理操作系統(tǒng)

3.實時操作系統(tǒng)

4.分時操作系統(tǒng)

5.網(wǎng)絡(luò)操作系統(tǒng)

6.分布式操作系統(tǒng)7.嵌入式操作系統(tǒng)分類原則:按操作系統(tǒng)所提供的功能分2025/11/6361.3操作系統(tǒng)的分類基本特征:

一個用戶獨占計算機系統(tǒng)資源。系統(tǒng)所有軟、硬件資源全為一個用戶服務(wù),單獨地執(zhí)行該用戶提交的一個任務(wù)。常用的單用戶操作系統(tǒng):單用戶單任務(wù):MSDOS;CP/M單用戶操作系統(tǒng)2025/11/6371.3操作系統(tǒng)的分類作業(yè)的處理流程作業(yè)提交:作業(yè)的輸入;作業(yè)執(zhí)行:作業(yè)完成:作業(yè)的輸出;分類:-單道批處理系統(tǒng):MSDOS

-多道批處理系統(tǒng):IBMDOS批處理操作系統(tǒng)特點:用戶脫機使用計算機成批處理2025/11/6381.3操作系統(tǒng)的分類單道和多道批處理的比較:批處理操作系統(tǒng)區(qū)別:作業(yè)道數(shù):作業(yè)處理方式:2025/11/6391.3操作系統(tǒng)的分類實時操作系統(tǒng)專用系統(tǒng):許多實時系統(tǒng)是專用系統(tǒng)。實時控制:實時系統(tǒng)用于控制實時過程,要求對外部事件的迅速響應(yīng),具有較強的中斷處理機構(gòu)。高可靠性:實時系統(tǒng)用于控制重要過程,要求高度可靠,具有較高冗余。如雙機系統(tǒng)。事件驅(qū)動和隊列驅(qū)動:實時系統(tǒng)的工作方式:接受外部消息,分析消息,調(diào)用相應(yīng)處理程序進行處理??膳c通用系統(tǒng)結(jié)合成通用實時系統(tǒng):實時處理前臺作業(yè),批處理為后臺作業(yè)。特征:解決對時間要求高的問題人工干預(yù)少。2025/11/6401.3操作系統(tǒng)的分類分時操作系統(tǒng)同時性:多個用戶同時工作。共享系統(tǒng)資源,提高了資源利用率。節(jié)省維護開支,可靠性高:笨終端--至今仍在使用。促進了計算機的普遍應(yīng)用,提高資源利用率,遠地用戶通過終端(較便宜)聯(lián)機使用。獨立性:各用戶獨立操作,互不干擾。交互性:系統(tǒng)能及時對用戶的操作進行響應(yīng),顯著提高調(diào)試和修改程序的效率,縮短了周轉(zhuǎn)時間;及時性:用戶的請求能在較短時間內(nèi)得到響應(yīng)。特征:解決多人同時使用機器的要求以時間片方式分配工作2025/11/6411.3操作系統(tǒng)的分類網(wǎng)絡(luò)操作系統(tǒng)通常操作系統(tǒng)的功能:處理機管理、存儲器管理、設(shè)備管理、文件管理等;網(wǎng)絡(luò)通信功能:通過網(wǎng)絡(luò)協(xié)議進行高效、可靠的數(shù)據(jù)傳輸;網(wǎng)絡(luò)資源管理:協(xié)調(diào)各用戶使用;網(wǎng)絡(luò)服務(wù):文件和設(shè)備共享,信息發(fā)布;網(wǎng)絡(luò)管理:安全管理、故障管理、性能管理等。功能:提供網(wǎng)絡(luò)通信和網(wǎng)絡(luò)資源共享功能的操作系統(tǒng)

2025/11/6421.3操作系統(tǒng)的分類分布式操作系統(tǒng)特征:l

系統(tǒng)中任意兩臺計算機可以通過通信來交換信息。l

系統(tǒng)中各臺計算機無主次之分,既沒有控制整個系統(tǒng)的主機,也沒有受控于它機的從機。l

系統(tǒng)資源為所有用戶共享。l

系統(tǒng)中若干臺計算機可以互相協(xié)作來完成一個共同任務(wù),或者說,一個程序可以分布于幾臺計算機上并行地運行。2025/11/6431.3操作系統(tǒng)的分類嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)(EmbeddedOperatingSystem,簡稱:EOS)是指用于嵌入式系統(tǒng)的操作系統(tǒng)通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標準化瀏覽器等它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能常用的有:嵌入式Linux、WindowsEmbedded、VxWorks等,以及應(yīng)用在智能手機和平板電腦的Android、iOS等2025/11/6441.4操作系統(tǒng)的運行環(huán)境l

CPUl

特權(quán)指令:指令系統(tǒng)中那些只能由操作系統(tǒng)使用的指令

l

處理器狀態(tài):多數(shù)系統(tǒng)將處理器工作狀態(tài)較簡單地劃分為管態(tài)(一般指操作系統(tǒng)管理程序運行的狀態(tài))和目態(tài)(用戶程序運行時的狀態(tài))。l

程序狀態(tài)字(PSW):用來指示處理器狀態(tài)。與操作系統(tǒng)的資源管理功能密切相關(guān)的硬件環(huán)境:

執(zhí)行不同程序時,對處理器設(shè)置的不同狀態(tài)。2025/11/6451.5操作系統(tǒng)的結(jié)構(gòu)l

軟件組件化:OS也是一種軟件,用軟件工程的方法來組織。l

分層:每層完成操作系統(tǒng)要求的一個功能子集,每層都依賴緊挨著的較低一層的功能,并且為較高層提供服務(wù)。

隨著操作系統(tǒng)的發(fā)展,功能越強,OS自身代碼量越大--采用良好的結(jié)構(gòu):有利于保證正確性以及自身修改和擴充。2025/11/6461.5操作系統(tǒng)的結(jié)構(gòu)操作系統(tǒng)的層次模式:層次名稱對象操作舉例1312111098外殼用戶進程目錄設(shè)備文件系統(tǒng)通信用戶程序設(shè)計環(huán)境用戶進程目錄外設(shè):打印機、顯示器等文件管道Shell語言中的語句Quit,kill,suspend,resumeCreate,destroy,attach,detach,search,listCreate,destroy,open,close,read,writeCreate,destroy,open,closeCreate,destroy,open,close,read,write765虛擬存儲器局部輔存進程原語段、頁數(shù)據(jù)塊、設(shè)備通道進程原語、信號量、就緒隊列read,write,fetchread,write,allocate,freesuspend,resume,wait,signal4321中斷過程指令集電子線路中斷處理程序過程、調(diào)用棧、顯示演算棧、微程序解釋器寄存器、門電路、總線等Invoke,mask,unmask,retryMarkstack,call,retumLoad,store,add,subtract,branchClear,transfer,activate,complement2025/11/6471.6現(xiàn)代操作系統(tǒng)特征:絕大多數(shù)是個人獨占計算機,通常使用交互方式。

多機系統(tǒng),尤其對稱多處理器SMP(symmetricmultiprocessing)方式被廣泛使用。設(shè)計技術(shù)上和結(jié)構(gòu)上的改進和發(fā)展

。2025/11/6481.6現(xiàn)代操作系統(tǒng)特征:微內(nèi)核結(jié)構(gòu):減少內(nèi)核的大小多線程機制:加快調(diào)度速度對稱多處理器(SMP)機制

分布式操作系統(tǒng)采用面向?qū)ο蠹夹g(shù)2025/11/6491.6現(xiàn)代操作系統(tǒng)UNIX一個通用的、交互式的分時系統(tǒng)設(shè)計目標統(tǒng)一的硬件管理多用戶多任務(wù)2025/11/6501.6現(xiàn)代操作系統(tǒng)Linux基于IBMPC結(jié)構(gòu)的一個UNIX變種開源主要特點接口符合POSIX1003.1標準支持多用戶訪問和多任務(wù)編程高效的存儲資源管理支持動態(tài)鏈接支持多種文件系統(tǒng)支持TCP/IP、SLIP和PPP2025/11/6511.6現(xiàn)代操作系統(tǒng)WindowsWindowsNT3.1是微軟的第一代產(chǎn)品WindowsNT3.5x系列WindowsNT4.0WindowsNT5.0X:Windows2000、XP和WindowsServer2003WindowsNT6.0X:WindowsVista、WindowsServer2008、Windows7、WindowsServer2008R2、Windows8、Windows8.1和WindowsServer2012Windows10、112025/11/6521.6現(xiàn)代操作系統(tǒng)OpenHarmony分布式操作系統(tǒng)架構(gòu);分布式軟總線技術(shù);確定時延引擎;高性能進程間通信;微內(nèi)核設(shè)計;跨平臺硬件支持;統(tǒng)一集成開發(fā)環(huán)境(IDE);一次開發(fā),多端部署。2025/11/653小結(jié)(1)操作系統(tǒng)的概念。操作系統(tǒng)是方便用戶、管理系統(tǒng)資源的系統(tǒng)軟件。有了操作系統(tǒng)的支持,用戶可以自如地使用操作命令,方便地運行自己的程序。否則,用戶面對“死”的硬件則難以將它運轉(zhuǎn)起來;通過操作系統(tǒng)可以自動調(diào)動系統(tǒng)的軟硬件資源,使它們高效協(xié)調(diào)地運轉(zhuǎn);同時,操作系統(tǒng)又是系統(tǒng)軟件,處于軟件系統(tǒng)三個層次的最下層,其它程序只有在它的支持下才能完成自己的操作。(2)操作系統(tǒng)的分類。通過本章的學習,要能正確理解單用戶與多用戶系統(tǒng)的區(qū)別;單道批處理系統(tǒng)和多道批處理系統(tǒng)以及批處理系統(tǒng)、分時系統(tǒng)、實時系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)和嵌入式操作系統(tǒng)各有什么區(qū)別和特點。2025/11/654小結(jié)(3)操作系統(tǒng)的功能。操作系統(tǒng)的資源管理有四項功能:處理器管理、存儲器(內(nèi)存)管理、設(shè)備管理和文件管理。前兩者主要表現(xiàn)在多用戶操作系統(tǒng)中,系統(tǒng)為多個用戶動態(tài)地分配CPU和內(nèi)存,使之高效協(xié)調(diào)地運轉(zhuǎn)。設(shè)備管理主要是解決外部設(shè)備的驅(qū)動和分配問題、系統(tǒng)為用戶提供簡便有效的操作手段。文件管理就是系統(tǒng)把龐雜繁多的文件有組織地存放在外存空間內(nèi),使得用戶方便地按文件名實行存取。此外還提供文件保護和共享的能力。(4)操作系統(tǒng)的運行環(huán)境。操作系統(tǒng)作為系統(tǒng)的管理程序,為了實現(xiàn)其預(yù)定的的各種管理功能,需要有一定的運行環(huán)境,主要包括系統(tǒng)的硬件環(huán)境和由其它的系統(tǒng)軟件形成的軟件環(huán)境。我們在系統(tǒng)的視圖及系統(tǒng)的運行環(huán)境兩節(jié)中分別介紹了這個概念。(5)現(xiàn)代操作系統(tǒng)設(shè)計特點。現(xiàn)代操作系統(tǒng)設(shè)計的特點主要體現(xiàn)在圖形用戶界面的交互技術(shù)、對稱多處理器的支持、微內(nèi)核結(jié)構(gòu)、多線程機制、分布式操作系統(tǒng)的實現(xiàn)和面向?qū)ο蠹夹g(shù)的采用等方面。2025/11/655作業(yè)

1.什么是系統(tǒng)軟件?它起什么作用?2.什么是操作系統(tǒng)?它在計算機系統(tǒng)中起什么作用?3.簡述操作系統(tǒng)的發(fā)展歷程。

4.什么是單用戶操作系統(tǒng)?什么是多用戶操作系統(tǒng)?二者本質(zhì)區(qū)別何在?5.操作系統(tǒng)的功能有哪幾項?扼要地說明之。6.為什么對作業(yè)進行批處理可以提高系統(tǒng)效率?7.操作系統(tǒng)有哪些分類方法?8.何謂批處理操作系統(tǒng)?它有哪些類型?各有什么特征?9.批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)各有什么特點?各適用于哪些方面?10.當今流行的嵌入式操作系統(tǒng)有哪些?第二章進程與線程

56學習要求掌握進程、線程管理基本原理及處理機制能夠識別進程、線程管理功能實現(xiàn)的關(guān)鍵環(huán)節(jié)和影響因素能認識到進程、線程管理模塊的實現(xiàn)有多種方案可選能夠通過文獻研究,在相關(guān)進程、線程管理功能模塊實現(xiàn)的多種方案中,尋求一種更合適的解決方案。

能夠遵循系統(tǒng)化的基本要求,確定進程、線程管理相關(guān)功能模塊設(shè)計目標和技術(shù)方案。能夠運用所學知識解決進程、線程管理的功能模塊設(shè)計與實現(xiàn)問題,能在設(shè)計實現(xiàn)中體現(xiàn)創(chuàng)新意識??偸霾僮飨到y(tǒng)的重要任務(wù)之一:是充分、有效地利用系統(tǒng)的各類資源

最寶貴的資源:CPU

分配調(diào)度策略、處理沖突、資源回收

引入進程:作為資源分配的基本單位和基本實體

處理器的管理→進程管理

58第二章進程與線程2.1

多道程序與并發(fā)執(zhí)行2.2

進程2.3

線程2.4進程管理實例592.1多道程序與并發(fā)執(zhí)行本節(jié)內(nèi)容:介紹程序的順序執(zhí)行;分析程序順序執(zhí)行的特點;引入多道程序并發(fā)執(zhí)行;分析程序的并發(fā)執(zhí)行和特點。

602.1多道程序與并發(fā)執(zhí)行612.1.1程序的順序執(zhí)行和特點2.1.2程序的并發(fā)執(zhí)行和特點2.1.1程序的順序執(zhí)行和特點計算機上運行的是:程序程序:是一個在時間上按嚴格次序先后操作的指令序列。它規(guī)定完成某一任務(wù)時所需做的各種操作規(guī)定操作順序62單道程序系統(tǒng):每次只允許一道程序進入計算機執(zhí)行的系統(tǒng)。2.1.1程序的順序執(zhí)行和特點單道程序系統(tǒng)中:每次只允許一道程序運行;它將獨占系統(tǒng)資源(處理器、主存、輔存、外設(shè)、軟件);系統(tǒng)按照程序設(shè)計的步驟順序地執(zhí)行;在該程序執(zhí)行完成之前,其它程序只能等待。

632.1.1程序的順序執(zhí)行和特點例:假設(shè)有兩道程序都需運行,在單道程序系統(tǒng)中的運行情況如下:I代表輸入,用C代表計算,P代表打印64程序1程序2I1C1P1I2C2P22.1.1程序的順序執(zhí)行和特點順序執(zhí)行的特點:程序執(zhí)行的順序性:前一步完才做下一步;程序運行時對資源的獨占性:沒有其它程序與之爭奪資源;程序結(jié)果的可再現(xiàn)性:程序執(zhí)行的結(jié)果與執(zhí)行速度、時間無關(guān);程序結(jié)果的封閉性:程序的運行只由初始條件和程序本身來確定。652.1.1程序的順序執(zhí)行和特點優(yōu)點:系統(tǒng)管理簡單,容易實現(xiàn)。缺點:系統(tǒng)的資源得不到充分的利用。66中斷和通道技術(shù)的引入2.1.2程序的并發(fā)執(zhí)行和特點程序的并發(fā)執(zhí)行:一道程序不用某一系統(tǒng)資源,另一程序道就可以馬上利用;多道程序并發(fā)執(zhí)行的情形:672.1.2程序的并發(fā)執(zhí)行和特點682.1.2程序的并發(fā)執(zhí)行和特點宏觀:同時駐留在主存的幾道程序都按照自己的程序規(guī)定動作執(zhí)行;微觀:是這幾道程序交替執(zhí)行。692.1.2程序的并發(fā)執(zhí)行和特點程序的并發(fā)執(zhí)行的特點:程序執(zhí)行時的資源共享性:硬資源、軟件資源(系統(tǒng)軟件、數(shù)據(jù));程序失去了封閉性和可再現(xiàn)性:舉例并發(fā)程序之間的相互制約性:共享系統(tǒng)內(nèi)的資源,因此程序之間產(chǎn)生相互制約關(guān)系。并發(fā)程序活動規(guī)律:執(zhí)行—暫?!獔?zhí)行程序:靜態(tài)概念(難于描述動態(tài)系統(tǒng))70進程例:varn:integerbeginn:=0;cobegin

programA;beginL1:n:=n+1;gotoL1end

programB;beginL2:print(n);n:=0;

gotoL2end

coend

end

712.2進程2.2.1進程的概念2.2.2進程的實體2.2.3進程狀態(tài)和轉(zhuǎn)換2.2.4進程的控制2.2.5進程的調(diào)度72進程的引入:程序的缺點:無法表示系統(tǒng)的動態(tài)特性,如:兩個用戶同時執(zhí)行CC編譯自己的程序,某時刻程序的執(zhí)行狀態(tài)難以刻畫(運行、就緒、等待?)。引入進程(程序+處理對象)可表示執(zhí)行動態(tài)特性。2.2.1進程的概念進程的六種理解方法(任務(wù)、活動)任何一個處于執(zhí)行的程序??梢院蛣e的計算并發(fā)執(zhí)行的計算。程序及其數(shù)據(jù)在處理器上順序執(zhí)行時的活動。抽象實體,當它執(zhí)行一個任務(wù)時,將要分配和釋放各種資源。獨立的可以調(diào)度的活動。具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動。

732.2.1進程的概念進程的定義(程序段+數(shù)據(jù))能和其它程序并行執(zhí)行的程序段在某數(shù)據(jù)集合上的一次運行過程,它是系統(tǒng)資源分配和調(diào)度的一個獨立單位。注意的問題:程序段可以并行執(zhí)行。(并發(fā)性)基礎(chǔ)是一個程序段,而不是整個程序。程序段在數(shù)據(jù)上的一次運行(某數(shù)據(jù)集合上的運行)動態(tài)的,是程序的一次執(zhí)行過程。(動態(tài)性)能獨立運行的基本單位。(獨立性)742.2.1進程的概念進程和程序的區(qū)別:進程是一段程序的一次運行活動,動態(tài)概念,有一定“生命期”;程序是一組指令的集合:靜態(tài)概念;程序段運行在兩個不同數(shù)據(jù)集合上,就是兩個不同的進程;一個程序可以對應(yīng)多個進程;一個進程至少要對應(yīng)一個程序,或?qū)?yīng)多個程序,多個進程也可對應(yīng)相同的程序。進程具有并行特征(獨立性和異步性);進程是資源分配的基本單位。75例子:光盤(CD、VCD)光盤(程序)放光盤的活動(進程)2.2.2進程的實體1、進程的組成程序:進程→完整的程序、一部分程序;數(shù)據(jù)集合:運行需要的數(shù)據(jù)、工作區(qū)域;進程控制塊(PCB):描述和標志進程(創(chuàng)建進程時,建立PCB;完成任務(wù)被撤銷時,撤銷PCB。)76物質(zhì)基礎(chǔ)2.2.2進程的實體進程控制塊

PCB(ProcessControlBlock)

存放進程的管理和控制信息(標識信息,說明信息,現(xiàn)場信息,管理信息)的數(shù)據(jù)結(jié)構(gòu)稱為進程控制塊。在創(chuàng)建進程時,建立PCB,并伴隨進程運行的全過程,直到進程撤消而撤消。PCB就象我們的戶口表。772.2.2進程的實體PCB的組織方式(為了管理上的方便)線性方式:所有的PCB組成一個數(shù)組;鏈接方式:運行隊列、就緒隊列、阻塞隊列;索引方式:建立N張索引表。例如就緒索引表、阻塞索引表等。

782.2.2進程的實體線性方式PCB使用一個數(shù)組來組織和保存通過下標訪問PCB缺點:找到某一狀態(tài)的PCB,需要掃描整個線性表;79PCBPCBPCB……PCB2.2.2進程的實體鏈接方式將具有相同狀態(tài)的PCB,使用鏈表的形式組成一個隊列;系統(tǒng)使用固定單元,保存各隊列的第一個PCB的起始地址;隊列類型:運行隊列(多處理機)、就緒隊列、阻塞隊列。802.2.2進程的實體81運行隊列就緒隊列阻塞隊列2.2.2進程的實體索引方式還是使用統(tǒng)一的隊列存放PCB;根據(jù)所有進程狀態(tài),建立N張索引表;索引表的首地址記錄于內(nèi)存中的專用單元中;822.2.3進程狀態(tài)和轉(zhuǎn)換1.進程的三種基本狀態(tài)進程:動態(tài)的概念,表示了執(zhí)行過程。(生命期)為了便于管理:對進程的不同時刻的不同狀況,進行劃分;三種基本狀態(tài)(按照對資源的占用情況)就緒狀態(tài):執(zhí)行狀態(tài):阻塞狀態(tài):832.2.3進程狀態(tài)和轉(zhuǎn)換(1)就緒狀態(tài)進程獲得其它全部資源;但不能占用CPU;一旦獲得CPU就可以執(zhí)行;(2)執(zhí)行狀態(tài)已獲得必要的資源并占有CPU,正在執(zhí)行;單處理器系統(tǒng):只能有一個進程處于執(zhí)行狀態(tài)多機處理系統(tǒng):可能有多個進程處于執(zhí)行狀態(tài)(3)阻塞(等待)狀態(tài)進程因等待某一事件而暫不能執(zhí)行的狀態(tài);是等待除CPU外的資源或事件。84CPU是一類特殊的資源2.2.3進程狀態(tài)和轉(zhuǎn)換狀態(tài)的細分(為了管理和調(diào)度的便利,如PDP11的UNIX)運行狀態(tài)(執(zhí)行、就緒狀態(tài)):高優(yōu)先級睡眠狀態(tài):低優(yōu)先級睡眠狀態(tài):創(chuàng)建進程狀態(tài):正在被創(chuàng)建時等待終止處理狀態(tài):運行結(jié)束未撤消時暫停狀態(tài):被跟蹤時85本質(zhì):在三態(tài)的基礎(chǔ)上再分。等待或阻塞狀態(tài)2.2.3進程狀態(tài)和轉(zhuǎn)換進程狀態(tài)的轉(zhuǎn)換(運行過程中)產(chǎn)生的原因:自身的進展情況與其它進程并發(fā)執(zhí)行外界條件的變化862.2.3進程狀態(tài)和轉(zhuǎn)換87就緒狀態(tài)執(zhí)行狀態(tài)阻塞狀態(tài)資源滿足且獲得CPU(選中)

時間片用完(落選)等待事件已發(fā)生(資源得到滿足)

等待事件發(fā)生(等待資源)狀態(tài)轉(zhuǎn)換五種狀態(tài)的進程狀態(tài)轉(zhuǎn)換圖8889雙掛起狀態(tài)的進程狀態(tài)轉(zhuǎn)換圖2.2.4進程控制進程是有生命周期的,產(chǎn)生、運行、暫停、終止。對進程的這些操作叫進程控制。進程控制的職責是對系統(tǒng)中全部進程實施有效的管理,它是處理機管理的部分(另一部分是進程調(diào)度),當系統(tǒng)允許多進程并發(fā)執(zhí)行時,為了實現(xiàn)共享、協(xié)調(diào)并發(fā)進程的關(guān)系,處理機管理必須提供對進程實行有效的管理。902.2.4進程控制問題:進程的三態(tài)和轉(zhuǎn)換,如何控制它們的進行:如何對進程的整個生命期進行控制:創(chuàng)建、撤消進程控制的主要任務(wù):對系統(tǒng)中所有進程從創(chuàng)建到消亡的全過程實行有效地管理和控制。包括對進程狀態(tài)變化加以管理和控制;創(chuàng)建新進程和撤消已完成任務(wù)的進程;912.2.4進程控制進程控制包括:

進程創(chuàng)建、

進程撤消、

進程阻塞、

進程喚醒。

這些操作都要對應(yīng)地執(zhí)行一個特殊的程序段(操作系統(tǒng)核心程序),同時系統(tǒng)也通過系統(tǒng)調(diào)用給用戶提供進程控制的功能。教材上叫原語(一種特殊的系統(tǒng)調(diào)用)。

92原語:

用于完成特定功能的一段程序模塊;執(zhí)行期間不可分割。2.2.4進程控制運行狀態(tài)

等待狀態(tài)

進程阻塞等待狀態(tài)

就緒狀態(tài)

進程喚醒新建進程置為就緒狀態(tài)進程創(chuàng)建進程終止(消亡)

進程撤消就緒狀態(tài)

運行狀態(tài)

進程調(diào)度932.2.4進程控制OS的內(nèi)核中,用于進程控制的原語創(chuàng)建原語撤銷原語阻塞原語喚醒原語94對應(yīng)進程的建立和撤消對應(yīng)進程狀態(tài)轉(zhuǎn)換使進程在等待和就緒態(tài)之間轉(zhuǎn)換2.2.4進程控制1.創(chuàng)建原語-用于建立新的進程。建立進程的兩種方式-由操作系統(tǒng)建立;-由其它進程創(chuàng)建一個新的進程;形成父子進程關(guān)系建立過程95AB1B2C1C2C32.2.4進程控制創(chuàng)建過程96填寫相關(guān)信息申請PCB,分配惟一的數(shù)字標示符c調(diào)入程序設(shè)置為就緒狀態(tài)UNIX的進程創(chuàng)建:

1.fork:創(chuàng)建一個與自己完全一樣的新進程;

2.exec:Windows的進程創(chuàng)建:

1.CreatProcess:傳遞參數(shù)。972.2.4進程控制2.撤消原語完成任務(wù)后,釋放它所占用的資源;實質(zhì):撤消進程存在標志(進程控制塊PCB)并釋放資源包括子孫進程982.2.4進程控制進程撤銷過程99檢索該進程PCB從相應(yīng)隊列刪除查找所有的子孫進程釋放這些進程的資源包括PCB如進程原來為執(zhí)行狀態(tài)重新調(diào)度進程執(zhí)行2.2.4進程控制3.阻塞原語使用原因:因缺乏資源、等待I/O操作(也是資源的一種形式)等,而使用;使用目的:阻塞自己,進入阻塞態(tài),使OS可以調(diào)度別的進程進入執(zhí)行態(tài)。1002.2.4進程控制阻塞過程101保存當前進程的現(xiàn)場設(shè)置進程狀態(tài)為等待進程進入阻塞隊列轉(zhuǎn)進程調(diào)度選擇一個就緒態(tài)進程執(zhí)行例如,進程是因等待打印機而進入阻塞狀態(tài),則該進程將加入到等待打印機的隊列。進程掛起的系統(tǒng)調(diào)用算法和隊列變化如下:2.2.4進程控制4.喚醒原語使用條件:某個資源得到滿足。目的:喚醒所有等待該資源的進程,放入就緒隊列,等待調(diào)度;喚醒過程:102從等待隊列中摘下進程設(shè)置進程狀態(tài)為就緒進程進入就緒隊列轉(zhuǎn)進程調(diào)度或返回原進程2.2.4進程控制注意的問題:創(chuàng)建原語和撤消原語阻塞原語和喚醒原語分別都是一對相對的操作原語使用時,要注意成對的使用。1032.3線程首先先分析進程的局限性線程的特性線程和進程的關(guān)系線程的實現(xiàn)104105線程是對程序并發(fā)機制的進一步改善。引入的理由為:原并發(fā)機制是建立在進程基礎(chǔ)上,當有并發(fā)進程搶占CPU時需進行進程上下文的切換,代價高。改善后并發(fā)機制是建立在線程基礎(chǔ)上的,線程調(diào)度時不發(fā)生進程上下文的切換,可省去CPU的時間。引入線程后原有進程的兩個特征分別處理——操作系統(tǒng)的調(diào)度分配單位用線程描述;資源的分配單位仍用進程。2.3.1線程的引入線程:進程中的一個實體,比進程更小的獨立運行的基本單位;(不獨立擁有資源)進程內(nèi)的基本調(diào)度單位。106107進程與線程的關(guān)系操作系統(tǒng)中的進程和線程可以設(shè)計為以上四種108線程的屬性四部分組成:惟一的標識符、狀態(tài)寄存器兩個棧、私用存儲器被系統(tǒng)獨立調(diào)度和分派的基本單位;本身很小,調(diào)度開銷小。線程可以創(chuàng)建和撤消另一個線程;同一個進程中的線程可以并發(fā)執(zhí)行;不同進程中的線程也能并發(fā)執(zhí)行;PCB用戶地址空間用戶棧核心棧進程每個線程有一個線程控制塊(TCB)。線程標識符。描述處理機狀態(tài)的一組寄存器。棧指針。一個私有存儲區(qū)。109線程標識符處理機狀態(tài)信息用戶棧指針核心棧指針私有存儲區(qū)用戶棧核心棧進程和線程比較110●進程是資源的擁有者●線程不擁有資源,只有TCB及堆棧2.3.1線程的引入引入線程后的優(yōu)勢:1)在已有進程中創(chuàng)建或終止一個線程遠比控制進程來得快;2)線程間的切換更容易更快捷;3)線程間的通信無須內(nèi)核干涉可直接進行。1112.3.1線程的引入線程和進程的關(guān)系線程:進程內(nèi)的一個執(zhí)行單元;進程至少有一個線程;它們共享進程的地址空間;進程:有自己獨立的地址空間;進程:資源分配和擁有的單位;線程:同一個進程內(nèi)的線程共享進程的資源;進程:不是處理器調(diào)度的基本單位;線程:成為處理器調(diào)度的基本單位;進程:之間并發(fā)執(zhí)行;線程:之間并發(fā)執(zhí)行;112地址空間資源擁有調(diào)度單位執(zhí)行方式同樣有三態(tài)轉(zhuǎn)換和創(chuàng)建和終止2.3.1線程的引入進程、線程、程序、純程序概念比較程序:靜態(tài)的概念,無并發(fā)性;進程和線程:動態(tài)的概念,有并發(fā)性;進程:程序段+數(shù)據(jù)集擁有資源,有自己獨立的地址空間;線程:不獨占資源,共享進程資源,無獨立地址空間純程序:只有程序,本身無資源,調(diào)用程序提供數(shù)據(jù)區(qū)。113系統(tǒng)中進程與線程的表現(xiàn)形式可以是多樣的:114線程的狀態(tài)與管理

線程三種基本狀態(tài)(1)就緒狀態(tài):表示線程已具備執(zhí)行條件,等待調(diào)度程序分配CPU運行。(2)運行狀態(tài):表示線程被調(diào)度程序選中,并正占有CPU運行。(3)等待狀態(tài):表示線程正在等待某個事件發(fā)生。115線程的狀態(tài)與操作

116就緒執(zhí)行阻塞結(jié)束派生調(diào)度結(jié)束阻塞激活線程的典型應(yīng)用場合

前后并行工作場合:如,表處理。

異步處理工作場合:如,設(shè)置一個備份線程,它每隔一分鐘把RAM緩沖區(qū)的數(shù)據(jù)和信息寫入磁盤。

需要加快執(zhí)行速度的場合:如,一個線程在計算一批數(shù)據(jù)時另一個線程可以從設(shè)備上輸入下一批數(shù)據(jù),從而加快進程的執(zhí)行速度。

組織復(fù)雜工作的程序:如,多個不同的任務(wù)需要處理,多線程機制可方便程序的設(shè)計和組織,且可提高整個系統(tǒng)效率。同時有多個用戶服務(wù)請求的場合:如,文件服務(wù)器。1172.3.2線程的實現(xiàn)兩種方式:1.內(nèi)核支持線程的實現(xiàn)2.用戶級線程的實現(xiàn)118119線程的實現(xiàn)用戶級線程內(nèi)核級線程組合的方法●線程的創(chuàng)建、撤消和切換,都不利用系統(tǒng)調(diào)用來實現(xiàn)。線程與內(nèi)核無關(guān),內(nèi)核也不知道線程的存在?!褚蕾囉趦?nèi)核,線程的創(chuàng)建、撤消和切換都由內(nèi)核實現(xiàn)。在內(nèi)核中有線程控制塊(TCB),內(nèi)核根據(jù)TCB感知線程的存在,并對線程進行控制?!裼蓛?nèi)核支持的用戶線程。一個進程可以有一個或多個輕量級線程,每個輕量級線程由一個單獨的內(nèi)核線程來支持。2.3.2線程的實現(xiàn)1.內(nèi)核支持線程的實現(xiàn)由OS內(nèi)核管理:創(chuàng)建、撤消和切換內(nèi)核提供相應(yīng)的系統(tǒng)調(diào)用和API,用戶程序可以創(chuàng)建、執(zhí)行和撤消線程。

內(nèi)核中保留了一個線程控制塊(TCB);調(diào)度算法和進程類似,搶占式和非搶占式兩種;時間片輪轉(zhuǎn)法、優(yōu)先權(quán)等算法。1201.內(nèi)核支持線程的實現(xiàn)

Windows2000,Linux,OS/2采用內(nèi)核級線程。121用戶空間內(nèi)核空間進程…核心級線程用戶線程…核心線程1.內(nèi)核支持線程的實現(xiàn)優(yōu)點:用戶編程簡單;如果進程中一個線程阻塞,內(nèi)核可以調(diào)度另外的線程;

可以利用多處理機。缺點:效率低;需要占用內(nèi)核稀缺的內(nèi)存資源;需修改操作系統(tǒng)。1222.3.2線程的實現(xiàn)2.用戶級線程的實現(xiàn)僅存在于用戶級中,創(chuàng)建、撤消和切換與內(nèi)核無關(guān);內(nèi)核不知道線程的存在;在用戶空間實現(xiàn)的,運行在中間系統(tǒng)之上;有關(guān)線程管理的所有工作都由應(yīng)用程序完成。1232.3.2線程的實現(xiàn)用戶級線程實現(xiàn)方法

124線程庫用戶空間內(nèi)核空間進程…用戶級線程用戶級線程2.3.2線程的實現(xiàn)用戶級線程的優(yōu)點:

(1)靈活性。線程調(diào)度算法和過程完全由用戶進程自行選擇確定,與其他進程甚至操作系統(tǒng)內(nèi)核無關(guān)。(2)線程切換快。用戶級線程的調(diào)度只進行線程上下文切換而不進行進程切換,且線程上下文切換是在內(nèi)核不參與的情況下進行的。(3)用戶級線程可以在任何操作系統(tǒng)中運行,不需要對底層內(nèi)核進行修改。(4)進程狀態(tài)可能與線程狀態(tài)不一致。如,當一個進程由于I/O中斷或時間片用完等原因造成該進程處于等待狀態(tài)或就緒狀態(tài),而在該進程中執(zhí)行的線程仍處于執(zhí)行狀態(tài)。

1252.3.2線程的實現(xiàn)用戶級線程的缺點:在典型的操作系統(tǒng)中,一個線程受阻會造成整個進程都受阻。(可解決)126測試結(jié)果比較:127表:用戶級線程、內(nèi)核級線程及進程執(zhí)行時間的比較操作用戶級線程內(nèi)核級線程進程操作2374411840(單位:μs)操作1:創(chuàng)建、調(diào)度、執(zhí)行和完成一個零過程的線程/進程;操作2:線程/進程同步所需時間。組合的方法128Solaris中的線程●在用戶級線程和內(nèi)核級線程之間,定義了一種輕型進程(LWP)●由LWP實現(xiàn)了內(nèi)核與用戶級線程的隔離,從而使用戶級線程與內(nèi)核無關(guān)2.4進程管理實例UNIX進程管理Linux進程管理Windows進程管理OpenHarmony進程管理2.5.1UNIX進程管理0#進程:核心態(tài);

創(chuàng)建1#進程;

處理器調(diào)度;

進程切換。1#進程:核心態(tài)、用戶態(tài);

創(chuàng)建終端進程;

是用戶進程的祖先。2.5.1UNIX進程管理UNIX的進程上下文2.5.1UNIX進程管理UNIX的進程狀態(tài)及轉(zhuǎn)換

2.5.2Linux進程管理1.Linux進程包括以下四個要素。(1)內(nèi)存空間的正文段(2)內(nèi)存空間數(shù)據(jù)段(3)task_struct結(jié)構(gòu)(4)系統(tǒng)堆棧每當產(chǎn)生一個新的進程時,就會在內(nèi)核空間中分配一個8KB的空間記錄新進程信息。2.5.2Linux進程管理2.Linux線程Linux的線程模型是一種一對一模型(即一個進程中只有一個線程),也就是每個線程實際上在核心是一個單獨的進程,核心的調(diào)度程序負責線程的調(diào)度,就像調(diào)度普通進程。線程用系統(tǒng)調(diào)用vfork()和clone()創(chuàng)建,Linux允許新進程共享父進程的存儲空間、文件描述符和軟中斷處理程序。2.5.2Linux進程管理Linux進程有5種狀態(tài)2.5.3Windows進程管理Windows2000/XP進程的特點主要有以下幾個方面:進程作為對象實現(xiàn);一個可執(zhí)行的進程可以含有一個或多個線程;進程對象和線程對象都具有同步能力。2.5.3Windows進程管理win32中每個進程都用一個進程控制塊表示,它描述了進程的基本信息,主要內(nèi)容包括以下幾方面。(1)線程列表:描述屬于該進程所有線程的相關(guān)信息,處理機的分配和回收是以線程為單位的;(2)虛擬地址空間描述(VirtualAddressspaceDescriptor,VAD):描述進程地址空間各個部分的屬性,用于虛擬存儲管理;(3)對象列表:列出該進程正在訪問的所有對象,用于對象訪問。當進程創(chuàng)建或打開一個對象時,就會得到這個對象句柄。2.5.3Windows進程管理Win32子系統(tǒng)用于進程、線程控制的系統(tǒng)調(diào)用:CreateProcess創(chuàng)建新進程及其主線程,以執(zhí)行指定的程序段;ExitProcess和TerminalProcess都可以用于進程的退出;CreateThread完成線程的創(chuàng)建工作;ExitThread用于結(jié)束當前線程;SuspendThread可掛起指定的線程;ResumeThread可激活指定的線程。2.5.3Windows進程管理Windows2000/XP使用兩類與進程有關(guān)的對象:進程和線程。進程是對應(yīng)一個擁有存儲空間、打開的文件等資源的程序?qū)嶓w;線程是執(zhí)行體的一個可分派單元,它在執(zhí)行中是可以被中斷的,是處理機調(diào)度的單位。2.5.3Windows進程管理2.5.3Windows進程管理一個Windows2000/XP的進程至少包含一個執(zhí)行線程,該線程可能會創(chuàng)建別的線程。在多處理機系統(tǒng)中,同一個進程中的多個線程可以并行執(zhí)行。2.5.3Windows進程管理2.5.3Windows進程管理Windows2000/XP的線程狀態(tài)及其轉(zhuǎn)換2.5.4OpenHarmony進程管理OpenHarmony的進程管理本章小結(jié)為了提高計算機系統(tǒng)的工作效率→引入進程失去程序順序運行的特征,帶來了一系列問題;進程有生命期:三態(tài)轉(zhuǎn)換,和創(chuàng)建和撤消;如何實現(xiàn)三態(tài)轉(zhuǎn)換,和創(chuàng)建和撤消:四個操作原語;針對進程存在的問題:引入線程來解決。進程管理實例第3章互斥與同步2025/11/6146第3章互斥與同步本章目標:掌握進程同步與互斥的基本原理及處理機制能夠識別同步與互斥功能實現(xiàn)的關(guān)鍵環(huán)節(jié)和影響因素能夠認識到同步與互斥功能實現(xiàn)有多種方案,能夠通過文獻研究,在多種方案中,尋求一種更合適的解決方案能夠遵循系統(tǒng)化的基本要求,確定解決同步與互斥問題的設(shè)計目標和技術(shù)方案能夠運用所學知識解決同步與互斥進程設(shè)計與實現(xiàn)問題,能在設(shè)計實現(xiàn)中體現(xiàn)創(chuàng)新意識能夠?qū)嶒灲Y(jié)果進行進行輸入條件關(guān)聯(lián)分析和解釋,并能綜合應(yīng)用場景和技術(shù)需求,得出結(jié)論的有效性3.1進程互斥

并發(fā)進程之間的關(guān)系間接的相互制約關(guān)系─資源共享(競爭資源)直接的相互制約關(guān)系─公共變量(進程協(xié)作)3.1.1并發(fā)原理例1:生產(chǎn)者和消費者問題(Producer&Consumer)

生產(chǎn)者進程:{

while(count==BUFFER_SIZE);count++;buffer[in]=item;in=(in+1)%BUFFER_SIZE;}消費者進程:{while(count==0);count--;item=buffer[out];out=(out+1)%BUFFER_SIZE;}

生產(chǎn)者進程:數(shù)據(jù)→緩沖區(qū)(buffer)消費者進程:緩沖區(qū)(buffer)→數(shù)據(jù)BUFFER_SIZE=K,count:buffer中數(shù)據(jù)個數(shù),是共享變量inout結(jié)果不唯一Producer進程:

count++Consumer進程:

count--T0:register1=count;T1:register1=register1+1;T4(5):count=register1;T2:register2=count;T3:register2=register2-1;T5(4):count=register2;(count=5(7))例2假設(shè)有兩個并發(fā)進程borrow和return分別負責申請與歸還主存資源,程序片段如下。

X:現(xiàn)有的空閑主存量;B:申請或歸還的主存量。processborrow(…,B,…)intB;{if(B>X){等待主存資源;}X=X-B;

修改主存分配表;

}processreturn(…,B,…)intB;{X=X+B;

釋放等待主存資源者;修改主存分配表;

}永遠等待processborrow(…,B,…)intB;{if(B>X)

調(diào)度returnprocessreturn(…,B,…)intB;{X=X+B;

釋放等待主存資源者;修改主存分配表;

}

{等待主存資源;}X=X-B;

修改主存分配表;

}

臨界區(qū)

錯誤原因:兩個進程交叉訪問共享變量count或X并發(fā)進程中與共享變量有關(guān)的程序段稱為“臨界區(qū)”(Criticalsection)

一次只允許一個進程使用的資源稱臨界資源臨界資源的訪問過程:進入?yún)^(qū)臨界區(qū)退出區(qū)剩余區(qū)進程中訪問臨界資源的那段代碼稱臨界區(qū)

3.1.2臨界資源與臨界區(qū)“生產(chǎn)者和消費者”問題

生產(chǎn)者進程的臨界區(qū):count++;buffer[in]=item;in=(in+1)%BUFFER_SIZE;消費者進程的臨界區(qū):count--;item=buffer[out];out=(out+1)%BUFFER_SIZE;一個進程在臨界區(qū)中執(zhí)行時,不讓另一個進程進入相關(guān)的臨界區(qū)執(zhí)行,就不會造成與時間有關(guān)的錯誤。

不允許兩個以上共享共有資源或變量的進程同時進入臨界區(qū)執(zhí)行的性質(zhì)稱為互斥(mutualexclusion)。即臨界區(qū)的執(zhí)行必須具有排它性?;コ?MutualExclusion)臨界區(qū)的管理應(yīng)有三個要求:(1)互斥性:如果一個進程在它臨界區(qū)中執(zhí)行,其它任何進程均不能進入相關(guān)的臨界區(qū)執(zhí)行;(2)進展性:如果一個進程不在它臨界區(qū)中執(zhí)行,不應(yīng)阻止其它任何進程進入相關(guān)的臨界區(qū)執(zhí)行;(3)有限等待性:某個進程從申請進入臨界區(qū)時開始,應(yīng)在有限的時間內(nèi)得以進入臨界區(qū)執(zhí)行。3.1.3互斥的軟、硬件實現(xiàn)方法1.標志法 如P1和P2兩個進程,它們的程序代碼均包含有相關(guān)的臨界區(qū)。我們對P1和P2分別用兩個變量inside1和inside2來標志它們是否在臨界區(qū)中,當進程在它的臨界區(qū)內(nèi)時其值為1,不在臨界區(qū)時其值為0。intinside1,inside2;/*兩并發(fā)進程共享變量*/

inside1=0;/*表示P1不在臨界區(qū)內(nèi)*/

inside2=0;/*表示P2不在臨界區(qū)內(nèi)*/

processP1

{……

while(inside2);/*等待inside2變成0*/

inside1=1;

臨界區(qū);

inside1=0;

……

}

processP2

{……

while(inside1);/*等待inside1變成0*/

inside2=1;

臨界區(qū);

inside2=0;

……}

可能出現(xiàn)兩個并發(fā)進程同時進入了各自的臨界區(qū)的情況2.嚴格輪換法用一個指針turn來指示應(yīng)該由哪個進程進入臨界區(qū)。若turn=0則表示P0可進入臨界區(qū);若turn=1則表示P1可進入臨界區(qū)。intturn;

turn=0;

processP0

{……

while(turn==1);/*等待turn變成0*/

臨界區(qū);

turn=1;

……

}

processP1

{……

while(turn==0);/*等待turn變成1*/

臨界區(qū);

turn=0;

……

}問題:

1)嚴格強制了兩個進程輪換地進入臨界區(qū)

2)違反要求(2)3)忙等待3.Peterson算法為每一個進程設(shè)置一個標志flag,當標志為1時表示該進程請求進入臨界區(qū)。設(shè)置一個指針turn以指示可以由哪個進程進入臨界區(qū),當turn等于i時則可由進程Pi進入臨界區(qū)。提供兩個函數(shù)來管理臨界區(qū),分別為enter_region,leave_region。intturn;

intflag[2]={0,0};

voidenter_region(intprocess)

{

intother;

other=1-process;

flag[process]=1;

turn=other;

while(turn==other&&flag[other]==1);

}

voidleave_region(intprocess)

{

flag[process]=0;

}

Peterson算法好處:能正確解決互斥問題.缺點:進程會出現(xiàn)“忙等待”.6.2.2.2互斥的硬件實現(xiàn)方法1.中斷屏蔽方法……

屏蔽中斷(disableinterrupts);臨界區(qū);開中斷(enableinterrupts);……2.硬件指令方法……while(TS(&lock));臨界區(qū)代碼;lock=0;……

用Swap指令來管理臨界區(qū)時,則進程程序結(jié)構(gòu)為:……key=1;doSwap(&lock,&key)while(key);臨界區(qū)代碼;lock=0;……測試并設(shè)置指令:對一個字進行檢測和修正交換指令:實現(xiàn)兩個字的內(nèi)容交換intTS(int*flag){intold_flag;old_flag=*flag;*flag=1;return(old_flag);}voidSwap(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}缺點:忙等待3.1.4信號量和P、V操作思想:在多個相互合作的進程之間使用簡單的信號來協(xié)調(diào)控制。一個進程檢測到某個信號后,就被強迫停止在一個特定的地方,直到它收到一個專門的信號為止才能繼續(xù)執(zhí)行。這個信號就稱為“信號量”,類似于十字路口的交通控制信號燈。

信號量定義:含有整型數(shù)據(jù)項的結(jié)構(gòu)變量,其整型值大于等于零代表可供并發(fā)進程使用的資源實體數(shù),小于零時則表示正在等待使用臨界區(qū)的進程數(shù)。typedefstruct{intvalue;PCB*pointer;}semaphore;

P操作P(s):將信號量s的整型值減去1,若結(jié)果大于等于0,則調(diào)用進程繼續(xù)運行;若結(jié)果小于0,則將調(diào)用P(s)的進程置成等待信號量s的狀態(tài),直到其他進程在s上執(zhí)行V操作將其釋放為止。V操作V(s):將信號量s的整型值加上1,若結(jié)果大于0,則調(diào)用進程繼續(xù)運行;若結(jié)果不大于0,則釋放一個等待信號量s的進程,然后調(diào)用進程繼續(xù)運行。ProcedureP(vars:semaphore) begin s.value:=s.value-1; ifs.value<0thenW(s); end;ProcedureV(vars:semaphore) begin s.value:=s.value+1; ifs.value<=0thenR(s); end;P操作V操作s=s-1s<0Y調(diào)用進程被阻塞繼續(xù)Ns=s+1s<=0Y喚醒一個阻塞進程繼續(xù)N信號量S的物理

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論