《操作系統(tǒng)》配套教學(xué)課件_第1頁
《操作系統(tǒng)》配套教學(xué)課件_第2頁
《操作系統(tǒng)》配套教學(xué)課件_第3頁
《操作系統(tǒng)》配套教學(xué)課件_第4頁
《操作系統(tǒng)》配套教學(xué)課件_第5頁
已閱讀5頁,還剩717頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章操作系統(tǒng)引論學(xué)院:教師:下面這些軟件中哪些是操作系統(tǒng)?Windows、TurboC++、WordVisualFoxPro、UNIX、VITurboASM、Linux用戶自己編寫的一個C語言程序極品飛車內(nèi)容概述1.1操作系統(tǒng)的目標和作用1.2操作系統(tǒng)的發(fā)展過程1.3操作系統(tǒng)的基本特性1.4操作系統(tǒng)的主要功能1.5操作系統(tǒng)的結(jié)構(gòu)設(shè)計操作系統(tǒng)屬于軟件中的系統(tǒng)軟件,起到對系統(tǒng)資源進行管理和分配,提高運行效率的作用。計算機系統(tǒng)組成計算機系統(tǒng)軟件硬件及固件(裸機)應(yīng)用軟件系統(tǒng)軟件DBMS,編譯軟件操作系統(tǒng)緊貼系統(tǒng)硬件之上,所有其他軟件之下(是其他軟件的共同環(huán)境)1.1操作系統(tǒng)的目標和作用1.1.1操作系統(tǒng)的目標1.1.2操作系統(tǒng)的作用1.1.3推動操作系統(tǒng)發(fā)展的主要動力1.1.1操作系統(tǒng)的目標

目前存在著多種類型的OS,不同類型的OS,其目標各有所側(cè)重。通常在計算機硬件上配置的OS,其目標有以下幾點:1.有效性

2.方便性

3.可擴充性

4.開放性1.有效性(系統(tǒng)管理人員的觀點)

提高系統(tǒng)資源利用率。提高系統(tǒng)的吞吐量。2.方便性(用戶的觀點)

操作系統(tǒng)最終是要為用戶服務(wù)的。提供良好的、一致的用戶接口,彌補硬件系統(tǒng)的類型和數(shù)量差別,使計算機更容易使用。

3.可擴充性

OS應(yīng)采用層次化結(jié)構(gòu),以便于增加新的功能層次和模塊,并能修改老的功能層次和模塊。4.開放性遵循標準規(guī)范,方便地實現(xiàn)互連,實現(xiàn)應(yīng)用程序的可移植性和互操作性。1.1操作系統(tǒng)的目標和作用1.1.1操作系統(tǒng)的目標1.1.2操作系統(tǒng)的作用1.1.3推動操作系統(tǒng)發(fā)展的主要動力1.OS作為用戶與計算機硬件系統(tǒng)之間的接口(用戶觀點)OS處于用戶與計算機硬件系統(tǒng)之間,用戶通過OS來使用計算機系統(tǒng)。OS是一個系統(tǒng)軟件,因而這種接口是軟件接口。命令方式(命令接口)聯(lián)機用戶接口(命令)脫機用戶接口(批處理)系統(tǒng)調(diào)用方式(程序接口)圖形、窗口方式(圖形接口)1.1.2操作系統(tǒng)的作用

圖1-1OS作為接口的示意圖操作系統(tǒng)各種應(yīng)用程序DOS2.OS作為計算機系統(tǒng)資源的管理者(設(shè)計者觀點)包括處理機、存儲器、I/O設(shè)備及數(shù)據(jù)和程序等資源。管理的內(nèi)容:資源的當前狀態(tài)(數(shù)量和使用情況)、資源的分配、回收和訪問操作,相應(yīng)管理策略(包括用戶權(quán)限)。處理機管理存儲器管理I/O設(shè)備管理文件管理3.OS實現(xiàn)了對計算機資源的抽象(虛擬機觀點)OS是擴展機/虛擬機將覆蓋了軟件的機器稱為擴充機器或虛擬機。在裸機上添加:設(shè)備管理、文件管理、存儲管理(內(nèi)存和外存)、處理機管理(CPU)等軟件。那么用戶此時看到的計算機是一臺功能強大、使用方便的計算機,但實際上,計算機的硬件絲毫沒有變化,這樣的計算機稱為軟件擴充的機器,或稱軟件虛擬機。1.1操作系統(tǒng)的目標和作用1.1.1操作系統(tǒng)的目標1.1.2操作系統(tǒng)的作用1.1.3推動操作系統(tǒng)發(fā)展的主要動力1.1.3推動操作系統(tǒng)發(fā)展的主要動力1.不斷提高計算機資源利用率 計算機發(fā)展的初期,計算機系統(tǒng)昂貴,用作集中計算。2.方便用戶 改善用戶上級、調(diào)試程序時的條件。人機交互。3.器件的不斷更新?lián)Q代

CPU的位寬度(指令和數(shù)據(jù))、快速外存(摩爾定律)。4.計算機體系結(jié)構(gòu)的不斷發(fā)展 從單處理機到多處理機、從單機OS到網(wǎng)絡(luò)OS。第一章操作系統(tǒng)引論1.1操作系統(tǒng)的目標和作用1.2操作系統(tǒng)的發(fā)展過程1.3操作系統(tǒng)的基本特征1.4操作系統(tǒng)的主要功能1.5操作系統(tǒng)的結(jié)構(gòu)設(shè)計1.2操作系統(tǒng)的發(fā)展過程1.2.1無操作系統(tǒng)的計算機系統(tǒng)1.2.2單道批處理系統(tǒng)1.2.3多道批處理系統(tǒng)1.2.4分時系統(tǒng)1.2.5實時系統(tǒng)1.2.1無操作系統(tǒng)的計算機系統(tǒng)

1.人工操作方式

1945-1950、電子管、集中計算。工作方式用戶:用戶是程序員、操作員、計算機專業(yè)人員。編程語言:機器語言輸入輸出:紙帶或卡片計算機的工作特點用戶獨占全機:資源利用率低。CPU等待用戶:計算前,手工裝入紙帶或卡片;計算完成后,手工卸取紙帶或卡片;CPU利用率低。2.脫機輸入/輸出(Off-LineI/O)方式

事先將用戶程序或數(shù)據(jù)的紙帶或卡片放入紙帶輸入機,在外圍機的控制下輸入到磁帶上,CPU從磁帶上讀入數(shù)據(jù);輸出過程正好相反。

這種脫機I/O方式的主要優(yōu)點如下:減少了CPU的空閑時間。

(2)提高I/O速度。圖1-3脫機I/O示意圖主要矛盾計算機處理能力的提高,手工操作的低效率(造成浪費)。用戶獨占全機的所有資源。人機矛盾、CPU和I/O設(shè)備速度不匹配提高效率的途徑批處理3.無操作系統(tǒng)的主要問題1.2操作系統(tǒng)的發(fā)展過程1.2.1無操作系統(tǒng)的計算機系統(tǒng)1.2.2單道批處理系統(tǒng)1.2.3多道批處理系統(tǒng)1.2.4分時系統(tǒng)1.2.5實時系統(tǒng)1.批處理系統(tǒng)理解批處理技術(shù)是指在系統(tǒng)中配置一個監(jiān)督程序(操作系統(tǒng)的雛形),并在該監(jiān)督程序的控制下,對一批作業(yè)自動進行處理的一種技術(shù)。批處理系統(tǒng)是指加載在計算機上的一個系統(tǒng)軟件(監(jiān)督程序),在它的控制下,計算機能夠自動地成批地處理一個或多個用戶的作業(yè)。在內(nèi)存中只存放一道作業(yè)的批處理系統(tǒng)稱為單道批處理系統(tǒng)。1.2.2單道批處理系統(tǒng)2.單道批處理系統(tǒng)的處理過程

圖1-4單道批處理系統(tǒng)的處理流程監(jiān)督程序:控制作業(yè)連續(xù)處理3.單道批處理系統(tǒng)的特征 單道批處理系統(tǒng)是最早出現(xiàn)的一種OS。旨在提高系統(tǒng)資源的利用率和系統(tǒng)吞吐量。

(1)自動性。在順利的情況下,磁帶上的一批作業(yè)能自動地逐個地依次運行,而無需人工干預(yù)

(2)順序性。磁帶上的各道作業(yè)是順序地進入內(nèi)存,完成順序與進入內(nèi)存順序相同

(3)單道性。內(nèi)存中只有一道程序運行1.2操作系統(tǒng)的發(fā)展過程1.2.1無操作系統(tǒng)的計算機系統(tǒng)1.2.2單道批處理系統(tǒng)1.2.3多道批處理系統(tǒng)1.2.4分時系統(tǒng)1.2.5實時系統(tǒng)1.2.3多道批處理系統(tǒng)1.多道程序設(shè)計的基本概念在單道批處理系統(tǒng)中,內(nèi)存中僅有一道作業(yè),它無法充分利用系統(tǒng)中的所有資源,致使系統(tǒng)性能較差。多道程序設(shè)計技術(shù)是指在內(nèi)存同時存放若干個作業(yè),并使它們共享系統(tǒng)資源同時運行的技術(shù)。采用多道程序設(shè)計技術(shù)的批處理系統(tǒng)被稱為多道批處理系統(tǒng)。圖1-5單道和多道程序運行情況|←CPU空閑-→||←CPU空閑-→|2.多道批處理系統(tǒng)的特征

(1)多道性 內(nèi)存中同時存放幾個作業(yè),并允許并發(fā)執(zhí)行,從而有效地提高了資源利用率和系統(tǒng)吞吐量。(2)無序性 多個作業(yè)完成的先后順序與它們進入內(nèi)存的順序之間無嚴格對應(yīng)關(guān)系。(3)調(diào)度性 作業(yè)調(diào)度,從后備隊列進入內(nèi)存;進程調(diào)度,分配處理機運行。(4)宏觀上并發(fā)、微觀上串行。3.多道批處理系統(tǒng)的優(yōu)缺點

優(yōu)點:資源利用率高:CPU、內(nèi)存和I/O設(shè)備利用率較高;系統(tǒng)吞吐量大:單位時間內(nèi)完成的工作總量大。缺點:用戶交互性差:整個作業(yè)完成后或中間出錯時,才與用戶交互,不利于調(diào)試和修改。作業(yè)平均周轉(zhuǎn)時間長:短作業(yè)的周轉(zhuǎn)時間顯著增長。4.多道批處理系統(tǒng)需要解決的問題

(1)處理機管理問題(第3章)(2)內(nèi)存管理問題(第4章)(3)I/O設(shè)備管理問題(第5章)(4)文件管理問題(第6章)(5)作業(yè)管理問題(第3章)

操作系統(tǒng)是一組控制和管理計算機硬件和軟件資源,合理地對各類作業(yè)進行調(diào)度,以及方便用戶使用的程序集合。單道批處理系統(tǒng)與多道批處理系統(tǒng)的比較1.2操作系統(tǒng)的發(fā)展過程1.2.1無操作系統(tǒng)的計算機系統(tǒng)1.2.2單道批處理系統(tǒng)1.2.3多道批處理系統(tǒng)1.2.4分時系統(tǒng)1.2.5實時系統(tǒng)1.2.4分時系統(tǒng)1.分時系統(tǒng)的產(chǎn)生用戶的需求人機交互(對程序進行調(diào)試、修改等直接控制)共享主機(主機貴,提高資源利用率)便于用戶上機(作業(yè)直接從終端進入,并能控制)分時系統(tǒng)分時系統(tǒng)是指在一臺計算機上連接了多個帶有顯示器和鍵盤的終端,同時允許多個用戶共享主機中的資源,每個用戶都可通過自己的終端以交互方式使用計算機。2.分時系統(tǒng)實現(xiàn)中的關(guān)鍵問題

及時接收(只需配置多路卡,同時接收各終端數(shù)據(jù))

及時處理(在不長的時間能響應(yīng)用戶命令)3.分時系統(tǒng)的特征

多路性:宏觀上多個用戶同時工作,微觀上多個終端輪轉(zhuǎn)時間片。獨立性:每個用戶一臺終端,互不干擾,感覺像一個人獨占計算機。及時性:用戶請求應(yīng)盡快得到響應(yīng)(2-3秒)。交互性:用戶可通過終端與系統(tǒng)進行廣泛的人機對話。1.2操作系統(tǒng)的發(fā)展過程1.2.1無操作系統(tǒng)的計算機系統(tǒng)1.2.2單道批處理系統(tǒng)1.2.3多道批處理系統(tǒng)1.2.4分時系統(tǒng)1.2.5實時系統(tǒng)1.2.5實時系統(tǒng)

所謂“實時”是表示“及時”,而實時系統(tǒng)是指系統(tǒng)能及時(或即時)響應(yīng)外部事件的請求,在規(guī)定的時間內(nèi)完成對該事件的處理,并控制所有實時任務(wù)協(xié)調(diào)一致地運行。要求:響應(yīng)時間短,在一定范圍之內(nèi);系統(tǒng)可靠性高。1.應(yīng)用需求(1)實時控制。包括生產(chǎn)過程控制和武器控制。(2)實時信息處理。例如證劵交易、飛機訂票、情報檢索。2.實時任務(wù)按任務(wù)執(zhí)行時是否呈現(xiàn)周期性來劃分周期性實時任務(wù)非周期性實時任務(wù)按對截止時間的要求來劃分硬實時任務(wù)軟實時任務(wù)3.實時系統(tǒng)與分時系統(tǒng)特征的比較實時系統(tǒng)分時系統(tǒng)多路性對多個對象的信息采集和控制為多個終端服務(wù)獨立性表現(xiàn)為對多個對象的互不干擾每個用戶獨占主機及時性在規(guī)定時間內(nèi)對外部事件響應(yīng)在一定時間處理各個終端用戶作業(yè)交互性一般情況下無交互性由交互引入可靠性要求高度可靠可靠性低第一章操作系統(tǒng)引論1.1操作系統(tǒng)的目標和作用1.2操作系統(tǒng)的發(fā)展過程1.3操作系統(tǒng)的基本特征1.4操作系統(tǒng)的主要功能1.5操作系統(tǒng)的結(jié)構(gòu)設(shè)計1.3操作系統(tǒng)的基本特征1.3.1并發(fā)(Concurrence)1.3.2共享(Sharing)1.3.3虛擬(Virtual)1.3.4異步性(Asynchronism)1.3操作系統(tǒng)的基本特性1.3.1并發(fā)(Concurrence)并行性是指兩個或多個事件在同一時刻發(fā)生;并發(fā)性是指兩個或多個事件在同一時間間隔內(nèi)發(fā)生。時間BA時間BA在多道程序環(huán)境下的并發(fā)性單處理機系統(tǒng)多個處理機系統(tǒng)并發(fā):即宏觀上在一段時間內(nèi)有多道程序在同時運行,在微觀上,這些程序是在交替執(zhí)行的。程序和進程、線程為使程序能并發(fā)執(zhí)行,為每個程序建立進程。進程是能獨立運行并作為資源分配的基本單位,是活動實體。引入線程后,進程是分配資源的基本單位,線程作為獨立運行的基本單位。調(diào)度開銷小。1.3操作系統(tǒng)的基本特征1.3.1并發(fā)(Concurrence)1.3.2共享(Sharing)1.3.3虛擬(Virtual)1.3.4異步性(Asynchronism)1.3.2共享(Sharing)

在操作系統(tǒng)環(huán)境下,所謂共享是指系統(tǒng)中的資源可供內(nèi)存中多個并發(fā)執(zhí)行的進程(線程)共同使用。由于資源屬性的不同,進程對資源共享的方式也不同,目前主要有兩種資源共享方式:

1.互斥共享方式

2.同時訪問方式1.互斥共享方式系統(tǒng)中的某些資源,如打印機、磁帶機,在一段時間內(nèi)只允許一個進程(線程)訪問該資源。僅當該進程訪問完并釋放該資源后,才允許另一進程對該資源進行訪問。

在一段時間內(nèi)只允許一個進程訪問的資源稱為臨界資源或獨占資源。計算機系統(tǒng)中的大多數(shù)物理設(shè)備,以及棧、變量和表格,都屬于臨界資源,它們要求被互斥地共享。2.同時訪問方式系統(tǒng)中還有另一類資源,允許在一段時間內(nèi)由多個進程“同時”對它們進行訪問。典型的可供多個進程“同時”訪問的資源是磁盤設(shè)備。并發(fā)和共享是操作系統(tǒng)的兩個最基本的特征。它們又是互為存在的條件。

資源共享是以程序(進程)的并發(fā)執(zhí)行為條件的,若系統(tǒng)不允許程序并發(fā)執(zhí)行,自然不存在資源共享問題。

若系統(tǒng)不能對資源共享實施有效管理,必然影響到程序并發(fā)執(zhí)行的程度。1.3操作系統(tǒng)的基本特征1.3.1并發(fā)(Concurrence)1.3.2共享(Sharing)1.3.3虛擬(Virtual)1.3.4異步性(Asynchronism)1.3.3虛擬(Virtual)

所謂“虛擬”是指通過某種技術(shù)把一個物理實體變?yōu)槿舾蓚€邏輯上的對應(yīng)物。在OS中利用了多種虛擬技術(shù),分別用來實現(xiàn)虛擬處理機、虛擬內(nèi)存、虛擬外部設(shè)備等。

CPU-每個用戶(進程)的“虛處理機”(多道程序設(shè)計技術(shù)、時分復(fù)用)

存儲器--虛擬存儲器(時分復(fù)用)

打印設(shè)備--將臨界資源變?yōu)橥瑫r訪問資源(spooling技術(shù))1.3操作系統(tǒng)的基本特征1.3.1并發(fā)(Concurrence)1.3.2共享(Sharing)1.3.3虛擬(Virtual)1.3.4異步性(Asynchronism)1.3.4異步性(Asynchronism)

在多道程序環(huán)境下,允許多個進程并發(fā)執(zhí)行,但只有進程在獲得所需的資源后方能執(zhí)行。由于資源等因素的限制,使進程的執(zhí)行通常都不是“一氣呵成”,而是以“停停走走”的方式運行。進程是以人們不可預(yù)知的速度向前推進,此即進程的異步性。第一章操作系統(tǒng)引論1.1操作系統(tǒng)的目標和作用1.2操作系統(tǒng)的發(fā)展過程1.3操作系統(tǒng)的基本特征1.4操作系統(tǒng)的主要功能1.5操作系統(tǒng)的結(jié)構(gòu)設(shè)計1.4操作系統(tǒng)的主要功能操作系統(tǒng)是用戶與硬件之間的橋梁,它主要負責(zé)管理計算機系統(tǒng)中的所有資源,并負責(zé)它們的調(diào)度和使用,充分發(fā)揮這些資源的作用和方便用戶使用計算機。從資源管理的角度來看,操作系統(tǒng)的功能主要有1.4.1處理機管理功能1.4.2存儲器管理功能1.4.3設(shè)備管理功能1.4.4文件管理功能1.4.5用戶接口1.4操作系統(tǒng)的主要功能1.4.1處理機管理功能1.進程控制創(chuàng)建、撤銷、掛起等--主動改變進程的狀態(tài);在現(xiàn)代OS中,進行控制還應(yīng)具有為一個進程創(chuàng)建和撤消線程的功能。

處理機管理的主要任務(wù)是對處理機進行分配,并對其運行進行有效的控制和管理。在多道程序環(huán)境下,處理機的分配和運行都是以進程為單位,所以對處理機的管理可理解為對進程的管理。2.進程同步協(xié)調(diào)并發(fā)進程之間的推進步驟,以協(xié)調(diào)資源共享--交換信息能力弱互斥方式諸進程訪問臨界資源時采用這種方式。同步方式在相互合作完成任務(wù)的進程之間由同步機構(gòu)對執(zhí)行次序加以協(xié)調(diào)。3.進程通信進程之間傳送數(shù)據(jù),以協(xié)調(diào)進程間的協(xié)作--交換信息能力強,也可以用來協(xié)調(diào)進程之間的推進。包括直接通信方式和間接通信方式。如輸入進程、計算進程、打印進程之間的通信。4.調(diào)度

作業(yè)調(diào)度:從外存調(diào)入內(nèi)存進程調(diào)度:是從內(nèi)存中的進程就緒隊列中選一個分配處理機。1.4操作系統(tǒng)的主要功能1.4.1處理機管理功能1.4.2存儲器管理功能1.4.3設(shè)備管理功能1.4.4文件管理功能1.4.5用戶接口1.4.2存儲器管理功能1.內(nèi)存分配靜態(tài)分配:每個作業(yè)的內(nèi)存空間是在作業(yè)裝入時確定的;整個運行期間,不允許再申請新的內(nèi)存空間;不允許在內(nèi)存中“移動”。動態(tài)分配:每個作業(yè)的基本內(nèi)存空間,是在裝入時確定的;允許運行期間申請新的內(nèi)存空間,適應(yīng)動態(tài)增漲;允許作業(yè)在內(nèi)存中“移動”。管理目標:提高利用率、方便用戶使用、提供足夠的存儲空間、方便進程并發(fā)運行。2.內(nèi)存保護內(nèi)存保護的主要任務(wù),是確保每道用戶程序都只在自己的內(nèi)存空間內(nèi)運行,彼此互不干擾。為了確保每道程序都只在自己的內(nèi)存區(qū)中運行,必須設(shè)置內(nèi)存保護機制。一種比較簡單的內(nèi)存保護機制,是設(shè)置兩個界限寄存器,分別用于存放正在執(zhí)行程序的上界和下界。越界檢查都由硬件實現(xiàn)。當然,對發(fā)生越界后的處理,還須與軟件配合來完成。3.地址映射程序中的地址稱為“邏輯地址”或“相對地址”,這些程序的地址都是從“0”開始的,程序中的其它地址都是相對于起始地址計算的。內(nèi)存中單元的地址稱為“物理地址“,由內(nèi)存中的一系列單元所限定的地址范圍。多道程序下,進程裝入內(nèi)存后要由邏輯地址到內(nèi)存物理地址進行變換,該功能應(yīng)在硬件的支持下完成。4.內(nèi)存擴充借助于虛擬存儲技術(shù),從邏輯上去擴充內(nèi)存容量,借助于虛擬存儲技術(shù)。改善了系統(tǒng)的性能,基本上不增加硬件投資。請求調(diào)入功能。置換功能。1.4操作系統(tǒng)的主要功能1.4.1處理機管理功能1.4.2存儲器管理功能1.4.3設(shè)備管理功能1.4.4文件管理功能1.4.5用戶接口1.4.3設(shè)備管理功能設(shè)備管理用于管理計算機系統(tǒng)中所有的外圍設(shè)備。設(shè)備管理的主要任務(wù)是:

完成用戶進程提出的I/O請求;

為用戶進程分配其所需的I/O設(shè)備;

提高CPU和I/O設(shè)備的利用率;

提高I/O速度;

方便用戶使用I/O設(shè)備。1.緩沖管理匹配CPU和外設(shè)的速度,提高兩者的利用率(單緩沖區(qū)、雙緩沖區(qū)和公用緩沖池)最常見的緩沖區(qū)機制有單緩沖機制、能實現(xiàn)雙向同時傳送數(shù)據(jù)的雙緩沖機制,循環(huán)緩沖以及能供多個設(shè)備同時使用的公用緩沖池機制。2.設(shè)備分配根據(jù)用戶請求,分配I/O設(shè)備及相應(yīng)的控制器和通道。3.設(shè)備處理設(shè)備處理程序又稱為設(shè)備驅(qū)動程序。其基本任務(wù)是用于實現(xiàn)CPU和設(shè)備控制器之間的通信,即由CPU向設(shè)備控制器發(fā)出I/O命令,要求它完成指定的I/O操作;反之由CPU接收從控制器發(fā)來的中斷請求,并給予迅速的響應(yīng)和相應(yīng)的處理。

1.4操作系統(tǒng)的主要功能1.4.1處理機管理功能1.4.2存儲器管理功能1.4.3設(shè)備管理功能1.4.4文件管理功能1.4.5用戶接口1.4.4文件管理功能

1.文件存儲空間的管理解決如何存放信息,以提高空間利用率和讀寫性能。存儲空間的使用情況,空間分配與回收。程序和數(shù)據(jù)以文件的形式存儲在磁盤和磁帶上。文件管理的主要任務(wù):對用戶文件和系統(tǒng)文件進行管理,以方便用戶使用并保證文件安全。2.目錄管理解決信息檢索問題,對眾多目錄項加以有效組織。目錄項包括文件名、文件屬性、文件在磁盤上的物理位置等。3.文件的讀/寫管理和保護

(1)文件的讀/寫管理。該功能是根據(jù)用戶的請求,從外存中讀取數(shù)據(jù),或?qū)?shù)據(jù)寫入外存。

(2)文件保護。 ①防止未經(jīng)核準的用戶存取文件; ②防止冒名頂替存取文件; ③防止以不正確的方式使用文件。1.4操作系統(tǒng)的主要功能1.4.1處理機管理功能1.4.2存儲器管理功能1.4.3設(shè)備管理功能1.4.4文件管理功能1.4.5用戶接口1.4.5用戶接口目標:提供一個友好的用戶訪問操作系統(tǒng)的接口。程序接口用戶接口(2)脫機用戶接口該接口是為批處理作業(yè)的用戶提供的,故也稱為批處理用戶接口。該接口由一組作業(yè)控制語言JCL組成。批處理作業(yè)的用戶不能直接與自己的作業(yè)交互作用,只能委托系統(tǒng)代替用戶對作業(yè)進行控制和干預(yù)。1.命令接口(1)聯(lián)機用戶接口這是為聯(lián)機用戶提供的,它由一組鍵盤操作命令及命令解釋程序所組成。當用戶在終端或控制臺上每鍵入一條命令后,系統(tǒng)便立即轉(zhuǎn)入命令解釋程序,對該命令加以解釋并執(zhí)行該命令。2.程序接口該接口是為用戶程序在執(zhí)行中訪問系統(tǒng)資源而設(shè)置的,是用戶程序取得操作系統(tǒng)服務(wù)的惟一途徑。它是由一組系統(tǒng)調(diào)用組成,每一個系統(tǒng)調(diào)用都是一個能完成特定功能的子程序,每當應(yīng)用程序要求OS提供某種服務(wù)(功能)時,便調(diào)用具有相應(yīng)功能的系統(tǒng)調(diào)用。3.圖形接口圖形用戶接口采用了圖形化的操作界面,用非常容易識別的各種圖標(icon)來將系統(tǒng)的各項功能、各種應(yīng)用程序和文件,直觀、逼真地表示出來。用戶可用鼠標或通過菜單和對話框,來完成對應(yīng)用程序和文件的操作。第一章操作系統(tǒng)引論1.1操作系統(tǒng)的目標和作用1.2操作系統(tǒng)的發(fā)展過程1.3操作系統(tǒng)的基本特征1.4操作系統(tǒng)的主要功能1.5操作系統(tǒng)的結(jié)構(gòu)設(shè)計(了解)1.5操作系統(tǒng)的結(jié)構(gòu)設(shè)計操作系統(tǒng)開發(fā)小程序:程序員的程序設(shè)計技巧大型軟件:工程化的開發(fā)方法,軟件工程學(xué)傳統(tǒng)的操作系統(tǒng)結(jié)構(gòu)無結(jié)構(gòu)操作系統(tǒng)(第一代)模塊化結(jié)構(gòu)操作系統(tǒng)(第二代)分層結(jié)構(gòu)操作系統(tǒng)(第三代)現(xiàn)代的操作系統(tǒng)結(jié)構(gòu)微內(nèi)核操作系統(tǒng)操作系統(tǒng)的開發(fā)方法本章小結(jié)

熟悉和掌握以下基本概念: 操作系統(tǒng)、批處理技術(shù)、批處理系統(tǒng)、分時系統(tǒng)、實時系統(tǒng)、脫機輸入輸出、多道程序設(shè)計技術(shù)熟悉和掌握以下基本知識:1.操作系統(tǒng)的目標2.操作系統(tǒng)的作用3.操作系統(tǒng)的特征4.操作系統(tǒng)的基本功能作業(yè):P33,1、2、13、2525、從資源管理的角度看,操作系統(tǒng)具有哪些功能?第一章授課結(jié)束,歡迎討論!學(xué)院:教師:第二章進程管理內(nèi)容概述2.1進程的基本概念2.2進程控制2.3進程同步2.4經(jīng)典進程的同步問題2.5進程通信2.6線程

進程管理的主要功能是把處理機分配給進程,并對處理器運行進行有效地控制和管理,以及協(xié)調(diào)各個進程之間的相互關(guān)系。2.1進程的基本概念2.1.1程序的順序執(zhí)行及其特征2.1.2前趨圖2.1.3程序的并發(fā)執(zhí)行及其特征2.1.4進程的特征與狀態(tài)2.1.5進程控制塊圖2-1程序的順序執(zhí)行1.程序的順序執(zhí)行僅當前一操作(程序段)執(zhí)行完后,才能執(zhí)行后繼操作。例如,在進行計算時,總須先輸入用戶的程序和數(shù)據(jù),然后進行計算,最后才能打印計算結(jié)果。

S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;2.1.1程序的順序執(zhí)行及其特征2.程序順序執(zhí)行時的特征(1)順序性:處理機的操作嚴格按照程序所規(guī)定的順序執(zhí)行,只有當上一個操作完成后,下一個操作才能執(zhí)行。(2)封閉性:程序運行在一個封閉的環(huán)境中,即程序運行時獨占系統(tǒng)的全部資源,這些資源的狀態(tài)只能因程序的執(zhí)行而改變,不受任何外界因素的影響。(3)可再現(xiàn)性:由于程序順序執(zhí)行的封閉性,只要程序順序執(zhí)行的初始條件和環(huán)境相同,則不論何時執(zhí)行,也不論程序執(zhí)行期間是否存在停頓,程序所得的結(jié)果也相同。結(jié)論:正由于程序順序執(zhí)行的特點,程序員可以檢測和重現(xiàn)程序的錯誤,可以調(diào)試和校正程序。2.1進程的基本概念2.1.1程序的順序執(zhí)行及其特征2.1.2前趨圖2.1.3程序的并發(fā)執(zhí)行及其特征2.1.4進程的特征與狀態(tài)2.1.5進程控制塊2.1.2前趨圖(PrecedenceGraph)

前趨圖是一個有向無循環(huán)圖,記為DAG。用于描述進程之間執(zhí)行的前后關(guān)系。圖中的每個結(jié)點可用于描述一個程序段或進程,乃至一條語句;結(jié)點間的有向邊則用于表示兩個結(jié)點之間存在的偏序或前趨關(guān)系“→”。→={(Pi,Pj)|PimustcompletebeforePjmaystart},如果(Pi,Pj)∈→,可寫成Pi→Pj:稱Pi是Pj的直接前趨,而稱Pj是Pi的直接后繼。把沒有前趨的結(jié)點稱為初始結(jié)點(InitialNode),把沒有后繼的結(jié)點稱為終止結(jié)點(FinalNode)。

每個結(jié)點還具有一個重量(Weight),用于表示該結(jié)點所含有的程序量或結(jié)點的執(zhí)行時間。圖2-2前趨圖×直接前趨直接后繼初始結(jié)點終止結(jié)點對于圖2-2(a)所示的前趨圖,存在下述前趨關(guān)系P1→P2,P1→P3,P1→P4,P2→P5,P3→P5,P4→P6,P4→P7,P5→P8,P6→P8,P7→P9,P8→P9或表示為:P={P1,P2,P3,P4,P5,P6,P7,P8,P9}→={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)}應(yīng)當注意,前趨圖中必須不存在循環(huán),但在圖2-2(b)中卻有著下述的前趨關(guān)系:S2→S3,S3→S22.1進程的基本概念2.1.1程序的順序執(zhí)行及其特征2.1.2前趨圖2.1.3程序的并發(fā)執(zhí)行及其特征2.1.4進程的特征與狀態(tài)2.1.5進程控制塊2.1.3程序的并發(fā)執(zhí)行及其特征

1.程序的并發(fā)執(zhí)行

圖2-3并發(fā)執(zhí)行時的前趨圖并發(fā)輸入程序I計算程序C輸出程序P下述四條語句的程序段:S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+6圖2-4四條語句的前趨關(guān)系什么樣的程序可以并發(fā)執(zhí)行?2.程序并發(fā)執(zhí)行時的特征

(1)間斷性 相互制約導(dǎo)致并發(fā)程序具有“執(zhí)行-暫停-執(zhí)行”的間斷性活動規(guī)律。(2)失去封閉性

系統(tǒng)中多道程序共享資源,資源的狀態(tài)由多個程序來改變,必然失去了程序的封閉性。(3)不可再現(xiàn)性 失去封閉性->失去可再現(xiàn)性,外界環(huán)境在程序的兩次執(zhí)行期間發(fā)生變化,失去原有的可重復(fù)特征。例如,有兩個程序A和B,它們共享一個變量N(初始值為x)。

A: N:=N+1B: Print(N); N:=0;

程序A和B并發(fā)執(zhí)行,可出現(xiàn)以下三種情況:(1)N:=N+1在Print(N)和N:=0之前,此時得到的N值分別為x+1,x+1,0。

(2)N:=N+1在Print(N)和N:=0之后,此時得到的N值分別為x,0,1。

(3)N:=N+1在Print(N)和N:=0之間,此時得到的N值分別為x,x+1,0。2.1進程的基本概念2.1.1程序的順序執(zhí)行及其特征2.1.2前趨圖2.1.3程序的并發(fā)執(zhí)行及其特征2.1.4進程的特征與狀態(tài)2.1.5進程控制塊2.1.4進程的特征與狀態(tài)1、進程實體的構(gòu)成(1)程序(段):進程要進行的操作。(2)數(shù)據(jù)段:包括操作的數(shù)據(jù)和程序自己的變量。(3)進程控制塊PCB(ProcessControlBlock):存放進程標識符、進程運行的當前狀態(tài)、程序和數(shù)據(jù)的地址、程序運行時的CPU環(huán)境等。2.1.4進程的特征與狀態(tài)

2.進程的特征

結(jié)構(gòu)特征:進程的創(chuàng)建與撤消就是PCB的創(chuàng)建與撤消。動態(tài)性:進程是一個動態(tài)的概念,實質(zhì)上是程序的一次執(zhí)行過程。進程具有生命期:它因“創(chuàng)建”而產(chǎn)生,因“調(diào)度”而執(zhí)行,執(zhí)行時還走走停停,因“撤消”而滅亡。并發(fā)性:多個進程實體同存于內(nèi)存中,且能在一段時間內(nèi)同時運行,共享系統(tǒng)資源;引入進程實體的目的就是并發(fā)執(zhí)行。2.進程的特征獨立性:進程是一個能獨立運行的基本單位,也是系統(tǒng)進行資源分配和調(diào)度的基本單位。異步性:各進程按各自獨立的、不可預(yù)知的速度向前推進。3.進程的定義進程是進程實體的運行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。4.進程與程序的區(qū)別進程是動態(tài)的,程序是靜態(tài)的:程序是有序代碼的集合,它可以復(fù)制;進程是程序在數(shù)據(jù)集上的一次執(zhí)行。進程是暫時的,程序是永久的:進程是一個狀態(tài)變化的過程,有它的撤銷,程序可長久保存。進程具有結(jié)構(gòu)特征:由程序段、數(shù)據(jù)段和進程控制塊三者組成,而程序僅是指令的有序集合,是進程的組成部分之一。進程與程序的對應(yīng)關(guān)系:通過多次執(zhí)行,一個程序可對應(yīng)多個進程。5.進程的狀態(tài)(1)進程的三種基本狀態(tài)就緒(Ready)狀態(tài):進程已獲得除處理機外的所需資源,等待分配處理機資源;只要分配CPU就可執(zhí)行。執(zhí)行(Running)狀態(tài):處于就緒狀態(tài)的進程一旦獲得了處理機,進程狀態(tài)就處于執(zhí)行狀態(tài)。阻塞(Blocked)狀態(tài)(“等待”或“睡眠”):由于進程等待某種事件(如I/O操作或進程同步),在事件發(fā)生之前無法繼續(xù)執(zhí)行。該事件發(fā)生前即使把處理機分配給該進程,也無法運行。如:請求I/O操作,申請緩沖空間等。圖2-5進程的三種基本狀態(tài)及其轉(zhuǎn)換1.時間片用光2.有優(yōu)先級高的進程到來引入掛起狀態(tài)的原因終端用戶的請求父進程請求負荷調(diào)節(jié)的需要操作系統(tǒng)的需要(2)進程的掛起狀態(tài)圖2-6具有掛起狀態(tài)的進程狀態(tài)圖(3)進程的其它兩種狀態(tài)

創(chuàng)建狀態(tài):當一個新進程剛剛建立,還未將其放入就緒隊列時的狀態(tài),稱為新狀態(tài)。終止狀態(tài):當一個進程已經(jīng)正常結(jié)束或異常結(jié)束,操作系統(tǒng)已將其從系統(tǒng)隊列中移出,但尚未撤消,這時稱為終止狀態(tài)。圖2-7進程的五種基本狀態(tài)及其轉(zhuǎn)換2.1進程的基本概念2.1.1程序的順序執(zhí)行及其特征2.1.2前趨圖2.1.3程序的并發(fā)執(zhí)行及其特征2.1.4進程的特征與狀態(tài)2.1.5進程控制塊2.1.5進程控制塊

1.進程控制塊的作用

進程控制塊的作用是使一個在多道程序環(huán)境下不能獨立運行的程序(含數(shù)據(jù)),成為一個能獨立運行的基本單位,一個能與其它進程并發(fā)執(zhí)行的進程。或者說,OS是根據(jù)PCB來對并發(fā)執(zhí)行的進程進行控制和管理的。記錄了操作系統(tǒng)所需的,用于描述進程情況及控制進程運行所需的全部信息。

PCB是進程存在的唯一標志。2.進程控制塊中的信息

進程標識符內(nèi)部標識符和外部標識符。處理機狀態(tài)①通用寄存器②指令計數(shù)器PC③程序狀態(tài)字PSW④用戶棧指針進程調(diào)度信息①進程狀態(tài)②進程優(yōu)先級③進程調(diào)度所需的其它信息④事件進程控制信息①程序和數(shù)據(jù)的地址②進程同步和通信機制③資源清單④鏈接指針structpcb{intid;//進程序號

intra;//所需資源A的數(shù)量

intrb;//所需資源B的數(shù)量

intrc;//所需資源C的數(shù)量

intntime;//所需的時間片個數(shù)

intrtime;//已經(jīng)運行的時間片個數(shù)

charstate;//進程狀態(tài)

structpcb*next;}圖2-9PCB鏈接隊列示意圖3.進程控制塊的組織方式(1)鏈接方式

(2)索引方式圖2-10按索引方式組織PCB3.進程控制塊的組織方式(1)鏈接方式(2)索引方式內(nèi)容概述2.1進程的基本概念

2.2進程控制

2.3進程同步2.4經(jīng)典進程的同步問題2.5進程通信2.6線程2.2進程控制1.系統(tǒng)態(tài)和用戶態(tài)處理機的執(zhí)行狀態(tài)分系統(tǒng)態(tài)和用戶態(tài)兩種:(1)系統(tǒng)態(tài)(管態(tài)、核心態(tài)):有較高特權(quán),能執(zhí)行一切指令,訪問所有寄存器和存儲區(qū)。

(2)用戶態(tài)(目態(tài)):有較低特權(quán),能執(zhí)行規(guī)定指令,訪問指定寄存器和存儲區(qū)。 用戶程序運行在用戶態(tài),不能執(zhí)行OS指令及區(qū)域。

OS內(nèi)核運行在系統(tǒng)態(tài),進程控制是由OS內(nèi)核實現(xiàn)的。2.2進程控制2.進程控制的功能

進程控制是進程管理中最基本的功能:創(chuàng)建新進程終止已結(jié)束進程終止由于某事件而無法運行下去的進程負責(zé)進程的狀態(tài)轉(zhuǎn)換進程控制一般由OS的內(nèi)核中的原語來實現(xiàn)的。2.2進程控制3.原語由若干條指令構(gòu)成的“原子操作”過程,在執(zhí)行期間不可中斷,作為一個整體而不可分割。原子操作:一個操作中的所有動作要么全做,要么全不做。原子操作在管態(tài)下執(zhí)行,常駐內(nèi)存。原語的作用是為了實現(xiàn)進程的通信和控制。1.創(chuàng)建原語2.撤消原語3.阻塞原語4.喚醒原語5.掛起原語6.激活原語2.2進程控制2.2.1進程的創(chuàng)建2.2.2進程的終止2.2.3進程的阻塞與喚醒2.2.4進程的掛起與激活2.2.1進程的創(chuàng)建圖2-9進程樹1.進程圖(ProcessGraph)進程圖是用于描述一個進程的家族關(guān)系的有向樹,樹中的結(jié)點表示進程。子進程可以繼承父進程的資源。撤消父進程時必須同時撤消子進程2.引起創(chuàng)建進程的事件

(1)用戶登錄

(2)作業(yè)調(diào)度

(3)提供服務(wù)

(4)應(yīng)用請求3.進程的創(chuàng)建步驟(1)申請空白PCB(2)為新進程分配資源(3)初始化進程控制塊(4)將新進程插入就緒隊列2.2進程控制2.2.1進程的創(chuàng)建2.2.2進程的終止2.2.3進程的阻塞與喚醒2.2.4進程的掛起與激活2.2.2進程的終止1.引起進程終止的事件

1)正常結(jié)束

2)異常結(jié)束

3)外界干預(yù)2.進程的終止過程

(1)從PCB集合中檢索出該進程的PCB,讀出該進程的狀態(tài)。

(2)若被終止進程正處于執(zhí)行狀態(tài),應(yīng)立即終止該進程的執(zhí)行。

(3)若該進程還有子孫進程,應(yīng)將其所有子孫進程予以終止。

(4)將被終止進程所擁有的全部資源,歸還給其父進程,或者歸還給系統(tǒng)。

(5)將被終止進程(它的PCB)從所在隊列(或鏈表)中移出,等待其他程序來搜集信息。2.2進程控制2.2.1進程的創(chuàng)建2.2.2進程的終止2.2.3進程的阻塞與喚醒2.2.4進程的掛起與激活2.2.3進程的阻塞與喚醒1.引起進程阻塞和喚醒的事件

(1)請求系統(tǒng)服務(wù)(2)啟動某種操作(3)新數(shù)據(jù)尚未到達(4)無新工作可做2.進程阻塞過程進程調(diào)用阻塞原語block()把自己阻塞,立即停止執(zhí)行,把進程控制塊中的現(xiàn)行狀態(tài)由“執(zhí)行”改為阻塞,并將PCB插入阻塞隊列。將本進程插入到具有相同事件的阻塞(等待)隊列。調(diào)度程序進行重新調(diào)度,將處理機分配給另一就緒進程,并進行切換,亦即,保留被阻塞進程的處理機狀態(tài)(在PCB中),再按新進程的PCB中的處理機狀態(tài)設(shè)置CPU的環(huán)境。3.進程喚醒過程調(diào)用喚醒原語wakeup()將等待該事件的進程喚醒。喚醒原語執(zhí)行的過程是把被阻塞的進程從等待該事件的阻塞隊列中移出將其PCB中的現(xiàn)行狀態(tài)由阻塞改為就緒將該PCB插入到就緒隊列中2.2進程控制2.2.1進程的創(chuàng)建2.2.2進程的終止2.2.3進程的阻塞與喚醒2.2.4進程的掛起與激活2.2.4進程的掛起與激活1.進程的掛起系統(tǒng)將利用掛起原語suspend()將指定進程或處于阻塞狀態(tài)的進程掛起。suspend()原語的執(zhí)行過程首先檢查被掛起進程的狀態(tài),若處于活動就緒狀態(tài),便將其改為靜止就緒;對于活動阻塞狀態(tài)的進程,則將之改為靜止阻塞。把該進程的PCB復(fù)制到某指定的內(nèi)存區(qū)域。若被掛起的進程正在執(zhí)行,則轉(zhuǎn)向調(diào)度程序重新調(diào)度。2.進程的激活過程系統(tǒng)將利用激活原語active()將指定進程激活。active()原語執(zhí)行過程將進程從外存調(diào)入內(nèi)存,檢查該進程的現(xiàn)行狀態(tài),若是靜止就緒,將之改為活動就緒;若為靜止阻塞便將之改為活動阻塞。假如采用的是搶占調(diào)度策略,則每當有新進程進入就緒隊列時,應(yīng)檢查是否要進行重新調(diào)度,即由調(diào)度程序?qū)⒈患せ钸M程與當前進程進行優(yōu)先級的比較,如果被激活進程的優(yōu)先級更低,就不必重新調(diào)度;否則,立即剝奪當前進程的運行,把處理機分配給剛被激活的進程。內(nèi)容概述2.1進程的基本概念

2.2進程控制2.3進程同步

2.4經(jīng)典進程的同步問題2.5進程通信2.6線程2.3進程同步

進程同步的主要任務(wù)是對多個相關(guān)進程在執(zhí)行次序上進行協(xié)調(diào),以使并發(fā)執(zhí)行的諸進程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。2.3.1進程同步的基本概念2.3.2信號量機制2.3.3信號量的應(yīng)用2.3.4管程機制2.3.1進程同步的基本概念1.兩種形式的制約關(guān)系(1)間接相互制約關(guān)系源于資源共享。如A、B共享打印機,若A申請打印時,打印機已分配給B,則A只能阻塞,等B釋放后再改為就緒,又稱為“互斥”。(2)直接相互制約關(guān)系源于進程之間的合作關(guān)系。如進程A向B提供數(shù)據(jù),當輸入緩沖空時,B不能得到數(shù)據(jù)而阻塞;反之當緩沖滿時,A無法寫入而阻塞,又稱為“同步”。2.臨界資源定義:在一段時間內(nèi)只允許一個進程訪問的資源。例如:打印機、磁帶機、卡片輸入機、變量、表格、數(shù)據(jù)、指針、數(shù)組等。進程之間采取互斥方式實現(xiàn)對這些資源的共享。例子:

生產(chǎn)者-消費者(producer-consumer)問題是一個著名的進程同步問題。有一群生產(chǎn)者進程在生產(chǎn)產(chǎn)品,提供給消費者進程去消費。不能向滿緩沖區(qū)投放產(chǎn)品,不能從空緩沖區(qū)中取產(chǎn)品。

一個數(shù)組緩沖池,有n個緩沖區(qū)。

buffer:array[0,1,…,n-1]ofitem

輸入指針inin∶=(in+1)modn。輸出指針outout∶=(out+1)modn。

counter:初始值為0。緩沖池中含有的產(chǎn)品數(shù)目。01n-1inout……producer:repeat{生產(chǎn)者進程}

…produceaniteminnextp;//生產(chǎn)一個產(chǎn)品…whilecounter=ndono-op;buffer[in]∶=nextp;//將產(chǎn)品放入緩沖區(qū)內(nèi)

in∶=in+1modn;counter∶=counter+1;//緩沖池中產(chǎn)品數(shù)加一

untilfalse;consumer:repeat{消費者進程}

whilecounter=0dono-op;nextc∶=buffer[out];//從緩沖區(qū)中消費產(chǎn)品

out∶=(out+1)modn;counter∶=counter-1;//緩沖池中產(chǎn)品數(shù)減一

consumertheiteminnextc;//消費一個產(chǎn)品

untilfalse;

雖然上面的生產(chǎn)者程序和消費者程序,在分別看時都是正確的,而且兩者在順序執(zhí)行時其結(jié)果也會是正確的,但若并發(fā)執(zhí)行時,就會出現(xiàn)差錯,問題就在于這兩個進程共享變量counter。生產(chǎn)者對它做加1操作,消費者對它做減1操作,這兩個操作在用機器語言實現(xiàn)時,常可用下面的形式描述:register1∶=counter;register2∶=counter;register1∶=register1+1;register2∶=register2-1;counter∶=register1;counter∶=register2;

假設(shè):counter的當前值是5。如果生產(chǎn)者進程先執(zhí)行左列的三條機器語言語句,然后消費者進程再執(zhí)行右列的三條語句,則最后共享變量counter的值仍為5;反之,如果讓消費者進程先執(zhí)行右列的三條語句,然后再讓生產(chǎn)者進程執(zhí)行左列的三條語句,counter值也還是5,但是,如果按下述順序執(zhí)行,counter值是4。由于并發(fā)執(zhí)行而失去封閉性。register1∶=counter;(register1=5)register1∶=register1+1;(register1=6)register2∶=counter;(register2=5)register2∶=register2-1;(register2=4)counter∶=register1;(counter=6)counter∶=register2;(counter=4)共享資源的訪問互斥3.臨界區(qū)不論是硬件臨界資源還是軟件臨界資源,多個進程必須互斥地對它進行訪問。在每個進程中訪問臨界資源的那段代碼稱為臨界區(qū)。每個進程進入臨界區(qū)之前應(yīng)先對欲訪問的臨界資源進行檢查,看是否正在被訪問。如果此刻該臨界資源未被訪問,該進程可進入臨界區(qū),并設(shè)置它正在被訪問的標志,在臨界區(qū)之前執(zhí)行的這段代碼稱為進入?yún)^(qū)。在臨界區(qū)后面也要加上一段代碼,用于將臨界區(qū)被訪問的資源恢復(fù)為未被訪問的標志,稱為退出區(qū)。可把一個訪問臨界資源的循環(huán)進程描述如下:repeat

criticalsection; {臨界區(qū)}remaindersection; {剩余區(qū)}untilfalse;entrysectionexitsection{進入?yún)^(qū)}{退出區(qū)}4.同步機制應(yīng)遵循的規(guī)則(1)空閑讓進:當無進程處于臨界區(qū)時,應(yīng)允許一個進程進入臨界區(qū),以有效利用臨界資源。(2)忙則等待:當有進程進入臨界區(qū)時,其他進程必須等待。(3)有限等待:對要求訪問臨界資源的進程,應(yīng)保證在有限時間內(nèi)進入自己的臨界區(qū),防止“死等”。(4)讓權(quán)等待:當進程不能進入其臨界區(qū)時,應(yīng)立即釋放處理機,防止“忙等”,不能一直用語句判斷能不能進,占用處理機。2.3進程同步2.3.1進程同步的基本概念2.3.2信號量機制2.3.3信號量的應(yīng)用1965年,荷蘭學(xué)者Dijkstra提出的信號量(Semaphores)機制是一種有效的進程同步工具,所以P、V分別是荷蘭語的test(proberen)和increment(verhogen)。信號量機制已從整型信號量發(fā)展為記錄型信號量、AND型信號量,又進一步發(fā)展為信號量集。信號量就是OS提供的管理公有資源的有效手段。信號量代表可用資源實體的數(shù)量。2.3.2信號量機制1.整型信號量除初始化外,僅能通過兩個標準的原子操作wait(S)和signal(S)來訪問。也稱為P、V操作。wait和signal操作可描述為:wait(S):whileS≤0dono-op; S:=S-1;signal(S):S:=S+1;wait(S)和signal(S)是原子操作,因此它們在執(zhí)行時是不可中斷的。另外,信號量只能通過原語操作來訪問,不能被進程調(diào)度所打斷。有“忙等”現(xiàn)象。可把一個訪問臨界資源的循環(huán)進程描述如下:repeat

criticalsection; {臨界區(qū)}remaindersection; {剩余區(qū)}untilfalse;entrysectionexitsectionP(S)或wait(S);V(S)或signal(S);{進入?yún)^(qū)}{退出區(qū)}2.記錄型信號量記錄型信號量(也稱資源信號量)機制,則是一種不存在“忙等”現(xiàn)象的進程同步機制,它采用了記錄型的數(shù)據(jù)結(jié)構(gòu)。在采取了“讓權(quán)等待”的策略后,又會出現(xiàn)多個進程等待訪問同一臨界資源的情況。為此,在信號量機制中,除了需要一個用于代表資源數(shù)目的整型變量value外,還應(yīng)增加一個進程鏈表L,用于鏈接上述的所有等待進程。typesemaphore=recordvalue:integer;//資源數(shù)目

L:listofprocess;//進程鏈表指針

endprocedurewait(S)varS:semaphore;beginS.value:=S.value-1;ifS.value<0thenblock(S.L);endproceduresignal(S)varS:semaphore;beginS.value:=S.value+1;ifS.value≤0thenwakeup(S.L);end請求一個單位的該類資源該類資源數(shù)減少一個自我阻塞,放棄處理機釋放一個單位資源該類資源增加一個喚醒進程3.AND型信號量

在有些任務(wù)中,一個進程先要獲得多個共享資源后才能執(zhí)行,若進程A和B都要申請D和E兩種資源,設(shè)信號量Dmutex和Emutex的初值均為1在兩個進程中都要包含兩個對Dmutex和Emutex的操作,即processA: processB:P(Dmutex); P(Emutex);P(Emutex); P(Dmutex);若進程A和B按下述次序交替執(zhí)行P操作:processA:P(Dmutex);于是Dmutex=0processB:P(Emutex);于是Emutex=0processA:P(Emutex);于是Emutex=-1A阻塞

processB:P(Dmutex);于是Dmutex=-1B阻塞

AND同步機制的基本思想是:將進程在整個運行過程中需要的所有資源,一次性全部地分配給進程,待進程使用完后再一起釋放。只要尚有一個資源未能分配給進程,其它所有可能為之分配的資源,也不分配給他。亦即,對若干個臨界資源的分配,采取原子操作方式:要么全部分配到進程,要么一個也不分配。由死鎖理論可知,這樣就可避免上述死鎖情況的發(fā)生。為此,在P操作中,增加了一個“AND”條件,故稱為AND同步,或稱為同時P操作,

即SP(Simultaneouswait)定義如下:SP:Swait(S1,S2,…,Sn)ifSi≥1and…andSn≥1then{每個資源都可用}fori:=1tondoSi:=Si-1;{分配所有資源}endforelse{否則,將進程放到等待資源Si的隊列中}

“阻塞”(去第1個Si<1的“等待Si”的阻塞隊列中排隊,并置它的程序計數(shù)器于SP操作的起始點)endifSV:Ssignal(S1,S2,…,Sn)fori:=1tondoSi=Si+1;{釋放所有資源}

“喚醒”(所有“等待Si”的阻塞進程,置為“就緒”狀態(tài),移到就緒隊列中)endfor;4.信號量集:一次申請多個資源在記錄型信號量機制中,P(S)和V(S)操作僅能對信號量施以加1或減1操作,意味著每次只能獲得或釋放一個單位的臨界資源,效率較低。在有些情況下,當資源數(shù)量低于某下限值時便不予分配。因而,在每次分配之前,都必須測試該資源的數(shù)量,看其是否大于下限值。在對AND型信號量機制擴充的基礎(chǔ)上,形成一般化的“信號量集”機制。SP:Swait(S1,t1,d1,…,Sn,tn,dn)ifSi≥t1and…andSn≥tnthenfori:=1tondoSi:=Si-di;{一次分配d個資源}endforelse

“阻塞”(去第1個Si<ti的“等待Si”的阻塞隊列中排隊)endif

SV:Ssignal(S1,d1,…,Sn,dn)fori:=1tondoSi:=Si+di;{釋放所有資源}“喚醒”(所有“等待Si”的阻塞進程,置為“就緒”狀態(tài),移到就緒隊列中)endfor;一般“信號量集”的幾種特殊情況:(1)SP(S,d,d)。此時在信號量集中只有一個信號量S,但允許它每次申請d個資源,當現(xiàn)有資源數(shù)少于d時,不予分配。

(2)SP(S,1,1)。此時的信號量集已蛻化為一般的記錄型信號量(S>1時)或互斥信號量(S=1時)。

(3)SP(S,1,0)。這是一種很特殊且很有用的信號量操作。當S≥1時,允許多個進程進入某特定區(qū);當S變?yōu)?后,將阻止任何進程進入特定區(qū)。換言之,它相當于一個可控開關(guān)。wait(S):whileS≤0dono-op; S:=S-1;signal(S):S:=S+1;procedurewait(S)varS:semaphore;beginS.value:=S.value-1;ifS.value<0thenblock(S.L);endproceduresignal(S)varS:semaphore;beginS.value:=S.value+1;ifS.value≤0thenwakeup(S.L);end記錄型信號量:整型信號量:2.3進程同步2.3.1進程同步的基本概念2.3.2信號量機制2.3.3信號量的應(yīng)用2.3.3信號量的應(yīng)用1.利用信號量實現(xiàn)進程互斥Varmutex:semaphore:=1;//信號量初始值為1beginparbeginprocess1:begin repeat

P(mutex);//占用資源

criticalsection

V(mutex);

//釋放資源

remainderseetion untilfalse; endprocess2:begin repeat

P(mutex); criticalsection

V(mutex); remaindersection untilfalse; endparend利用信號量實現(xiàn)進程互斥利用整型信呈量機制實現(xiàn)進程互斥時應(yīng)注意,P(mutex)和V(mutex)必須成對出現(xiàn)。缺少P(mutex)會導(dǎo)致系統(tǒng)混亂,不能保證對臨界資源的互斥訪問。缺少V(mutex)將會使臨界資源永遠不被釋放,從而使因等待該資源而阻塞的進程不再被喚醒。2.利用信號量實現(xiàn)前趨關(guān)系設(shè)有兩個并發(fā)進程P1和P2。P1中有語句S1,P2中有語句S2,希望在執(zhí)行完S1后執(zhí)行S2。進程P1和P2共享一個公用信號量a,并賦初值為0。進程P1:S1;V(a);進程P2:P(a);S2;由于a被初始化為0,若P2先執(zhí)行,必定阻塞,只有在進程P1執(zhí)行完使S增為1后,P2才能執(zhí)行S2操作。a圖2-10前趨圖舉例Vara,b,c,d,e,f,g:semaphore:=0,0,0,0,0,0,0;beginparbegin beginS1;V(a);V(b);end; beginP(a);S2;V(c);V(d);end; beginP(b);S3;V(e);end; beginP(c);S4;V(f);end; beginP(d);S5;V(g);end; beginP(f);P(g);P(e);S6;end;parendendabcdegf圖2-10前趨圖舉例內(nèi)容概述2.1進程的基本概念

2.2進程控制2.3進程同步2.4經(jīng)典進程的同步問題

2.5進程通信2.6線程2.4經(jīng)典進程的同步問題2.4.1生產(chǎn)者—消費者問題2.4.2哲學(xué)家進餐問題2.4.3讀者—寫者問題未考慮進程的互斥與同步問題,會造成數(shù)據(jù)Counter的不定性。生產(chǎn)者—消費者問題是相互合作的進程關(guān)系的一種抽象。例如,在輸入時,輸入進程是生產(chǎn)者,計算進程是消費者;而在輸出時,則計算進程是生產(chǎn)者,而打印進程是消費者。2.4.1生產(chǎn)者—消費者問題producer:repeat{生產(chǎn)者進程}

…produceaniteminnextp;//生產(chǎn)一個產(chǎn)品…whilecounter=ndono-op;buffer[in]∶=nextp;//將產(chǎn)品放入緩沖區(qū)內(nèi)

in∶=in+1modn;counter∶=counter+1;//緩沖池中產(chǎn)品數(shù)加一

untilfalse;consumer:repeat{消費者進程}

whilecounter=0dono-op;nextc∶=buffer[out];//從緩沖區(qū)中消費產(chǎn)品

out∶=(out+1)modn;counter∶=counter-1;//緩沖池中產(chǎn)品數(shù)減一

consumertheiteminnextc;//消費一個產(chǎn)品

untilfalse;1.利用記錄型信號量解決生產(chǎn)者—消費者問題只要緩沖池未滿,生產(chǎn)者便可將消息送入緩沖池。只要緩沖池未空,消費者便可從緩沖池中取走一個消息。互斥訪問緩沖池。設(shè)置三個信號量:empty:表示可供使用的緩沖區(qū)數(shù),其初值為n。full:表示放有消息的緩沖區(qū)數(shù),其初值為0。mutex:互斥信號量,初值為1,表示各進程互斥進入臨界區(qū),保證任何時候只有一個進程使用緩沖區(qū)。Varmutex,empty,full:semaphore:=1,n,0;buffer:array[0,…,n-1]ofitem;in,out:integer:=0,0;beginparbeginproducer:{生產(chǎn)者進程}beginrepeat…

生產(chǎn)一條消息=>nextp;…P(empty);{empty減1}

P(mutex);buffer(in):=nextp;in:=(in+1)modn;{移動生產(chǎn)指針}

V(mutex);V(full);{full增1}untilfalse;endconsumer:{消費者進程}beginrepeatP(full);

P(mutex);nextc:=buffer(out);out:=(out+1)modn;

V(mutex);V(empty);

消費nextc中的一條消息;

untilfalse;endparendend在生產(chǎn)者—消費者問題中要注意以下幾點:在每個程序中用于實現(xiàn)互斥的P(mutex)和V(mutex)必須成對地出現(xiàn);對資源信號量empty

溫馨提示

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

最新文檔

評論

0/150

提交評論