进程调试实验报告_第1页
进程调试实验报告_第2页
进程调试实验报告_第3页
进程调试实验报告_第4页
进程调试实验报告_第5页
全文预览已结束

下载本文档

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

文档简介

华南理工大学实验报告实验题目:进程调度模拟程序设计姓名:实验概述【实验目的及要求】模拟单处理器系统的进程调度,分别采用FIFO、时间片轮转调度、优先级算法对多个进程进行调度,加深对进程概念和进程调度过程/算法的理解。【实验环境】

Windowsxp下

MicrosoftVisualC++6.0实验内容1.给出进程调度的算法描述(如基于动态优先级和时间片轮转调度算法的描述)。用C语言设计一个对n个并发进程进行调度的程序,每个进程由一个进程控制块(PCB)结构表示,该进程控制块应包括下述信息:进程标识ID、进程优先数PRIORITY(并规定优先数与优先权成正比)、时间片数CHIP、进程已经占用CPU的时间CPUTIME,进程还需要运行的时间ALLTIME(当进程运行完毕时,其值为0)、进程的状态STATE(为简化起见。设每个进程处于运行E(excecuting)、就绪R(ready)和完成F(finish)三种状态之一,并假设起始状态都是就绪状态R。),以及进程队列指针NEXT(用来将PCB排成队列)等,可按照调度算法的不同而增删。n个并发进程由用户手工输入创建,创建后放于就绪队列中,进程相关参数也由用户输入。调度程序应当包含至少2种不同的调度算法,运行时可由用户选择采用何种调度算法,以利于各种方法的分析和比较。程序应能显示或打印各种进程状态和参数变化情况,便于观察。每次调度时既要显示各进程的当前情况,并且要显示当前运行进程以及就绪队列中进程的先后是顺序。计算不同调度算法得出的平均周转时间,平均等待时间等。本程序有一定的纠错能力,较为健壮,当输入错误,会出现提示.

本程序中的优先级调试算法是利用冒泡排序法对优先级进行排序.intp1=0,p2=1; while(p2<=P_N) { if(Process[p1].PRI>=Process[p2].PRI) { p2++; } else { p1=p2; p2++; } }实验中进程的时间片数,时间片数分为WorkTime和CPUTime两部分,WorkTime初始值为时间片数,进程调度一次,WorkTime即减一,CPUTime加一,并同时再次输出剩余的进程WorkTime,和CPUTimet并显示状态.Process[p1].CPUTime++; Process[p1].WorkTime--;1.FIFO算法即是先输入的进程先运行,按程序输入顺序运行.2.时间片轮转调度,各个进程轮流运行,且要用户输入第一个运行的进程.3.优先级算法(PRI)采用优先级为标准,优先级的值为时间片的值,当一个程序的优先级最高时先运行完成,为防止出错,在进程运行完成后,将该进程的优先级设为0.if(Process[p1].WorkTime==0) { Process[p1].State='F'; Process[p1].PRI=0; check_data++; }

小结

本实验完成了进程调度的三种不同算法,其中FIFO算法较为简单,只要按顺序把进程一个一个调度完成就可以了;轮转算法就要定义一个for循环,让不同的进程都平均调度,直到完成;优先级算法则需要不同的进程进行优先级的比较,这里我用了一个冒泡比较算法来完成.本实验主体思路还算清晰,但在细节问题上花费了我

温馨提示

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

评论

0/150

提交评论