java模擬進程調度之模擬搶佔試多級輪轉調度(附帶可視化解決方案)

1.簡介一下多級輪轉調度git

  多級輪轉調度是一種提升調度效率的解決方案,簡單講就是講要執行的程分紅幾個優先級的列隊即例如三個,第一個列隊分10個時間片,第二個列隊分配1000個時間片,第三個列隊表示1000個時間片,每個進程在調度池中首先要進入如第一個列隊,並執行10個10間片,完事以後,會放入第二個列隊,當第一個列隊沒有進程以後,在執行第二個列隊中的進程,不出意外的話,就以此類推.那麼會出現什麼意外呢.主要有兩個,第一搶佔,第二程序執行完畢.github

2.由小到大的構建進程的模擬算法

  2.1進程:進程

    對於進程類,也就是進程控制塊,最主要的有兩件事第一,在一個時間片裏面要作哪些事,第二控制進程處理的進度,;源碼

  2.2進程列隊:it

    1,要控制肯定當前處理的列隊位置,效率

    2,控制進程完成後的列隊轉移可視化

    3,處理新進入的進程程序

    4.控制獲取下一個要執行的進程方法

  2.3進程時間軸

    用於存儲進程開始的時間和進程要持續的時間

    封裝下一個要出來的

    插入進程就至關於在時間軸上插入

  2.4調度機

    根據調度算法對進程進行調度,在此若是上面的類都完成了,這樣調度算法就很簡單了,幾句話就簡單了

3,可視化界面解決方案:

  在每個時間片結束後,能夠根據每個進程的狀態畫出一張圖表之類的,事實更新就能夠動態展現啦

4.幹說不練假把式,不如直接給代碼:

  https://github.com/Ericgoodboy/learnJava,源碼在此src中TestThread包中我隱藏了AmazingCanves中關於繪圖的方法你們的家能夠自行發揮

相關文章
相關標籤/搜索