您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 计算机操作系统:进程调度实验报告书
淮海工学院计算机科学系实验报告书课程名:《操作系统原理》题目:进程调度班级:学号:姓名:评语:成绩:指导教师:批阅时间:年月日《操作系统原理》实验报告-1-操作系统原理实验——进程调度实验报告一、目的与要求1)进程是操作系统最重要的概念之一,进程调度是操作系统内核的重要功能,本实验要求用C语言编写一个进程调度模拟程序,使用优先级或时间片轮转法实现进程调度。本实验可加深对进程调度算法的理解。2)按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及相关实验数据与运行结果)3)于2012年10月22日以前提交本次实验报告(含电子和纸质报告,由学习委员以班为单位统一打包提交)。2实验内容或题目1)设计有5个进程并发执行的模拟调度程序,每个程序由一个PCB表示。2)模拟调度程序可任选两种调度算法之一实现(有能力的同学可同时实现两个调度算法)。3)程序执行中应能在屏幕上显示出各进程的状态变化,以便于观察调度的整个过程。4)本次实验内容(项目)的详细说明以及要求请参见实验指导书。3实验步骤与源程序#includeiostream#includecstdlib#includectime#includestring#includeiomanipusingnamespacestd;#defineMAXSIZE5typedefstruct{intId;intPriority;intUsed;intNeed;charSatus;//intNext;}Process;typedefstruct{Processpro[MAXSIZE];intlast;《操作系统原理》实验报告-2-}SeqList;voidInitList(SeqList*L){intM1=1,N1=5,M2=10,N2=5,i;//进程标识符初始化L-pro[0].Id=1;L-pro[1].Id=2;L-pro[2].Id=3;L-pro[3].Id=4;L-pro[4].Id=5;L-last=5;//优先级初始化srand((int)time(0));//生成随机数种子for(i=0;i5;i++){intR=M1-N1+1;//计算生成随机数的范围intr1=rand()%R+N1;L-pro[i].Priority=r1;}//Used初始化for(i=0;i5;i++)L-pro[i].Used=0;//Need初始化srand((int)time(0));//生成随机数种子for(i=0;i5;i++){intR=M2-N2+1;//计算生成随机数的范围intr2=rand()%R+N2;L-pro[i].Need=r2;}//Status初始化for(i=0;i5;i++)L-pro[i].Satus='w';cout进程的初始化状态显示:endl;cout进程ID优先级已使用时间片所需时间片状态endl;for(i=0;i5;i++)coutL-pro[i].IdL-pro[i].PriorityL-pro[i].UsedL-pro[i].NeedL-pro[i].Satusendl;《操作系统原理》实验报告-3-coutendl;}voidshow(SeqList*L){inti;//cout进程的目前状态显示:endl;cout进程ID优先级已使用时间片所需时间片状态endl;for(i=4;i=0;i--)coutL-pro[i].IdL-pro[i].PriorityL-pro[i].UsedL-pro[i].NeedL-pro[i].Satusendl;coutendl;}voidsort(SeqList*L){inti,j,temp,t_id,t_Used,t_Need,t_Satus;for(j=0;jL-last;j++){for(i=L-last-1;ij;i--){if(L-pro[i].PriorityL-pro[j].Priority){temp=L-pro[i].Priority;L-pro[i].Priority=L-pro[j].Priority;L-pro[j].Priority=temp;t_id=L-pro[i].Id;L-pro[i].Id=L-pro[j].Id;L-pro[j].Id=t_id;t_Used=L-pro[i].Used;L-pro[i].Used=L-pro[j].Used;L-pro[j].Used=t_Used;t_Need=L-pro[i].Need;L-pro[i].Need=L-pro[j].Need;L-pro[j].Need=t_Need;t_Satus=L-pro[i].Satus;L-pro[i].Satus=L-pro[j].Satus;L-pro[j].Satus=t_Satus;}}}}voidconduct(SeqList*L){intf=1,i,c=0;while(f){《操作系统原理》实验报告-4-sort(L);L-pro[L-last-1].Priority=L-pro[L-last-1].Priority-1;L-pro[L-last-1].Used=L-pro[L-last-1].Used+1;L-pro[L-last-1].Need=L-pro[L-last-1].Need-1;L-pro[L-last-1].Satus='R';for(i=0;i5;i++){if(L-pro[i].Need==0){L-pro[i].Satus='F';L-pro[i].Priority=-50;}}show(L);for(i=0;i5;i++){if(L-pro[i].Priority==-50)c=c+1;}if(c==5)f=0;elsec=0;L-pro[L-last-1].Satus='w';}}intmain(){SeqListL;InitList(&L);conduct(&L);return0;}4测试数据与实验结果(可以抓图粘贴)《操作系统原理》实验报告-5-《操作系统原理》实验报告-6-《操作系统原理》实验报告-7-《操作系统原理》实验报告-8-《操作系统原理》实验报告-9-5结果分析与实验体会
本文标题:计算机操作系统:进程调度实验报告书
链接地址:https://www.777doc.com/doc-5763399 .html