作业进程调度算法设计与实现操作系统实验报告

作业进程调度算法设计与实现操作系统实验报告

ID:18394382

大小:756.50 KB

页数:8页

时间:2018-09-17

作业进程调度算法设计与实现操作系统实验报告_第1页
作业进程调度算法设计与实现操作系统实验报告_第2页
作业进程调度算法设计与实现操作系统实验报告_第3页
作业进程调度算法设计与实现操作系统实验报告_第4页
作业进程调度算法设计与实现操作系统实验报告_第5页
资源描述:

《作业进程调度算法设计与实现操作系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机操作系统计0503杨天心29实验报告计算机操作系统作业/进程调度算法设计与实现课程名称实验项目实验仪器院  系计算机学院专  业计算机科学与技术班级/学号计0503/292007-11学生姓名杨天心实验日期成  绩指导老师计算机操作系统计0503杨天心29实验二作业/进程调度算法设计与实现一.实验目的调度是操作系统的主要功能,本实验通过自行设计实现的调度程序,使同学们加深对作业/进程调度功能的理解,从而掌握操作系统的基本原理。同时还可以提高同学们的编程能力。二.实验要求用C语言编制按优先级调度三个进程的调度程序,其中要求进程的

2、优先级随着运行时间的延长而降低,但却随着等待时间的延长而升高。三.实验方法内容(一)算法设计的思路1、设计进程控制块为以下结构:structPRO﹛charid;/*进程的id号,可以表示为a,b,c*/intpri;/*进程的初始优先级*/intp;/*等待进程可以动态增加的优先级量*/ints;/*运行进程应该动态减少的优先级量*/intstatus;/*表示进程的状态,0为等待,1为运行*/﹜A={‘a’,2,1,1,0},B={‘b’,1,1,1,0},C={‘c’,0,1,1,0};2、要求接管时钟中断:INT1Ch使用到

3、的C语言函数为:getvect(intno)/*获得intno的中断向量*/(要求保存在一个全局变量中)setvect(intno,time)/*设置intno的中断向量为函数time的入口地址*/3、在自己编制的新的时钟中断处理程序中,完成进程优先级的修改;并记录被中断的次数。Voidinterrupttime(){if(A.status==1)A.pri=A.pri-A.s;elseA.pri=A.pri+A.p;……..…….xx++;}计算机操作系统计0503杨天心291、编制函数select(),其功能是从三个进程中选择优

4、先级最高的进程,并将其状态设置为运行,其余设置为等待。并返回运行进程的序号供主程序选择运行。2、编制函数intprime(intn),功能是判断n是否为素数,如果是素数,返回n;否则返回0。该函数是三个进程的执行过程。3、主程序框架如下:main(){inta[3]={100,100,100};intI,j,k,u,v,w=0,x=0,y=0;charc;/*获得时钟中断向量*//*设置新的中断向量*/………..while(xx<300)/*xx是全局变量,用于记录时钟中断的次数;用循环来模拟三个进程的运行过程*/{u=select

5、();/*调度一次*/switch(u){case0:a[0]++;if(a[0]>10000)a[0]=100;v=prime(a[0]);if(v){gotoxy(2,4);printf(“a%6d%6d”,v,w++);}break;case1:…………………..case2:…………………..}}/*恢复时钟中断*/}(二)题目理解说明:从实验的题目可以看出本次实验的内容是在已经给定的结构上对程序进行补充完善。通过对已给程序的分析,只需要完成时钟中断处理函数time(),进程选择程序select(),求素数函数prime()以

6、及主函数中switch语句部分的程序编制即可。(三)算法的功能框架流程图Main()Time()Select()CBA中断到达时Prim()选择进程计算机操作系统计0503杨天心29(四)此算法中用到的数据结构:进程实体结构,模拟PCB:structPRO{charid;/*进程id号*/intpri;//进程优先级intp;/*优先级递增量*/ints;/*优先级递减量*/intstatus;//进程状态}(五)主要常量变量:INTR:存放中断号1ch的常量Xx:存放中断次数的全局变量Oldhandler:指向原中断处理程序的向量

7、a[3]:对素数进行操作的数组空间(六)主要模块:1.中断处理函数voidinterrupttime(...)接管时钟中断,当中断到达时,对A,B,C三个进程数据结构中优先级pri进行修改。对正在运行的程序,优先级减去一个递减量s,对于未运行的程序,优先级增加一个的增量p。处理完成后,中断次数xx加1。2.进程选择函数charselect()根据进程的优先级进行选择。选出优先级最高的进程,将其状态status设置为1,即为该进程分配处理机,投入运行,返回该进程的进程号id。将其他进程状态status设置为0,即剥夺处理机或不为其分配

8、处理机。此函数模拟对PCB的操作。3求素数函数intprime(intn)用于判断n是否为素数。通过循环依次用从2到n的平方根对n取模。如果能被除尽,余数为零。跳出循环,返回0。如果始终没被除尽,表明n为素数,返回n。4.主函数voi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。