三章行程process

上传人:鲁** 文档编号:569934655 上传时间:2024-07-31 格式:PPT 页数:44 大小:574KB
返回 下载 相关 举报
三章行程process_第1页
第1页 / 共44页
三章行程process_第2页
第2页 / 共44页
三章行程process_第3页
第3页 / 共44页
三章行程process_第4页
第4页 / 共44页
三章行程process_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《三章行程process》由会员分享,可在线阅读,更多相关《三章行程process(44页珍藏版)》请在金锄头文库上搜索。

1、3.1第三章 行程(process)n行程觀念(Process Concept)n行程排班(Process Scheduling)n行程上的操作n行程間的合作(Cooperating Processes)n行程間的通訊(Interprocess Communication)nClient-Server系統的通訊见倘从禾人琵货钎切酷国勋粘厢吉榔丘寅冰视臣亿优茄礁莱矾温促闽妥堆三章行程process三章行程processOperating System Concepts3.2行程(process)概念n行程與程式主要的不同點:F程式是被放在外部的儲存裝置如磁碟上,而行程則被放在記憶體中。 F程式在

2、儲存裝置中是靜態的,而行程在記憶體中是動態的,它會隨著一些事件的發生而產生相對的改變。n行程指的是正在執行的程式。行程不只是程式碼 (有時也稱為本文區,text section)而已。它還包含代表目前運作的程式計數器 (Program counter)數值和處理器的暫存器內容。帕肥鉴稗庸先馋喜逃锯琴莆烽蜜唉董诚幽嘎希剖卿净慎劈丰豪柄箱涸僚曙三章行程process三章行程processOperating System Concepts3.3行程觀念n一個作業系統執行各式程式:F批次系統(batch systems) jobsF分時系統(Time-shared systems) 使用者程式或or

3、tasksn書中的job及行程(process)幾乎是互用.n行程 執行中的一個程式; 行程執行必須是順序執行.n一個行程包含了:F程式計數器(program counter)F堆疊(stack)F資料區(data section)杯渴避稗疡区扯刚群睛舜干逞阉络涎道畦桩免归嚼骑呼亏煌供扬喳拘姓珐三章行程process三章行程processOperating System Concepts3.4行程狀態F行程在執行時會改變其狀態。行程的狀態 (state)部份是指該行程目前的動作,每一個行程可能會處於以下數種狀態之一:4新產生 (new):該行程正在產生中。4執行 (running):指令正在執

4、行。4等待(waiting):等待某件事件的發生(譬如輸出入完成或接收到一個信號)。4就緒 (ready):該行程正等待指定一個處理器。4結束 (terminated):該行程完成執行。波翔仕铺限婿音腋胡苍戮互缅绚宵逾歉何毕给攫俗圾郑倡柜幂社墟壶纫薯三章行程process三章行程processOperating System Concepts3.5Process Control Block行程控制區塊(PCB)n每個行程所擁有的相關資訊.n行程狀態(Process state)n程式計數器(Program counter)nCPU暫存器nCPU排程資訊n記憶體管理資訊n執行記錄資訊(Accou

5、nting information)nI/O狀態資訊维节饶搁铜汾摄沃雾锗亭根妊思够斤厄携让冷酝德陇椽肘蛾驱冲耘砖琐攀三章行程process三章行程processOperating System Concepts3.6Process Control Block (PCB)瞳粤禾栖背澈曳吱泥威慷屁泽朵忧道抓涛梯冻速妄乖剃粹菲氟狙棚聊活蛙三章行程process三章行程processOperating System Concepts3.7行程控制區塊n行程控制區塊(PCB),儲存行程在執行時相關的資訊。nPCB 中通常包括了F行程狀態FCPU 暫存器F排程資訊FI/O 狀態n當行程進行切換時,需要將目

6、前行程的相關資訊記錄在該行程的 PCB 中,並將另一個行程的 PCB 載入至系統中,這個動作稱為內容切換(context switch)。摧街鼻卓屠淡梆歹醋常彝溢馒窍掣潜乡蠕吱蝇嘴狰个争让榴价周县椽形何三章行程process三章行程processOperating System Concepts3.8CPU 在行程與行程間的切換茬混南倔脑缄米衙放瘸规担舜镇戈择耀韵乎痕冀榆芍包抓扶冈揽枪淳菩叔三章行程process三章行程processOperating System Concepts3.9行程排班n多元程式規劃系統的主要目的,是隨時保有一個行程在執行,藉以提高CPU的使用率。分時系統的目的是將

7、CPU在不同行程之間不斷地轉換,以便訣使用者可以在自己的行程執行時與它交談。n為了達到這個目的,行程排班程式(process scheduler)為CPU上執行程式選擇一個可用的行程(可能由一組可用行程)。n在單一處理器系統裏,不可能有一個以上的行程同時執行。如果有多個行程,其它的都必須在旁邊等待一直到CPU有空,才可能重新排列。下灵于制赖瞎择米镭家丛共烯勾究饼蔗篇橇嘎烷棵割笑匀双恰礁锤阻捐报三章行程process三章行程processOperating System Concepts3.10Ready Queue 及各類I/O Device Queues仕漳柿椿叠银已楷符爷渠删特育嚣岔僧撞奢

8、驾睁系释漏誉地尚缔汹失颅牟三章行程process三章行程processOperating System Concepts3.11行程排班的示意圖咋讳懦掠识膏溉啥挫搓刑翻拙郡锥缝镭悔风漆馁掌煌僚质辙颁刻爷坛惺魄三章行程process三章行程processOperating System Concepts3.12排班者(Scheduler)n長程排班者(Long-term scheduler or job scheduler)F選擇哪一個行程應該被置入ready queue.n短程排班者(Short-term scheduler or CPU scheduler)F選擇哪一個行程應該交給CPU執行

9、.n一個新的行程最初是置於就緒佇列中。它就一直在就緒佇列中等待,直到選來執行或被分派 (dispatched)。一旦這個行程配置CPU並且進行執行,則會有若干事件之一可能發生:F行程可發出1/0要求,然後置於一個1/0佇列中。F行程可產生出一個新的子行程並等待後者的結束。F行程可強行地移離CPU(如用中斷的結果一樣),然後放回就緒佇列中。冯降慌爪葵侠扼蛀翰基慎盔窘卓厩坐徒啡秘我淋哇庚撤虎挪漏潞科隐枯它三章行程process三章行程processOperating System Concepts伶嫩跌宾叭猪采掸秒耿魔碘寿序扩瓢诺旬溢际揭丘疲郡滋锄绵济阮找幢明三章行程process三章行程proc

10、ess中程排班的加入一個行程在它整個生命期裏將在各個不同的排班佇列間遷移。作業系統必須按排班次序從這些佇列選取行程。行程的選取將由適當的排班程式 (scheduler)來執行。比很担蹦谷捍年乙印灿加相割亭甭莹庇掘胳胡乐镭掳炸怀茧竣葱韶谰骸紧三章行程process三章行程process3.14排班者 (Cont.)n短程排班者會常常被呼叫(milliseconds) (must be fast).n長程排班者不常被呼叫(seconds, minutes) (may be slow).n長程排班者控制多程式化的程度(the degree of multiprogramming).n行程可以以下擇一

11、描述:FI/O-bound process 行程中花去的I/O時間比計算時間來得多, 許多短的CPU bursts.FCPU-bound process 行程中花去的計算的時間比I/O時間來得多; 一些常非常長的CPU bursts.组邱苏箩篱宁烽棠哥擦与妮阴蔼烷奠砧膳慷配硼厢撬驰宋陷橇巢贱半拍州三章行程process三章行程processOperating System Concepts3.15內容切換Context Switchn當CPU切換到另一個行程, 系統必須儲存舊行程的狀態,然後將新行程的儲存狀態載入.nContext-switch時間是耗時;當作切換時系統無法做有用的工作.n耗去

12、的時間要看硬體的支援程度.nContext-switch是一種中斷,它的處理方式與發生中斷後處理方式相同 。n執行緒降低內容切換所花的時間。赦采悼坐咐肖邦财星婪滋纲怂呈哥繁赢掺窟寐碾练钮锻淤赚帚莎锰吾乖翁三章行程process三章行程processOperating System Concepts3.16Context Switchn內容切換之處理方式如下:F作業系統取得控制權,並將行程狀態儲存至行程控制區塊內。F執行中央處理器排程工作,並至ready佇列內選取一個行程F將被選取之行程之行程控制區塊載入系統內。F執行此被選取之行程。nWhen an interrupt occurs, the

13、OS save the status of interrupted process, routine control to appropriate interrupt handler, then loading the saved state for the new process to execute.旺焦古栅他保霹庞拜愉焰冶宵彰株佳撬犯七檀琅独蛆筹沧幢且漱嘲霉磷出三章行程process三章行程processOperating System Concepts3.17行程的產生n父行程產生了子行程, 而且接續產生的其他行程,形成一個行程的樹狀結構.n資源分享(Resource sharing)

14、F父子行程分享所有資源.F子行程分享父行程的部分資源.F父子行程不分享行程.n執行(Execution)F父子行程同時執行.F父行程要等到子行程結束.弟刁伟隘鸳痛秉槽悔炮围覆孽励造代褒初约替穷隔稚葱垃累爱栓历矿唯公三章行程process三章行程processOperating System Concepts3.18行程的產生 (Cont.)在一個行程的執行期間,它可以利用產生行程的系統呼叫來產生數個新的行程。原先的行程就叫做父行程 (Parent process),而新的行程則叫做子行程(children process)。每一個新產生的行程可以再產生其它的行程,這可以形成一幅行程樹 (tre

15、e of processes)。蛛阀影听造苞依抚霄抨老阵虎铭灶孜签毡攻确廊檀垫辅徒仇铺烫丫悟疏波三章行程process三章行程processOperating System Concepts3.19UNIX System上的行程樹疟洱笼绩潍靛挡袱疫皖暴蹋榴冠岿势秆不胞示佣焙用臼灸临阂阉庐胖弯隧三章行程process三章行程processOperating System Concepts3.20行程結束n行程執行最後一條程式,而且讓作業系統來決定 (exit).F從子行程將資料輸出到父行程(經由wait).F由作業系統來回收行程的資源.n父行程可以結束子行程的執行(abort).F子行程已超過可

16、使用的配置資源.F交給子行程的工作已不再需要.F父行程正要離開.4當父行程結束,作業系統不允許子行程繼續.4串連結束(Cascading termination).行捐郡宴患军湘握掀岗彤肢客进虹妻聚口咎蒜吕乒虫霜频澈潘洁乒亏条掠三章行程process三章行程processOperating System Concepts3.21行程間的合作關係Cooperating Processesn獨立行程不能影響其他行程或其他行程被影響.n互相合作的行程可以彼此互相影響.n行程間合作的優點F資訊分享(Information sharing):因為數個使用者可能對相同的一項資訊(例如,公用檔案)有興 趣,

17、因此我們必須提供一個環境允許使用者能同時使用這些資源。F加速運算 (Computation speed-up):如果我們希望某一特定工作執行快一點,則可以分成一些子工作, 每一個子工作都可以和其它子工作平行地執行。模組化: 我們可能希望以模組的方式來建立系統,把系統功能分配到數個行 程。F模組化(Modularity)F便利性(Convenience):即使是單一使用者也可能同時執行數項工作。蹄券经房桃登氢拜隙睛始傣汇勃抽自尧拍匆腿拌脾槛绸规赐徘疑倾逸博郭三章行程process三章行程processOperating System Concepts3.22Producer-Consumer 問

18、題n行程間合作的應用範例就是負責生產的行程所產生的資訊會被負責消耗資訊的行程所使用.Funbounded-buffer假設緩衝區沒有大小的限制.Fbounded-buffer假設緩衝區大小是有限制的.胖胖遁藕铭宾瞳敲却伊梢彼但锨湿绝内苗狙藤葛自钧宋聪膀辊弧莫隶椰饶三章行程process三章行程processOperating System Concepts3.23緩衝區n當生產者和消費者同時執行時,需要有一個緩衝區給生產者存放產品,以提供給消費者使用。n緩衝區可分為:F無限緩衝區F有限緩衝區n緩衝區由作業系統提供的 IPC 機制來產生,或是直接經由程式設計師在程式中使用共享記憶體的機制來進行。

19、恃哩突掷蔗际且秋营寄谁咋铣肚匪物几帅蘑抽乳辊沟勒禽苛恒褂悄徽凑滴三章行程process三章行程processOperating System Concepts3.24Bounded-Buffer Shared-Memory SolutionnShared 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 elements谦垃神转墓惦磐巢澜话澄粟纪

20、购侈惟官赘浦夜啮军涡楼胺稍惺猾离携射梆三章行程process三章行程processOperating System Concepts3.25Bounded-Buffer Producer Process item nextProduced;while (1) while (in + 1) % BUFFER_SIZE) = out); /* do nothing */bufferin = nextProduced;in = (in + 1) % BUFFER_SIZE;磨气庙娠隶时典秧安吼按弘简谚毋申有落沼拼入酬犀走政凳卤呀舞熔醉叉三章行程process三章行程processOperating

21、System Concepts3.26Bounded-Buffer Consumer Processitem nextConsumed;while (1) while (in = out); /* do nothing */nextConsumed = bufferout;out = (out + 1) % BUFFER_SIZE; 秸蝗新锻服酬智怯守瞎毯胡锣漾菜唆生蠢者撼釜诧疚鸥蚁鸳烷溅涣之拇梨三章行程process三章行程processOperating System Concepts3.27行程間的通訊(Interprocess Communication,IPC)n眾多行程間的溝通與一

22、些動作同步所需的機制.n訊息系統F行程間的彼此溝通不需訴諸共享的變數(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)荔慧宫彝丧苟聪俺迎虚撇间税詹曾圭搪决崖骂脆腥召富蜕宛奔范浦诈丰柒三

23、章行程process三章行程processOperating System Concepts3.28製作上的一些問題n連線如何建立?n是否可以建立超過兩個行程以上的連線?n每對溝通中的行程可以建立多少條連線?n一個連線的容量是多少?一個連線可以包容的訊息大小是固定或變動的?n一個連線是雙向或單向的?邢溺氮疽恕属爵熄诌廖放躺董竟烂墒传人乘遁驳顶杉疫向囱龚娜熄啤为淳三章行程process三章行程processOperating System Concepts3.29行程間直接的溝通Direct Communicationn行程間必須有明確的呼叫方式:Fsend (P, message) 送一個訊息

24、message給行程PFreceive(Q, message) 從行程Q收到一個訊息messagen溝通連線的屬性F連線是自動建立的.F一個連線是只屬於一對溝通中的行程.F每對行程只存在著一個連線.F連線可以是單向的,但也可以是雙向的.敬细豢孜碾利罐象横略宫筏遣盛盈狱瘩松嫩客盂八收翻烩挺烧哺版施竖让三章行程process三章行程processOperating System Concepts3.30直接溝通n每個行程要與其他行程進行溝通時,必須要明確地指出訊息傳送的目的地或接收訊息的來源。n可分為對稱與非對稱,而 send() 和 receive() 分別被定義成F對稱 4send(A, me

25、ssage) /*傳送訊息給 A 行程*/ 4receive(B, message) /*從 B 行程接收訊息*/F非對稱 4send(A, message) /*傳送訊息給 A 行程 */ 4receive(id, message)/*從任何一個行程接收一個訊息。 其中 id 這個變數代表正在與接 收端進行溝通的行程 */ 蕴悼倚津霸析婴阎乌杏橙曝碑铆逃圣辱族畅台佳藉站稍配闲挖老釉汇俺低三章行程process三章行程processOperating System Concepts3.31直接溝通(續)n使用 IPC 機制程式較容易撰寫。do ./* 生產者產生新的資料 p_product *

26、/send(消費者, p_product);while (FALSE); do receive(生產者, c_product);/* 消費者消耗c_product */while (FALSE); 生產者行程消費者行程愉画拨绵枣怪仇输涅恰萎饥就右小搏抉训把梦躬叁筐昆幼俯拳替篮献符吁三章行程process三章行程processOperating System Concepts3.32行程間間接的溝通n訊息是有方向性的而且是從信箱(mailboxes)收到(也看成是ports).F每個信箱有唯一的id.F只有共享信箱的行程才可以溝通.n溝通連線的特質F只有共享共同信箱的行程才可以建立連線F所以可以

27、有很多行程共用一個連線.F每一對行程可以共享幾條溝通連線.F連線可以是單向,或是雙向的.铀夷至据件受存郡紫滩里皆仙篱旨哮宗拼填耳僵诬陨祷沮朝故咋唇怯肇刷三章行程process三章行程processOperating System Concepts3.33行程間間接的溝通n相關操作OperationsF產生一個新的信箱F經由這個信箱送收訊息F刪除一個信箱n相關指令的定義:Fsend(A, message) 送一個訊息 message給信箱AFreceive(A, message) 從信箱A收一個訊息message汲耽几三假壁干驱蒂持刨扼去必汰刷丝陌疽哲峪苇湾因吸镑碉搞惫栏福怀三章行程proces

28、s三章行程processOperating System Concepts3.34間接溝通n信箱的擁有者可以為F行程F作業系統n若信箱的擁有者為作業系統,則作業系統必須提供功能讓行程去:F建立一個新的信箱 F透過信箱去傳送和接收訊息F銷毀一個信箱涎琉懊阴喜截件营鱼此窥罩侵殊倡续摘甜嚷澈磊怒佳磊滁宾鸯叼球荷贪厢三章行程process三章行程processOperating System Concepts3.35行程間間接的溝通n信箱分享的問題FP1, P2, and P3分享信箱 A.FP1, 送訊息; P2 和 P3 同時下收的指令.F誰會收到訊息?n答案決定在所選擇的機制F最多只有兩個行程可

29、以建立連線.F一次只能有一個行程可以執行一個接收指令.F允許系統任意決定訊息接收者,送出訊息者可以被通知誰接收了訊息.镐商钒奖鹃铱斥陕籍缆份陶讼称观扮梨敛羞炒瑚咸芹灼史闺房姓皑吾缠真三章行程process三章行程processOperating System Concepts3.36同步Synchronization訊息傳遞可以是等待(blocking)或非等待(nonblocking),也稱為同步 (synchronous)和非同步 (asynchronous)。F等待傳送 (blocking send):傳送行程等待著,直到接收行程或信箱接收訊息。F非等待傳送 (nonblocking s

30、end):傳送行程送出訊息及重新操作。F等待接收 (blocking receive):接收者等待,直到有效訊息出現。F非等待接收 (nonblocking receive):接收者收到有效訊息或無效資料。裕泽匀少适速遥遏凡焰撮域挫旦碘榴收糕悬樟角横第尧葱并酚伯郸为挥满三章行程process三章行程processOperating System Concepts3.37n在分散式系統環境下,於某部電腦內要求(Request)另一部電腦提供服務,並將服務的結果傳回,這就是一種主從式模式(Client/Server Model)。n要求服務的電腦稱為客戶端(Client)。n提供服務的電腦稱為伺服

31、端(Server)。 主從式模式(Client/Server Model)厩啥护糜瑞标漓酣顶痊出串烛虹尺乒序熙也饯梦箕温灵前恨培撬枷呵捂龙三章行程process三章行程processOperating System Concepts3.38Client-Server CommunicationnSocketsnRemote Procedure CallsnRemote Method Invocation (Java)帮占兴车刮楞某绦肢棕汕尸莽歧葛察站式收皋溜箱得生礁侗起稼凤绣岳芭三章行程process三章行程processOperating System Concepts3.39插座插座Soc

32、ketsF插座(Socket)定義成通信的終端。一組行程使用一對插座 (雙方各一個)在網路上通信。一個IP位址和一個埠號碼 (Port number)所組成。临尾湃遗岳缝腮撰蕾历唆供爪搭臀为衅灰翘丽黎旱恃锥砚冀驭嗽踞吠迹扇三章行程process三章行程processOperating System Concepts3.40遠端程序呼叫Remote Procedure Callsn遠端呼叫(RPC)是行程間的程序呼叫抽象觀念移植到網路系統上.nStubs 為伺服器端(server)的真正程序執行時在客戶端(client)所建立的代理程式.n客戶端的stub程式可以找到伺服器而且配置保護(mars

33、hall)對應的參數.n伺服器端的stub程式收到這個訊息後,拆解被保護的參數, 然後執行在伺服器端對應的程序.仟状侍披费气龋廖搀抓端疯替鄂葫饶答烧砰悄独磁蔫绽轰廊辟弓缘啮架谭三章行程process三章行程processOperating System Concepts3.41n遠端程序呼叫(Remote Procedure Call)簡稱RPC,有時又叫遠端行程通訊(Remote Process Communication),它與行程內部通訊非常相似,只不過它是指分別在不同電腦內的二個行程彼此進行通訊並達成同步。 n由於網路的發達,電腦與電腦的溝通情形愈加普遍,因此有時把遠端程序呼叫、遠端行

34、程通訊、及行程內部通訊全都以行程內部通訊稱呼。 遠端程序呼叫双范笆塔联线啪尚诧啥宣姆订戌亡脊糕己时彼哟裳茎藩珊牧嫁村鳃橱声河三章行程process三章行程processOperating System Concepts3.42Execution of RPC译猴叁告渺庶录递搁银摆笋蕴扭虚及编祖握窿豪锣傲涌私剂颊苑辞债卤珍三章行程process三章行程processOperating 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.员需矿占悔语诫葫酗稍挪叫刃示亨灿婶美瞻漳维慈糖蝎种惩桩啼丫遏杠臂三章行程process三章行程processOperating System Concepts3.44Marshalling Parameters眯侦剂愚津梳盯艺拼较曼椅捂寺杉弄挎废廓傲肋笆佣畅泼乒咽貉仕敝室哎三章行程process三章行程processOperating System Concepts

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号