欢迎来到天天文库
浏览记录
ID:55535239
大小:84.00 KB
页数:9页
时间:2020-05-16
《进程调度实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、洛阳理工学院实验报告系别计算机系班级学号姓名课程名称操作系统实验日期2014.10.17实验名称实验一:进程调度成绩实验目的:通过本次实验,加深对进程概念的理解,进一步掌握进程状态的转变及进程调度策略。实验条件:微机一台、VC++6.0实验原理:设计程序模拟进程的时间片轮转法调度过程。假设初始状态为:有ready个进程处于就绪状态,有blocked个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过counter个时间片,唤醒处于阻塞队列队首的进
2、程。实验内容:流程图:开始createq(&runq)createq(&rq)createq(&bq)dispatch()createJC()结束录入各进程的信息,进入模拟调度过程源代码:#include#include#definetrue1#definefalse0typedefstructPCB_type{charname;intstate;//进程状态//2--表示"执行"状态//1--表示"就绪"状态//0--表示"阻塞"状态intcpu_time;
3、//运行需要的CPU时间(需运行的时间片个数)}pcb;typedefstructLinkQueueNode{structPCB_typePCB;structLinkQueueNode*next;}LinkQueueNode;typedefstruct{LinkQueueNode*head;LinkQueueNode*tail;}LinkQueue;LinkQueuerq,bq,runq;//ready队列、blocked队列、run队列intready=2;intblocked=3;intcou
4、nter=5;intcreateq(LinkQueue*Q)//队列创建{Q->head=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));if(Q->head!=NULL){Q->tail=Q->head;Q->head->next=NULL;returntrue;}elsereturnfalse;}voidcopy(pcb*PCB1,pcb*PCB2){PCB1->name=PCB2->name;PCB1->state=PCB2->state;PCB1
5、->cpu_time=PCB2->cpu_time;}intenterq(LinkQueue*Q,LinkQueueNodex)//入队{LinkQueueNode*q;q=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));if(q!=NULL){copy(&q->PCB,&x.PCB);q->next=NULL;Q->tail->next=q;Q->tail=q;returntrue;}elsereturnfalse;}LinkQueueNode*del
6、eteq(LinkQueue*Q)//出队{intflag;LinkQueueNode*q;if(Q->head==Q->tail)flag=0;q=Q->head->next;Q->head->next=q->next;if(Q->tail==q){Q->tail=Q->head;flag=1;}returnq;}voiddisplay(LinkQueueQ)//输出进程信息{LinkQueueNode*Newhead=Q.head->next;while(Newhead!=Q.tail->ne
7、xt){printf("%6c%10d%14d",Newhead->PCB.name,Newhead->PCB.state,Newhead->PCB.cpu_time);Newhead=Newhead->next;}}voidcreateJC()//创建进程{inti;LinkQueueNode*NewNode;pcb*pcbNode;NewNode=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));pcbNode=(pcb*)malloc(sizeo
8、f(pcb));printf("******录入就绪队列信息******");for(i=0;iname);printf("请输入进程运行时间:");scanf("%d",&pcbNode->cpu_time);printf("请输入状态:0阻塞、1就绪、2执行:");scanf("%d",&pcbNode->state);copy(&NewNode->PCB,pcbNod
此文档下载收益归作者所有