版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
******** 实验报告纸计算机科学与工程学院 (院、系) 网络工程 专业083班 组 操作系统 课学号************ 姓名**** 实验日期 教师评定实验一、进程管理(3学时、必做)一、实验目的通过实验使学生进一步了解进程、进程状态、进程控制等基本概念。基本能达到下列具体的目标:1、理解进程PCB的概念,以及PCB如何实现、如何组织以及管理。2、复习数据结构中如何对链的操作,包括建链、删除、插入结点等,来实现进程的管理。二、实验内容1、建立一个结点,即PCB块包括用户标识域、状态域(执行、等待、就绪)、link 域。2、建立三个队列(执行队列、就绪队列、等待队列) 。3、根据进程状态转换实现对三个队列的具体操作。 具体的驱动可以采用时间片算法或手动调度的形式完成三个状态之间的转换4、用switch 选择语句选择状态。5、按照自己的设定能完成所有的状态转换的运行(包括创建和运行结束) 。三、实验步骤1、复习进程管理三状态模型部分内容。2、预习C++Builder 或VC++、Delphi、JBuilder 线程编程。3、运行示例程序,进一步明确实验要求。可以采用控制台模式或窗口模式。4、上机编程、调试程序。5、完成实验报告。四、实验过程1、进程管理三状态模型部分内容进程从因创建而产生直至撤销而消亡的整个生命周期中, 有时占用处理器执行,有时虽然可以运行但分不到处理器,有时虽然处理器空闲但因等待某个事件发生而无法执行,这一切都说明进程和程序不同,进程是活动的且有状态变化, 状态及状态之间的转换体现进程的动态性,为了便于系统管理,一般来说,按照进程在执行过程中的不同情况至少要定义三种进程状态。运行态:进程占用处理器运行的状态。就绪态:进程具备运行条件,等待系统分配处理器以便起运行的状态。等待态:进程不具备运行条件,正在等待某个时间完成的状态。2、程序设计环境表1程序设计环境表设备名称详细要求处理器英特尔Corei5M460@内存容量2GB操作系统Windows7旗舰版32位3、程序界面设计本实验的目的不在界面的创新,所以界面的设计模仿示例程序二,程序界面设计如下:图1. 程序界面设计界面中的元件包括:标题、队列管理、进程状态转换操作、进程转换示意图、作者及版本信息。各元件的设计具体如下:标题:蓝底白字“进程管理演示”,其部分代码如下:public static final String TITLE="进程管理演示 ";1)a)b)2)3)开始线程锁:开N线程锁:开?Y线程锁:关N执行列表中有正在执行的进程吗?Y时间片到?Y分配新的时间片N时间片减1就绪队列中有进程吗?正在执行的进程 age减1Y正在执行的进程age==0?N切换进程YN进程正常撤销
N时间片减 1正在执行的进程 age减1正在执行的进程 age==0?Y进程正常撤销执行队列为空 且就绪队列不为空 ?Y执行一个就绪进程更新进程队列信息
NThread. sleep (500);线程锁:开结束etAge().getAge()-1);if().getAge()==0){etName()+ "正常撤销</font></html>" );}} else{timeOut=TIMEOUT;etName()+"让出处理器</font></html>");().setState(0);());();}else{etAge().getAge()-1);if().getAge()==0){etName()+ "正常撤销</font></html>" );}}}} else if ()!= null ){etName()+"执行</font></html>" );}4、进程队列管理图2. 进程队列管理实时更新进程就绪队列、进程执行队列、进程阻塞队列,及进程执行队列中进程 Node(模拟PCB块)的更新。队列:存放于包中,具体接口信息如下图:图3. 接口信息图4. 接口信息进程:存放于包中,具体接口信息如下图7:其中name表示进程名,age表示进程所需的剩余的时间片, next用于在进程队列 Link中,指向下一个进程结点 Node,state 表状态域(执行、等待、就绪)。5、进程状态转换操作在进程名输入域中输入已存在的进程名:(不存在时点击任何按钮不产生状态转换,并提示“ 不存在正在**的进程**”)如果该进程在执行队列(处于运行态)中,则单击“执行—>就绪(a)”按钮可以把进程切换到就绪态,并提示“进程**:执行—>就绪”信息。具体的操作如下:Nodenode=();
取出该进程(null);
断进程链(0);
改进程状态(node);
入就绪队列(null);
执行队列中移除其中,切断进程链的操作是相当重要的,在以下的每次状态转换都需要执行此操作。如果没有及时切断进程链,将会导致结点的 next中仍然残存着其他信息,这样会在不断的进程切换时,链表变成循环链表,将导致程序发生致命错误。b)单击“执行—>阻塞(s)”按钮可以把进程切换到等待态,并提“进程
**:执行—
>阻塞”信息。具体的操作如下:Nodenode=();(null);;(node);(null);如果该进程在执行队列中,则单击“就绪—>执行(d)”按钮可以把进程切换到执行态,并提“进程**:就绪—>执行”信息。具体的操作如下:把正在执行的进程放入就绪队列Nodenode=();(null);;(node);(null);就绪队列中的进程放入执行队列node=(processName);(processName);(null);;(node);如果该进程在阻塞队列中,则单击“阻塞—>就绪(f)”按钮可以把进程切换到就绪态,并提“进程**:阻塞—>就绪”信息。具体的操作如下:Nodenode=(processName);(processName);(null);;(node);四、实验心得本实验模拟了进程的管理,包括新建进程、进程状态转换等操作,并且还独立设计了专用的链表以模拟进程队列。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届浙江省杭州市杭六中学初三第二次诊断性测试化学试题试卷含解析
- 滁州凤阳县联考2026年初三摸底考试化学试题含解析
- 2026年道路沿线边坡治理工程(挡墙 护坡 绿化)设计指南
- 2026年量子 AI双向赋能:从算法融合到算力协同
- 2026年无线监护设备数据加密传输网络安全防护技术方案
- 2026年委托人死亡后委托关系终止对信托影响分析
- 2025年临床医学专业内科学基础测试卷
- 电子商务高级项目经理面试问题
- 如何从初级到高级:产品经理的职业路径解析
- 综合体智能化设施的运行和维护方案介绍
- 金属的腐蚀与防护
- 班会课说课稿(5篇)
- (完整版)英语常用词素表
- 5循证医学基础证据 课件
- 华东理工大学分析化学第2章-分析化学中的数据处理及评价课件
- DB32T 4111-2021 预应力混凝土实心方桩基础技术规程
- 自然灾害情况统计制度解读课件
- xx银行安防监控工程施工方案与维保方案
- 胆囊切除胆总管切开取石护理查房
- 压力管道无损检测通用实用工艺
- 基于MATLAB的数字PID直流电机调速系统
评论
0/150
提交评论