計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 10ch6(1)-OS_第1頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 10ch6(1)-OS_第2頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 10ch6(1)-OS_第3頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 10ch6(1)-OS_第4頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 10ch6(1)-OS_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二部分操作系統(tǒng)第5章操作系統(tǒng)概論第6章處理器管理第7章存儲器管理第8章設(shè)備管理第9章文件管理第6章處理器管理(1)6.1進(jìn)程的概念

6.2進(jìn)程的狀態(tài)和轉(zhuǎn)換

6.3進(jìn)程的控制

6.4進(jìn)程的協(xié)調(diào)

6.5進(jìn)程間的通信

6.6進(jìn)程的安全性

6.7線程的概念

6.8作業(yè)管理

6.9處理器調(diào)度進(jìn)程管理處理器(CPU)是整個計(jì)算機(jī)系統(tǒng)中核心的、寶貴的硬件資源。有效地管理CPU、最大限度地提高CPU的利用率,是操作系統(tǒng)最重要的管理任務(wù)。采用多道程序設(shè)計(jì)技術(shù)、組織多個作業(yè)同時執(zhí)行解決CPU的調(diào)度、分配和回收等問題處理器管理高級處理器管理:作業(yè)管理(調(diào)度),確定哪個作業(yè)進(jìn)入內(nèi)存。低級處理器管理:進(jìn)程管理(調(diào)度),哪個作業(yè)中的哪個進(jìn)程將獲得CPU。進(jìn)程,是系統(tǒng)分配資源的獨(dú)立單位。第6章處理器管理進(jìn)程管理學(xué)習(xí)目標(biāo):1.掌握:進(jìn)程定義,臨界區(qū)概念,進(jìn)程的狀態(tài)及其變化,進(jìn)程的同步與互斥。2.理解:多道程序設(shè)計(jì)概念,進(jìn)程的組成,進(jìn)程管理的基本命令,信號量和P、V

操作及其應(yīng)用。3.了解:進(jìn)程間的通信。

單道批處理系統(tǒng)單道運(yùn)行:每次只調(diào)用一個用戶作業(yè)程序進(jìn)入內(nèi)存并運(yùn)行

6.1進(jìn)程的概念(概念的引入)1.程序的順序執(zhí)行(單道批處理系統(tǒng))

一個程序由若干個程序段組成,而這些程序段的執(zhí)行必須是順序的,這種程序執(zhí)行的方式就稱為程序的順序執(zhí)行。特點(diǎn)(1)順序性--只有前一個操作結(jié)束,才能執(zhí)行后續(xù)操作(2)唯一對應(yīng)性--程序與執(zhí)行過程一一對應(yīng)(3)封閉性--程序運(yùn)行時獨(dú)占全機(jī)資源

程序一旦開始執(zhí)行,其計(jì)算結(jié)果不受外界的影響。(4)可再現(xiàn)性--與執(zhí)行速度無關(guān)

程序執(zhí)行的結(jié)果與初始條件有關(guān),而與執(zhí)行時間無關(guān)。多道批處理系統(tǒng)多道程序的思想:在內(nèi)存中允許同時存放若干道相互獨(dú)立的程序,并允許它們交替執(zhí)行,共享系統(tǒng)軟硬件資源。特征:(1)資源共享。(2)程序并發(fā)執(zhí)行。用戶程序A用戶程序B請求盤輸入請求帶輸入啟動盤調(diào)度B啟動帶中斷處理中斷處理調(diào)度A調(diào)度B監(jiān)督程序磁帶操作磁盤操作結(jié)束中斷結(jié)束中斷T6.1進(jìn)程的概念程序的并發(fā)執(zhí)行(多道批處理系統(tǒng))特點(diǎn)1)并發(fā)性 若干個程序段同時在系統(tǒng)中運(yùn)行,這些程序的執(zhí)行在時間上是重迭的,一個程序段的執(zhí)行尚未結(jié)束,另一個程序段的執(zhí)行已經(jīng)開始,即使這種重迭是很小的,也稱這幾個程序段是并發(fā)執(zhí)行的。2)開放性(失去了封閉性) 系統(tǒng)中并發(fā)執(zhí)行的程序,共享資源,程序的執(zhí)行與外部因素(如執(zhí)行速度)有關(guān),不再具有封閉性。 注:若一個程序的執(zhí)行可改變另一個程序的變量,程序執(zhí)行的結(jié)果不僅依賴于程序的初始條件,還依賴于程序執(zhí)行時的相對速度,在這種情況下就失去了程序的封閉性。例:有兩個循環(huán)程序A和B,它們共享一個變量N。[程序A]執(zhí)行N∶=N+1操作;[程序B]執(zhí)行Print(N); N:=0;程序A和B以不同的速度運(yùn)行。結(jié)果:

(1)N∶=N+1在Print(N)和N∶=0

之前,此時得到的N值分別為N+1,N+1(輸出),0。(2)N∶=N+1在Print(N)和N∶=0

之后,此時得到的N值分別為N(輸出),0,1。(3)N∶=N+1在Print(N)和N∶=0

之間,此時得到的N值分別為N(輸出),N+1,0。

進(jìn)程概念的引入-并發(fā)執(zhí)行的特點(diǎn)3)動態(tài)性(程序與執(zhí)行活動不再一一對應(yīng))并發(fā)程序中的并發(fā)活動是動態(tài)產(chǎn)生、動態(tài)消亡的。程序的并發(fā)執(zhí)行時,可能有多用戶共享使用同一個程序,但處理(執(zhí)行時)的對象卻是不同的。在程序順序執(zhí)行時,一個程序總是對應(yīng)一個具體的執(zhí)行。例如,在多用戶環(huán)境下,可能同時有多個用戶調(diào)用C語言的編譯程序,這就是典型的一個程序?qū)?yīng)多個用戶源程序的情況。4)程序并發(fā)執(zhí)行的相互制約間接制約無邏輯關(guān)系的用戶程序之間競爭使用資源而產(chǎn)生的制約關(guān)系使本來并無邏輯關(guān)系的程序之間產(chǎn)生了相互制約關(guān)系。程序活動的工作狀態(tài)與環(huán)境有密切關(guān)系,并發(fā)程序具有“執(zhí)行—暫?!獔?zhí)行”的活動規(guī)律。直接制約存在邏輯關(guān)系的程序之間相互等待而發(fā)生的制約關(guān)系順序執(zhí)行與并發(fā)執(zhí)行的特征比較順序執(zhí)行并發(fā)執(zhí)行

程序順序執(zhí)行唯一對應(yīng)性

程序具有封閉性獨(dú)享資源具有可再現(xiàn)性間斷執(zhí)行,多個程序各自在“走走停?!敝羞M(jìn)行動態(tài)性

程序失去封閉性共享資源失去其可再現(xiàn)性有直接和間接的相互制約

1.進(jìn)程的定義

背景:當(dāng)程序順序執(zhí)行時,具有封閉性和可再現(xiàn)性,但為了提高計(jì)算機(jī)的速度和增強(qiáng)系統(tǒng)的處理能力,廣泛采用多道程序設(shè)計(jì)技術(shù),從而導(dǎo)致程序的并發(fā)進(jìn)行和資源共享。這帶來新的特性,即失去封閉性、程序與計(jì)算機(jī)活動失去一一對應(yīng),并使程序并發(fā)執(zhí)行時產(chǎn)生了相互制約的關(guān)系。為了更好描述程序的并發(fā)活動,引入了“進(jìn)程”概念。

1.進(jìn)程的定義進(jìn)程的定義:

進(jìn)程是程序在并發(fā)環(huán)境中的執(zhí)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位。說明:1)進(jìn)程最根本的屬性是動態(tài)性和并發(fā)性

2)進(jìn)程和程序是兩個完全不同的概念

3)尚無統(tǒng)一的定義和名稱:美國MIT稱進(jìn)程(process)、IBM公司稱任務(wù)(task)、Univac公司稱活動(action)。1.進(jìn)程的定義進(jìn)程和程序主的聯(lián)系和區(qū)別聯(lián)系:程序是構(gòu)成進(jìn)程(程序、數(shù)據(jù)、進(jìn)程控制塊)的組成部分之一。一個進(jìn)程的運(yùn)行目標(biāo)是執(zhí)行它所對應(yīng)的程序;如果沒有程序,進(jìn)程就是去了存在意義。區(qū)別:程序是靜態(tài)概念;進(jìn)程是程序的一次執(zhí)行過程,是動態(tài)概念。

程序

進(jìn)程靜態(tài)的概念

動態(tài)的概念不能并行活動

獨(dú)立的運(yùn)行單位,能并行活動不是一個基本單位

是處理機(jī)調(diào)度、竟?fàn)庂Y源的基本單位一個程序可對應(yīng)多個進(jìn)程

一個進(jìn)程可以執(zhí)行多個程序段類似于樂曲與樂曲的一次演奏之間的關(guān)系。2.進(jìn)程的特征

動態(tài)性:進(jìn)程是程序在并發(fā)系統(tǒng)內(nèi)的一次執(zhí)行。進(jìn)程“由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資源而暫停執(zhí)行,由撤消而消亡”

并發(fā)性:概念引入的起源

獨(dú)立性:一個進(jìn)程是一個相對完整的資源分配單位。每個進(jìn)程按照各自獨(dú)立、不可預(yù)知的速度執(zhí)行(異步性)。制約性:進(jìn)程之間的相互制約(互斥使用資源、必要的同步和通信)結(jié)構(gòu)性:程序+數(shù)據(jù)+進(jìn)程控制塊(PCB,ProcessControlBlock)3.進(jìn)程的組成進(jìn)程的組成:程序、數(shù)據(jù)集合、進(jìn)程控制塊(PCB)這三部分構(gòu)成“進(jìn)程實(shí)體”,也稱為“進(jìn)程映象”。

4.進(jìn)程控制塊進(jìn)程控制塊

是進(jìn)程組成中最關(guān)鍵的部分,它含有進(jìn)程的描述信息和控制信息,是進(jìn)程動態(tài)特性的集中反映,是系統(tǒng)對進(jìn)程進(jìn)行識別和控制的依據(jù)。進(jìn)程創(chuàng)建時建立PCB(唯一的、進(jìn)程存在標(biāo)志)。在進(jìn)程的生命周期內(nèi),操作系統(tǒng)(OS)通過對PCB的管理來實(shí)現(xiàn)對進(jìn)程的管理。進(jìn)程撤消時刪除其相應(yīng)的PCB。4.進(jìn)程控制塊進(jìn)程控制塊包含的內(nèi)容:(1)進(jìn)程名:外部標(biāo)識符(2)標(biāo)識碼(進(jìn)程號)PID:內(nèi)部標(biāo)識符(3)優(yōu)先數(shù)(4)位置信息:存儲器中的物理位置(5)狀態(tài)信息:當(dāng)前活動狀態(tài)(6)現(xiàn)場信息:與運(yùn)行相關(guān)的信息(通用寄存器、程序計(jì)數(shù)器PC、程序狀態(tài)字PSW等)(7)通信信息(8)占用資源(9)其他信息6.2進(jìn)程的狀態(tài)和轉(zhuǎn)換進(jìn)程的動態(tài)性由它的狀態(tài)和轉(zhuǎn)換體現(xiàn)1、進(jìn)程的三種基本狀態(tài)1)運(yùn)行態(tài)(running):當(dāng)進(jìn)程得到處理器控制權(quán)時,它的程序正在處理機(jī)上運(yùn)行,該進(jìn)程所處的狀態(tài)為運(yùn)行狀態(tài)。2)就緒態(tài)(ready):存在于處理機(jī)調(diào)度隊(duì)列中的那些進(jìn)程,它們已經(jīng)準(zhǔn)備就緒,一旦得到CPU,就可以立即運(yùn)行,這些進(jìn)程所處的狀態(tài)稱為就緒狀態(tài)。3)阻塞態(tài)或等待態(tài)(blocked/wait):若一個進(jìn)程正等待著某一事件發(fā)生(如等待輸入輸出操作的完成)而暫時停止執(zhí)行。這時,即使給它CPU時間,它也無法執(zhí)行,則稱該進(jìn)程處于等待狀態(tài)(又可稱為封鎖狀態(tài)或等待狀態(tài))。2、進(jìn)程狀態(tài)的轉(zhuǎn)換進(jìn)程三態(tài)模型及其狀態(tài)轉(zhuǎn)換圖.就緒—運(yùn)行.運(yùn)行—阻塞.運(yùn)行—就緒.阻塞—就緒2、進(jìn)程狀態(tài)的轉(zhuǎn)換a.創(chuàng)建—就緒b.就緒—運(yùn)行c.運(yùn)行—阻塞d.運(yùn)行—就緒e.運(yùn)行—終止f.阻塞—就緒創(chuàng)建狀態(tài)退出狀態(tài)具有五種狀態(tài)的進(jìn)程狀態(tài)轉(zhuǎn)換圖(1)就緒->運(yùn)行處于就緒狀態(tài)的進(jìn)程被調(diào)度程序選中,分配到CPU后,該進(jìn)程的狀態(tài)就由就緒態(tài)變成運(yùn)行態(tài)。處于運(yùn)行態(tài)的進(jìn)程也稱作當(dāng)前進(jìn)程。此時當(dāng)前進(jìn)程的程序在CPU上執(zhí)行,它真正是活動的。(2)運(yùn)行->阻塞正在運(yùn)行的進(jìn)程因某種條件而未滿足而放棄對CPU的占用。這個進(jìn)程的狀態(tài)就由運(yùn)行態(tài)變?yōu)樽枞麘B(tài)。2、進(jìn)程狀態(tài)的轉(zhuǎn)換(3)阻塞->就緒

處于阻塞狀態(tài)的進(jìn)程所等待的事件發(fā)生了,此時該進(jìn)程就從阻塞隊(duì)列中出來,進(jìn)入到就緒隊(duì)列中,然后與就緒隊(duì)列中的其它進(jìn)程競爭CPU。(4)運(yùn)行->就緒正在運(yùn)行的進(jìn)程如用完了本次分配給它的CPU時間片,它就得從CPU上退下來,暫停運(yùn)行。該進(jìn)程的狀態(tài)就由運(yùn)行態(tài)變?yōu)榫途w態(tài),以后進(jìn)程調(diào)度程序選中它,它就又可以繼續(xù)運(yùn)行了。2、進(jìn)程狀態(tài)的轉(zhuǎn)換3.掛起狀態(tài)某些系統(tǒng)中,為了更好地管理和調(diào)度進(jìn)程及適應(yīng)系統(tǒng)的功能目標(biāo),引入了掛起狀態(tài)。引入掛起狀態(tài)的原因(1)負(fù)荷調(diào)節(jié)的需要由于不斷地創(chuàng)建進(jìn)程,系統(tǒng)資源(特別是主存資源)已經(jīng)不能滿足進(jìn)程運(yùn)行的要求,此時必須把某些進(jìn)程掛起(suspend),置于磁盤對換區(qū)中,釋放其占用的某些資源,起到平滑系統(tǒng)負(fù)載的目的;(2)終端用戶或父進(jìn)程的請求可能系統(tǒng)出現(xiàn)某種故障,需要暫時掛起一些進(jìn)程,以便在故障消除之后,解除掛起并恢復(fù)進(jìn)程的運(yùn)行;用戶在調(diào)試程序過程中,可以請求掛起進(jìn)程,以便進(jìn)行某種檢查或修改。兩個新狀態(tài):掛起就緒、掛起阻塞原來的就緒狀態(tài)成為活動就緒原來的阻塞狀態(tài)稱為活動阻塞具有掛起狀態(tài)的進(jìn)程狀態(tài)圖圖:具有掛起狀態(tài)的進(jìn)程狀態(tài)圖活動就緒運(yùn)行掛起就緒掛起阻塞活動阻塞掛起時間片完被調(diào)度激活掛起等待事件事件發(fā)生(喚醒)事件發(fā)生(喚醒)激活掛起6.3進(jìn)程的控制進(jìn)程管理的功能系統(tǒng)中的進(jìn)程不斷地產(chǎn)生和消亡,進(jìn)程生命周期的動態(tài)變化過程由進(jìn)程管理來控制。通過原語操作實(shí)現(xiàn):進(jìn)程創(chuàng)建、進(jìn)程終止、進(jìn)程阻塞、進(jìn)程喚醒、進(jìn)程掛起、進(jìn)程激活等。1.原語操作

所謂原語(Primitive)操作:是完成系統(tǒng)特定功能的不可分割的過程,它具有原子操作性,其程序段不允許被中斷(原語不能并發(fā)執(zhí)行)機(jī)器指令的延伸,往往是為完成某些特定的功能而編制的一段系統(tǒng)程序。系統(tǒng)對進(jìn)程的控制如果不采用原語,會造成狀態(tài)的不確定性,不能達(dá)到進(jìn)程控制的目的。原語操作也稱“原子操作”,即一個操作中的所有動作要么全做,要么全不做。6.3進(jìn)程的控制2.進(jìn)程創(chuàng)建(原語)

父進(jìn)程創(chuàng)建子進(jìn)程(提交批處理作業(yè)、操作系統(tǒng)創(chuàng)建服務(wù)進(jìn)程等)時要調(diào)用進(jìn)程創(chuàng)建原語。進(jìn)程創(chuàng)建原語的主要操作過程是:(1)申請一個空閑的PCB(ProcessControlBlock),指定進(jìn)程標(biāo)識號PID(進(jìn)程內(nèi)部名)(2)為新進(jìn)程分配資源(3)將新進(jìn)程的PCB初始化(各種參數(shù))(4)將新進(jìn)程加到就緒隊(duì)列中6.3進(jìn)程的控制2.進(jìn)程創(chuàng)建(原語)實(shí)現(xiàn)方法:傳統(tǒng)UNIX:父進(jìn)程使用fork()創(chuàng)建子進(jìn)程子進(jìn)程繼承父進(jìn)程的全部資源(相同的存儲映像、環(huán)境字符串、打開文件)Windows系統(tǒng):進(jìn)程使用Win32API的CreateProcess()函數(shù)創(chuàng)建進(jìn)程新老進(jìn)程之間不存在族系關(guān)系操作系統(tǒng)為新進(jìn)程創(chuàng)建新的地址空間6.3進(jìn)程的控制3.進(jìn)程終止(原語) 進(jìn)程完成特定的工作或出現(xiàn)嚴(yán)重錯誤之后,操作系統(tǒng)將回收其所占有的地址空間和PCB,即進(jìn)程終止。進(jìn)程終止的主要操作過程:(1)從系統(tǒng)的PCB表中找到指定進(jìn)程的PCB,若它正處于運(yùn)行態(tài),則立即終止該進(jìn)程的運(yùn)行;(2)回收該進(jìn)程所占用的全部資源;(3)若該進(jìn)程還有子孫進(jìn)程,則還要終止其所有子孫進(jìn)程,回收它們所占用的全部資源;(4)釋放被終止進(jìn)程的PCB,并從原隊(duì)列中摘走。6.3進(jìn)程的控制4.進(jìn)程阻塞(原語)

進(jìn)程阻塞:進(jìn)程讓出處理器,轉(zhuǎn)而等待一個事件(等待資源、等待I/O操作完成、等待某事件發(fā)生等)。進(jìn)程通常調(diào)用阻塞原語來阻塞自己當(dāng)?shù)却录瓿蓵r,會產(chǎn)生一個中斷,激活操作系統(tǒng),在系統(tǒng)的控制下將被阻塞的進(jìn)程喚醒進(jìn)程阻塞過程:(1)立即停止當(dāng)前進(jìn)程的執(zhí)行;(2)將現(xiàn)行進(jìn)程的CPU現(xiàn)場送到該進(jìn)程的PCB現(xiàn)場保護(hù)區(qū)保存起來;(3)把該進(jìn)程PCB中的現(xiàn)行狀態(tài)由“運(yùn)行”

改為“阻塞”,把它插入到具有相同事件的阻塞隊(duì)列中;(4)轉(zhuǎn)到進(jìn)程調(diào)度程序,重新從就緒隊(duì)列

溫馨提示

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

最新文檔

評論

0/150

提交評論