版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机操作系统1实验:进程调度算法一一时间片轮转算法 实验:进程调度算法一一时间片轮转算法实验设计说明用时间片轮转算法模拟单处理机调度。(1)建立一个进程控制块PCB来代表。PCB包括:进程名、到达时间、 运行时间和进程后的状态。进程状态分为就绪(R)和删除(C)。(2)为每个进程任意确定一个要求运行时间和到达时间。(3)按照进程到达的先后顺序排成一个队列。再设一个指针指向队首和 队尾。(4)执行处理机调度时,开始选择对首的第一个进程运行。(5)执行:a)输出当前运行进程的名字;b)运行时间减去时间片的大小。(6)进程执行一次后,若该进程的剩余运行时间为零,则删除队首,并 将该进程的状态置为C
2、;若不为空,则将向后找位置插入。继续在 运行队首的进程。(7)若进程队列不空,则重复上述的(5)和(6)步骤直到所有进程都 运行完为止。在所设计的调度程序中,要求包含显示或打印语句。以便显示或打印每次选 中进程的名称及运行一次后队列的变化情况。实验代码#include#include#includetypedef struct pcb 定义进程控制块 char pname5;进程名int arrivetime; 到达时间int runtime;运行时间char state;运行后的状态struct pcb *next;PCB;typedef struct /封装头结点,指针分别指向队头和队尾
3、PCB *front,*rear;queue;queue *init() 进程队列置空 queue *head;head=(queue*)malloc(sizeof(queue);head-front=NULL;head-rear=NULL;return head;int empty(queue *head) /检验进程队列是否为空 return(head-front? 0:1);queue *append(queue *head,char c5,int a,int r,char s) / 进程队列入队,往后插入 PCB *p;p=(PCB*)malloc(sizeof(PCB);strcpy
4、(p-pname,c);p-arrivetime=a;p-runtime=r;p-state=s;p-next=NULL;if(empty(head) head-front=head-rear=p;else head-rear-next=p;head-rear=p;return head;queue *creat(queue *head) 创建进程队列 char c5;char s=R;int a,r,i,n;printf(请输入进程的数量:);scanf(%d”,&n);for(i=1;ifront;if(!p) printf(时间片轮转调度队列为空!n);while(p) printf(p
5、name=%s arrivetime=%d runtime=%d state= %c,p-pname,p-arrivetime,p-runtime,p-state);printf(n);p=p-next;void RR(queue *head,int q) 时间片轮转调度算法的实现int n=0;static int m;PCB *p,*s,*t,*r,*h;m=head-rear-arrivetime;p=head-front;while(!empty(head)p-runtime=p-runtime-q;n+;p-state=R;if(p-runtimeruntime=0;p-state=
6、C;printf(运算时刻七运行的进程七运行后的状态n);printf(%d t%s t%cn,n,p-pname,p-state);if(p-runtime=0)s=p;head-front=p-next;p=head-front;free(s);elsehead-front=p-next;if(nfront;while(r)if(n=r-arrivetime)p-next=r-next;r-next=p;break;else r=r-next;elsehead=append(head,p-pname,p-arrivetime,p-runtime,p-stat e);p=head-front
7、;int main() queue *head;int q;head=init();head=creat(head);printf(n您输入的时间片轮转进程队列为:n);print(head);printf(n请输入时间片轮转调度的时间片为:); scanf(%d,&q);RR(head,q); 时间片轮转调度实验结果输入进程的数量,每个进程的名称、到达时间和服务时间,以及时间片:RRRRRstate =state =state =state =state =0 4 1 3 2 5 3 2 4 4 A 可.可 B 司可 C 可司 D 可.可 E 可可 .1.1 .1.1 .1.1 .1.1 .
8、1.1 名曹名甚名其名曹名曹 程达畚达蓄达塞达塞达务 S进蘸进反进斛进蘸进蘸 3B-1,- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - - 1- - hr 二.1二.-1- - hl-二.1二.1二.-1- - hl-二.1二.1二.1- - hl-二.1二.1二.1二 r 喽进fifila进fifila进fifila进fifi 业个个个个个个个个个个个个个个个 壬 111222333444555 进 wmwwwwwww 1A1A1A1A1A1A1A1A
9、1A1A1A1A1A1A1A1A 请请请请请请请请请请请请请请请请您输入的时间片轮转进程队列为: pname=A pname=B pname=C pname=D pname=Eruntime=4 runtime=3 runtime=5 runtime=2runtime=4arriuetime=0 airiuet ime=l arriuetime=2 arriuetime=3 arriuetime=4的时间片为H请输入时恒得到的结果为:实验结果分析RR算法:每次调度时,把CPU分配给队首进程,并且令其执行一个时间片, 时间片的大小从几个ms到几百ms。当执行的时间片用完时,由一个计时器发出 时钟中断请求,调度程序便依据此信号来停止该进程的执行;并且把它送往就绪 队列的队尾;然后,再把处理剂分配给就绪队列中的新队首进程,同时也让它执 行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CI 1264-2025废旧锂离子电池石墨负极材料的回收与再生技术规范
- 招投标实务与风险管控培训
- 园林绿化工程监理交底
- 油气管道泄漏监测系统设计
- 新能源汽车核心零部件项目立项报告
- 新建智慧生态果园建设项目可行性研究报告(范文参考)
- 虚拟仿真教学资源运维管理规范
- 屋面防水工程竣工验收报告
- 土壤和地下水污染防治管理应急处置方案
- 2025年河北省涿州市小学二年级下册道德与法治期末考试模拟卷带答案详解
- 2026中国养蚯蚓行业市场现状供需分析及投资评估规划分析研究报告
- 7 培养德智体美劳全面发展的社会主义建设者和接班人 探究积累(课件)
- 《建筑施工安全》门窗安装专项安全培训
- 超声引导关节腔注射
- 2026陕西事业单位综合应用能力真题
- 建筑业10项新技术深度解读
- 2026年及未来5年市场数据中国留学金融行业市场全景监测及投资前景展望报告
- 2026新疆新业有资产经营(集团)有限责任公司招聘备考题库及答案详解(夺冠系列)
- 神经外科手术中神经电生理监测的文献回顾
- 西医学习中医培训结业考试大纲(试行 )
- 2025年10月18日湖北省直遴选笔试真题及解析(省直卷)
评论
0/150
提交评论