*處理機管理-2

來源:互聯網
上載者:User

2.2處理機管理

處理機管理也稱為進程管理,其核心是如何合理地分配處理機的時間,提高系統的效率。

1. 程式執行時的特徵

這是單道程式設計技術

(1) 順序性。程式和各程式段嚴格按照規定的順序執行

(2) 封閉性。程式運行時系統內的資源只受該程式控制而改變

(3) 可再現性:只要程式執行環境和初始條件相同,程式多冷執行的結果相同

採用多道程式設計技術

程式並發時執行時的主要特徵如下 :

(1) 失去了程式的封閉性

(2) 程式和機器執行程式的活動不再一一對應

(3) 並發程式間具有相互制約性

2. 進程的組成:

進程是程式的一次執行,通常由程式、資料和進程式控制制塊(PCB)組成

進程式控制制塊是進程存在的唯一標誌


<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+MS4gICAgICC9+LPMtcTXtMysvLDG5Ne0zKy85LXEx9C7uzwvcD4KPHA+MaOpICDI/cysxKPQzaOoz9+zzLXEu/mxvte0zKyjqaO61MvQ0KGivs3Q97rN1+jI+zwvcD4KPGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140429/2014042909095158.jpg" alt="\">

說明:進程5態模型是3態模型的升級,最佳化

建立態:進程剛剛被建立且沒有被提交的狀態,並等待系統完成建立進程的所有必要作息,

有了建立態,作業系統就可以根據系統的效能和記憶體容量的限制延遲建立態進程的提交

2.2..2進程式控制制

主要功能:建立一個新的新進程,撤銷一個已經運行完的進程,改變進程的狀態,實現進程音的通訊,進程式控制制是由作業系統核心(Kemel)中的原碼實現的

原語(Primitive)是指由若干條機器指令組成的、用於完成特定功能的程式段。

特點:是一個事務,要不做,要麼都做

主要有:進程式控制制原語、進程撤銷原語、進程扶起原語、進程啟用原語、進程阻塞原語等

2.2.3進程通訊

進程通訊是指各個進程交換資訊的過程

1. 同步與互斥

1) 進程間的同步

例:進程A完成了向緩衝區送資料的操作,進程B從緩衝區取資料加工,當進程B取資料加工時,必須是進程A完成了向緩衝區送資料的操作,否則進程B必須停下來等待進程A的操作結束。

進程間的同步是指進程間完成一項任務時直接發生相互作用的關係

2) 進程間的互斥

在多道程式系統內容中,各進程可以共用各類資源 ,但有些資源 一次只能 供一個進程 使用,稱為臨界資源,如印表機、共用變數。

進程間的互斥是指系統中各個進程互斥使用臨界資源

3) 臨界區管理的原則

有空即進

無空則等

有限等待

讓權等待

2. *訊號量機制

訊號量機制是一種有效進程同步互斥工具。目前信用量機制有了很多的發展,主要有整形訊號量、記錄型訊號量和訊號量集機制。

1) 整形訊號量與PV操作

訊號量是一個整形變數,分為如下兩類

公用訊號量。實現進程間的互斥,初值為1或資源的數目

私用訊號量。實現進程間的同步。初值為0或某個正整數

訊號量的物理意義:若S>=0;表示某資源的可用數

若S<0,則其絕對值表示阻塞隊列中等待該資源的進程數

PV操作是實現進程同步與互斥的常用方法,P操作和v操作是低級通訊原語。在執行期間不可分割。其中,P動作表示申請一個資源,V動作表示釋放一個資源。

P操作的定義:S=S-1,若S>=0; 則執行P操作的進程繼續執行;

若S<0;則置該進程為阻塞狀態(因為無可用資源)並為其插入阻塞隊列中。

P操作可用如下過程表示 ,其中Semaphore表示所定義的變數是訊號量

ProcedureP(Var S:Semaphore);

Begin

S:=S-1;

If S<0then W(S){

執行P操作的進程插入等待隊列

}

End;

V操作的定義:S:=S+1; 若S>0; 則執行V操作的進程繼續執行

若S<=0;則從阻塞狀態喚醒一個進程,並將其插入就緒隊列,

然後執行V操作的進程繼續。

V操作可用 如下過程表示

ProcedureV(Var S:Semaphore):

Begin ;

S=S+1;

If S<=0then R(S){

從阻塞隊列中喚醒一個進程

}

End;

2)利用PV操作實現進程的互斥

令訊號量mutex的初值為1;進入臨界區執行P操作,退出臨界區時執行V操作。這

樣,進入臨界區的代碼如下

P(mutex)

臨界區

V(mutex)

例兩個並發執行的程式完成交通流量的統計,其中 觀察者 P1識別 通過的車輛數,

報告都 P2定時將觀察都的計數值清 0;

用PV操作實現的交通流量統計程式如下:

P1

L1:if 有車通過 then

Begin

P(mutex)

Count ++;

V(coutex)

End

Goto L1;

P2

L2:begin

P(mutex);

Print count;

Count:=0;

V(mutex);

End

GOTO L2;

3)利用PV操作實現進程的同步

進程的同步是由於進程間的合作而引起的相互制約問題,實現進程同步的一種方法是將

一個訊號量與訊息相聯絡,當訊號量的值為0時表示希望的訊息未產生,否則表示希望

的訊息已經來到,假定用訊號量S表示某條訊息,進程可能通過調用P操作測試訊息是

否到達,調用V操作通知訊息憶準備好,典型的應用是單緩衝區的生產者和消費者同

步問題!

例:生產者進程P1不斷地生產產品送入緩衝區,消費者進程P2不斷地從緩衝區中取

出產品消費。為了實現進程P1與P2之間的同步問題,需要設定一個訊號量S1,表示緩

沖區是否空閑,初值為1;表示可以將產品送入緩衝區,設定另一個訊號量S2,表示緩

沖區有無產品,初值為0;


假設有一個生產者和一個消費者,緩衝區可存放 n件產品,生產者不斷地生產產品,

消費者不斷地消費產品,可以設定三個訊號量

1. 進階通訊

進程通訊的方式分為低級方式和進階方式,

Pv操作屬於低級通訊方式,若用PV操作實現進程間的通訊,則存在如下問題:

(1)。編程難度大

(2)效率低

所以引入進階通訊方式

主要分為共用儲存模式,訊息傳遞模式,管道通訊

(1)。共用儲存模式:相互連信的進程共用某些資料結構,實現進程之間的通訊

(2)。訊息傳遞模式:進程間的資料交換以訊息為單位,程式員直接利用系統提供的一組通訊命令(原語),來實現通訊

(2) 管道通訊。管道是用於串連一個讀進程和一個寫進程。

4.。直接和間接通訊

直接通訊是將訊息直接發送給指定進程。因此,Send 和Receive原語中應指出進程名字。

其調用格式如下:

Send(Who, Meessage) 發送訊息給指定進程或一組進程

Receive(Who ,Message) 從約定進程接收訊息

間接通訊是以信箱為媒體來實現通訊的,接收信件的進程只需要設立一個信箱,若干個進程都可以向同一個進程發送信件,

Send (N,M)將信件M發送到信箱N中

Receive(N,X)從信箱N中取一封信存入X

2.2.4進程調度

進程調度方式是指當有更高優先順序的進程到來時如何分配CPU。

分為:可剝奪和不可剝奪兩種。

1. 三級調度

在某些作業系統中,一個作業從提交到完成需要經曆 高、中、低 三級調度

(1) 進階調度,又稱為長調度、作業調度、接納調度,它決定處於輸入池中的

哪個後備作業可以調入主系統做好啟動並執行準備,成為一個或一組就緒進程。

系統中一個作業只需經過一次進階調度。

(2) 中級調度。又稱為 中程調度 或 對換調度,它決定處於交換區中的就緒進程哪個可以調入記憶體,以便直接參与對cpu的競爭,在記憶體資源緊張時,為了將進程調入記憶體,必須將記憶體中處於阻塞狀態的進程調出至交換區,以便為調入進程騰出空間,這相當於使處於記憶體的進程和處於盤交換區的進程交換了位置。

(3) 低級調度,又稱 短程調度 或 進程 調度 ,它決定處於記憶體中就緒進程哪個可以佔用CPU,是作業系統 中最活躍、最重要的高度程式,對系統的影響很大。

2. 常用的進程高度演算法有先來先服務、時間片輪轉、優先數調度和多級扤調度演算法

1),先來先服務(first come first served,FCFS)

FCFS有利於長作業,有利用CPU繁忙的作業,而不利於I/O繁忙的作業。

1) 時間片輪轉

時間片輪轉演算法主要用於微觀高度,其設計目標是提高資源使用率。通過時間片輪轉

,提高進程並發性和回應時間特性。方法一般有如下兩眾喎?http://www.bkjia.com/kf/yidong/wp/" target="_blank" class="keylink">WPC9wPgo8cD6jqDGjqSAgICAgILnMtqjKsbzkxqyhozwvcD4KPHA+o6gyo6kgICAgICC/ybHkyrG85MasPC9wPgo8cD4yo6kgINPFz8i8trX3tsg8L3A+CjxwPtPFz8i8trX3tsjL47eoysfIw8O/0ru49r34s8y2vNO109DSu7j208XPyMr9o6zK/SYjMjA1NDA7tPO1xLHtyr7Txc/IvLa436Osz7XNs9TaPC9wPgo8cD6197bIyrHX3NGh1PHTxc/IvLa437XE1bzTw0NQVaOst9bOqr6yzKzTxc/IvLa6zbavzKzTxc/IvLY8L3A+CjxwPqOoMaOpoaO+ssys08XPyLy2o7q9+LPMtcTTxc/IvLbU2rS0vajKsci3tqijrNaxtb29+LPM1tXWuba8sru74bjEseShozwvcD4KPHA+IKOoMqOpoaO2r8ys08XPyLy2o7rU2rS0vajSu7j2vfizzMqxuLPT6NK7uPbTxc/IvLajrNTavfizzNTL0NC5/bPM1tC7ub/J0tS4xLHkoaM8L3A+CjxwPjSjqbbgvLa3tMChtfe2yDwvcD4KPHA+tuC8trrzwKG208HQy+O3qMrHyrG85MaswtbXqrrN08XPyLy2y+O3qLXE19u6z9Prt6LVuaOsxuTTxbXjysfV1bnLtsy9+LPM0tTM4bjfz7XNs83MzcLBv6Osy/W2zMHLxr2++dbc16rKsbzko6zV1bnLSS9P0M29+LPM0tS78bXDvc+6w7XESS9PyeixuMD708PCyrrNy/W2zM/s06bKsbzko6yyu7HYucC8xr34s8y1xNa00NDKsbzko6y2r8ystfe92tPFz8i8tqGjPC9wPgo8cD4yLjIuNcvAy/g8L3A+CjxwPiDU2rzGy+O7+s+1zbPW0NPQuPfW1ruls+LXytS0o6jI57TFtPi7+qGitPLTobv6us275s280se1yKOpus3I7bz+18rUtLXIo6zI9MG9uPa9+LPMu6XP4NKqx/O21Le90tHVvNPDtcTXytS0o6y78s2syrG9+Mjrwdm958f41PK74bP2z9bOyszio6zL+c69y8DL+KOsysfWuMG9uPbS1MnPtcS9+LPMu6XP4NKqx/PKudPDttS3vdLRvq3VvNPQtcTXytS0tvi1vNbCzt63qLbP0PjUy9DQtcTP1s/zoaM8L3A+CjxwPrOjvPvLwMv4o7o8L3A+CjxwPqOoMaOpICAgICAgIAq9+LPMzca9+Muz0PKyu7Wx0v3G8MvAy/g8L3A+CjxwPqOoMqOpICAgICAgIArNrMDg18rUtLfWxeSyu7WxPC9wPgo8cD6jqDOjqSAgICAgICAKUFay2df3yrnTw7K7tbE8L3A+CjxwPjMuICAgICAgILL6yfrLwMv4tcTUrdLyvLDM9bz+PC9wPgo8cD6/ydLUv7Sz9qOssvrJ+svAy/i1xNSt0vLKx7661fnXytS0u/K3x7eotcTA77PMzca9+Muz0PKjrLWxz7XNs9bQ09C24Lj2vfizzLmyz+21xNfK1LSyu9fj0tTNrMqxwvrX48v8w8e1xNDox/PKsaOs0v3G8NXi0Km9+LPMttTXytS0tcS+utX5tbzWwsvAy/ihozwvcD4KPHA+svrJ+svAy/i1xDS49rHY0qrM9bz+zqogu6Wz4sz1vP6hosfrx/Oxo7PWzPW8/qGisru/ybD+tuHM9bz+us27t8K3zPW8/jwvcD4KPHA+o6gxo6kgICAgICC7pbPizPW8/qGjvfizzLbUxuTL+dKqx/O1xNfK1LS9+NDQxcXL+9DUv9jWxqOsvLTSu7TO1rvUytDt0ru49r34s8zKudPDPC9wPgo8cD6jqDKjqSAgICAgIMfrx/Oxo7PWzPW8/qGjwePQx7XEx+vH89fK1LSjrLy00tG78bXDsr+31tfK1LTT1sfrx/PXytS0sbvX6Mj7oaM8L3A+CjxwPqOoM6OpICAgICAgsru/ybD+tuHM9bz+oaO9+LPM0tG78bXDtcTXytS01NrOtMq508PN6taux7Cyu8Tcsbuw/rbho6zWu8Tc1NrKudPDzeqzycqx19S8usrNt8WhozwvcD4KPHA+o6g0o6kgICAgICC7t8K3zPW8/qGjtbG3osn6y8DL+Mqxo6zU2r34s8zXytS009DP8s281tCx2Mi7ubmzybu3wrejrMbk1tDDv7j2vfizzNW809DBy8/C0ru49r34s8zJ6sfrtcTSu7j2u/K24Lj218rUtKOsyOfNvDItOMv5yr6ho7e9v/Kx7cq+18rUtKOs1LLIprHtyr69+LPMo6w8L3A+CjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140429/2014042909095160.jpg" alt="n?峨鷌楗╧y"http://www.bkjia.com/os/" target="_blank" class="keylink">系統必須為之付出較大的時間開銷,因此在系統中設定的進程數目不多、進程切換的頻率不宜過高,這就限制了並發程度的提高。引入線程後,將傳統進程的兩個基本屬性分開,線程作為調度和分配資源的基本單位,進程作為獨立分配資源的單位。使用者可以通過建立線程來完成任務,以減少程式並發執行時付出的時空開銷。

特點說明:

線程是進程中的一個實體,是被系統獨立分配和調度的基本單位,線程基本上不擁有資源,只擁有一點運行中必不可少的資源(如程式計數器、一組寄存器和棧)。它可與同屬一個進程的其他線程共用進程擁有的全部資源。由於線程具有許多傳統進程所具有的特性,故稱為輕型進程,傳統進程稱為重型進程。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.