時間片輪轉法

2021-08-15 03:26:13 字數 1493 閱讀 7469

時間片輪轉法(

round-robin,rr

)主要用於分時系統中的程序排程。為了實現輪轉排程,系統把所有就緒程序按先入先出的原則排成乙個佇列。新來的程序加到就緒佇列末尾。每當執行程序排程時,程序排程程式總是選出就緒佇列的隊首程序,讓它在

cpu上執行乙個時間片的時間。時間片是乙個小的時間單位,通常為

10~100ms

數量級。當程序用完分給它的時間片後,系統的計時器發出時鐘中斷,排程程式便停止該程序的執行,把它放入就緒佇列的末尾;然後,把

cpu分給就緒佇列的隊首程序,同樣也讓它執行乙個時間片,如此往復。

採用此演算法的系統,其程式就緒佇列往往按程序到達的時間來排序。程序排程程式總是選擇就緒佇列中的第乙個程序,也就是說按照先來先服務原則排程,但一旦程序占用

處理機則僅使用乙個時間片。在使用先乙個時間片後,程序還沒有完成其執行,它必須釋放出處理機給下乙個就緒的程序,而被搶占的程序返回到就緒佇列的末尾重新排隊等待再次執行。

處理器同乙個時間只能處理乙個任務。處理器在處理多工的時候,就要看請求的時間順序,如果時間一致,就要進行**。挑到乙個任務後,需要若干步驟才能做完,這些步驟中有些需要處理器參與,有些不需要(如磁碟控制器的儲存過程)。不需要處理器處理的時候,這部分時間就要分配給其他的程序。原來的程序就要處於等待的時間段上。經過周密分配時間,巨集觀上就象是多個任務一起執行一樣,但微觀上是有先後的,就是時間片輪換。

時間片輪轉演算法的基本思想是,系統將所有的就緒程序按先來先服務演算法的原則,排成乙個佇列,每次排程時,系統把

處理機分配給佇列首程序,並讓其執行乙個時間片。當執行的時間片用完時,由乙個計時器發出時鐘中斷請求,排程程式根據這個請求停止該程序的執行,將它送到就緒佇列的末尾,再把處理機分給就緒佇列中新的佇列首程序,同時讓它也執行乙個時間片。

時間片輪轉排程

程序、執行緒與處理器的排程

若某一程序擁有100個執行緒,這些執行緒都屬於使用者級執行緒,則在系統排程執行時間上占用的時間片是( )。a.1

b.100

c.1/100d.0

由於使用者執行緒不依賴於

作業系統

核心,因此作業系統核心是不知道使用者執行緒的存在的,使用者執行緒是由使用者來管理和排程的,使用者利用執行緒庫提供的應用程式程式設計介面(api)來建立、同步、排程和管理執行緒。所以,使用者執行緒的排程在使用者程式內部進行,通常採用非搶占式和更簡單的規則,也無須使用者態和核心態切換,所以速度很快。由於作業系統不知道使用者執行緒的存在,所以作業系統把cpu的時間片分配給使用者程序,再由使用者程序的管理器將時間分配給使用者執行緒。那麼,使用者程序能得到的時間片即為所有使用者執行緒共享。因此正確答案為a。

假設a程序設定100個使用者執行緒,排程以程序為單位進行,採用輪轉排程演算法

a程序執行了100次,則每個使用者執行緒最多執行多少次?

a 100

b 10000

c 1 d

沒有執行

分析:考察執行緒輪轉排程的相關知識。在引入了執行緒的作業系統中,資源分配的單位仍然是程序。所以在每次排程中,程序a的每個執行緒都只被呼叫一次。所以選擇a

時間片輪轉

時間片輪轉排程演算法,這種演算法是將程序控制塊按照進入就緒佇列的先後次序排成佇列。關於就緒佇列的操作就是從隊頭摘下乙個程序控制塊和從隊尾掛入乙個程序控制塊。單處理器系統中程序控制塊分成乙個正在執行程序的程序控制塊 就緒程序的程序控制塊組織成的就緒佇列和等待程序的程序控制塊組成的等待佇列。由於實驗模擬...

RR時間片輪轉法排程C語言實現

什麼是rr?rr round robin 實現思想 在fcfs的基礎上,加入時間片的概念,從第乙個到達的程序開始,cpu分配其乙個時間片的長度,第乙個程序放到其餘任務後面,然後給第二個程序分配乙個時間片,第二個程序放到其餘任務後面,依次類推,直到所有程序完成。假如程序結束了,時間片沒用完,則 剩餘時...

時間片輪轉演算法

include include include include include include includeusing namespace std 初始化程序池 初始化就緒佇列 rr演算法 struct pcb pcb string name,int atime,int rtime,char st...