資源簡(jiǎn)介
廣工操作系統(tǒng)實(shí)驗(yàn),里面含有廣工OS實(shí)驗(yàn)要做的四個(gè)實(shí)驗(yàn),里面有源代碼、實(shí)驗(yàn)報(bào)告和可執(zhí)行文件。
代碼片段和文件信息
#include?“stdio.h“?
#include??
#include??
#define?getpch(type)?(type*)malloc(sizeof(type))?
#define?NULL?0?
struct?pcb?{?/*?定義進(jìn)程控制塊PCB?*/?
char?name[10];?
char?state;?
int?super;?
int?ntime;?
int?rtime;?
struct?pcb*?link;?
}*ready=NULL*p;?
typedef?struct?pcb?PCB;?
??
??
sort()?/*?建立對(duì)進(jìn)程進(jìn)行優(yōu)先級(jí)排列函數(shù)*/?
{?
PCB?*first?*second;?
int?insert=0;?
if((ready==NULL)||((p->super)>(ready->super)))?/*優(yōu)先級(jí)最大者插入隊(duì)首*/?
{?
p->link=ready;?
ready=p;?
}?
else?/*?進(jìn)程比較優(yōu)先級(jí)插入適當(dāng)?shù)奈恢弥?/?
{?
first=ready;?
second=first->link;?
while(second!=NULL)?
{?
if((p->super)>(second->super))?/*若插入進(jìn)程比當(dāng)前進(jìn)程優(yōu)先數(shù)大*/?
{?/*插入到當(dāng)前進(jìn)程前面*/?
p->link=second;?
first->link=p;?
second=NULL;?
insert=1;?
}?
else?/*?插入進(jìn)程優(yōu)先數(shù)最低則插入到隊(duì)尾*/?
{?
first=first->link;?
second=second->link;?
}?
}?
if(insert==0)?first->link=p;?
}?
}?
?
?
?
input()?/*?建立進(jìn)程控制塊函數(shù)*/?
{?
int?inum;?
printf(“\n?請(qǐng)輸入進(jìn)程號(hào)?“);?
scanf(“%d“&num);?
for(i=0;i
{?
printf(“\n?進(jìn)程號(hào)No.%d:\n“i);?
p=getpch(PCB);?
printf(“\n?輸入進(jìn)程名:“);?
scanf(“%s“p->name);?
printf(“\n?輸入進(jìn)程優(yōu)先數(shù):“);?
scanf(“%d“&p->super);?
printf(“\n?輸入進(jìn)程運(yùn)行時(shí)間:“);?
scanf(“%d“&p->ntime);?
printf(“\n“);?
p->rtime=0;p->state=‘w‘;?
p->link=NULL;?
sort();?/*?調(diào)用sort函數(shù)*/?
}?
}?
int?space()?
{?
int?l=0;?PCB*?pr=ready;?
while(pr!=NULL)?
{?
l++;?
pr=pr->link;?
}?
return(l);?
}?
disp(PCB?*?pr)?/*建立進(jìn)程顯示函數(shù)用于顯示當(dāng)前進(jìn)程*/?
{?
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()?/*?建立進(jìn)程查看函數(shù)?*/?
{?
PCB*?pr;?
printf(“\n?****?當(dāng)前正在運(yùn)行的進(jìn)程是:%s“p->name);?/*顯示當(dāng)前運(yùn)行進(jìn)程*/?
disp(p);?
pr=ready;?
printf(“\n?****當(dāng)前就緒隊(duì)列狀態(tài)為:\n“);?/*顯示就緒隊(duì)列狀態(tài)*/?
while(pr!=NULL)?
{?
disp(pr);?
pr=pr->link;?
}?
}?
destroy()?/*建立進(jìn)程撤消函數(shù)(進(jìn)程運(yùn)行結(jié)束撤消進(jìn)程)*/?
{?
printf(“\n?進(jìn)程?[%s]?已完成.\n“p->name);?
free(p);?
}?
running()?/*?建立進(jìn)程就緒函數(shù)(進(jìn)程運(yùn)行時(shí)間到置就緒狀態(tài)*/?
{?
(p->rtime)++;?
if(p->rtime==p->ntime)?
destroy();?/*?調(diào)用destroy函數(shù)*/?
else?
{?
(p->super)--;?
p->state=‘w‘;?
sort();?/*調(diào)用sort函數(shù)*/?
}?
}?
main()?/*主函數(shù)*/?
{?
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?按任一鍵繼續(xù)......“);?
ch=getchar();?
}?
printf(“\n\n?進(jìn)程已經(jīng)完成.\n“);?
ch=getchar();?
}?
?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????886784??2013-01-06?17:11??廣工操作系統(tǒng)實(shí)驗(yàn)\3110006323鄭耀恒_OS實(shí)驗(yàn)報(bào)告.doc
?????文件???????3024??2012-12-30?23:22??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)一的可執(zhí)行文件和源碼\實(shí)驗(yàn)1.1\shiyan1_1.cpp
?????文件?????184420??2012-12-30?23:22??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)一的可執(zhí)行文件和源碼\實(shí)驗(yàn)1.1\shiyan1_1.exe
?????文件???????2556??2012-12-30?23:09??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)一的可執(zhí)行文件和源碼\實(shí)驗(yàn)1.2\shiyan.cpp
?????文件?????184409??2012-12-30?23:09??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)一的可執(zhí)行文件和源碼\實(shí)驗(yàn)1.2\shiyan.exe
?????文件??????11406??2013-01-02?19:35??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)三的可執(zhí)行文件和源碼\shiyan3_1.cpp
?????文件?????270436??2013-01-02?19:35??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)三的可執(zhí)行文件和源碼\shiyan3_1.exe
?????文件???????7246??2013-01-02?14:58??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)二的可執(zhí)行文件和源碼\實(shí)驗(yàn)2.cpp
?????文件?????221280??2013-01-02?23:50??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)二的可執(zhí)行文件和源碼\實(shí)驗(yàn)2.exe
?????文件??????14724??2013-01-02?23:23??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)四的可執(zhí)行文件和源碼\shiyan4_1.cpp
?????文件?????278628??2013-01-02?23:23??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)四的可執(zhí)行文件和源碼\shiyan4_1.exe
?????目錄??????????0??2013-01-06?16:56??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)一的可執(zhí)行文件和源碼\實(shí)驗(yàn)1.1
?????目錄??????????0??2013-01-06?16:56??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)一的可執(zhí)行文件和源碼\實(shí)驗(yàn)1.2
?????目錄??????????0??2013-01-06?16:56??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)一的可執(zhí)行文件和源碼
?????目錄??????????0??2013-01-06?16:56??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)三的可執(zhí)行文件和源碼
?????目錄??????????0??2013-01-06?16:56??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)二的可執(zhí)行文件和源碼
?????目錄??????????0??2013-01-06?16:56??廣工操作系統(tǒng)實(shí)驗(yàn)\實(shí)驗(yàn)四的可執(zhí)行文件和源碼
?????目錄??????????0??2013-01-06?17:12??廣工操作系統(tǒng)實(shí)驗(yàn)
-----------?---------??----------?-----??----
??????????????2064913????????????????????18
評(píng)論
共有 條評(píng)論