第一范文网 - 专业文章范例文档资料分享平台

操作系统实验指导书

来源:用户分享 时间:2025/8/3 1:14:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

}*ready=NULL,*p。 typedef struct 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 i,num。

//clrscr(>。 /*清屏*/

printf(\请输入进程号?\。 scanf(\。 for(i=0。i {

printf(\进程号No.%d:\\n\。 p=getpch(PCB>。

printf(\输入进程名:\。 scanf(\。

printf(\输入进程优先数:\。 scanf(\。

printf(\输入进程运行时间:\。 scanf(\。 printf(\。

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(\。 printf(\。 printf(\。 printf(\。 printf(\。 printf(\。 printf(\。 }

check(> /* 建立进程查看函数 */ {

PCB* pr。

printf(\当前正在运行的进程是:%s\。 /*显示当前运行进程*/ disp(p>。 pr=ready。

printf(\当前就绪队列状态为:\\n\。 /*显示就绪队列状态*/

while(pr!=NULL> {

disp(pr>。 pr=pr->link。 } }

destroy(> /*建立进程撤消函数(进程运行结束,撤消进程>*/ {

printf(\进程 [%s] 已完成.\\n\。 free(p>。 }

running(> /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ {

(p->rtime>++。

if(p->rtime==p->ntime>

destroy(>。 /* 调用destroy函数*/ else {

(p->super>--。 p->state='w'。

sort(>。 /*调用sort函数*/ } }

main(> /*主函数*/ {

int len,h=0。 char ch。 input(>。 len=space(>。

while((len!=0>&&(ready!=NULL>> {

ch=getchar(>。 h++。

printf(\。 p=ready。

ready=p->link。 p->link=NULL。 p->state='R'。 check(>。 running(>。

printf(\按任一键继续......\。

ch=getchar(>。 }

printf(\进程已经完成.\\n\。 ch=getchar(>。 }

六、注意事项

因为程序长而且有难度,所以在设计实验时,要细心,多次调试。

七、思考题

实验三 批处理系统中作业调度

一、实验目的

模拟批处理系统中的作业调度,以加深对作业调度的概念的理解.

二、实验类型<含验证型、设计型或综合型)

设计型

三、实验仪器

一台安装Windows操作系统及C语言编译程序的pc机

四、实验原理 五、实验方法与步骤

#include #include

typedef struct jcb {

char name[4]。 /*作业名*/

int length。 /*作业长度,所需主存大小*/ int printer。 /*作业执行所需打印机的数量*/ int tape。 /*作业执行所需磁带机的数量*/ int runtime。 /*作业估计的执行时间*/

int waittime。 /*作业在输入井中的等待时间*/

struct jcb *next。/*指向下一个作业控制块的指针*/ }JCB。 /*作业控制块类型定义*/

JCB *head。 /*作业队列头指针定义*/ int tape,printer。 long memory。

shedule( > /*作业调度函数*/ {

搜索更多关于: 操作系统实验指导书 的文档
操作系统实验指导书.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4vf6h49st51cf865breu5a66i6tmb7010xr_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top