实验一进程调_第1页
实验一进程调_第2页
实验一进程调_第3页
实验一进程调_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一进程调度实验一进程调度1.目的与要求通过这次实验 , 理解进程调度的过程 , 进一步掌握进程状态的转变、进程调度的策略 , 进一步体会多道程序并发执行的特点 , 并分析具体的调度算法的特点 , 掌握对系统性能的评价方法。2.实验内容阅读教材计算机操作系统第二章与第三章 , 掌握进程管理及调度相关概念与原理。编写程序模拟实现进程的时间片轮转调度过程 , 模拟程序只对 pcb 进行相应的调度模拟操作 ,不需要实际程序。假设初始状态为 : 有 n 个进程处于就绪状态 , 有 m个进程处于阻塞状态。 采用时间片轮转调度算法进行调度 ( 调度过程中 , 假设处于执行状态的进程不会阻塞 ), 且每过

2、 t 个时间片系统释放资源 , 唤醒处于阻塞队列队首的进程。程序要求如下 :1) 按时间片顺序输出系统中进程的调度次序 ;2) 计算 cpu利用率。3.实验环境windows操作系统、 vc+6、0c语言4.实验提示用 c 语言实现提示 :1) 程序中进程可用 pcb 表示 ,其类型描述如下 :structpcb_typeintintpid ;state ;/进程名/ 进程状态实验一进程调度2表示“执行”状态1表示“就绪”状态0表示“阻塞”状态intcpu_time ;/运行需要的 cpu 时间 (需运行的时间片个数 )2) 设置两个队列 ,将处于“就绪”状态的进程 pcb 挂在队列 read

3、y 中;将处于“阻塞”状态的进程 pcb 挂在队列 blocked 中。 队列类型描述如下 :struct queuenodestructpcb_typepcb;structqueuenode*next;并设全程量 :struct queuenode *ready_head=null,/ready 队列队首指针*ready_tail=null ,/ready 队列队尾指针*blocked_head=null,/blocked 队列队首指针3)设计子程序 :*blocked_tail=null;/blocked 队列队尾指针start_state(); / 读入假设的数据 ,设置系统初始状态di

4、spath();/模拟调度calculate();/ 计算 cpu 利用率5、 实验要求 :1)上机前认真使用c 语言编写好程序 ,采用 visual c+6、0 作为编译环境 ;2)上机时独立调试程序3)根据具体实验要求 ,填写好实验报告 (包括目的与要求、实验内容、实验环境、设计思想、源程序、实例运行结果、总结 )。4)测试用数据 :n=2m=3t=5ready_headblocked_head实验一进程调度dispath() 算法流程图 :beginuse_cpu=0/*use_cpu 中记录 cpu 运行时间/*unuse_cpu 中记录 cpu 空闲时间x=0unuse_cpu=0否就是就是ready 队 列 不 空 或否endblocked 队列不空就是否ready 队列不空就是就是p取 ready 队首元素否p-pcb、state 置“运行”unuse_cpu+就是输出 p-pcb 、pidp-pcb 、 cpu_time-use_cpu+p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论