freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學(xué)]操作系統(tǒng)-第2章 進(jìn)程管理-文庫(kù)吧

2025-03-30 00:43 本頁(yè)面


【正文】 27 進(jìn)程創(chuàng)建 ? 進(jìn)程在執(zhí)行過(guò)程中可以通過(guò)系統(tǒng)調(diào)用創(chuàng)建多個(gè)子進(jìn)程,將正在執(zhí)行的進(jìn)程叫做父進(jìn)程,新創(chuàng)建的進(jìn)程叫做子進(jìn)程。 1 進(jìn)程圖 :描述進(jìn)程的家族關(guān)系的有向樹(shù)( 圖 29) 父進(jìn)程、子進(jìn)程、祖先進(jìn)程。 進(jìn)程圖由結(jié)點(diǎn)和有向邊構(gòu)成。 28 ? 子進(jìn)程可以繼承父進(jìn)程擁有的資源 ? 子進(jìn)程撤銷時(shí)要?dú)w還父進(jìn)程的資源 ? 父進(jìn)程撤銷時(shí)必須同時(shí)撤銷所有的子進(jìn)程。 ? 在 PCB設(shè)置了家族關(guān)系表項(xiàng),標(biāo)明進(jìn)程的父進(jìn)程和所有子進(jìn)程。 29 請(qǐng)同學(xué)們想一下: ? 使用進(jìn)程圖是為了描述什么? ? 進(jìn)程圖與前趨圖的比較,有什么異同? 30 2 引起進(jìn)程創(chuàng)建的事件 : ? 用戶登錄 ? 作業(yè)調(diào)度 ? 提供服務(wù) ? 應(yīng)用請(qǐng)求 系統(tǒng)創(chuàng)建進(jìn)程 父進(jìn)程創(chuàng)建進(jìn)程 31 3 進(jìn)程的創(chuàng)建 調(diào)用 creat()原語(yǔ)。 ? 申請(qǐng) 空白 PCB和唯一的數(shù)字標(biāo)識(shí)符 ? 為新進(jìn)程分配資源(內(nèi)存空間) ? 初始化 PCB— 標(biāo)識(shí)信息,處理機(jī)狀態(tài)信息,處理機(jī)控制信息 ? 將進(jìn)程插入就緒隊(duì)列。 建立 PCB,分配內(nèi)存,加載程序,入就緒鏈 32 入口 查 PCB鏈表 有空 PCB? PCB( I) 入進(jìn)程家族或進(jìn)程鏈 PCB( 1)入就緒隊(duì)列 將有關(guān)參數(shù)填入 PCB( 1) 相應(yīng)項(xiàng) 取空表 PCB(1) 返回 創(chuàng)建失敗 無(wú) 創(chuàng)建原語(yǔ)流程圖 有 33 ? Creat(s0,m0,pi) ? { ? p=GetNewPCB()。 分配新的 PCB ? pid= GetNewPID()。 分配進(jìn)程 ID ? pID=pid。 設(shè)置進(jìn)程 ID ? pCPUState=so。 CPU的狀態(tài) ? pMemory=m0。 ? pPriority=pi。 ? pStatus. Type=‘ready’。 ? pStatus. List=RL。 ? Insert(RL,p)。 ? Scheduler()。 調(diào)度程序 ? } 34 進(jìn)程終止 引起進(jìn)程終止的事件: 1 正常結(jié)束:計(jì)算機(jī)系統(tǒng)中,都有一個(gè)表示進(jìn)程已經(jīng)運(yùn)行完成的指示。如:批處理 (Holt),分時(shí)系統(tǒng)中 (Logs Off) 。 2 異常結(jié)束 越界錯(cuò)誤、保護(hù)錯(cuò)、特權(quán)指令錯(cuò)、非法指令錯(cuò)、 運(yùn)行超時(shí)、等待超時(shí)、算術(shù)運(yùn)算錯(cuò)、 I/O故障 3 外界干預(yù) 操作員或操作系統(tǒng)干預(yù) 父進(jìn)程請(qǐng)求 父進(jìn)程終止 35 入口 返回 查進(jìn)程鏈表或進(jìn)程家族 有此 PCB嗎? 該 PCB有子進(jìn)程嗎? 釋放該進(jìn)程所占有的資源 釋放該 PCB結(jié)構(gòu)本身 出錯(cuò)處理 有 無(wú) 有 36 2 終止過(guò)程 : 調(diào)用進(jìn)程終止原語(yǔ) 1. 根據(jù)進(jìn)程標(biāo)識(shí)符,從 PCB集合中檢索出該 進(jìn)程的 PCB, 讀出該進(jìn)程的狀態(tài); 2. 若正處于執(zhí)行態(tài),立即停止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真,把處理機(jī)分配給新進(jìn)程 ; 3. 終止所有子進(jìn)程; 4. 全部資源歸還給其父進(jìn)程或系統(tǒng); 5. 將被終止進(jìn)程的 PCB從所在隊(duì)列(或鏈表)中移出 歸還資源,撤銷 PCB,通知父進(jìn)程 37 ? Destroy(pid) ? { ? p=GetPCB(pid)。 ? KillTree(p)。 ? Scheduler()。 ? } KillTree(p) { For(each q in p) Killtree(q)。 If(p=‘runing’ { p1=pprocessorID。 Interrupt(p1)。 } Remove(p,p)。 releaseall(pmemory)。 Releasall(potherresources)。 Closeall(popenfiles)。 DeletePCB(P)。 } 38 進(jìn)程的阻塞和喚醒 1 進(jìn)程阻塞 一個(gè)進(jìn)程經(jīng)常要和其他進(jìn)程通信。這在運(yùn)行的進(jìn)程因?yàn)樘岢龇?wù)請(qǐng)求( I/O)操作,未得到操作系統(tǒng)的立即滿足,或者所需數(shù)據(jù)尚未到達(dá)等原因,將轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。 39 2 阻塞過(guò)程: 調(diào)用阻塞原語(yǔ) block(), 是主動(dòng)行為。 ? 停止進(jìn)程的執(zhí)行 ? 將 PCB中的執(zhí)行態(tài)改為阻塞態(tài) ? 將 PCB插入阻塞隊(duì)列 ? 將處理機(jī)分配給另一個(gè)就緒進(jìn)程。 40 入口 保存當(dāng)前進(jìn)程的 CPU現(xiàn)場(chǎng) 置該進(jìn)程的狀態(tài) 被阻塞進(jìn)程入等待隊(duì)列 轉(zhuǎn)進(jìn)程調(diào)度 阻塞原語(yǔ) 41 ? Block( ) ? { ? p=GetPCB()。 ? s=p。 ? Cpu=pprocessorID。 ? PCPUState=interrupt(cpu)。 ? p=‘blocked’。 ? Insert(BL,p)。 ? Scheduler( )。 ? } 42 3 喚醒過(guò)程 喚醒原語(yǔ) wakeup(),將等待該事件的進(jìn)程喚醒。 ? 把阻塞的進(jìn)程從阻塞隊(duì)列中移出 ? 將 PCB的狀態(tài)由阻塞改為就緒 ? 將 PCB插入就緒隊(duì)列 43 入口 從等待隊(duì)列中摘下被喚醒進(jìn)程 將被喚醒進(jìn)程置為就緒狀態(tài) 將被喚醒進(jìn)程送入就緒隊(duì)列 進(jìn)程調(diào)度返回 喚醒原語(yǔ) 44 ? Wakeup(pid) ? { ? P=GetPCB(pid)。 ? Remove(p,p)。 ? P=‘ready’。 ? Insert(RL,p)。 ? Scheduler()。 ? } 45 進(jìn)程的掛起和激活 ? 當(dāng)出現(xiàn)了引起進(jìn)程掛起的事件時(shí),用戶請(qǐng)求將自己掛起,或者父進(jìn)程請(qǐng)求掛起自己的子進(jìn)程,應(yīng)該利用掛起原語(yǔ) suspend() ? 掛起原語(yǔ)的執(zhí)行過(guò)程:檢查被掛起進(jìn)程的狀態(tài);如果處于活動(dòng)就緒狀態(tài),就將它改為靜止就緒;如果處于活動(dòng)阻塞,則改為靜止阻塞。 ? 進(jìn)程的激活過(guò)程:當(dāng)發(fā)生激活事件后,系統(tǒng)利用激活原語(yǔ) Active()將指定進(jìn)程激活。激活原語(yǔ)先將進(jìn)程從外存調(diào)入內(nèi)存,然后檢查進(jìn)程的狀態(tài)。 46 填空題 ? 為使進(jìn)程由活動(dòng)就緒轉(zhuǎn)變?yōu)殪o止就緒,應(yīng)利用 __⑴ __原語(yǔ);為使進(jìn)程由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài),應(yīng)利用 __⑵ __原語(yǔ);為使進(jìn)程由靜止就緒變?yōu)榛顒?dòng)就緒,應(yīng)利用 __⑶ __原語(yǔ);從阻塞狀態(tài)變?yōu)榫途w狀態(tài)應(yīng)利用 __⑷ __原語(yǔ)。 ? ⑴ ⑷: suspend() block() active () wakeup() 47 知識(shí)回顧 ? 什么是進(jìn)程 ? ? 進(jìn)程的三種基本狀態(tài)及轉(zhuǎn)換條件及其關(guān)系? ? 什么是進(jìn)程控制塊 PCB? 48 進(jìn)程同步 ? 在多道程序運(yùn)行環(huán)境下,并發(fā)執(zhí)行的進(jìn)程共享計(jì)算機(jī)資源,從而導(dǎo)致進(jìn)程之間存在著一定的制約關(guān)系。 ? 為了保證執(zhí)行結(jié)果的正確性和資源的充分利用,系統(tǒng)必須提供相應(yīng)的并發(fā)控制機(jī)制(進(jìn)程同步機(jī)制) ? 并發(fā)進(jìn)程之間為了完成某個(gè)任務(wù)而相互等待的關(guān)系就是進(jìn)程同步關(guān)系。 49 進(jìn)程同步的任務(wù): 對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),使并發(fā)進(jìn)程之間有效的共享資源和相互合作,使執(zhí)行結(jié)果可再現(xiàn)。 進(jìn)程同步的基本概念 1 兩種形式的制約關(guān)系: ? 直接相互制約(源于相互合作)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1