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

正文內(nèi)容

湯 第02章 進程管理-文庫吧

2025-01-07 00:07 本頁面


【正文】 系統(tǒng)性能或主存容量的限制,推遲創(chuàng)建狀態(tài)進程的提交。? 對于處于創(chuàng)建狀態(tài)的進程,獲得了其所必需的資源,以及對其 PCB初始化工作完成后,進程狀態(tài)便可由創(chuàng)建狀態(tài)轉入就緒狀態(tài)。41? 當進程已經(jīng)正常結束或異常結束, OS已將它從就緒隊列中移出,但尚未將它撤消時的狀態(tài)。? 終止進程的步驟– 等待 OS進行善后處理– 將其 PCB清零,并將 PCB空間返還系統(tǒng)42終止( terminated)狀態(tài)? 幾種情況,使進程進入終止狀態(tài)– 進程到達了自然結束點– 出現(xiàn)了無法克服的錯誤– 被 OS所終結– 被其他有終止權的進程所終結? 進入終止狀態(tài)的進程以后不能再執(zhí)行,但在 OS中依然保留一個記錄(保存狀態(tài)碼和一些計時統(tǒng)計數(shù)據(jù),供其他進程收集)。一旦其他進程完成了對終止狀態(tài)進程的信息提取之后, OS將刪除該進程。43終止( terminated)狀態(tài)許可就緒I/O請求I/O完成圖 25 五種進程狀態(tài)的轉換44執(zhí)行創(chuàng)建 終止阻塞進程調(diào)度時間片完釋放具有創(chuàng)建、終止和掛起狀態(tài)的進程狀態(tài)圖活動阻塞靜止阻塞靜止就緒執(zhí)行活動就緒時間片/優(yōu)先權請求I/O激活掛起釋放激活釋放掛起調(diào)度 CPU終止創(chuàng)建 許可許可45釋放需要增加考慮的情況1. NULL?創(chuàng)建:一個新進程產(chǎn)生時,該進程處于創(chuàng)建狀態(tài)2. 創(chuàng)建 ?活動就緒:在當前系統(tǒng)的性能和內(nèi)存容量允許的情況下,完成對進程創(chuàng)建的必要操作后,相應的系統(tǒng)進程將進程的狀態(tài)轉換為活動就緒狀態(tài)。3. 創(chuàng)建 ?靜止就緒:考慮到系統(tǒng)當前資源狀況和性能要求,并不分配給新建進程所需資源,主要是主存資源,相應的系統(tǒng)進程將進程狀態(tài)轉為靜止就緒狀態(tài),對換到外存,不再參與調(diào)度,此時進程創(chuàng)建工作尚未完成。? 執(zhí)行 ?終止:當進程到達了自然結束點,或是出現(xiàn)了無法克服的錯誤,或是被 OS所終止,或是被其他有終止權的進程所終結,進程即進入終止狀態(tài)。46 PCB進程控制塊的作用進程控制塊中的信息進程控制塊的組織方式47 PCB的作用? 為了描述和控制進程的運行,系統(tǒng)為每個進程定義了一個數(shù)據(jù)結構 ——PCB , PCB是進程實體的一部分,是 OS中最重要的記錄型數(shù)據(jù)結構。? PCB中記錄了 OS所需的、用于描述 進程的當前情況 及 控制進程運行 所需的全部信息。? PCB的作用:使一個在多道程序環(huán)境下不能獨立運行的程序(含數(shù)據(jù)),成為一個能獨立運行的基本單位,一個能與其他進程并發(fā)執(zhí)行的進程。48PCB是進程存在的唯一標志? OS根據(jù) PCB來對并發(fā)執(zhí)行的進程進行控制和管理的。– 當 OS要調(diào)度某進程執(zhí)行時,要從該進程的 PCB中查出其現(xiàn)行狀態(tài)及優(yōu)先級;– 在調(diào)度到某進程后,要根據(jù)其 PCB中所保存的處理機狀態(tài)信息,設置該進程恢復運行的現(xiàn)場,并根據(jù)其PCB中的程序和數(shù)據(jù)的內(nèi)存始址,找到其程序和數(shù)據(jù);– 進程在執(zhí)行過程中,當需要和與之合作的進程實現(xiàn)同步、通信或訪問文件時,也都需要訪問 PCB;– 當進程由于某種原因而暫停執(zhí)行時,又須將其斷點的處理機環(huán)境保存在 PCB中。 49PCB常駐內(nèi)存? 當系統(tǒng)創(chuàng)建一個新進程時,就為它建立了一個 PCB;進程結束時又回收其 PCB,進程于是也隨之消亡。? PCB可以被 OS的多個模塊讀或修改,如被調(diào)度程序、資源分配程序、中斷處理程序以及監(jiān)督和分析程序等讀或修改。? 因為 PCB經(jīng)常被系統(tǒng)訪問,尤其是被運行頻率很高的進程及分派程序訪問,故 PCB應常駐內(nèi)存。50PCB常駐內(nèi)存? 系統(tǒng)將所有的 PCB組織成若干鏈表(或隊列),存放在 OS中專門開辟的 PCB區(qū)內(nèi)。– Linux用 task_struct數(shù)據(jù)結構來描述每個進程的 PCB。– Windows用執(zhí)行體進程塊 (EPROCESS)來表示進程對象的基本屬性。51進程控制塊中的信息? 進程標識符? 處理機狀態(tài)? 進程調(diào)度信息? 進程控制信息52進程標識符? 進程標識符用于惟一地標識一個進程。? 一個進程通常有兩種標識符:– 內(nèi)部標識符: OS中為每個進程賦予惟一的數(shù)字標識符,它通常是一個進程的序號。設置內(nèi)部標識符主要是為了 方便系統(tǒng)使用 。– 外部標識符:創(chuàng)建者提供,通常由字母、數(shù)字組成,往往是由用戶(進程)在訪問該進程時使用。為了描述進程的家族關系,還應設置父進程標識及子進程標識。此外,還可設置用戶標識,以指示擁有該進程的用戶。53處理機狀態(tài)? 處理機狀態(tài)信息主要是由處理機的各種寄存器中的內(nèi)容組成的。處理機在運行時,許多信息都放在寄存器中。? 當處理機被中斷時,所有這些信息都必須保存在 PCB中,以便在該進程重新執(zhí)行時,能從斷點繼續(xù)執(zhí)行。54處理機狀態(tài)? 這些寄存器包括:– 通用寄存器(用戶可視寄存器):是用戶程序可以訪問的,用于暫存信息,在大多數(shù)處理機中,有 8~32個寄存器,在 RISC結構的計算機中可超過 100個;– 指令計數(shù)器 PC:下一條指令的地址;– 程序狀態(tài)字 PSW:含有狀態(tài)信息,如條件碼、執(zhí)行方式、中斷屏蔽標志等;– 用戶棧指針:指每個用戶進程都有一個或若干個與之相關的系統(tǒng)棧,用于存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址,棧指針指向該棧的棧頂。55進程調(diào)度信息? 與進程調(diào)度和進程對換有關的信息:– 進程狀態(tài):指明進程的當前狀態(tài),作為進程調(diào)度和 對換( P129) 時的依據(jù);– 進程優(yōu)先級( P93):用于描述進程使用處理機的優(yōu)先級別的一個整數(shù);– 與進程調(diào)度算法有關的信息:進程已等待CPU的時間總和、進程已執(zhí)行的時間總和等;– 事件:指進程由執(zhí)行狀態(tài)轉變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件,即阻塞原因。56進程控制信息? 程序和數(shù)據(jù)的地址:指進程的程序和數(shù)據(jù)所在的內(nèi)存或外存地(首)址,以便再調(diào)度到該進程執(zhí)行時,能從 PCB中找到程序和數(shù)據(jù);? 進程同步和通信機制:指實現(xiàn)進程同步和進程通信時必需的機制,如 消息隊列指針 ( P19)、信號量等,它們可能全部或部分地放在 PCB中;? 資源清單:是一張列出了除 CPU以外的、進程所需的全部資源及已經(jīng)分配到該進程的資源的清單;? 鏈接指針:給出了本進程( PCB)所在隊列中的下一個進程的 PCB的首地址。57UNIX系統(tǒng) V中 PCB中的信息P357? 進程表項,其中包括最常用的核心數(shù)據(jù)? U區(qū),用于存放用戶進程表項的一些擴充數(shù)據(jù)? 系統(tǒng)區(qū)表,存放各個區(qū)在物理存儲器中的地址信息等? 進程區(qū)表,用于存放各區(qū)的起始虛地址及指向系統(tǒng)區(qū)表中對應區(qū)表項的指針58進程控制塊的組織方式? 鏈接方式– 把具有同一狀態(tài)的 PCB,用其中的鏈接字鏈接成一個隊列。這樣,可以形成就緒隊列、若干阻塞隊列、空白隊列等。– 對就緒隊列常按進程優(yōu)先級的高低排列,把優(yōu)先級高的進程的 PCB排在隊列前面。– 根據(jù)阻塞原因把處于阻塞狀態(tài)的進程的PCB排成等待 I/O操作完成的隊列和等待分配內(nèi)存的隊列等。59PCB鏈接隊列示意圖執(zhí)行指針就緒隊列指針阻塞隊列指針空閑隊列指針PCB1 4PCB2 3PCB3 0PCB4 8PCB5 0PCB6 7PCB7 9PCB8 0PCB9 11…60P215隱式鏈接、顯式鏈接按索引方式組織 PCB執(zhí)行指針就緒表指針阻塞表指針PCB1PCB2PCB3PCB4PCB5PCB6PCB7就緒索引表阻塞索引表61 進程控制? 進程控制是進程管理中最基本的功能。– 創(chuàng)建一個新進程– 終止一個已完成的進程– 終止一個因出現(xiàn)某事件而無法運行下去的進程– 負責進程運行中的狀態(tài)轉換? 當一個正在執(zhí)行的進程因等待某事件而暫時不能繼續(xù)執(zhí)行時,將其轉換為阻塞狀態(tài)? 當該進程所期待的事件出現(xiàn)時,又將該進程轉換為就緒狀態(tài)等等。? 進程控制一般是由 OS的內(nèi)核來實現(xiàn)的。62 進程控制? 原語( Primitive):由若干條指令組成,完成一定功能的一個過程。是一種原子操作( AtomicOperation)。所謂原子操作,是指一個操作中所有動作要么全做,要么全不做。它是一個不可分割的基本單位,因此在執(zhí)行過程中不允許被中斷。原子操作在管態(tài)下執(zhí)行,常駐內(nèi)存。? 原語的作用是為了實現(xiàn)進程的通信和控制,系統(tǒng)對進程的控制如不使用原語,就會造成其狀態(tài)的不確定性,從而達不到進程控制的目的。63 進程控制進程的創(chuàng)建進程的終止進程的阻塞與喚醒64 進程的創(chuàng)建1.進程圖2.引起創(chuàng)建進程的事件3.進程的創(chuàng)建651. 進程圖? 進程圖是用于描述一個進程的家族關系的有向樹。? 進程:結點? 父進程:在進程 D創(chuàng)建了進程 I后,稱 D是 I的父進程? 子進程: I是 D的子進程? 祖父進程? 祖先:樹的根節(jié)點是進程家族的祖先66AB CD E F G HL MI J K1. 進程圖? 繼承(資源)– 子進程可以繼承父進程所擁有的資源(打開的文件、緩沖區(qū)等)– 當子進程被撤消時,應將從父進程那里獲得的資源歸還給父進程– 在撤消父進程時,也必須同時撤消其所有的子進程– 為了標識進程之間的家族關系,在 PCB中都設置了家族關系表項,以標明自己的父進程及所有的子進程672. 引起創(chuàng)建進程的事件? 在多道程序環(huán)境中,只有進程才能在系統(tǒng)中運行。? 因此,為使程序能運行,就必須為它創(chuàng)建進程。682. 引起創(chuàng)建進程的事件( 1)用戶登錄(由系統(tǒng)內(nèi)核創(chuàng)建新進程)– 在 分時系統(tǒng) 中,用戶在終端鍵入登錄命令后,如果是合法用戶,系統(tǒng)將為該終端建立一個進程,并將它插入就緒隊列中。( 2)作業(yè)調(diào)度(由系統(tǒng)內(nèi)核創(chuàng)建新進程)– 在 批處理系統(tǒng) 中,當作業(yè)調(diào)度程序按一定的算法調(diào)度到某作業(yè)時,便將該作業(yè)裝入內(nèi)存,為它分配必要的資源,并立即為它創(chuàng)建進程,再插入就緒隊列中。692. 引起創(chuàng)建進程的事件( 3)提供服務(由系統(tǒng)內(nèi)核創(chuàng)建新進程)– 當運行中的用戶程序提出某種請求后,系統(tǒng)將專門創(chuàng)建一個進程來提供用戶所需要的服務。– 例如,用戶程序要求進行文件打印, OS將為它創(chuàng)建一個打印進程,這樣,不僅可使打印進程與該用戶進程并發(fā)執(zhí)行,而且還便于計算出為完成打印任務所花費的時間。702. 引起創(chuàng)建進程的事件( 4)應用請求(由應用進程自己創(chuàng)建)– 前面三種情況都是由系統(tǒng)內(nèi)核為它創(chuàng)建一個新進程;此處則是基于應用進程的需求,由它自己創(chuàng)建 一個 新進程,以便使新進程以并發(fā)運行方式完成特定任務。– 例如,某應用程序需要不斷地從鍵盤終端輸入數(shù)據(jù),繼而又要對輸入數(shù)據(jù)進行相應的處理,然后,再將處理結果以表格形式在屏幕上顯示。該應用進程為使這幾個操作能并發(fā)執(zhí)行,以加速任務的完成,可以分別建立鍵盤輸入進程、 數(shù)據(jù)處理進程、 表格輸出進程等。713. 進程的創(chuàng)建? 一旦 OS發(fā)現(xiàn)了要求創(chuàng)建新進程的事件后,便調(diào)用進程創(chuàng)建原語 Create()按下述步驟創(chuàng)建一個新進程。( 1)申請空白 PCB( 2)為新進程分配資源( 3)初始化 PCB( 4)將新進程插入就緒隊列72( 1)申請空白 PCB? 為新進程申請獲得惟一的數(shù)字標識符,并從 PCB集合中索取一個空白PCB。73( 2)為新進程分配資源? 為新進程的程序和數(shù)據(jù)以及用戶棧分配必要的內(nèi)存空間。顯然,此時 OS必須知道新進程所需內(nèi)存的大小。– 對于批處理作業(yè),其大小可在用戶提出創(chuàng)建進程要求時提供。若是應用進程創(chuàng)建子進程,也應是在該進程提出創(chuàng)建進程的請求中給出所需內(nèi)存的大小。– 對于交互型作業(yè),用戶可以不給出內(nèi)存要求而由系統(tǒng)分配一定的空間。如新進程要共享某個已在內(nèi)存的地址空間,則必須建立相應鏈表。74( 3)初始化 PCB? 初始化標識信息– 將系統(tǒng)分配的標識符和父進程標識符填入新 PCB中? 初始化處理機狀態(tài)信息– 使 PC指向程序的入口地址,使棧指針指向棧頂? 初始化處理機控制信息– 將進程的狀態(tài)設置為就緒狀態(tài)或靜止就緒狀態(tài)– 對于優(yōu)先級,通常是將它設置為最低優(yōu)先級,除非用戶以顯式方式提出高優(yōu)先級要求75( 4)將新進程插入就緒隊列? 如果進程就緒隊列能夠接納新進程,便將新進程插入就緒隊列。76 進程的終止1.引起進程終止的事件2.進程的終止過程(進程終止原語)771. 引起進程終止的事件1)正常結束2)異常結束3)外界干預781)正常結束? 在任何計算機系統(tǒng)中,都應有一個用于表示進程已經(jīng)運行完成的指示。– 在 批處理系統(tǒng) 中,通常在程序的最后安排一條 Holt指令或終止的 系統(tǒng)調(diào)用 。當程序運行到 Holt指令時,將產(chǎn)生一個 中斷 ,去 通知OS本進程已經(jīng)完成。– 在 分時系統(tǒng) 中,用戶可利用 Log off去表示進程運行完畢,此時同樣可產(chǎn)生一個中斷,去通知 OS進程已運行完畢。792)異常結束? 在進程運行期間,由于出現(xiàn)某些錯誤和故障而迫使進程終止。– 越界錯誤。這是指程序所訪問的存儲區(qū)已越出該進程的區(qū)域。– 保護錯。這是指進程試圖去訪問一個不允許訪問的資源或文件,或者以不適當?shù)姆绞竭M行訪問,例如,進程試圖去寫一個只讀文件。– 非法指令。這是指程序試圖去執(zhí)行一條不存在的指令。出現(xiàn)該錯誤的原因,可能是程序錯誤地轉移到數(shù)據(jù)區(qū),把數(shù)據(jù)當成了指令。802)異常結束? 在進程運行期間,由于出現(xiàn)某些錯誤和故障而迫使進程終止。– 特權指令錯。這是指用戶進程試圖去執(zhí)行一條只允許OS執(zhí)行的指令。– 運行超時。這是指進程的執(zhí)行時間超過了指定的最大值。– 等待超時。這是指進程等待某事件的時間超過了規(guī)定的最大值。– 算術運算錯。這是指進程試圖去執(zhí)行一個被禁止的運算,例如被 0除。– I/O故障。這是指在 I/O過程中發(fā)生了錯誤等。813)外界干預? 外界干預并非指在本進程運行中出現(xiàn)了異常事件,而是指進程應外界的請求而終止運行。– 操作員或 OS干預。由于某種原因,例如,發(fā)生了死鎖,由操作員或 OS終止該進程。– 父進程請求。由于父進程具有終止自己的任何子孫進程的權力,因而當父進程提出終止該進程(子孫進程)的請求時,系統(tǒng)將終止該進程(子孫進程)。– 父進程終止。當父進程終止時, OS也將它的所有子孫進程終止。
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1