国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

操作系統(tǒng):實(shí)驗(yàn)一:進(jìn)程調(diào)度實(shí)驗(yàn)——最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法以及先來(lái)先服務(wù)算法 源碼

這篇具有很好參考價(jià)值的文章主要介紹了操作系統(tǒng):實(shí)驗(yàn)一:進(jìn)程調(diào)度實(shí)驗(yàn)——最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法以及先來(lái)先服務(wù)算法 源碼。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、實(shí)驗(yàn)?zāi)康?/strong>

(1)了解進(jìn)程實(shí)體PCB結(jié)構(gòu);

(2)理解進(jìn)程不同狀態(tài)和狀態(tài)之間的轉(zhuǎn)換過(guò)程;

(3)掌握優(yōu)先數(shù)的調(diào)度算法和先來(lái)先服務(wù)算法;

二、實(shí)驗(yàn)內(nèi)容與要求

設(shè)計(jì)一個(gè)有 N個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序

四、實(shí)驗(yàn)步驟

(1)實(shí)驗(yàn)設(shè)計(jì)

進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法(即把處理機(jī)分配給優(yōu)先數(shù)最高的進(jìn)程)和先來(lái)先服務(wù)算法。每個(gè)進(jìn)程有一個(gè)進(jìn)程控制塊( PCB)表示。

進(jìn)程控制塊可以包含如下信息:進(jìn)程名、優(yōu)先數(shù)、到達(dá)時(shí)間、需要運(yùn)行時(shí)間、已用CPU時(shí)間、進(jìn)程狀態(tài)等等。

進(jìn)程的優(yōu)先數(shù)及需要的運(yùn)行時(shí)間可以事先人為地指定(也可以由隨機(jī)數(shù)產(chǎn)生)。

進(jìn)程的到達(dá)時(shí)間為進(jìn)程輸入的時(shí)間。進(jìn)程的運(yùn)行時(shí)間以時(shí)間片為單位進(jìn)行計(jì)算。每個(gè)進(jìn)程的狀態(tài)可以是就緒 W(Wait)、運(yùn)行R(Run)、或完成F(Finish)三種狀態(tài)之一。

就緒進(jìn)程獲得 CPU后都只能運(yùn)行一個(gè)時(shí)間片。用已占用CPU時(shí)間加1來(lái)表示。如果運(yùn)行一個(gè)時(shí)間片后,進(jìn)程的已占用 CPU時(shí)間已達(dá)到所需要的運(yùn)行時(shí)間,則撤消該進(jìn)程,如果運(yùn)行一個(gè)時(shí)間片后進(jìn)程的已占用CPU時(shí)間還未達(dá)所需要的運(yùn)行時(shí)間,也就是進(jìn)程還需要繼續(xù)運(yùn)行,此時(shí)應(yīng)將進(jìn)程的優(yōu)先數(shù)減1(即降低一級(jí)),然后把它插入就緒隊(duì)列等待CPU。每進(jìn)行一次調(diào)度程序都打印一次運(yùn)行進(jìn)程、就緒隊(duì)列、以及各個(gè)進(jìn)程的 PCB,以便進(jìn)行檢查。   

重復(fù)以上過(guò)程,直到所要進(jìn)程都完成為止。

設(shè)計(jì)一個(gè)有 n個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序。 進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度,學(xué)校課程,算法,windows

#include<bits/stdc++.h>
using namespace std;
#define getpch(type) (type *)malloc(sizeof(type))
int t = 0;
struct pcb {
    char name[10];  //進(jìn)程名
    char state;     //W/R/F
    int super;      //優(yōu)先數(shù)
    int ntime;      //總運(yùn)行時(shí)間
    int rtime;      //已耗時(shí)
    int arrive_time;  //到達(dá)時(shí)間
    struct pcb* link;
} *ready = NULL, * p;
typedef struct pcb PCB;
int suanfa;
void sort() { //優(yōu)先集排序
    p->link = NULL;
    if (ready == NULL)
        ready = p;
    else {//分saunfa =1和saunfa =2兩種情況 既分算法為
        //采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法和先來(lái)先服務(wù)算法。
        if (p->super > ready->super&&suanfa==1) {
            p->link = ready;
            ready = p;
        }
        else {
            PCB* f = ready;
            while (1) {
                if (f->link == NULL) {
                    f->link = p;
                    return;
                }
                else if (p->super > f->link->super && suanfa == 1) {
                    PCB* s = f->link;
                    f->link = p;
                    p->link = s;
                    return;
                }
                else if (p->arrive_time < f->link->arrive_time&&suanfa == 2) {
                    PCB* s = f->link;
                    f->link = p;
                    p->link = s;
                    return;
                }
                f = f->link;
            }
        }
    }
}

void input() { //輸入
    srand((unsigned)time(NULL));
    int n;
    cout << "請(qǐng)輸入進(jìn)程數(shù)目:";
    cin >> n;
    int time = 1;
    for (int i = 0; i < n; i++) {
        p = getpch(PCB);
        cout << "請(qǐng)分別輸入進(jìn)程名、進(jìn)程優(yōu)先數(shù)、運(yùn)行時(shí)間:";
        cin >> p->name >> p->super >> p->ntime;
        p->state = 'W';
        p->rtime = 0;
        p->arrive_time = time;
        time++;
        sort();
    }
}

void disp(PCB* pr) { //輸出模板
    cout << "進(jìn)程名:" << pr->name << "  ";
    cout << "進(jìn)程狀態(tài):" << pr->state << "  ";
    cout << "進(jìn)程優(yōu)先數(shù):" << pr->super << "  ";
    cout << "進(jìn)程總運(yùn)行時(shí)間:" << pr->ntime << "  ";
    cout << "進(jìn)程到達(dá)時(shí)間:" << pr->arrive_time << "  ";
    cout << "進(jìn)程已經(jīng)耗時(shí):" << pr->rtime << endl;
    
}

void check() { //輸出
    cout << "-------------------" << " 正在運(yùn)行中的進(jìn)程 " << "------------------------------" << endl;
    disp(p);
    cout << "-------------------" << " 就緒隊(duì)列中的進(jìn)程 " << "------------------------------" << endl;
    PCB* pr = ready;
    while (pr != NULL) {
        disp(pr);
        pr = pr->link;
    }
}

void destroy() { /*建立進(jìn)程撤消函數(shù)*/
    cout << "進(jìn)程" << p->name << "運(yùn)行完成,耗時(shí)" << p->ntime << "個(gè)CPU時(shí)間片" << endl;
    free(p);
    p = NULL;
}

void PSAandFCFS() { //主要運(yùn)行函數(shù)
    p = ready;
    ready = ready->link;
    t++;
    cout << endl << "這是第" << t << "個(gè)CPU時(shí)間片" << endl;
    p->state = 'R';
    check();
    p->rtime++;
    if (p->ntime == p->rtime)
        destroy();
    else {
        p->super -= 1;
        p->state = 'W';
        sort();
    }
    if (p == NULL && ready == NULL)
        cout << "全部完成,共耗時(shí)" << t << "個(gè)CPU時(shí)間片" << endl;
}
int main() { /*主函數(shù)*/

    cout << "請(qǐng)輸入你想使用的算法  輸入 1 表示最高優(yōu)先級(jí)優(yōu)先算法  輸入 2 表示先來(lái)先服務(wù)算法"<<endl;
    cin >> suanfa;
    input();
    while (p != NULL || ready != NULL)
        PSAandFCFS();
    return 0;
}

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-740785.html

五、實(shí)驗(yàn)結(jié)果與分析

1.測(cè)試數(shù)據(jù)及結(jié)果

第一組數(shù)據(jù)????選擇算法2 既先來(lái)先運(yùn)行算法 4組數(shù)據(jù)

??設(shè)計(jì)一個(gè)有 n個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序。 進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度,學(xué)校課程,算法,windows

?

設(shè)計(jì)一個(gè)有 n個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序。 進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度,學(xué)校課程,算法,windows

?

第二組數(shù)據(jù)?采用算法1 既優(yōu)先級(jí)優(yōu)先算法 4組數(shù)據(jù)

1 4

a 1 1

b 3 2

c 2 3

d 10 1

設(shè)計(jì)一個(gè)有 n個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序。 進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度,學(xué)校課程,算法,windows

?

第三組數(shù)據(jù)??采用算法1 既優(yōu)先級(jí)優(yōu)先算法 3組數(shù)據(jù)

1 3

a 3 2

b 8 1

c 1 3

設(shè)計(jì)一個(gè)有 n個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序。 進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度,學(xué)校課程,算法,windows

?

到了這里,關(guān)于操作系統(tǒng):實(shí)驗(yàn)一:進(jìn)程調(diào)度實(shí)驗(yàn)——最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法以及先來(lái)先服務(wù)算法 源碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn):進(jìn)程調(diào)度實(shí)驗(yàn)

    計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn):進(jìn)程調(diào)度實(shí)驗(yàn)

    前言 二、實(shí)驗(yàn)?zāi)康?三、實(shí)驗(yàn)要求 四、實(shí)驗(yàn)原理 五、實(shí)驗(yàn)過(guò)程 六、代碼詳解 總結(jié) 計(jì)算機(jī)操作系統(tǒng)是管理計(jì)算機(jī)硬件和軟件資源的核心軟件,它負(fù)責(zé)為用戶提供一個(gè)友好、高效、安全的使用環(huán)境。進(jìn)程調(diào)度是操作系統(tǒng)的一個(gè)重要功能,它決定了進(jìn)程在處理器上的執(zhí)行順序和時(shí)

    2024年02月07日
    瀏覽(23)
  • 【操作系統(tǒng)】基于動(dòng)態(tài)優(yōu)先級(jí)的進(jìn)程調(diào)度算法-C語(yǔ)言實(shí)現(xiàn)(有代碼)

    【操作系統(tǒng)】基于動(dòng)態(tài)優(yōu)先級(jí)的進(jìn)程調(diào)度算法-C語(yǔ)言實(shí)現(xiàn)(有代碼)

    本文章將會(huì)介紹如何編寫動(dòng)態(tài)優(yōu)先級(jí)的進(jìn)程調(diào)度算法,并使用從語(yǔ)言實(shí)現(xiàn)。 一、什么是動(dòng)態(tài)優(yōu)先級(jí)的調(diào)度算法 ? ? ? ?進(jìn)程運(yùn)行一個(gè)時(shí)間片后,如果進(jìn)程已占用 CPU時(shí)間已達(dá)到所需要的運(yùn)行時(shí)間,則撤消該進(jìn)程;如果運(yùn)行一個(gè)時(shí)間片后進(jìn)程的已占用CPU時(shí)間還未達(dá)所需要的運(yùn)行

    2024年02月06日
    瀏覽(29)
  • 操作系統(tǒng)實(shí)驗(yàn)—進(jìn)程調(diào)度算法(java)

    操作系統(tǒng)實(shí)驗(yàn)—進(jìn)程調(diào)度算法(java)

    目錄 文章目錄 前言 一、實(shí)驗(yàn)原理 二、實(shí)驗(yàn)步驟 1.創(chuàng)建PCB類 2.創(chuàng)建創(chuàng)建類 3.設(shè)計(jì)主窗口類 4.調(diào)度界面函數(shù) 5.算法類及其調(diào)度算法通用函數(shù) 6.進(jìn)程調(diào)度算法函數(shù) 總結(jié) 操作系統(tǒng)實(shí)驗(yàn)1:進(jìn)程調(diào)度算法,步驟3、4在一個(gè)類中,步驟5、6在一個(gè)類中。 (1)先到先服務(wù)調(diào)度算法:按照進(jìn)程提

    2024年02月04日
    瀏覽(16)
  • 計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)-進(jìn)程調(diào)度模擬算法

    進(jìn)程調(diào)度是處理機(jī)管理的核心內(nèi)容。本實(shí)驗(yàn)要求用高級(jí)語(yǔ)言編寫模擬進(jìn)程調(diào)度程序,以 便加深理解有關(guān)進(jìn)程控制快、進(jìn)程隊(duì)列等概念,并體會(huì)和了解優(yōu)先數(shù)算法和時(shí)間片輪轉(zhuǎn)算法 的具體實(shí)施辦法。 1.設(shè)計(jì)進(jìn)程控制塊 PCB 的結(jié)構(gòu),通常應(yīng)包括如下信息: 進(jìn)程名、進(jìn)程優(yōu)先數(shù)(

    2024年02月05日
    瀏覽(89)
  • 操作系統(tǒng)實(shí)驗(yàn)一模擬優(yōu)先級(jí)調(diào)度算法(C語(yǔ)言實(shí)現(xiàn)附帶詳細(xì)注釋)

    操作系統(tǒng)實(shí)驗(yàn)一模擬優(yōu)先級(jí)調(diào)度算法(C語(yǔ)言實(shí)現(xiàn)附帶詳細(xì)注釋)

    文章目錄 優(yōu)先級(jí)調(diào)度算法介紹 兩種情況 調(diào)度算法分類 優(yōu)先級(jí)分類 實(shí)驗(yàn)內(nèi)容與要求 實(shí)驗(yàn)步驟 調(diào)度算法總流程圖 ?優(yōu)先級(jí)調(diào)度算法流程圖 ?實(shí)驗(yàn)代碼 實(shí)驗(yàn)結(jié)果 ????????優(yōu)先級(jí)調(diào)度算法既可以用于作業(yè)調(diào)度,又可以用于進(jìn)程調(diào)度。該算法中的優(yōu)先級(jí)用于描述作業(yè)或者進(jìn)程的

    2024年02月01日
    瀏覽(23)
  • 操作系統(tǒng)實(shí)驗(yàn)3.3 版本1.2內(nèi)核的進(jìn)程調(diào)度過(guò)程分析 && 兩個(gè)進(jìn)程的嚴(yán)格交替輸出

    操作系統(tǒng)實(shí)驗(yàn)3.3 版本1.2內(nèi)核的進(jìn)程調(diào)度過(guò)程分析 && 兩個(gè)進(jìn)程的嚴(yán)格交替輸出

    1. mygdb 側(cè)調(diào)試命令: 2. 第三關(guān).txt : 1.概述:0號(hào)進(jìn)程和1號(hào)進(jìn)程間進(jìn)程調(diào)度過(guò)程 (1)從 system_call 函數(shù)進(jìn)入相應(yīng)的系統(tǒng)調(diào)用函數(shù) 在兩個(gè)進(jìn)程運(yùn)行 alarm 和 pause 函數(shù)時(shí),到執(zhí)行 alarm 和 pause 系統(tǒng)調(diào)用時(shí),都會(huì)進(jìn)入到system_call函數(shù),在下圖第一處劃線位置根據(jù)系統(tǒng)調(diào)用號(hào),調(diào)用相應(yīng)的

    2024年02月11日
    瀏覽(133)
  • 實(shí)現(xiàn)時(shí)間片輪轉(zhuǎn)算法(模擬)計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)5:進(jìn)程調(diào)度算法模擬-RR

    實(shí)現(xiàn)時(shí)間片輪轉(zhuǎn)算法(模擬)計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)5:進(jìn)程調(diào)度算法模擬-RR

    實(shí)驗(yàn)內(nèi)容: 實(shí)現(xiàn)時(shí)間片輪轉(zhuǎn)算法(模擬),要求如下: 1、用到的數(shù)據(jù)結(jié)構(gòu) /* PCB / struct PCB { pid_t pid;//進(jìn)程 PID int state; //狀態(tài)信息,1 表示正在運(yùn)行,0 表示暫停,-1 表示結(jié)束 unsigned long runned_time;//已運(yùn)行時(shí)間 unsigned long need_running_time;//剩余運(yùn)行時(shí)間 }; / PCB集合 */ struct PCB pcb[TOT

    2024年02月04日
    瀏覽(21)
  • 操作系統(tǒng)調(diào)度算法--高響應(yīng)比優(yōu)先調(diào)度算法解析

    操作系統(tǒng)調(diào)度算法--高響應(yīng)比優(yōu)先調(diào)度算法解析

    ? 高響應(yīng)比優(yōu)先調(diào)度算法(Highest Response Radio Next,HRRN)是一種對(duì)CPU中央控制器響應(yīng)比的分配的算法。HRRN是介于FCFS(先來(lái)先服務(wù)算法)與SJF(短作業(yè)優(yōu)先算法)之間的折中算法。FCFS算法所考慮的只是作業(yè)等待時(shí)間,而忽視了作業(yè)的運(yùn)行時(shí)間(類似我們?cè)谏钪信抨?duì)買東西)。

    2023年04月18日
    瀏覽(18)
  • 操作系統(tǒng)(一):進(jìn)程狀態(tài)與進(jìn)程調(diào)度

    操作系統(tǒng)(一):進(jìn)程狀態(tài)與進(jìn)程調(diào)度

    ????????操作系統(tǒng)作為計(jì)算機(jī)基礎(chǔ)的四大件,系統(tǒng)學(xué)習(xí)無(wú)疑是十分重要的。在這個(gè)系列的文章中,荔枝會(huì)結(jié)合操作系統(tǒng)的知識(shí)進(jìn)行歸納梳理,總結(jié)輸出博文!下面這篇文章主要介紹的是進(jìn)程狀態(tài)和調(diào)度,重點(diǎn)是幾種調(diào)度算法的理解和掌握,希望對(duì)正在學(xué)習(xí)的小伙伴有幫助

    2024年02月05日
    瀏覽(20)
  • 操作系統(tǒng)課程設(shè)計(jì)(作業(yè)調(diào)度、內(nèi)存管理、進(jìn)程調(diào)度、進(jìn)程阻塞等)

    操作系統(tǒng)課程設(shè)計(jì)(作業(yè)調(diào)度、內(nèi)存管理、進(jìn)程調(diào)度、進(jìn)程阻塞等)

    資源下載: https://download.csdn.net/download/fufuyfu/85811450 操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)配置的基本軟件之一。它在整個(gè)計(jì)算機(jī)系統(tǒng)軟件中占有中心地位。其作用是對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行統(tǒng)一的調(diào)度和管理,提供各種強(qiáng)有力的系統(tǒng)服務(wù),為用戶創(chuàng)造既靈活又方便的使用環(huán)境。本課程是計(jì)算機(jī)及

    2024年02月03日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包