实验一(进程调度)

实验一(进程调度)

ID:41723038

大小:79.85 KB

页数:9页

时间:2019-08-30

实验一(进程调度)_第1页
实验一(进程调度)_第2页
实验一(进程调度)_第3页
实验一(进程调度)_第4页
实验一(进程调度)_第5页
资源描述:

《实验一(进程调度)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验项目名称:进程管理一、实验目的进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。本实验要求学生独立的用高级语言编写和调试一个简单的进程调度程序。算法要求使用简单轮转法和优先数法。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解优先数和时间片轮转调度算法的具体实施办法。二、实验要求(1)设计一个有n个进程(可假定系统有五个进程)共行的进程调度程序。每一个进程用一个进程控制块PCB来代表。PCB中包含下列信息:进程名、进程优先数、进程需要运行的时间、占用CPU的时间及进程的状态等,且可按调度算法的不同而增减。各进程的优先数或轮转时间片数,以及进程运行需要地

2、时间片数,均由伪随机数发生器产生。(2)调度程序应包含2~3种不同的调度算法,运行时可任选一种。(3)每个进程处于运行R、就绪W和完成F三种状态之一,假定初始状态都为就绪状态W。(4)系统能显示或打印各进程状态和参数的变化情况。三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)1.程序流程图(见附图)2.逻辑设计使用链表表示就绪链(队列),每个元素包括进程名、进程优先数、进程需要运行的时间、占用CPU的时间及进程的状态等信息。该结构需支持以下操作:取头节点,在任意位置插入节点,删除头节点,判断表空。为此,引入2个指针变量:头指针HEAD和尾指针T

3、AILo3、物理设计stmctpcbtype〃进程控制块结构longid,priority,runtime,totaltime;charstatus;〃R,W,F->运行,就绪,完成}PCB[n+l];longlink[n+l];〃链表结构longRUN,HEAD,TAIL;//按照优先数人小设置就绪链for(i=l;i<=n;i++){for(j=n;j>i;j-){if(PCB[sort

4、j]].priority>PCB[sort[j-1]].priority){k=sort[j];sort

5、j]=sort[j-lj;sort[j-l]=k;})}HEAD=sort[l];for(i

6、=l;i

7、一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。轮转法可以是简单轮转法、可变时间片轮转法,或多队列轮转法。简单轮转法的基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。附录1:程序流程图开始附录2:源代码//操作系统实验■•进程调度〃优先数法和简单轮转法#include#include#include#includeconstlo

8、ngn=5;structpebtype〃进程控制块结构(longid,priority,runtime,totaltime;charstatus;//R,W,F->运行,就绪,完成}PCB[n+l];longlink[n+1];〃链表结构longRUN,HEAD,TAIL;〃选择算法longChooseAlgo(){Jchars[128];printf(HPleasetypetheAlgorithm(Priority\RoundRobin):M);aptcf讦(s[0]=PIIs[0]=p)return1;return0;//初始化voidinit(){longi;for(i=l;i<

9、=n;i++){PCB[i].id=i;PCB[i].priority=rand()%4+l;PCB[i].runtime=0;PCB[iJ.totaltime=rand()%8+l;PCB[i].status='W1;}〃显示进程调度状况voidshowit(){longi;printf(H%-25sn,”CPUTIME”);for(i=l;i<=n;i++)printf("%41d",PCB[iJ.runtime);prin

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

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

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