導航:首頁 > 信息系統 > pcb的初始化包括什麼信息

pcb的初始化包括什麼信息

發布時間:2024-03-26 22:25:19

⑴ PCB包括以哪四個基本組成並分別簡要介紹

在這個pcb包括下面,以下四個基本組成就分別是a型和b型c型d型,這四種類型。

⑵ 進程的內容

一個計算機系統進程包括(或者說「擁有」)下列數據:
那個程序的可運行機器碼的一個在存儲器的映像。 分配到的存儲器(通常包括虛擬內存的一個區域)。存儲器的內容包括可運行代碼、特定於進程的數據(輸入、輸出)、調用堆棧、堆棧(用於保存運行時運數中途產生的數據)。 分配給該進程的資源的操作系統描述符,諸如文件描述符(Unix術語)或文件句柄(Windows)、數據源和數據終端。 安全特性,諸如進程擁有者和進程的許可權集(可以容許的操作)。 處理器狀態(內文),諸如寄存器內容、物理存儲器定址等。當進程正在運行時,狀態通常儲存在寄存器,其他情況在存儲器。 進行進程切換就是從正在運行的進程中收回處理器,然後再使待運行進程來佔用處理器。
這里所說的從某個進程收回處理器,實質上就是把進程存放在處理器的寄存器中的中間數據找個地方存起來,從而把處理器的寄存器騰出來讓其他進程使用。那麼被中止運行進程的中間數據存在何處好呢?當然這個地方應該是進程的私有堆棧。
讓進程來佔用處理器,實質上是把某個進程存放在私有堆棧中寄存器的數據(前一次本進程被中止時的中間數據)再恢復到處理器的寄存器中去,並把待運行進程的斷點送入處理器的程序指針PC,於是待運行進程就開始被處理器運行了,也就是這個進程已經佔有處理器的使用權了。
這就像多個同學要分時使用同一張課桌一樣,所謂要收回正在使用課桌同學的課桌使用權,實質上就是讓他把屬於他的東西拿走;而賦予某個同學課桌使用權,只不過就是讓他把他的東西放到課桌上罷了。
在切換時,一個進程存儲在處理器各寄存器中的中間數據叫做進程的上下文,所以進程的 切換實質上就是被中止運行進程與待運行進程上下文的切換。在進程未佔用處理器時,進程 的上下文是存儲在進程的私有堆棧中的。 進程執行時的間斷性,決定了進程可能具有多種狀態。事實上,運行中的進程可能具有以下三種基本狀態。
1)就緒狀態(Ready):
進程已獲得除處理器外的所需資源,等待分配處理器資源;只要分配了處理器進程就可執行。就緒進程可以按多個優先順序來劃分隊列。例如,當一個進程由於時間片用完而進入就緒狀態時,排入低優先順序隊列;當進程由I/O操作完成而進入就緒狀態時,排入高優先順序隊列。
2)運行狀態(Running):
進程佔用處理器資源;處於此狀態的進程的數目小於等於處理器的數目。在沒有其他進程可以執行時(如所有進程都在阻塞狀態),通常會自動執行系統的空閑進程。
3)阻塞狀態(Blocked):
由於進程等待某種條件(如I/O操作或進程同步),在條件滿足之前無法繼續執行。該事件發生前即使把處理器資源分配給該進程,也無法運行。 程序
程序是指令和數據的有序集合,其本身沒有任何運行的含義,是一個靜態的概念。而進程是程序在處理機上的一次執行過程,它是一個動態的概念。
程序可以作為一種軟體資料長期存在,而進程是有一定生命期的。程序是永久的,進程是暫時的。
進程更能真實地描述並發,而程序不能;
進程是由進程式控制制塊、程序段、數據段三部分組成;
進程具有創建其他進程的功能,而程序沒有。
同一程序同時運行於若干個數據集合上,它將屬於若干個不同的進程,也就是說同一程序可以對應多個進程。
在傳統的操作系統中,程序並不能獨立運行,作為資源分配和獨立運行的基本單元都是進程。
線程
通常在一個進程中可以包含若干個線程,它們可以利用進程所擁有的資源,在引入線程的操作系統中,通常都是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調度的基本單位,由於線程比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷就會小得多,能更高效的提高系統內多個程序間並發執行的程度。
當下推出的通用操作系統都引入了線程,以便進一步提高系統的並發性,並把它視為現代操作系統的一個重要指標。 進程式控制制是進程管理中最基本的功能。它用於創建一個新進程,終止一個已完成的進程,或者去終止一個因出現某事件而使其無法運行下去的進程,還可負責進程運行中的狀態轉換。
創建進程
1.引起創建進程的事件
在多道程序環境中,只有(作為)進程(時)才能在系統中運行。因此,為使程序能運行,就必須為它創建進程。導致一個進程去創建另一個進程的典型事件,可以有以下四類:
1) 用戶登錄
在分時系統中,用戶在終端鍵入登錄命令後,如果是合法用戶,系統將為該終端建立一個進程,並把它插入到就緒隊列中。
2)作業調度
在批處理系統中,當作業調度程序按照一定的演算法調度到某作業時,便將該作業裝入到內存,為它分配必要的資源,並立即為它創建進程,再插入到就緒隊列中。
3) 提供服務
當運行中的用戶程序提出某種請求後,系統將專門創建一個進程來提供用戶所需要的服務,例如,用戶程序要求進行文件列印,操作系統將為它創建一個列印進程,這樣,不僅可以使列印進程與該用戶進程並發執行,而且還便於計算出為完成列印任務所花費的時間。
4) 應用請求
在上述三種情況中,都是由系統內核為它創建一個新進程,而這一類事件則是基於應用進程的需求,由它創建一個新的進程,以便使新進程以並發的運行方式完成特定任務。
2.進程的創建過程
一旦操作系統發現了要求創建新進程的事件後,便調用進程創建原語create()按下述步驟創建一個新進程。
1) 申請空白PCB。為新進程申請獲得唯一的數字標識符,並從PCB集合中索取一個空白PCB。
2) 為新進程分配資源。為新進程的程序和數據以及用戶棧分配必要的內存空間。顯然,此時操作系統必須知道新進程所需要的內存大小。
3) 初始化進程式控制制塊。PCB的初始化包括:
①初始化標識信息,將系統分配的標識符和父進程標識符,填入新的PCB中。
②初始化處理機狀態信息,使程序計數器指向程序的入口地址,使棧指針指向棧頂。
③初始化處理機控制信息,將進程的狀態設置為就緒狀態或靜止就緒狀態,對於優先順序,通常是將它設置為最低優先順序,除非用戶以顯式的方式提出高優先順序要求。
4) 將新進程插入就緒隊列,如果進程就緒隊列能夠接納新進程,便將新進程插入到就緒隊列中。
進程終止
1.引起進程終止的事件
1)正常結束
在任何計算機系統中,都應該有一個表示進程已經運行完成的指示。例如,在批處理系統中,通常在程序的最後安排一條Hold指令或終止的系統調用。當程序運行到Hold指令時,將產生一個中斷,去通知OS本進程已經完成。
2)異常結束
在進程運行期間,由於出現某些錯誤和故障而迫使進程終止。這類異常事件很多,常見的有:越界錯誤,保護錯,非法指令,特權指令錯,運行超時,等待超時,算術運算錯,I/O故障。
3)外界干預
外界干預並非指在本進程運行中出現了異常事件,而是指進程應外界的請求而終止運行。這些干預有:操作員或操作系統干預,父進程請求,父進程終止。
2. 進程的終止過程
如果系統發生了上述要求終止進程的某事件後,OS便調用進程終止原語,按下述過程去終止指定的進程。
1)根據被終止進程的標識符,從PCB集合中檢索出該進程的PCB,從中讀出該進程狀態。
2)若被終止進程正處於執行狀態,應立即終止該進程的執行,並置調度標志為真。用於指示該進程被終止後應重新進行調度。
3)若該進程還有子孫進程,還應將其所有子孫進程予以終止,以防他們成為不可控的進程。
4)將被終止的進程所擁有的全部資源,或者歸還給其父進程,或者歸還給系統。
5)將被終止進程(它的PCB)從所在隊列(或鏈表)中移出,等待其它程序來搜集信息。
阻塞喚醒
1.引起進程阻塞和喚醒的事件
1)請求系統服務
當正在執行的進程請求操作系統提供服務時,由於某種原因,操作系統並不立即滿足該進程的要求時,該進程只能轉變為阻塞狀態來等待,一旦要求得到滿足後,進程被喚醒。
2)啟動某種操作
當進程啟動某種操作後,如果該進程必須在該操作完成之後才能繼續執行,則必須先使該進程阻塞,以等待該操作完成,該操作完成後,將該進程喚醒。
3)新數據尚未到達
對於相互合作的進程,如果其中一個進程需要先獲得另一(合作)進程提供的數據才能運行以對數據進行處理,則是要其所需數據尚未到達,該進程只有(等待)阻塞,等到數據到達後,該進程被喚醒。
4)無新工作可做
系統往往設置一些具有某特定功能的系統進程,每當這種進程完成任務後,便把自己阻塞起來以等待新任務到來,新任務到達後,該進程被喚醒。
2.進程阻塞過程
正在執行的進程,當發現上述某事件後,由於無法繼續執行,於是進程便通過調用阻塞原語block()把自己阻塞。可見,進程的阻塞是進程自身的一種主動行為。進入block過程後,由於此時該進程還處於執行狀態,所以應先立即停止執行,把進程式控制制塊中的現行狀態由執行改為阻塞,並將PCB插入阻塞隊列。如果系統中設置了因不同事件而阻塞的多個阻塞隊列,則應將本進程插入到具有相同事件的阻塞(等待)隊列。最後,轉調度程序進行重新調度,將處理機分配給另一就緒進程,並進行切換,亦即,保留被阻塞進程的處理機狀態(在PCB中),再按新進程的PCB中的處理機狀態設置CPU環境。
3. 進程喚醒過程
當被阻塞的進程所期待的事件出現時,如I/O完成或者其所期待的數據已經到達,則由有關進程(比如,用完並釋放了該I/O設備的進程)調用喚醒原語wakeup(),將等待該事件的進程喚醒。喚醒原語執行的過程是:首先把被阻塞的進程從等待該事件的阻塞隊列中移出,將其PCB中的現行狀態由阻塞改為就緒,然後再將該PCB插入到就緒隊列中。 進程的調度演算法包括:
實時系統中:FIFO(First Input First Output,先進先出演算法),SJF(Shortest Job First,最短作業優先演算法),SRTF(Shortest Remaining Time First,最短剩餘時間優先演算法)。
互動式系統中:RR(Round Robin,時間片輪轉演算法),HPF(Highest Priority First,最高優先順序演算法),多級隊列,最短進程優先,保證調度,彩票調度,公平分享調度。 進程是由進程式控制制塊、程序段、數據段三部分組成。一個進程可以包含若干線程(Thread),線程可以幫助應用程序同時做幾件事(比如一個線程向磁碟寫入文件,另一個則接收用戶的按鍵操作並及時做出反應,互相不幹擾),在程序被運行後,系統首先要做的就是為該程序進程建立一個默認線程,然後程序可以根據需要自行添加或刪除相關的線程。是可並發執行的程序。在一個數據集合上的運行過程,是系統進行資源分配和調度的一個獨立單位,也是稱活動、路徑或任務,它有兩方面性質:活動性、並發性。進程可以劃分為運行、阻塞、就緒三種狀態,並隨一定條件而相互轉化:就緒--運行,運行--阻塞,阻塞--就緒。
進程為應用程序的運行實例,是應用程序的一次動態執行。看似高深,我們可以簡單地理解為:它是操作系統當前運行的執行程序。在系統當前運行的執行程序里包括:系統管理計算機個體和完成各種操作所必需的程序;用戶開啟、執行的額外程序,當然也包括用戶不知道,而自動運行的非法程序(它們就有可能是病毒程序)。

閱讀全文

與pcb的初始化包括什麼信息相關的資料

熱點內容
湖人怎麼交易走威少 瀏覽:618
正規代理平台哪個好 瀏覽:131
數控技術用於鐵道局的工資怎麼樣 瀏覽:978
線上購物代理需要哪些手續 瀏覽:268
技術規范去哪裡買 瀏覽:728
登錄界面如何與資料庫進行交互 瀏覽:438
場內基金是些什麼人在交易 瀏覽:239
米9se用什麼數據線 瀏覽:297
花卉市場有哪些產品形式 瀏覽:389
為什麼現金分紅下個交易日才生效 瀏覽:240
青島哪個海鮮市場附近啤酒屋多 瀏覽:895
招聘老師考核哪些內容程序要多久 瀏覽:761
長形胚囊的數據是多少 瀏覽:608
福建眼霜加盟代理費用多少 瀏覽:135
開直播需要怎麼在電腦後台看數據 瀏覽:222
代理記賬在國標行業屬於什麼 瀏覽:938
期末如何算產品成本 瀏覽:967
大眾刷程序有什麼好處 瀏覽:221
千牛怎麼看產品客群 瀏覽:347
小程序如何讓老賴還錢 瀏覽:533