91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何動態模擬操作系統進程調度算法

發布時間:2021-12-01 13:36:56 來源:億速云 閱讀:271 作者:iii 欄目:開發技術

本篇內容主要講解“Java如何動態模擬操作系統進程調度算法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java如何動態模擬操作系統進程調度算法”吧!

實驗目的

通過對進程調度算法的模擬,進一步理解進程的基本概念,加深對進程運行狀態和進程調度過程、調度算法的理解。

設備與環境

硬件設備:PC機一臺

軟件環境:安裝Windows操作系統,并安裝相關的程序開發環境,如C \C++\Java 等編程語言環境。

實驗內容

實驗采用了java語言編程模擬N個進程采用動態高優先權優先進程調度算法。該算法就是按照優先權的大小運行進程,如果一個時間片內未運行完,則將優先權數減3后再插入到鏈表中按priority的順序進行排序找到最大的priority作為下一個運行進程且在就緒隊列里面的進程priority會加1。

主模塊:

Java如何動態模擬操作系統進程調度算法

動態priority排序模塊:

用來保證頭部永遠最大

Java如何動態模擬操作系統進程調度算法

到達時間進入就緒狀態模塊:

Java如何動態模擬操作系統進程調度算法

計算周轉時間和帶權周轉時間:

Java如何動態模擬操作系統進程調度算法

實驗結果及分析

輸入的信息

初始權值都為100,needtime為還需要的時間

進程 到達時刻 服務時間

A03

B26

C44

D65

E82

Java如何動態模擬操作系統進程調度算法

Java如何動態模擬操作系統進程調度算法

以A為例:

Java如何動態模擬操作系統進程調度算法

最后結束時:

Java如何動態模擬操作系統進程調度算法

部分代碼展示 

//創建結構
class PCB{
    String ID;
    int priority=-1;
    int cputime;//服務的時間
    int needtime;//進程還需的時間
    String state="wait";
    int arrivetime;
    PCB next;
    public PCB(String ID,int priority,int cputime,int arrivetime){
        this.ID=ID;
        this.priority=priority;
        this.cputime=cputime;
        this.arrivetime=arrivetime;
    }
}
判斷是否到達,進程進入時間
for(int i=0;i<arr.size();i++){
                if(h==arr.get(i).arrivetime){
                    Dynamic_priority.sort(arr.get(i));
                    arr.remove(i);}}
//將進程轉為就緒態并排序
public static void sort(PCB pcb){
PCB tmp=null;
        if(ready==null){//當頭結點為空
            ready=pcb;
            tail=pcb;}
       else {if(pcb.priority>ready.priority){//如果這個結點priority大于頭priority
               pcb.next=ready;
               ready=pcb;}
           else {
               boolean m=false;
               tmp=ready;//q
               while (m==false){
                   if(tail.priority>=pcb.priority){//插入尾端
                       tail.next=pcb;
                       tail=pcb;
                       pcb.next=null;
                       m=true; }
                   else {
                       if(tmp.priority>=pcb.priority&&pcb.priority>tail.priority){//逐漸遍歷插到tmp前
                           pcb.next=tmp.next;
                           tmp.next=pcb;
                           m=true;
                       } else { tmp=tmp.next;

到此,相信大家對“Java如何動態模擬操作系統進程調度算法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

毕节市| 张家港市| 嵊州市| 兰考县| 同江市| 翁牛特旗| 澄迈县| 吴江市| 沙田区| 玉树县| 安化县| 本溪市| 绵竹市| 濉溪县| 文昌市| 顺平县| 青岛市| 连南| 永定县| 内江市| 潞城市| 绥芬河市| 新泰市| 比如县| 邛崃市| 独山县| 民勤县| 黔西| 临夏市| 萨迦县| 临沧市| 周口市| 长汀县| 武清区| 武山县| 平安县| 砚山县| 德清县| 麦盖提县| 广汉市| 乡宁县|