欢迎来到天天文库
浏览记录
ID:34840442
大小:159.50 KB
页数:26页
时间:2019-03-12
《进程调度+存储管理+磁盘调度++银行家算法+资料系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统实验实验一进程调度一、设计目的在多道程序设计中,如果若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。此设计采用优先调度法处理机调度问题,以此加深对进程调度的理解。矚慫润厲钐瘗睞枥庑赖。二、设计任务与要求1.用语言来实现对n个进程采用不同调度算法的进程调度。2.每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:(1)进程优先数ID,其中0为闲逛进程,用户进程的标识数为1,2,3…。(2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进
2、程的优先级大于0,且随机产生,优先数越大,优先级越高。聞創沟燴鐺險爱氇谴净。(3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。(4)进程总共需要运行时间Alltime,利用随机函数产生。(5)进程状态,0:就绪态;1:运行态;2:阻塞态。(6)队列指针next,用来将多个进程控制块PCB链接为队列。3.优先数改变的原则(1)进程在就绪队列中每呆一个时间片,优先数增加1。(2)进程每运行一个时间片,优先数减3。4.在调度前,系统中拥有的进程数PCB_number由键盘输入,经初始化后,所有的进程
3、控制块PCB链接成就绪队列。残骛楼諍锩瀨濟溆塹籟。三、实验流程图四.实验过程:(1)输入:进程流文件(1.txt),其中存储的是一系列要执行的进程,每个作业包括四个数据项:进程名进程状态(1就绪2等待3运行)所需时间优先数(0级最高)进程01502进程12104进程21150进程33285进程42191进程5387输出:进程执行流等待时间,平均等待时间(2)程序代码#include#include#include#includecon
4、stintblock_time=4;//定义时间片的长度为4秒constintMAXPCB=100;//定义最大进程数//定义进程结构体typedefstructnode{intid;intstatus;intalltime;intpriority;intfinished;intwait_time;node*next;}pcb;pcbpcbs[MAXPCB];intcount;inti;//初始化函数voidinitial(){cout<<"请输入进程数:";cin>>i;count=i;for(i=0;i5、PCB;i++){pcbs[i].id=i+1;pcbs[i].status=1;pcbs[i].time=random(20);pcbs[i].priority=random(2);pcbs[i].finished=0;pcbs[i].wait_time=0;}}//优先数调度算法voidorder(){}voidpri(){if(count!=0){}intpassed_time=0;inttotal;intqueue[MAXPCB];intcurrent_privilege=1000;for(i=0;i6、antity;i++){current_privilege=1000;for(j=0;j7、ime;}//输出优先数调度执行流cout<8、l=0;for(i=0;i
5、PCB;i++){pcbs[i].id=i+1;pcbs[i].status=1;pcbs[i].time=random(20);pcbs[i].priority=random(2);pcbs[i].finished=0;pcbs[i].wait_time=0;}}//优先数调度算法voidorder(){}voidpri(){if(count!=0){}intpassed_time=0;inttotal;intqueue[MAXPCB];intcurrent_privilege=1000;for(i=0;i6、antity;i++){current_privilege=1000;for(j=0;j7、ime;}//输出优先数调度执行流cout<8、l=0;for(i=0;i
6、antity;i++){current_privilege=1000;for(j=0;j7、ime;}//输出优先数调度执行流cout<8、l=0;for(i=0;i
7、ime;}//输出优先数调度执行流cout<8、l=0;for(i=0;i
8、l=0;for(i=0;i
此文档下载收益归作者所有