进程管理模拟系统实验报告.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学生实验报告 实 验 课 名 称: 操作系统 实验 项 目名称: 进程管理模拟系统 专 业 名 称: 软件工程 班 级: 学 号: 2406080111 学 生 姓 名: 綦 舰 教 师 姓 名: 李 芳 2010年06月29日 实验项目名称 进程管理模拟系统 组长: 綦 舰 组员: 无 系统采用语言:C++ 系统支持平台:windows操作系统(安装visual c++) 实验内容 学习进程管理的设计与实现,学习和运用操作系统原理,设计一个操作系统子系统的模拟系统。通过该系统的设计调试可增加对操作系统实现的感知性。设计一个允许n个进程并发运行的进程管理的模拟系统。该系统包括简单的进程控制、同步及通信机构,其进程调度算法可任意选择。分析系统所需的数据结构、算法的流程以及化分各个功能模块。 实验要求 要求学生熟悉进程概念及进程管理的各部分内容。要求学生明确进程管理中需要的数据结构、控制机构的基本原理。 将分析程序结果写入“实验结果与分析”中,其中包括:程序的模块功能、程序的流程。将对进程管理的实现与概念的联系与体验写入“实验体会与评价”中。 实验原理 进程管理包括进程的控制、阻塞、唤醒与撤消。进程在运行过程中状态在不断的变化。进程运行过程中,因为竞争资源而需对它们进行同步控制。所有这些在操作系统中用数据结构PCB来记录,系统通过PCB控制进程的运行。 在单处理机系统中,多道程序的引入,需要进程的调度程序来选择一个进程进行运行。比如常用的先来先服务、短进程 优和优先级优先等等,也可以选择它们的结合调度算法。 实验设计与流程 实验设计: 设计原理: 本进程管理模拟程序采用先来先服务的进程调度方法,以及分时间片运行的进程执行方法。 创建进程后,将进程设置为就绪状态放入就绪队列,然后系统从就绪队列中掉出一个进程,申请系统资源(进行P操作)。若申请到资源则分一时间片运行,时间片到后将该进程放回就绪队列;若没有申请到资源,则对该进程进行现场保护(用一数据量模拟),将其放入阻塞队列,知道有一占有资源的进程执行完成释放资源后(进行V操作),再将阻塞队列中被阻塞的进程唤醒,调入就绪队列,按照其PCB中保存的处理机状态进行执行。 本进程管理模拟程序适用于N个进程,可在执行阶段任意添加进程。 数据结构: 本进程管理模拟程序所用到的数据结构 //进程PCB struct PCB { //进程标示 char id; //进程状态 int status; //进程所需运行时间 int time; //判断是否占有资源的变量,1为占有资源,0为未占有资源(初始化为0) int resource; //是否申请过资源,1为申请过资源,0为未申请资源(初始化为0) int wheapplied; //等待队列指针,指向同一状态下的前一个进程 PCB* prewp; //等待队列指针,指向同一状态下的下一个进程 PCB* nextwp; }; //执行进程指针 extern PCB* exe; //时间片设定 extern int time_slice; //进程互斥使用的系统资源信号量 extern int semaphore; //资源信号量 //定义了进程的状态宏 #define EXECUTE 101 //执行状态 #define READY 110 //就绪状态 #define JAM 111 //阻塞状态 (3)实验流程图如下页所示: 系统进程调度逻辑图: 时间片到 无进程执行 限制解除 资源限制 系统运行流程图: 限 制 解

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档