操作系统实验进程调度报告

操作系统实验进程调度报告

ID:38629981

大小:232.00 KB

页数:14页

时间:2019-06-16

操作系统实验进程调度报告_第1页
操作系统实验进程调度报告_第2页
操作系统实验进程调度报告_第3页
操作系统实验进程调度报告_第4页
操作系统实验进程调度报告_第5页
资源描述:

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

1、实验一进程调度小组成员:侯飞080806110024王卫党080806110018陈德080806110021杨民岱080806110026一、实习内容1、模拟多批道处理多操作系统的进程调度;2、模拟实现同步机构避免并发进程执行时可能与时间相关的错误。二、实习目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实习模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。模拟系统,对进程调度、进程运行状态及PV操作原理加深理解和掌握。三、实习

2、题目采用剥夺式优先算法,对3个进程进行模拟调度。模拟PV操作同步机构,用PV操作解决进程进入临界区的问题。【设计思想】(1)对三个进程进行模拟调度时,对各进程的静态数进行设置,设进程P1、P2、P3的优先级数分别为1,、2、3,优先级数越大,表示优先级越低。每个进程都处于执行态“e”、就绪态“r”和等待态“w”三种状态之一,并假定初始状态为“r”。(2)每一个进程都用一个PCB表来表示,PCB表的具体内容根据具体情况来定。本进程调度模拟中,为每个PCB表定义四项内容:进程块号id、进程所处状态status、优先级数priority以及等待原因w

3、aiter1。系统在运行时,能够显示和打印各进程和系统参数的变化情况,以便于观察各进程的调度。(3)完成必要的初始化操作后便进入进程调度程序,首先由进程P1进入执行,当进程因等待某个事件被阻塞或唤醒某个等待进程时,转进程调度模块。(4)进程进入临界区前后,调用PV操作。(5)如果唤醒的进程的优先级高于正在执行进程的优先级,则剥夺现行进程的执行权。(6)当三进程都处于等待状态时,则退出本模拟系统。四、进程模块示例1.数据结构struct{intid;intwaiter1;intpriority;charstatus;}pcb[5];2.信号量st

4、ruct{intvalue;//互斥信号量,临界区数,初值为1intwaiter2;//同步信号量,初值为0}sem[3];3.现场保护栈charstack[11][5];//每个进程都有一个大小为10个字的现场保护栈,用来保护中断时的断点地址等信息。4.全局变量inti;//用来模拟一个程序计数器charaddr;//用来模拟通用寄存器intm1,m2;//为系统设置公用数据,被四个进程共享使用。五、程序运行框图及运行结果五、程序说明本程序采用java语言编写,模拟3个进程的运行情况,进程在运行过程中要调用P操作申请信号量,如果该进程得到其申

5、请的信号量,就继续运行,否则该进程被阻塞,并将进程置为所申请信号量的等待者,如果已有其它进程在等待同一信号量,则将该进程排在所有等待进程之后。进程在运行过程中,除了调用P操作申请信号量之外,还要调用V操作释放信号量。V操作释放信号量之后,将唤醒被阻塞的进程。程序运行过程中,进程1通过P操作申请信号量1,进程2通过P操作申请信号量2,进程1消耗的信号量由进程2通过V操作产生,进程2消耗的信号量由进程3产生,进程3既消耗信号量3,释放信号量2,i控制进程三的运行次数,当i的值大于设定的值时,进程是调用对它自己调用p操作,阻塞它本身,程序结束。三个进

6、程的运行通过进程调度模块统一安排。调度模块通过find()函数找到第一个就绪进程,如果当前没有进程在执行,就直接运行此就绪进程。如果有进程在执行,则比较两者的优先数,然后运行优先权高者。程序一共有四个类,进程控制块类pcb.java,信号量类sem.java,测试框架类processtestframe.java,主程序测试类test.java。六、心得:通过小组内多次争论,探讨程序,终于将pv操作的机制弄明白,然后一起协同将三个进程程序调度弄好,在做程序界面的时候,我们借鉴了同学的经验和部分的代码,并向已经做出来的同学请教,同时改进自己的思维。

7、在相互合作的过程中我们都认识到自己的经验不足。一开始以为涉及到操作系统的模拟编程的都是高不可攀的,然而在仔细阅读课本以及实验说明后,发现只要弄清楚了优先级数调度的实现原理后其实并不难,用优先队列就可以了。通过这个实验一来加深了对优先级数调度的理解,二来也加强了自己的编程实践能力!虽然我们做好了这次的任务,但是也凸显了很多的不足之处.需要锻炼.七、源程序:PCB.javapublicclassPCB{privateintid;privateintwaiter1;privateintpriority;privateStringstatus;publ

8、icintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicintgetWaite

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

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

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