操作系统---进程调度算法的模拟.doc

操作系统---进程调度算法的模拟.doc

ID:53785289

大小:343.50 KB

页数:11页

时间:2020-04-06

操作系统---进程调度算法的模拟.doc_第1页
操作系统---进程调度算法的模拟.doc_第2页
操作系统---进程调度算法的模拟.doc_第3页
操作系统---进程调度算法的模拟.doc_第4页
操作系统---进程调度算法的模拟.doc_第5页
资源描述:

《操作系统---进程调度算法的模拟.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、华北科技学院计算机系综合性实验报告第10页华北科技学院计算机系综合性实验报告《操作系统》实验题目进程调度算法模拟一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。二、设备与环境(1)硬件设备:PC机一台(2)软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如CC++Java等编程语言环境。三、实验内容(1)用C、C++、Java语言编程实现对5个进程采用动态优先权调度算法进行调度的过程。数据如下:5个进程的到达时刻和服务时间见下表,忽略I/O以及其

2、它开销时间,使用动态优先权算法进行调度,优先权初始值为100,请输出各个进程的完成时刻、周转时间、带权周转时间。进程到达时刻服务时间A03B26C44D65E82(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段(用不到的字段可以不定义)。²进程标识数ID。²进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。²进程已占用CPU时间CPUTIME。²进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。²进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进

3、入阻塞状态。²第10页华北科技学院计算机系综合性实验报告进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。²进程状态STATE。²队列指针NEXT,用来将PCB排成队列。(3)优先数改变的原则:²进程在就绪队列中呆一个时间片,优先数增加1。²进程每运行一个时间片,优先数减3。(4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)分析程序运行的结果,谈一下自己的认识。四、实验结果及分析(1)实验关键代码

4、①模拟PCB数据结构定义:///枚举进程的状态:新建、就绪、执行、阻塞、终止enumSTATE_PROCESS{New,Ready,Run,Block,Finish};typedefenumSTATE_PROCESSSTATE;///建立PCB结构体structPCB_NODE{intid;///进程标识数intpriority;///进程优先数intarriveTime;///进程到达时间intcpuTime;///进程已占用CPU时间intallTime;///进程还需占用CPU时间intblockTime;///进程已阻塞时间STATEstate

5、;///进程状态structPCB_NODE*prev;///PCB前指针structPCB_NODE*next;///PCB后指针};typedefstructPCB_NODEPCB;②模拟进程队列操作函数定义:///进程入列voidqueuePush(PCB*process,PCB*queueHead)///进程出列voidqueuePop(PCB*process,PCB*queueHead)///查看队列中进程信息voidqueueWalk(PCB*queueHead)③模拟就绪队列操作函数定义:///进程插入到就绪队列voidreadyQueu

6、ePush(PCB*process)///优先数最大的进程出列PCB*readyQueuePop()///每个时间片更新就绪队列中的进程信息voidreadyQueueUpdate(inttimeSlice,PCB*pcb)///返回就绪队列最大优先数的值intreadyMaxPriority()///查看就绪队列中的进程信息voidreadyQueueWalk()④模拟阻塞队列操作函数定义:///进程插入到阻塞队列第10页华北科技学院计算机系综合性实验报告voidblockQueuePush(PCB*process)///优先数最大的进程出列PCB*

7、blockQueuePop()///每个时间片更新阻塞队列中进程的信息voidblockQueueUpdate()///查看阻塞队列中的进程信息voidblockQueueWalk()⑤模拟动态优先权进程调度函数定义:///初始化进程PCB数据,返回PCB头指针PCB*initData()///模拟CPU执行1个时间片的操作voidcpuWord(PCB*cpuProcess)⑥主函数关键代码:inttimeSlice=0;///模拟CPU时间片intcpuBusy=0;///模拟CPU状态PCB*cpuProcess=NULL;///当前CPU执行的

8、进程PCB*pHead,*pro;///进程PCB头指针pHead=initData();//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。