時間片輪轉法課程設計(附測試程序)

前言

以下是本學期操作系統課程設計的題目,寫這篇博客爲了記錄通過了緊張的向老師答辯,分享此實驗編譯後的程序,幫助其他人學習時間片輪轉法,避免陷入理解的誤區。本人自我感覺輸出界面和相關信息已經很簡明,功能相對齊全,可以用於對自己寫的算法進行測試!有什麼建議,歡迎留言。。

正文

一、實驗題目
設計一個按照時間片輪轉法實現處理機調度的程序
二、實驗內容
(1) 假設系統有n個進程,每個進程用一個進程控制塊(PCB)來代表。進程控制塊的格式如下表所示,且參數意義也相同。

PCB
進程名
鏈接指針
到達時間
估計運行時間
進程狀態

(2) 按照進程到達的先後順序排成一個循環隊列,設一個隊首指針指向第一個到達進程的首址。另外再設一個當前運行進程指針,指向當前正運行的進程。
(3) 執行處理機調度時,首先選擇隊首的第一個進程運行。
(4) 由於本題目是模擬實驗,所以對被選中的進程並不實際啓動運行,而只是執行如下操作:1)估計運行時間減1;
2)輸出當前運行進程的名字。
用這兩個操作來模擬進程的一次運行。
(5) 進程運行一次後,以後的調度則將當前指針依次下移一個位置,指向下一個進程,即調整當前運行指針指向該進程的鏈接指針所指進程,以指示應運行進程,同時還應判斷該進程的剩餘運行時間是否爲0,若不爲0,則等待下一輪的運行,若該進程的剩餘運行時間爲0,則將該進程的狀態置爲完成狀態“ C”,並退出循環隊列。
(6) 若就緒隊列不爲空,則重複上述的步驟(4)和(5)直到所有進程都運行完爲止。
(7) 在所設計的調度程序中,應包含顯示或打印語句,以便顯示或打印每次選中進程的名稱及運行一次後隊列的變化情況。
三、算法流程圖
在這裏插入圖片描述

重點!!!

測試代碼:時間片輪轉法測試程序.exe

  • 程序截圖
    在這裏插入圖片描述在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

說明

  • 排序算法:此程序對PCB排序採用的是冒泡排序算法,因爲它是穩定的排序算法(排序前後,大小相等的元素的相對位置保持不變)。
  • 進程隊列:無頭結點的循環隊列QLink
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章