网站大量收购独家精品文档,联系QQ:2885784924

处理机管理课件.ppt

处理机管理课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

表2-1是即時操作系統RTOS中PCB的具體構成,每個PCB佔用22個位元組的存儲區,兩個位元組為一個字,各字的內容和作用如下: (1)TPC:隨時記錄該進程所對應的程式執行地址。最初它是程式的入口地址,隨後是進程暫停時的中斷點地址。 (2)TAC0~TAC3:該操作系統運行的主機共有4個工作寄存器AC0~AC3。進程程式暫停執行時,就將工作寄存器的當前內容保存在此,所以這4個字加上TPC就構成了進程PCB中的現場保護區。 (3)TPRST:記錄該進程運行過程中的狀態變化和進程的優先數。 (4)TDELAY:當要主動讓進程推遲一段時間再執行時,在此存放所需要延遲的時間間隔。 (5)TLNK:這是PCB的佇列指針,裏面總是存放佇列中下一個進程的PCB地址。若該PCB位於佇列尾,則TLNK=-1。 (6)TUSP:該進程專用的堆疊指針,是進程程式運行時的工作區。 (7)TELN:若本PCB不夠使用時,可以開闢一個PCB擴展區,並用這個指針指向擴展區的起始地址。 (8)TID:進程的標識,也就是該進程的名。2.2.3進程控制塊佇列 在多道程序設計環境裏,同時會創建多個進程。當電腦系統只有一個CPU時,每次只能讓一個進程運行,其他的進程或處於就緒狀態,或處於阻塞狀態。為了對這些進程進行管理,操作系統要做三件事。 (1)把處於相同狀態的進程的PCB,通過各自的佇列指針鏈接在一起,形成一個個佇列。 (2)為每一個佇列設立一個佇列頭指針,它總是指向排在佇列之首的進程的PCB。 (3)排在隊尾的進程的PCB,它的“佇列指針”項內容應該為“-1”,或一個特殊的符號,以表示這是該隊的隊尾PCB。 在單CPU系統,任何時刻系統中都只有一個進程處於運行狀態,因此運行佇列中只能有一個PCB;系統中所有處於就緒狀態的進程的PCB排成一隊,稱其為“就緒佇列”。一般地,就緒佇列中會有多個進程的PCB排在裏面,它們形成處理機分配的候選對象。如果就緒佇列裏沒有PCB存在,則稱該隊列為空;所有處於阻塞狀態進程的PCB,應該根據阻塞的原因進行排隊,每一個都稱為一個“阻塞佇列”。比如等待磁片輸入/輸出進程的PCB排成一個佇列,等待印表機輸出進程的PCB排成一個佇列等。所以,系統中可以有多個阻塞佇列,每個阻塞佇列中可以有多個進程的PCB,也可以為空。圖2-6是進程各隊列的示意圖。 從圖上可以看出,現在名為PCB1的進程正在CPU上運行,因為它的PCB排在運行佇列中。現在就緒佇列中有四個進程排在裏面,它們分別是PCB2、PCB3、PCB7和PCB6。要注意,進程名只是創建進程時系統所給的一個編號。系統正常運行時,誰的PCB排在佇列的前面,誰的PCB排在佇列的後面,那是無法預料的。現在進程PCB5和PCB8排在阻塞佇列1中,它們被阻塞的原因相同。現在進程PCB10、PCB9和PCB4排在阻塞佇列2中,它們被阻塞的原因相同。假定現在又創建了一個進程,名為PCB11。對於一個剛被創建的進程,系統總是賦予它“就緒”狀態,因此它的PCB應該排在就緒佇列中。至於PCB11應該排在佇列的什麼位置,那將由系統所採取的處理機分配策略來確定。假定我們把它排在佇列之尾,那麼圖2-6中的就緒佇列就變為圖2-7所示的情形。2.3進程的調度與管理 2.3.1進程調度演算法 1.先來先服務調度演算法 先來先服務調度演算法的基本思想是:以到達就緒佇列的先後次序為標準來選擇佔用處理機的進程。一個進程一旦佔有處理機,就一直使用下去,直至正常結束或因等待某事件的發生而讓出處理機。採用這種演算法時,應該這樣來管理就緒佇列:到達的進程的PCB總是排在就緒佇列末尾;調度程式總是把CPU分配給就緒佇列中的第一個進程使用。圖2-8是先來先服務調度演算法的示意圖。 2.時間片輪轉調度演算法 時間片輪轉調度演算法的基本思想是:為就緒佇列中的每一個進程分配一個稱為“時間片”的時間段,它是允許該進程運行的時間長度。在使用完一個時間片後,即使進程還沒有運行完畢,也要強迫其釋放處理機,讓給另一個進程使用。它自己則返回到就緒佇列末尾,排隊等待下一次調度的到來。採用這種調度演算法時,對就緒佇列的管理與先來先服務完全相同。主要區別是進程每次佔用處理機的時間由時間片決定,而不是只要佔用處理機就一直運行下去,直到運行完畢或為等待某一事件的發生而自動放棄。圖2-9是時間片輪轉調度演算法的示意圖。 3.優先數調度演算法 如何確定進程的優先數(也就是進程的優先順序)可以從如下幾個方面考慮。 (1)根據進程的類型。比如說,系統中有系統進程和用戶進程。系統進程完成的任務是提供系統服務,分配系統資源,因此,給予系統進程較高

文档评论(0)

157****3839 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档