




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、徐小龍/WindowsLinuxMac OSOpenStackAndroidLinux進(jìn)程控制本講內(nèi)容1. 進(jìn)程控制原語(yǔ)2. 進(jìn)程的創(chuàng)建3. 進(jìn)程的阻塞和喚醒4. 進(jìn)程的撤消5. 進(jìn)程的掛起和激活進(jìn)程控制原語(yǔ)進(jìn)程的控制進(jìn)程的控制1含義:系統(tǒng)使用一些具有特定功能的程序段來(lái)創(chuàng)建、撤消進(jìn)程以及完成進(jìn)程在各狀態(tài)間轉(zhuǎn)換目標(biāo):實(shí)現(xiàn)多進(jìn)程高效率并發(fā)執(zhí)行、協(xié)調(diào)和共享資源的目的 類(lèi)型:創(chuàng)建進(jìn)程、阻塞進(jìn)程、喚醒進(jìn)程、掛起進(jìn)程、激活進(jìn)程和撤銷(xiāo)進(jìn)程等原語(yǔ)原語(yǔ)2進(jìn)程控制和管理功能是由原語(yǔ)來(lái)實(shí)現(xiàn)原語(yǔ)是在管態(tài)下執(zhí)行、完成系統(tǒng)特定功能的程序原語(yǔ)執(zhí)行過(guò)程中不允許被中斷進(jìn)程控制原語(yǔ)進(jìn)程控制本講內(nèi)容1. 進(jìn)程控制原語(yǔ)2. 進(jìn)程的創(chuàng)
2、建3. 進(jìn)程的阻塞和喚醒4. 進(jìn)程的撤消5. 進(jìn)程的掛起和激活進(jìn)程的創(chuàng)建創(chuàng)建原因創(chuàng)建原因1用戶(hù)提交作業(yè)系統(tǒng)創(chuàng)建服務(wù)進(jìn)程進(jìn)程的創(chuàng)建創(chuàng)建過(guò)程創(chuàng)建過(guò)程2系統(tǒng)從PCB池中取一個(gè)空白PCB為新進(jìn)程的映像分配地址空間,傳遞環(huán)境變量,構(gòu)造共享地址空間為新進(jìn)程分配內(nèi)存等各種資源進(jìn)程的創(chuàng)建創(chuàng)建過(guò)程創(chuàng)建過(guò)程2查找輔存,找到進(jìn)程正文段并裝到正文區(qū)初始化進(jìn)程控制塊,分配進(jìn)程標(biāo)識(shí)符,初始化PSW將進(jìn)程加入就緒進(jìn)程隊(duì)列,投入運(yùn)行通知操作系統(tǒng)的記賬程序、監(jiān)控程序等Linux進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建30進(jìn)程是在系統(tǒng)引導(dǎo)時(shí)被創(chuàng)建的;系統(tǒng)初啟時(shí),0進(jìn)程創(chuàng)建1進(jìn)程;0進(jìn)程變成對(duì)換進(jìn)程,1進(jìn)程成為始祖進(jìn)程。進(jìn)程利用fork( )創(chuàng)建其子進(jìn)程
3、,形成一棵進(jìn)程樹(shù);系統(tǒng)中除0進(jìn)程外的所有進(jìn)程都是用fork( )創(chuàng)建的。fork( ) 的源代碼參見(jiàn): /USR/SRC/LINUX/KERNEL/FORK.C 進(jìn)程的創(chuàng)建父進(jìn)程創(chuàng)建兩個(gè)子進(jìn)程,系統(tǒng)中有一個(gè)和兩個(gè)子進(jìn)程活動(dòng)。每一個(gè)進(jìn)程在屏幕上顯示不同的字符串:子進(jìn)程P1顯示daughter 子進(jìn)程P2顯示son 父進(jìn)程顯示 parent Linux進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建3進(jìn)程的創(chuàng)建fork( ) 創(chuàng)建一個(gè)新進(jìn)程參數(shù)定義: int fork( )Linux進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建3進(jìn)程的創(chuàng)建0:在子進(jìn)程中,pid變量保存的fork( )返回值為0,表示當(dāng)前進(jìn)程是子進(jìn)程0:在父進(jìn)程中,pid變量保存的fork(
4、 )返回值為子進(jìn)程的id值(進(jìn)程唯一標(biāo)識(shí)符)-1:創(chuàng)建失敗Linux進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建3進(jìn)程的創(chuàng)建如果fork( )調(diào)用成功,它向父進(jìn)程返回子進(jìn)程的PID,并向子進(jìn)程返回0,即fork( )被調(diào)用了一次,但返回兩次值。Linux進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建3進(jìn)程的創(chuàng)建OS在內(nèi)存中創(chuàng)建一個(gè)新進(jìn)程,所建的新進(jìn)程是調(diào)用fork( )的父進(jìn)程的副本。子進(jìn)程繼承了父進(jìn)程的許多特性,并具有與父進(jìn)程完全相同的用戶(hù)級(jí)上下文。#include main( )int p1,p2,i;while(p1=fork( )= = -1); /*創(chuàng)建子進(jìn)程創(chuàng)建子進(jìn)程P1*/if (p1= =0) for(i=0;i10;i+)print
5、f(daughter %dn,i);else while(p2=fork( )= = -1); /*創(chuàng)建子進(jìn)程創(chuàng)建子進(jìn)程P2*/if(p2= =0) for(i=0;i10;i+) printf(son %dn,i);else for(i=0;i10;i+) printf(parent %dn,i);Linux進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建3進(jìn)程的創(chuàng)建進(jìn)程控制本講內(nèi)容1. 進(jìn)程控制原語(yǔ)2. 進(jìn)程的創(chuàng)建3. 進(jìn)程的阻塞和喚醒4. 進(jìn)程的撤消5. 進(jìn)程的掛起和激活進(jìn)程的阻塞和喚醒進(jìn)程阻塞進(jìn)程阻塞1阻塞原語(yǔ)在進(jìn)程期待某事件發(fā)生,但沒(méi)有發(fā)生時(shí),或所需資源尚不具備時(shí),被該進(jìn)程調(diào)用來(lái)阻塞自己阻塞進(jìn)程時(shí),先中斷處理器,保
6、存該進(jìn)程的CPU現(xiàn)場(chǎng)信息到PSW進(jìn)程的阻塞和喚醒進(jìn)程阻塞進(jìn)程阻塞1將被阻塞進(jìn)程置“阻塞”狀態(tài)后,插入等待隊(duì)列中進(jìn)程調(diào)度程序選擇新的就緒進(jìn)程投入運(yùn)行進(jìn)程的阻塞和喚醒進(jìn)程喚醒進(jìn)程喚醒2系統(tǒng)喚醒進(jìn)程:系統(tǒng)進(jìn)程統(tǒng)一控制事件的發(fā)生并將事件發(fā)生的消息通知等待進(jìn)程,使得該進(jìn)程進(jìn)入就緒隊(duì)列事件發(fā)生喚醒進(jìn)程:事件發(fā)生進(jìn)程和被喚醒進(jìn)程之間是合作關(guān)系,喚醒原語(yǔ)既可被系統(tǒng)進(jìn)程調(diào)用,也可被事件發(fā)生進(jìn)程調(diào)用進(jìn)程控制本講內(nèi)容1. 進(jìn)程控制原語(yǔ)2. 進(jìn)程的創(chuàng)建3. 進(jìn)程的阻塞和喚醒4. 進(jìn)程的撤消5. 進(jìn)程的掛起和激活進(jìn)程的撤消撤消緣由撤消緣由 1進(jìn)程已完成所要求的功能而正常終止由于某種錯(cuò)誤導(dǎo)致非正常終止祖先進(jìn)程要求撤消某個(gè)子孫進(jìn)程進(jìn)程的撤消撤銷(xiāo)步驟撤銷(xiāo)步驟2根據(jù)進(jìn)程標(biāo)識(shí)號(hào),從相應(yīng)隊(duì)列中找到它的PCB將該進(jìn)程擁有的資源歸還給父進(jìn)程或操作系統(tǒng)若該進(jìn)程擁有子進(jìn)程,先撤銷(xiāo)子孫進(jìn)程,以防脫離控制撤銷(xiāo)進(jìn)程出隊(duì),將它的PCB歸還到PCB池進(jìn)程控制本講內(nèi)容1. 進(jìn)程控制原語(yǔ)2. 進(jìn)程的創(chuàng)建3. 進(jìn)程的阻塞和喚醒4. 進(jìn)程的撤消5. 進(jìn)程的掛起和激活進(jìn)程的掛起和激活掛起過(guò)程掛起過(guò)程1檢查要被掛起進(jìn)程的狀態(tài),若處于就緒態(tài)就修改為掛起就緒態(tài),若處于阻塞態(tài),則修改為掛起阻塞態(tài)被掛起進(jìn)程PCB的非常
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 異常信息考核管理辦法
- 外聘機(jī)構(gòu)服務(wù)管理辦法
- 薪酬等級(jí)評(píng)審管理辦法
- 肝病護(hù)理課件教學(xué)
- 福建二升三數(shù)學(xué)試卷
- 福建2024成人高考數(shù)學(xué)試卷
- 二年級(jí)拔尖數(shù)學(xué)試卷
- 足球培訓(xùn)課件模板
- 廣東6年級(jí)升學(xué)數(shù)學(xué)試卷
- 高中藝術(shù)生數(shù)學(xué)試卷
- 2025至2030全球及中國(guó)企業(yè)文件共享和同步(EFSS)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 上海金山區(qū)屬?lài)?guó)有企業(yè)招聘筆試真題2024
- 2025至2030中國(guó)碳化硅陶瓷膜行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 2025至2030中國(guó)生石灰行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資方向報(bào)告
- 2025年新高考1卷(新課標(biāo)Ⅰ卷)英語(yǔ)試卷
- LY/T 2252-2014碳匯造林技術(shù)規(guī)程
- 戰(zhàn)鍋策火鍋店項(xiàng)目策劃書(shū)
- (完整版)音標(biāo)練習(xí)題(元音部分)
- 英文形式發(fā)票樣本
- 上海牛津六級(jí)下冊(cè)英語(yǔ)作文范文整理
- WIFI基本數(shù)據(jù)傳輸機(jī)制理解
評(píng)論
0/150
提交評(píng)論