进程调度实验报告.doc_第1页
进程调度实验报告.doc_第2页
进程调度实验报告.doc_第3页
进程调度实验报告.doc_第4页
进程调度实验报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

石家庄经济学院操作系统实验报告(学 院)系: 信息工程学院 专 业: 计算机科学与技术 姓 名: 班 级: 学 号: 指导教师: 日期: 2014年12月24日操作系统实验报告1实验一题目基于堆的进程调度模拟1、 实验内容1、大顶堆。以优先级为关键字,应用堆来模拟基于优先级的进程调度。2、使用数组表示堆(数组长度为6-10);3、取走并输出堆顶数据表示进行了调度;4、不断有新来的进程进入堆,要对该堆进行动态调整,以保证堆结构不被破坏。5、每个进程用一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先级、到达时间、要求服务时间、进程状态等等。 其中到达时间和要求服务时间可以在程序中进行初始化或者在程序开始时由键盘输入。6、如果采用动态优先级,则使用高响应比优先,如下,注意在每次调度前应该重新计算进程的优先级。 二、设计过程 1、采用的数据结构类名PCB2、 成员函数的设计说明(注:当前进程即为this指针指定的进程对象系统自动完成) 1)函数名void chushihua (int ) 功能:初始化当前进程对象数据 2)函数名:void refresh () 功能:进程等待操作即等待时间增加并重新计算优先级 3)函数名:void pcb_prin() 功能:显示当前进程数据到屏幕上 4)函数名:void run_pcb();功能:该进程的执行操作 5)函数名:float get_yxj(); 功能:当前进程的优先级信息作为返回值返回给调用函数 6)函数名: int get_time() 功能:清理已运行结束的进程同时统计当前未运行完进程数。3、 全局函数设置 1)函数名:void run()功能:动态优先级模拟主要过程函数 2)函数名:paixu() 功能:对当前进程按优先级从高到低排序原理为冒泡排序。 4、类的设计: 进程类pcb的private数据成员有float yxj(优先级浮点型)、int s_time(服务时间整形)、int w_time(等待时间 整形)、char name(进程名字字符型)。这些数据本身就是操作系统里非常敏感的数据用类来设计保证了数据的安全性类外任何函数都不能直接调用这些数据。 开始4、程序流程图: 初始化PCB,输入进程信息 各进程按优先级从高到低排列 结束 就绪列空?YN 就绪队列首进程投入运行时间片到,运行进程已占用时间+1运行进程已占用CPU时间已达到所需的运行时间进程完成,清除该进程已达到未达到使运行进程的优先级重新计算,把运行进程插入就绪队列三、实验结果:1,首先分别输入6个进程的名字,有优先级,需要服务时间,等待时间2,按照优先级的大小排序,优先级高的等待时间归0,要求服务时间-1,其他等待时间+1,如此循环,直至进程要求服务时间为0,则此进程释放消除。四、实验总结:本次实验主要是基于堆得进程调度模拟,在实验开始之前还是对于本次实验不太了解,导致了做实验很是缓慢,从而耗费了很长时间,通过课本上的基础知识的学习,使得我对本次实验有了进一步的了解,在本次实验写代码中遇到了很多问题,主要是对c+了解的不深,完成这次实验使我对进程调度模拟设计和各种算

温馨提示

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

评论

0/150

提交评论