欢迎来到天天文库
浏览记录
ID:8906701
大小:258.00 KB
页数:13页
时间:2018-04-11
《静态优先级调度算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、__成绩(五级制):________武汉科技大学城市学院《操作系统》实验报告院系武汉科技的大学城市学院学生专业_信科________年级班_大三________课程名称_操作系统_实验题目_进程调度________学生姓名__宋骋_______指导教师__郭冀生____2013年11月4日实验二进程调度一、实验目的进程是操作系统最重要的概念之一,进程调度又是操作系统核心的重要内容。通过该实验,要求同学们了解各进程在执行过程中的状态和参数的变化情况,以便于观察诸进程的调度过程。二、实验内容及要求按剥夺式优先数法对三个进程P1,p2,p3进行模拟调度,各进程
2、的优先数静态设置,其中P1的优先数最高,P3的优先数最低。每个进程都处于执行E(execute),就绪R(ready)和等待W(wait)三种状态之一,并假定初始状态均为R.。三个进程有如下同步关系:P1因等待事件1被阻塞后由P2发现并唤醒之,P2因等待事件2被阻塞后由P3发现并唤醒之。当系统进入运行,在完成必要的初始化工作以后便进入进程调度,首先选择优先数最高的进程使其进入执行(分配CPU)。当执行进程因等待某个事件被阻塞或唤醒某个等待进程时,转入进程调度。如果被唤醒的进程的优先数大于现行的执行进程,则剥夺现行进程的执行权,而将CPU分配给被唤醒的进程
3、。当系统处于死锁或三个进程都执行完毕时系统退出运行。系统中应用到如下数据结构:*进程控制块PCB;*信号量sem;*其它需要的数据结构。由自己设计。三、实验原理及步骤根据现代操作系统的特征1.并发性(concurrence);2.共享性(sharing);3.虚拟性(virtual);4.异步性(asynchronism)。模拟出进程在执行中的状态变化过程;体会进程申请资源、使用资源、归还资源;体会死锁。步骤(参考框图)4、算法和流程图可强占优先调度算法实现过程流程图(如下图):四、程序运行1选择输入执行程序(如下图)2可强占优先调度算法图(如下图)五.
4、设计总结:通过该课程设计,加深了对系统进程调度机制的理解。在抢占方式中实践了“抢占”必须遵循的原则:优先权原则。认识了几种进程调度算法的优缺点以及应用范围。加强C++的编程能力,实现类的封装。附录:程序及注释(用红色黑体标注自己设计的函数)//进程PCB类和模拟cpu的进程类的声明#include#include#include#include#include#include#include#include#in
5、clude#defineMAX_PHILOSOPHERS3//待测试的哲学家数#defineZERO48//数字0的ASCII码#defineDELAYrand()%25structPCB{charp_name[20];intp_priority;intp_needTime;intp_runTime;charp_state;chardeadlock();structPCB*next;};voidHighPriority();voiddeadlock();voidInformation();//形参的改变映射给实参说白了就是实参传过去不
6、用return返回就可以把实参改变charChoice();structPCB*SortList(PCB*HL);intmain(intargc,char*argv[]){Information();charchoice=Choice();switch(choice){case'1':system("cls");HighPriority();break;case'2':system("cls");voiddeadlock();break;default:break;}system("pause");return0;}voidInformation(){p
7、rintf("");printf("*********************************************");printf("模拟进程调度算法");printf("*********************************************");printf("静态优先级调度算法");printf("死锁问题");printf("按回车键进入演示程序");getchar();system("cls");system("cls");}charChoice(){printf("");pr
8、intf("**********************************
此文档下载收益归作者所有