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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一进程调度 小组成员: 侯飞 080806110024 王卫党 080806110018 陈德 080806110021 杨民岱 080806110026 1 2、 实习内容 模拟多批道处理多操作系统的进程调度; 模拟实现同步机构避免并发进程执行时可能与时间相关的错误。 二、 实习目的 在采用多道程序设计的系统屮,往往有若干个进程同时处于就绪状态。 当就绪进程个数大丁?处理器数时,就必须依照某种策略来决定哪些进程优先 占用处理器。本实习模拟在单处理器情况下的处理器调度,帮助学生加深了 解处理器调度的工作。模拟系统,对进程调度、进程运行状态及PV操作原 理加深理解和掌握。 三、 实习题目 采用剥夺式优先算法,对3个进程进行模拟调度。模拟PV操作同步机 构,用PV操作解决进程进入临界区的问题。 [设计思想] (1) 对三入进程进行模拟调度时,对各进程的静态数进行设置,设进程Pl、P2、 P3的优先级数分别为1八2、3,优先级数越大,表示优先级越低。每个进 程都处于执行态“e”、就绪态“r”和等待态“w”三种状态之一,并假定 初始状态为“r”。 (2) 每一个进程都用一个PCB表来表示,PCB表的具体内容根据具体情况来定。 本进程调度模拟屮,为每个PCB表定义四项内容:进程块号id、进程所处 状态status>优先级数priority以及等待原因waiterlo系统在运行时,能够 显示和打卬各进程和系统参数的变化情况,以便于观察各进程的调度。 (3) 完成必要的初始化操作后便进入进程调度程序,首先由进程P1进入执行, 当进程因等待某个事件被阻塞或唤醒某个等待进程吋,转进程调度模块。 (4) 进程进入临界区前后,调用PV操作。 (5) 如果唤醒的进程的优先级高于止在执行进程的优先级,则剥夺现行进程的 执行权。 (6) 当三进程都处于等待状态时,则退出木模拟系统。 四、 进程模块示例 数据结构 struct{ int id; int waiterl; int priority; char status; }pcb[5]; 信号量 struct{ int value; 〃互斥信号量,临界区数,初值为1 int waiter2; //同步信号量,初值为0 }sem[3]; 现场保护栈 char stack[ll]⑸;〃每个进程都有一个大小为10个字的现场保护栈,用来保护中 断时的断点地址等信息。 全局变量 int i;〃用来模拟一个程序计数器 char addr;//用来模拟通用寄存器 int ml,m2;//为系统设置公用数据,被四个进程共享使用。 五、程序运行框图及运行结果 开牯] -lol x| 操作系统实验之进程调度一一模拟器 就绪状态:执行状态:等待状态:程序执行记录: 系统程序开始执行程1正在执行运行进程1程1在信号 就绪状态: 执行状态: 等待状态: 程序执行记录: 系统程序开始执行 程1正在执行 运行进程1 程1在信号fisem[1 ]上调用P操作 开始 暂停 进程一状态: 进程二状态: 进程三状态: 进程一进度: 进程二进度: 进程三进度: 六、 程序说明 本程序采用java语言编写,模拟3个进程的运行情况,进程在运行过 程中要调用P操作申请信号量,如果该进程得到其申请的信号量,就继续运 行,否则该进程被阻塞,并将进程置为所申请信号量的等待者,如果已有其 它进程在等待同一信号量,则将该进程排在所有等待进程之后。 进程在运行过程中,除了调用P操作申请信号量之外,还要调用V操作 释放信号量。V操作释放信号量之后,将唤醒被阻塞的进程。 程序运行过程屮,进程1通过P操作申请信号量1,进程2通过P操作 申请信号量2,进程1消耗的信号量由进程2通过V操作产生,进程2消耗 的信号量由进程3产生,进程3既消耗信号量3,释放信号量2, i控制进程 三的运行次数,当i的值大于设定的值时,进程是调用对它自己调用p操作, 阻塞它本身,程序结束。 三个进程的运行通过进程调度模块统一安排。调度模块通过find ()函 数找到第一个就绪进程,如果当前没有进程在执行,就直接运行此就绪进程。 如果有进程在执行,则比较两者的优先数,然后运行优先权高者。 程序一共有四个类,进程控制块类pcb.java,信号量类sem.java,测试 框架类 processtestframe.java,主程序测试类 test.java。 七、 心得: 通过小组内多次争论,探讨程序,终于将pv操作的机制弄明白,然后 一起协同将三个进程程序调度弄好,在做程序界面的时候,我们借鉴了同学的经 验和部分的代码,并向己经做出来的同学请教,同时改进自己的思维。在相互合 作的过程中我们都认识到自己的经验不足。--开始以为涉及到操作系统的模拟编 程的都是高不可攀的,然而在仔细阅读课本以及

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档