《三章行程process.ppt》由会员分享,可在线阅读,更多相关《三章行程process.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3.1三章行程process Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望3.2行程行程(process)概念概念n行程與程式主要的不同點:F程式是被放在外部的儲存裝置如磁碟上,而行程則被放在記憶體中。F程式在儲存裝置中是靜態的,而行程在記憶體中是動態的,它會隨著一些事件的發生而產生相對的改變。n行程指的是正在執行的程式。行程不只是程式碼(有時也稱為本文區,text section)而已。它還包含代表目前運作的程式計數器(Program counter)數值和處
2、理器的暫存器內容。Operating System Concepts3.3行程觀念行程觀念n一個作業系統執行各式程式:F批次系統(batch systems)jobsF分時系統(Time-shared systems)使用者程式或or tasksn書中的job及行程(process)幾乎是互用.n行程 執行中的一個程式;行程執行必須是順序執行.n一個行程包含了:F程式計數器(program counter)F堆疊(stack)F資料區(data section)Operating System Concepts3.4行程狀態行程狀態F行程在執行時會改變其狀態。行程的狀態(state)部份是指該
3、行程目前的動作,每一個行程可能會處於以下數種狀態之一:4新產生(new):該行程正在產生中。4執行(running):指令正在執行。4等待(waiting):等待某件事件的發生(譬如輸出入完成或接收到一個信號)。4就緒(ready):該行程正等待指定一個處理器。4結束(terminated):該行程完成執行。Operating System Concepts3.5Process Control Block行程控制區塊行程控制區塊(PCB)n每個行程所擁有的相關資訊.n行程狀態(Process state)n程式計數器(Program counter)nCPU暫存器nCPU排程資訊n記憶體管理資
4、訊n執行記錄資訊(Accounting information)nI/O狀態資訊Operating System Concepts3.6Process Control Block(PCB)Operating System Concepts3.7行程控制區塊行程控制區塊n行程控制區塊(PCB),儲存行程在執行時相關的資訊。nPCB 中通常包括了F行程狀態FCPU 暫存器F排程資訊FI/O 狀態n當行程進行切換時,需要將目前行程的相關資訊記錄在該行程的 PCB 中,並將另一個行程的 PCB 載入至系統中,這個動作稱為內容切換(context switch)。Operating System Con
5、cepts3.8CPU 在行程與行程間的切換在行程與行程間的切換Operating System Concepts3.9行程排班行程排班n多元程式規劃系統的主要目的,是隨時保有一個行程在執行,藉以提高CPU的使用率。分時系統的目的是將CPU在不同行程之間不斷地轉換,以便訣使用者可以在自己的行程執行時與它交談。n為了達到這個目的,行程排班程式(process scheduler)為CPU上執行程式選擇一個可用的行程(可能由一組可用行程)。n在單一處理器系統裏,不可能有一個以上的行程同時執行。如果有多個行程,其它的都必須在旁邊等待一直到CPU有空,才可能重新排列。Operating System
6、Concepts3.10Ready Queue 及各類及各類I/O Device QueuesOperating System Concepts3.11行程排班的示意圖行程排班的示意圖Operating System Concepts3.12排班者排班者(Scheduler)n長程排班者(Long-term scheduler or job scheduler)F選擇哪一個行程應該被置入ready queue.n短程排班者(Short-term scheduler or CPU scheduler)F選擇哪一個行程應該交給CPU執行.n一個新的行程最初是置於就緒佇列中。它就一直在就緒佇列中等待
7、,直到選來執行或被分派(dispatched)。一旦這個行程配置CPU並且進行執行,則會有若干事件之一可能發生:F行程可發出1/0要求,然後置於一個1/0佇列中。F行程可產生出一個新的子行程並等待後者的結束。F行程可強行地移離CPU(如用中斷的結果一樣),然後放回就緒佇列中。Operating System Concepts中程排班的加入一個行程在它整個生命期裏將在各個不同的排班佇列間遷移。作業系統必須按排班次序從這些佇列選取行程。行程的選取將由適當的排班程式(scheduler)來執行。3.14排班者排班者(Cont.)n短程排班者會常常被呼叫(milliseconds)(must be f
8、ast).n長程排班者不常被呼叫(seconds,minutes)(may be slow).n長程排班者控制多程式化的程度(the degree of multiprogramming).n行程可以以下擇一描述:FI/O-bound process 行程中花去的I/O時間比計算時間來得多,許多短的CPU bursts.FCPU-bound process 行程中花去的計算的時間比I/O時間來得多;一些常非常長的CPU bursts.Operating System Concepts3.15內容切換內容切換Context Switchn當CPU切換到另一個行程,系統必須儲存舊行程的狀態,然後將
9、新行程的儲存狀態載入.nContext-switch時間是耗時;當作切換時系統無法做有用的工作.n耗去的時間要看硬體的支援程度.nContext-switch是一種中斷,它的處理方式與發生中斷後處理方式相同。n執行緒降低內容切換所花的時間。Operating System Concepts3.16Context Switchn內容切換之處理方式如下:F作業系統取得控制權,並將行程狀態儲存至行程控制區塊內。F執行中央處理器排程工作,並至ready佇列內選取一個行程F將被選取之行程之行程控制區塊載入系統內。F執行此被選取之行程。nWhen an interrupt occurs,the OS sa
10、ve the status of interrupted process,routine control to appropriate interrupt handler,then loading the saved state for the new process to execute.Operating System Concepts3.17行程的產生行程的產生n父行程產生了子行程,而且接續產生的其他行程,形成一個行程的樹狀結構.n資源分享(Resource sharing)F父子行程分享所有資源.F子行程分享父行程的部分資源.F父子行程不分享行程.n執行(Execution)F父子行程
11、同時執行.F父行程要等到子行程結束.Operating System Concepts3.18行程的產生行程的產生(Cont.)在一個行程的執行期間,它可以利用產生行程的系統呼叫來產生數個新的行程。原先的行程就叫做父行程(Parent process),而新的行程則叫做子行程(children process)。每一個新產生的行程可以再產生其它的行程,這可以形成一幅行程樹(tree of processes)。Operating System Concepts3.19UNIX System上的行程樹上的行程樹Operating System Concepts3.20行程結束行程結束n行程執行最
12、後一條程式,而且讓作業系統來決定(exit).F從子行程將資料輸出到父行程(經由wait).F由作業系統來回收行程的資源.n父行程可以結束子行程的執行(abort).F子行程已超過可使用的配置資源.F交給子行程的工作已不再需要.F父行程正要離開.4當父行程結束,作業系統不允許子行程繼續.4串連結束(Cascading termination).Operating System Concepts3.21行程間的合作關係行程間的合作關係Cooperating Processesn獨立行程不能影響其他行程或其他行程被影響.n互相合作的行程可以彼此互相影響.n行程間合作的優點F資訊分享(Informa
13、tion sharing):因為數個使用者可能對相同的一項資訊(例如,公用檔案)有興 趣,因此我們必須提供一個環境允許使用者能同時使用這些資源。F加速運算(Computation speed-up):如果我們希望某一特定工作執行快一點,則可以分成一些子工作,每一個子工作都可以和其它子工作平行地執行。模組化:我們可能希望以模組的方式來建立系統,把系統功能分配到數個行 程。F模組化(Modularity)F便利性(Convenience):即使是單一使用者也可能同時執行數項工作。Operating System Concepts3.22Producer-Consumer 問題問題n行程間合作的應用
14、範例就是負責生產的行程所產生的資訊會被負責消耗資訊的行程所使用.Funbounded-buffer假設緩衝區沒有大小的限制.Fbounded-buffer假設緩衝區大小是有限制的.Operating System Concepts3.23緩衝區緩衝區n當生產者和消費者同時執行時,需要有一個緩衝區給生產者存放產品,以提供給消費者使用。n緩衝區可分為:F無限緩衝區F有限緩衝區n緩衝區由作業系統提供的 IPC 機制來產生,或是直接經由程式設計師在程式中使用共享記憶體的機制來進行。Operating System Concepts3.24Bounded-Buffer Shared-Memory Sol
15、utionnShared data#define BUFFER_SIZE 10typedef struct.item;item bufferBUFFER_SIZE;int in=0;int out=0;nSolution is correct,but can only use BUFFER_SIZE-1 elementsOperating System Concepts3.25Bounded-Buffer Producer Process item nextProduced;while(1)while(in+1)%BUFFER_SIZE)=out);/*do nothing*/bufferin
16、=nextProduced;in=(in+1)%BUFFER_SIZE;Operating System Concepts3.26Bounded-Buffer Consumer Processitem nextConsumed;while(1)while(in=out);/*do nothing*/nextConsumed=bufferout;out=(out+1)%BUFFER_SIZE;Operating System Concepts3.27行程間的通訊行程間的通訊(Interprocess Communication,IPC)n眾多行程間的溝通與一些動作同步所需的機制.n訊息系統F行程
17、間的彼此溝通不需訴諸共享的變數(shared variables).nIPC facility提供兩種操作:Fsend(message)訊息的大小可以是固定或變動 Freceive(message)n假如行程P與行程Q 希望能彼此溝通,他們需要:F建立兩行程間的溝通連線(communication link)F經由送收機制來交換訊息n溝通連線的製作F實體的(e.g.,shared memory,hardware bus)F邏輯的(e.g.,logical properties)Operating System Concepts3.28製作上的一些問題製作上的一些問題n連線如何建立?n是否可以建
18、立超過兩個行程以上的連線?n每對溝通中的行程可以建立多少條連線?n一個連線的容量是多少?一個連線可以包容的訊息大小是固定或變動的?n一個連線是雙向或單向的?Operating System Concepts3.29行程間直接的溝通行程間直接的溝通Direct Communicationn行程間必須有明確的呼叫方式:Fsend(P,message)送一個訊息message給行程PFreceive(Q,message)從行程Q收到一個訊息messagen溝通連線的屬性F連線是自動建立的.F一個連線是只屬於一對溝通中的行程.F每對行程只存在著一個連線.F連線可以是單向的,但也可以是雙向的.Opera
19、ting System Concepts3.30直接溝通直接溝通n每個行程要與其他行程進行溝通時,必須要明確地指出訊息傳送的目的地或接收訊息的來源。n可分為對稱與非對稱,而 send()和 receive()分別被定義成F對稱 4send(A,message)/*傳送訊息給 A 行程*/4receive(B,message)/*從 B 行程接收訊息*/F非對稱 4send(A,message)/*傳送訊息給 A 行程*/4receive(id,message)/*從任何一個行程接收一個訊息。其中 id 這個變數代表正在與接 收端進行溝通的行程*/Operating System Concept
20、s3.31直接溝通(續)直接溝通(續)n使用 IPC 機制程式較容易撰寫。do./*生產者產生新的資料 p_product*/send(消費者,p_product);while(FALSE);do receive(生產者,c_product);/*消費者消耗c_product*/while(FALSE);生產者行程消費者行程Operating System Concepts3.32行程間間接的溝通行程間間接的溝通n訊息是有方向性的而且是從信箱(mailboxes)收到(也看成是ports).F每個信箱有唯一的id.F只有共享信箱的行程才可以溝通.n溝通連線的特質F只有共享共同信箱的行程才可以建
21、立連線F所以可以有很多行程共用一個連線.F每一對行程可以共享幾條溝通連線.F連線可以是單向,或是雙向的.Operating System Concepts3.33行程間間接的溝通行程間間接的溝通n相關操作OperationsF產生一個新的信箱F經由這個信箱送收訊息F刪除一個信箱n相關指令的定義:Fsend(A,message)送一個訊息 message給信箱AFreceive(A,message)從信箱A收一個訊息messageOperating System Concepts3.34間接溝通間接溝通n信箱的擁有者可以為F行程F作業系統n若信箱的擁有者為作業系統,則作業系統必須提供功能讓行程去
22、:F建立一個新的信箱 F透過信箱去傳送和接收訊息F銷毀一個信箱Operating System Concepts3.35行程間間接的溝通行程間間接的溝通n信箱分享的問題FP1,P2,and P3分享信箱 A.FP1,送訊息;P2 和 P3 同時下收的指令.F誰會收到訊息?n答案決定在所選擇的機制F最多只有兩個行程可以建立連線.F一次只能有一個行程可以執行一個接收指令.F允許系統任意決定訊息接收者,送出訊息者可以被通知誰接收了訊息.Operating System Concepts3.36同步同步Synchronization訊息傳遞可以是等待(blocking)或非等待(nonblocking
23、),也稱為同步(synchronous)和非同步(asynchronous)。F等待傳送(blocking send):傳送行程等待著,直到接收行程或信箱接收訊息。F非等待傳送(nonblocking send):傳送行程送出訊息及重新操作。F等待接收(blocking receive):接收者等待,直到有效訊息出現。F非等待接收(nonblocking receive):接收者收到有效訊息或無效資料。Operating System Concepts3.37n在分散式系統環境下,於某部電腦內要求(Request)另一部電腦提供服務,並將服務的結果傳回,這就是一種主從式模式(Client/Se
24、rver Model)。n要求服務的電腦稱為客戶端(Client)。n提供服務的電腦稱為伺服端(Server)。主從式模式主從式模式(Client/Server Model)Operating System Concepts3.38Client-Server CommunicationnSocketsnRemote Procedure CallsnRemote Method Invocation(Java)Operating System Concepts3.39插座插座SocketsF插座(Socket)定義成通信的終端。一組行程使用一對插座(雙方各一個)在網路上通信。一個IP位址和一個埠號
25、碼(Port number)所組成。Operating System Concepts3.40遠端程序呼叫遠端程序呼叫Remote Procedure Callsn遠端呼叫(RPC)是行程間的程序呼叫抽象觀念移植到網路系統上.nStubs 為伺服器端(server)的真正程序執行時在客戶端(client)所建立的代理程式.n客戶端的stub程式可以找到伺服器而且配置保護(marshall)對應的參數.n伺服器端的stub程式收到這個訊息後,拆解被保護的參數,然後執行在伺服器端對應的程序.Operating System Concepts3.41n遠端程序呼叫(Remote Procedure
26、Call)簡稱RPC,有時又叫遠端行程通訊(Remote Process Communication),它與行程內部通訊非常相似,只不過它是指分別在不同電腦內的二個行程彼此進行通訊並達成同步。n由於網路的發達,電腦與電腦的溝通情形愈加普遍,因此有時把遠端程序呼叫、遠端行程通訊、及行程內部通訊全都以行程內部通訊稱呼。遠端程序呼叫遠端程序呼叫Operating System Concepts3.42Execution of RPCOperating System Concepts3.43Remote Method InvocationnRemote Method Invocation(RMI)is a Java mechanism similar to RPCs.nRMI allows a Java program on one machine to invoke a method on a remote object.Operating System Concepts3.44Marshalling ParametersOperating System Concepts