下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 实验二 进程调度

实验二 进程调度.doc

实验二 进程调度

留笑
2011-11-10 0人阅读 举报 0 0 暂无简介

简介:本文档为《实验二 进程调度doc》,可适用于高等教育领域

实验二进程调度一、实验目的和要求:.进程调度是处理机管理的核心内容。.通过本实验可以加深理解有关进程控制块、进程队列的概念并体会和了解优先数和时间片轮转调度算法的具体实施办法。.本实验要求用C语言编写和调试一个简单的进程调度程序。二、实验内容:.设计进程控制块PCB表结构(与实验一的结构相同)分别适用于优先数调度算法和循环轮转调度算法。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。.编制的程序要体现两种进程调度算法的思想:()高优先权优先调度把CPU分配给就绪队列中优先数最高的进程。()循环轮转调度:就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加来表示。如果运行一个时间片后进程的已占用CPU时间已达到所需要的运行时间则撤消该进程如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间也就是进程还需要继续运行此时应将进程的优先数减(即降低一级)然后把它插入就绪队列等待CPU。.建立进程就绪队列。对两种不同算法编制子程序。#include"stdioh"#include<stdlibh>#include<conioh>#definegetpch(type)(type*)malloc(sizeof(type))#definestructpcb{*定义进程控制块PCB*charnamecharstateintsuperintntimeintrtimestructpcb*link}*ready=,*pready,p为全局变量typedefstructpcbPCBvoidsort()*建立对进程进行优先级排列函数*{PCB*first,*secondintinsert=if((ready==)||((p>super)>(ready>super)))*优先级最大者,插入队首*{p>link=readyready=p}else*进程比较优先级,插入适当的位置中*{first=readysecond=first>linkwhile(second!=){if((p>super)>(second>super))*若插入进程比当前进程优先数大,*{*插入到当前进程前面*p>link=secondfirst>link=psecond=insert=}else*插入进程优先数最低,则插入到队尾*{first=first>linksecond=second>link}}if(insert==)first>link=p}}voidinput()*建立进程控制块函数*{inti,numclrscr()*清屏*printf("n请输入进程数量:")scanf("d",num)for(i=i<numi){printf("n进程号Nod:n",i)p=getpch(PCB)printf("n输入进程名:")scanf("s",p>name)printf("n输入进程优先数:")scanf("d",p>super)printf("n输入进程运行时间:")scanf("d",p>ntime)printf("n")p>rtime=p>state='w'p>link=sort()*调用sort函数*}}intspace(){intl=PCB*pr=readywhile(pr!=){lpr=pr>link}return(l)}voiddisp(PCB*pr)*建立进程显示函数,用于显示当前进程*{printf("nqnametstatetsupertndtimetruntimen")printf("|st",pr>name)printf("|ct",pr>state)printf("|dt",pr>super)printf("|dt",pr>ntime)printf("|dt",pr>rtime)printf("n")}voidcheck()*建立进程查看函数*{PCB*prprintf("n****当前正在运行的进程是:s",p>name)*显示当前运行进程*disp(p)pr=readyprintf("n****当前就绪队列状态为:n")*显示就绪队列状态*while(pr!=){disp(pr)pr=pr>link}}voiddestroy()*建立进程撤消函数(进程运行结束,撤消进程)*{printf("n进程s已完成n",p>name)free(p)}voidrunning()*建立进程就绪函数(进程运行时间到,置就绪状态*{(p>rtime)if(p>rtime==p>ntime)destroy()*调用destroy函数*else{(p>super)p>state='w'sort()*调用sort函数*}}voidmain()*主函数*{intlen,h=charchinput()len=space()while((len!=)(ready!=)){ch=getchar()hprintf("nTheexecutenumber:dn",h)p=readyready=p>linkp>link=p>state='R'check()running()printf("n按任一键继续")ch=getchar()}printf("nn进程已经完成n")ch=getchar()}PAGE

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/5

实验二 进程调度

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利