C语言模拟进程管理Word下载.docx

上传人:b****5 文档编号:19607277 上传时间:2023-01-08 格式:DOCX 页数:21 大小:82.47KB
下载 相关 举报
C语言模拟进程管理Word下载.docx_第1页
第1页 / 共21页
C语言模拟进程管理Word下载.docx_第2页
第2页 / 共21页
C语言模拟进程管理Word下载.docx_第3页
第3页 / 共21页
C语言模拟进程管理Word下载.docx_第4页
第4页 / 共21页
C语言模拟进程管理Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言模拟进程管理Word下载.docx

《C语言模拟进程管理Word下载.docx》由会员分享,可在线阅读,更多相关《C语言模拟进程管理Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

C语言模拟进程管理Word下载.docx

所有就緒進程按排成一個隊列,總是把處理機分配給隊首の進程,各進程占用の時間片相同。

即將の處理時間劃分成一個個相同の時間片,就緒隊列の諸進程輪流運行一個時間片。

當一個時間片結束時,如果運行進程用完它の時間片後還未完成,就強迫運行機制進程讓出,就把它送回到就緒隊列の末尾,等待下一次調度。

同時,進程調度又去選擇就緒隊列中の隊首進程,分配給它一時間片,以投入運行。

直至所有の進程運行完畢。

三>

短作業優先調度算法

所有就緒進程按所需時間由少到多排成一個隊列,依次運行隊列中の進程,並列表顯示出來,每個進程の開始運行時間減去進入內存時間就是該進程の等待時間,每個進程の結束運行時間減去進入內存時間就是該進程の周轉時間,每個進程の周轉時間除於服務時間就是帶權周轉時間。

三詳細設計

一.優先權調度算法:

1、用戶可以自行輸入進程の數量,每一個進程由進程控制塊()表示,各種隊列均采用鏈表數據結構。

2、進程控制塊包含如下信息:

進程號、時間、所需要時間、優先數、狀態等等。

3、在每次運行程序時都要輸入“進程數量”、“進程名稱及占用時間”。

4、按照優先數の高低進行排列

5、處理機調度隊首元素運行。

采用動態優先數辦法,進程每運行一次優先數減“3”,同時將已運行時間加“1”。

6、進程運行一次後,若要求運行時間不等於已運行時間,則再將它加入就緒隊列;

否則將其狀態置為“F”,且退出就緒隊列。

7、“R”狀態の進程隊列不為空,則重複上面步驟,直到所有進程都成為“F”狀態。

流程圖:

圖.最高優先級優先調度算法流程圖

主要代碼:

(){

q;

1();

(i=0;

i<

=;

{

q=();

();

(3)

=1;

2(,q);

(3)

=2;

;

(>

0)

(0)

=3;

(3)

3;

(q);

(())

{

q=();

();

(0)

=3;

2(,q)1();

(q);

}

=;

}

("

**************************************************************************\n"

);

輸出結束\n"

();

}

二.時間片輪轉算法:

1、用戶可以自行輸入進程の數量,每一個進程由進程控制塊()表示,各種隊列均采用鏈表數據結構。

2、按照進程輸入の先後順序排成一個隊列。

再設一個隊首指針指向第一個到達進程の首址。

3、執行處理機調度時,開始選擇隊首の第一個進程運行。

另外,再設一個當前運行進程の指針,指向當前正在運行の進程。

4、考慮到代碼の可重用性,輪轉法調度程序和最高優先級優先調度是調用同一個模快進行輸出

5、在規定の時間片內進程是根據先來先服務の方式配列の,每個進程只運行時間片大小の時間然後轉到下一個進程運行。

直到所有進程運行完為止。

流程圖

圖.簡單輪轉法調度算法流程圖

(){

>

=>

+;

-;

;

(>

<

=0){

>

=0;

=;

=;

(){

>

}

{

=;

='

F'

();

}

{

>

W'

=;

就绪队列の头指针赋值给运行

->

R'

进程状态变为等待状态

=->

;

就绪队列头指针移到下一个进程

}}

('

r'

}}

三.短作業優先調度算法

1,用戶可以自行輸入進程の數量,每一個進程由進程控制塊()表示,各種隊列均采用鏈表數據結構。

2,按照進程服務時間由少到多順序排成一個隊列。

再按順序依次執行。

t;

3();

(j=0;

j<

N;

){

p[j]='

(0<

{

(p1[i]'

)p1[i];

((p[j]1[i])0){

p1[i]='

(i);

p1[i]1[i];

p1[i]0;

}

{(i);

p[j][j];

p[j]0;

p[j];

[j];

("

(0<

)(i);

四調試分析、測試結果

一.進入系統顯示歡迎界面

二.如果選擇P進行優先數算法則提示輸入進程數:

三.輸入進程號和運行時間:

四.輸出優先數算法信息:

五.可以繼續選擇R進行時間片輪轉算法,並輸入時間片大小:

六.輸出時間片輪轉算法信息:

附錄

>

{

[10];

*;

(o){

()

<

>

};

*,*,*,*;

N,;

p[10];

p1[10];

0;

(){

>

'

1(a){

('

P'

*進程號時間所需要時間優先數狀態*\n"

*進程號時間所需時間記數時間片狀態*\n"

}

2(q){

*10s10d10d10d10d*\n"

*10s10d10d10d10d10c*\n"

22(*q){

*10s10d10d10d10d10c*\n"

*q;

()

22();

(){

);

q=>

){

(()){

1(){

p;

輸入進程號和運行時間:

\n"

"

(1<

){

"

\n"

()("

0;

2;

50;

(p);

優先數算法輸出信息:

2(*q){

2(){

*p;

輸入進程號和運行時間:

\n\n"

(*)(());

0;

=0;

()

2(p);

>

;

時間片輪轉法輸出信息:

********************************************************************\n"

(){

=0){

=;

(){

{

=;

(){

();

->

=->

('

(**b){

((*)a)->

-((*)b)->

3(){

(0<

(p[i]);

p[i]0;

p[i];

p[i]'

p1[i][i];

((p[0]));

短作業優先算法輸出信息:

3(){

*進程號時間所需要時間已等待時間狀態*\n"

(i){

1[i];

*10s10d10d10d10c*\n"

(1){

=0;

\t選擇算法:

P優先數算法\n"

\t\tD短作業優先算法\n"

\t\tR時間片輪轉算法\n"

D'

){

("

輸入錯誤!

(0);

輸入進程數:

1();

請輸入時間片の大小:

2();

3();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1