資源描述:
《計(jì)算機(jī)操作系統(tǒng)教程_第3章ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第3章進(jìn)程管理3.1進(jìn)程的概念3.2進(jìn)程的描述3.3進(jìn)程狀態(tài)及其轉(zhuǎn)換3.4進(jìn)程控制3.5進(jìn)程互斥3.6進(jìn)程同步3.7進(jìn)程通信3.8死鎖問題3.9線程本章小結(jié)習(xí)題3.1進(jìn)程的概念現(xiàn)代操作系統(tǒng)的重要特點(diǎn)是程序的并發(fā)執(zhí)行,及系統(tǒng)所擁有的資源被共享和系統(tǒng)的用戶隨機(jī)地使用。這三個(gè)特點(diǎn)是互相聯(lián)系和互相依賴的,它們是互相獨(dú)立的用戶如何使用有限的計(jì)算機(jī)系統(tǒng)資源的反映。通常,操作系統(tǒng)的重要任務(wù)之一是使用戶充分、有效地利用系統(tǒng)資源。采用一個(gè)什么樣的概念,來描述計(jì)算機(jī)程序的執(zhí)行過程和作為資源分配的基本單位才能充分反映操作系統(tǒng)
2、的執(zhí)行并發(fā)、資源共享及用戶隨機(jī)的特點(diǎn)呢?這個(gè)概念就是進(jìn)程。為了講清進(jìn)程的概念,以及引入進(jìn)程概念的必要性等,下面將從操作系統(tǒng)的特點(diǎn)講起。3.1.1程序的并發(fā)執(zhí)行程序程序是一個(gè)在時(shí)間上按嚴(yán)格次序前后相繼的操作序列,是一個(gè)靜態(tài)的概念。程序體現(xiàn)了編程人員要求計(jì)算機(jī)完成所要求功能時(shí)所應(yīng)該采取的順序步驟。2.程序的順序執(zhí)行其執(zhí)行過程可以描述為:RepeatIR←M[pc]pc←pc+1〈Execute(instructioninIR)〉UntilCPUhalt我們把一個(gè)具有獨(dú)立功能的程序獨(dú)占處理機(jī)直至最終結(jié)束的過程
3、稱為程序的順序執(zhí)行。程序的順序執(zhí)行具有如下特點(diǎn):(1)順序性程序順序執(zhí)行時(shí),其執(zhí)行過程可看作一系列嚴(yán)格按程序規(guī)定的狀態(tài)轉(zhuǎn)移過程。(2)封閉性程序執(zhí)行得到的最終結(jié)果由給定的初始條件決定,不受外界因素的影響。(3)可再現(xiàn)性只要輸入的初始條件相同,則無論何時(shí)重復(fù)執(zhí)行該程序都會(huì)得到相同的結(jié)果。3.多道程序系統(tǒng)中程序執(zhí)行環(huán)境的變化在許多情況下,需要計(jì)算機(jī)能夠同時(shí)處理多個(gè)具有獨(dú)立功能的程序。批處理系統(tǒng)、分時(shí)系統(tǒng)、實(shí)時(shí)系統(tǒng)以及網(wǎng)絡(luò)與分布式系統(tǒng)等都是這樣的系統(tǒng)。這樣的執(zhí)行環(huán)境具有下述三個(gè)特點(diǎn):(1)獨(dú)立性每道程序都是邏
4、輯上獨(dú)立的,它們之間不存在邏輯上的制約關(guān)系。(2)隨機(jī)性在多道程序環(huán)境下,特別是在多用戶環(huán)境下,程序和數(shù)據(jù)的輸入與執(zhí)行開始時(shí)間都是隨機(jī)的。(3)資源共享資源共享將導(dǎo)致對(duì)進(jìn)程執(zhí)行速度的制約。4.程序的并發(fā)執(zhí)行(1)什么是程序的并發(fā)執(zhí)行所謂并發(fā)執(zhí)行,是為了增強(qiáng)計(jì)算機(jī)系統(tǒng)的處理能力和提高資源利用率所采取的一種同時(shí)操作技術(shù)。程序的并發(fā)執(zhí)行可進(jìn)一步分為兩種:第一種是多道程序系統(tǒng)的程序執(zhí)行環(huán)境變化所引起的多道程序的并發(fā)執(zhí)行。由于資源的有限性,多道程序的并發(fā)執(zhí)行總是伴隨著資源的共享與競(jìng)爭(zhēng)。從而制約各道程序的執(zhí)行速度。
5、而無法作到在微觀上,也就是在指令級(jí)上的同時(shí)執(zhí)行。因此,盡管多道程序的并發(fā)執(zhí)行在宏觀上是同時(shí)進(jìn)行的,但在微觀上仍是順序執(zhí)行的;第二種并發(fā)執(zhí)行是在某道程序的幾個(gè)程序段中(例如幾個(gè)程序),包含著一部分可以同時(shí)執(zhí)行或順序顛倒執(zhí)行的代碼。程序段并發(fā)執(zhí)行:read(a);read(b);它們既可以同時(shí)執(zhí)行,也可顛倒次序執(zhí)行。對(duì)于這樣的語句,同時(shí)執(zhí)行不會(huì)改變順序程序所具有的邏輯性質(zhì)。因此,可以采用并發(fā)執(zhí)行來充分利用系統(tǒng)資源以提高計(jì)算機(jī)的處理能力。程序的并發(fā)執(zhí)行可總結(jié)為:一組在邏輯上互相獨(dú)立的程序或程序段在執(zhí)行過程中,
6、其執(zhí)行時(shí)間在客觀上互相重疊,即一個(gè)程序段的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開始的這種執(zhí)行方式。程序的并發(fā)執(zhí)行不同于程序的并行執(zhí)行。程序的并行執(zhí)行是指一組程序按獨(dú)立的、異步的速度執(zhí)行。并發(fā)執(zhí)行不等于時(shí)間上的重疊。可以將并發(fā)執(zhí)行過程描述為:程序的并發(fā)執(zhí)行:一組在邏輯上互相獨(dú)立的程序或程序段在執(zhí)行過程中,其執(zhí)行時(shí)間在客觀上互相重疊,即一個(gè)程序段的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開始的這種執(zhí)行方式。程序的并發(fā)執(zhí)行不同于程序的并行執(zhí)行。程序的并行執(zhí)行是指一組程序按獨(dú)立的、異步的速度執(zhí)行。并發(fā)執(zhí)行不等于時(shí)間
7、上的重疊??梢詫⒉l(fā)執(zhí)行過程描述為:S0CobeginP1;P2;...PnCoendSn這里,S0,Sn分別表示并發(fā)程序段P1,P2,…,Pn開始執(zhí)行前和并發(fā)執(zhí)行結(jié)束后的語句。P1,P2,…,Pn也可以由同一程序段中的不同語句組成。1966年Bernstein提出了兩相鄰語句S1,S2可以并發(fā)執(zhí)行的條件:將程序中任一語句Si劃分為兩個(gè)變量的集合R(Si)和W(Si)。其中R(Si)={a1a2…am},aj(j=1,…,m)是語句Si在執(zhí)行期間必須對(duì)其進(jìn)行讀寫的變量;W(Si)={b1b2…bn},b
8、j(j=1,…,n)是語句Si在執(zhí)行期間必須對(duì)其進(jìn)行修改、訪問的變量;如果對(duì)于語句S1和S2,有①R(S1)∩W(S2)={∮},②W(S1)∩R(S2)={∮},③W(S1)∩W(S2)={∮}同時(shí)成立,則語句S1和S2是可以并發(fā)執(zhí)行的。(2)程序的并發(fā)執(zhí)行所帶來的影響程序的并發(fā)執(zhí)行充分地利用了系統(tǒng)資源,從而提高了系統(tǒng)的處理能力,這是并發(fā)執(zhí)行好的一方面。但是,正如前面所提到的那樣,由于系統(tǒng)資源有限,程序的并發(fā)執(zhí)行必然導(dǎo)致資源共享和資源競(jìng)爭(zhēng)