ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:143.54KB ,
资源ID:14625056      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14625056.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(武汉轻工大学实验一进程调度Word格式文档下载.doc)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

武汉轻工大学实验一进程调度Word格式文档下载.doc

1、有n个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过t个时间片系统释放资源,唤醒处于阻塞队列队首的进程。程序要求如下:1)输出系统中进程的调度次序;2)计算CPU利用率。3、实验环境Windows操作系统、VC+6.0C语言4、 设计思想:unuse_cpu+x+x=tblocked队首进程入ready队列队尾;x=0beginuse_cpu=0unuse_cpu=0ready队列不空或blocked队列不空ready队列不空p 取ready队首元素p-PCB.state置“运行”输出p-PCB.namePCB.c

2、pu_time-use_cpu+PCB.cpu_timep入ready队列队尾释放pend /*use_cpu中记录CPU 运行时间 /*unuse_cpu中记录CPU空闲时间 否 是是 否 是 否 是 是5、 源程序#includestdlib.hstruct PCB_type char name ; /进程名 int state ; /进程状态 int cpu_time ;/运行需要的CPU时间(需运行的时间片个数);struct QueueNode struct PCB_type PCB; struct QueueNode *next;struct QueueNode*ready_hea

3、d=NULL, /就绪队列队首指针*ready_tail=NULL , /就绪队列队尾指针*blocked_head=NULL, /阻塞队列队首指针*blocked_tail=NULL; /阻塞队列队尾指针 int inuse_cpu,outuse_cpu; void start_state() /读入假设的数据,设置系统初始状态int n,m,i;struct QueueNode *p,*q;printf(假设处于就绪状态的进程数n为: n);scanf(%d,&n);假设处于阻塞状态的进程数m为:m);p=(struct QueueNode *)malloc(sizeof(struct Q

4、ueueNode); p-next=NULL;ready_head=ready_tail=p;for(i=1;iPCB.state=1;printf(请输入就绪程序%d的名称和CPU时间:,i);scanf(%d%dPCB.name,&PCB.cpu_time);ready_tail-next=p;ready_tail=p;q=(struct QueueNode *)malloc(sizeof(struct QueueNode);q-blocked_head=blocked_tail=q;=m;q=(struct QueueNode *)malloc(sizeof(struct QueueNo

5、de);q-PCB.state=0;请输入阻塞进程%d的名称和CPU时间:q-blocked_tail-next=q;blocked_tail=q;n当前处于就绪状态的进程有:np=ready_head-next;i=1;while(p)进程%d的名称和状态和CPU时间:%5d%5d%5dn,i,p-PCB.name,p-PCB.state,p-p=p-i+;void dispath() /模拟调度int a=0,t;inuse_cpu=0;outuse_cpu=0;请输入时间片t:t);开始调度:while(ready_head!=ready_tail|blocked_head!=block

6、ed_tail)struct QueueNode *p,*q;if(ready_head!=ready_tail)p=ready_head-ready_head-next=p-p-if(ready_head-next=NULL)ready_tail=ready_head;PCB.state=2;printf(t进程%d调度中,p-PCB.name);inuse_cpu+;a+;PCB.cpu_time-;if(p-PCB.cpu_time)ready_tail-ready_tail=p;elseprintf(t进程%d完成调度! free(p);elseoutuse_cpu+;t空闲一个时间片

7、if(a=t&blocked_head!q=blocked_head-blocked_head-next=q-q-if(blocked_head-blocked_tail=blocked_head;ready_tail-ready_tail=q;a=0;void calculate() /计算CPU利用率nCPU的利用率为:%.2fn,(float)inuse_cpu/(inuse_cpu+outuse_cpu);void main()start_state();dispath(); calculate();6、 实例运行结果7、 总结该实验利用进程调度中的优先级算法调度进程,开始给每一个进程设定一个优先级数,对于优先级高的进程先调度,优先级低的进程后调度,在调度一个进程时,其他进程将处于就绪态,而正在被调度的进程应处于运行态。一开始在做这个实验的时候,我感觉大脑一片空白,不知道该从哪里动笔。后来根据书上的内容和从网上下载的资料,我慢慢地了解了大致的流程。通过这次实验,首先加深了我对进程调度方法和功能的认识,其次让我更加深刻地理解了操作系统中进程调度中优先级调度的基本原理。优先级调度算法只是进程调度算法的一种,我们还应依照书本去学习进程调度的其它算法,以便更好地了解进程调度。

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

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