資源簡介
比較詳細的源代碼,經過編譯無措,大家看看吧

代碼片段和文件信息
#include?“stdio.h“?
#include??
#include??
#define?getpch(type)?(type*)malloc(sizeof(type))?
#define?NULL?0?
struct?pcb?{?/*?定義進程控制塊PCB?*/?
char?name[10];?
char?state;?
int?super;?
int?ntime;?
int?rtime;?
struct?pcb*?link;?
}*ready=NULL*p;?
typedef?struct?pcb?PCB;?
??
??
sort()?/*?建立對進程進行優先級排列函數*/?
{?
PCB?*first?*second;?
int?insert=0;?
if((ready==NULL)||((p->super)>(ready->super)))?/*優先級最大者插入隊首*/?
{?
p->link=ready;?
ready=p;?
}?
else?/*?進程比較優先級插入適當的位置中*/?
{?
first=ready;?
second=first->link;?
while(second!=NULL)?
{?
if((p->super)>(second->super))?/*若插入進程比當前進程優先數大*/?
{?/*插入到當前進程前面*/?
p->link=second;?
first->link=p;?
second=NULL;?
insert=1;?
}?
else?/*?插入進程優先數最低則插入到隊尾*/?
{?
first=first->link;?
second=second->link;?
}?
}?
if(insert==0)?first->link=p;?
}?
}?
input()?/*?建立進程控制塊函數*/?
{?
int?inum;?
clrscr();?/*清屏*/?
printf(“\n?請輸入進程號?“);?
scanf(“%d“&num);?
for(i=0;i
{?
printf(“\n?進程號No.%d:\n“i);?
p=getpch(PCB);?
printf(“\n?輸入進程名:“);?
scanf(“%s“p->name);?
printf(“\n?輸入進程優先數:“);?
scanf(“%d“&p->super);?
printf(“\n?輸入進程運行時間:“);?
scanf(“%d“&p->ntime);?
printf(“\n“);?
p->rtime=0;p->state=‘w‘;?
p->link=NULL;?
sort();?/*?調用sort函數*/?
}?
}?
int?space()?
{?
int?l=0;?PCB*?pr=ready;?
while(pr!=NULL)?
{?
l++;?
pr=pr->link;?
}?
return(l);?
}?
disp(PCB?*?pr)?/*建立進程顯示函數用于顯示當前進程*/?
{?
printf(“\n?qname?\t?state?\t?super?\t?ndtime?\t?runtime?\n“);?
printf(“|%s\t“pr->name);?
printf(“|%c\t“pr->state);?
printf(“|%d\t“pr->super);?
printf(“|%d\t“pr->ntime);?
printf(“|%d\t“pr->rtime);?
printf(“\n“);?
}?
check()?/*?建立進程查看函數?*/?
{?
PCB*?pr;?
printf(“\n?****?當前正在運行的進程是:%s“p->name);?/*顯示當前運行進程*/?
disp(p);?
pr=ready;?
printf(“\n?****當前就緒隊列狀態為:\n“);?/*顯示就緒隊列狀態*/?
while(pr!=NULL)?
{?
disp(pr);?
pr=pr->link;?
}?
}?
destroy()?/*建立進程撤消函數(進程運行結束撤消進程)*/?
{?
printf(“\n?進程?[%s]?已完成.\n“p->name);?
free(p);?
}?
running()?/*?建立進程就緒函數(進程運行時間到置就緒狀態*/?
{?
(p->rtime)++;?
if(p->rtime==p->ntime)?
destroy();?/*?調用destroy函數*/?
else?
{?
(p->super)--;?
p->state=‘w‘;?
sort();?/*調用sort函數*/?
}?
}?
main()?/*主函數*/?
{?
int?lenh=0;?
char?ch;?
input();?
len=space();?
while((len!=0)&&(ready!=NULL))?
{?
ch=getchar();?
h++;?
printf(“\n?The?execute?number:%d?\n“h);?
p=ready;?
ready=p->link;?
p->link=NULL;?
p->state=‘R‘;?
check();?
running();?
printf(“\n?按任一鍵繼續......“);?
ch=getchar();?
}?
printf(“\n\n?進程已經完成.\n“);?
ch=getchar();?
}?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3027??2009-06-30?10:34??操作系統實訓\dd.cpp
?????文件???????7266??2007-07-01?09:41??操作系統實訓\Debug\1.obj
?????文件?????548953??2009-06-30?08:34??操作系統實訓\Debug\Cpp1.exe
?????文件?????256660??2009-06-30?08:34??操作系統實訓\Debug\Cpp1.obj
?????文件????1098752??2009-06-30?08:34??操作系統實訓\Debug\Cpp1.pdb
?????文件??????10200??2009-07-01?10:11??操作系統實訓\Debug\duan.obj
?????文件?????274492??2009-07-02?09:20??操作系統實訓\Debug\main.exe
?????文件?????330904??2009-07-02?09:20??操作系統實訓\Debug\main.ilk
?????文件?????106935??2009-07-02?09:20??操作系統實訓\Debug\main.obj
?????文件????3723244??2009-07-02?09:20??操作系統實訓\Debug\main.pch
?????文件?????541696??2009-07-02?09:20??操作系統實訓\Debug\main.pdb
?????文件?????156672??2009-07-02?09:21??操作系統實訓\Debug\vc60.idb
?????文件??????86016??2009-07-02?09:20??操作系統實訓\Debug\vc60.pdb
?????文件?????208993??2009-06-29?21:43??操作系統實訓\Debug\磁盤管理程序.exe
?????文件??????22430??2009-06-29?21:42??操作系統實訓\Debug\磁盤管理程序.obj
?????文件?????484352??2009-06-29?21:43??操作系統實訓\Debug\磁盤管理程序.pdb
?????文件?????187056??2009-07-02?08:57??操作系統實訓\Debug\銀行家算法.pch
?????文件???????3357??2009-07-01?14:47??操作系統實訓\duan.cpp
?????文件???????2480??2009-07-01?14:52??操作系統實訓\fcfs.cpp
?????文件???????7784??2009-07-01?15:17??操作系統實訓\hpf.cpp
?????文件???????2993??2009-07-02?08:43??操作系統實訓\main.cpp
?????文件???????3377??2009-07-02?09:19??操作系統實訓\main.dsp
?????文件????????516??2009-07-02?09:21??操作系統實訓\main.dsw
?????文件??????66560??2009-07-02?09:21??操作系統實訓\main.ncb
?????文件??????48640??2009-07-02?09:21??操作系統實訓\main.opt
?????文件????????242??2009-07-02?09:20??操作系統實訓\main.plg
?????文件???????4766??2009-07-02?09:02??操作系統實訓\pc.cpp
?????文件???????3780??2009-07-02?09:15??操作系統實訓\存儲管理.cpp
?????文件???????8959??2009-06-29?22:03??操作系統實訓\磁盤管理程序.cpp
?????文件???????5380??2009-07-02?09:20??操作系統實訓\銀行家算法.cpp
............此處省略10個文件信息
- 上一篇:Talend介紹
- 下一篇:079登陸器源碼.rar
評論
共有 條評論