




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
*实验报告纸 计算机科学与工程学院 (院、系) 网络工程 专业 083 班 组 操作系统 课学号* 姓名 * 实验日期 2011.05.20 教师评定 实验一、进程管理(3学时、必做) 一、实验目的通过实验使学生进一步了解进程、进程状态、进程控制等基本概念。基本能达到下列具体的目标:1、 理解进程 PCB 的概念,以及 PCB 如何实现、如何组织以及管理。2、 复习数据结构中如何对链的操作,包括建链、删除、插入结点等,来实现进程的管理。二、实验内容1、 建立一个结点,即 PCB 块包括用户标识域、状态域(执行、等待、就绪)、 link 域。2、 建立三个队列(执行队列、就绪队列、等待队列)。3、 根据进程状态转换实现对三个队列的具体操作。具体的驱动可以采用时间片算法或手动调度的形式完成三个状态之间的转换4、 用 switch 选择语句选择状态。5、 按照自己的设定能完成所有的状态转换的运行(包括创建和运行结束)。三、实验步骤1、 复习进程管理三状态模型部分内容。2、 预习C+ Builder或VC+、Delphi、JBuilder线程编程。3、 运行示例程序,进一步明确实验要求。可以采用控制台模式或窗口模式。4、 上机编程、调试程序。5、 完成实验报告。四、实验过程1、 进程管理三状态模型部分内容进程从因创建而产生直至撤销而消亡的整个生命周期中, 有时占用处理器执行,有时虽然可以运行但分不到处理器,有时虽然处理器空闲但因等待某个事件发生而无法执行,这一切都说明进程和程序不同,进程是活动的且有状态变化, 状态及状态之间的转换体现进程的动态性,为了便于系统管理,一般来说,按照进程在执行过程中的不同情况至少要定义三种进程状态。(1)运行态:进程占用处理器运行的状态。(2)就绪态:进程具备运行条件,等待系统分配处理器以便起运行的状态。(3)等待态:进程不具备运行条件,正在等待某个时间完成的状态。2、 程序设计环境表1 程序设计环境表设备名称详细要求处理器英特尔 Core i5 M 460 2.53GHz内存容量2 GB操作系统Windows 7 旗舰版 32位java.runtime.version1.6.0_13-b033、 程序界面设计本实验的目的不在界面的创新,所以界面的设计模仿示例程序二,程序界面设计如下:图 1. 程序界面设计界面中的元件包括:标题、队列管理、进程状态转换操作、进程转换示意图、作者及版本信息。各元件的设计具体如下:1) 标题:蓝底白字“进程管理演示”,其部分代码如下:public static final String TITLE = 进程管理演示 ;/程序标题JLabel J_title= new JLabel( + TITLE + ,SwingConstants.CENTER);1) 队列管理:实时更新进程就绪队列、进程执行队列、进程阻塞队列,及进程执行队列中进程Node(模拟PCB 块,详见下文)的更新。其中,进程执行队列只包含一个进程,因为一个时间片内只能有一个进程处于运行态。部分代码如下:/进程队列名public static final String PROCESS_READY = 进程就绪队列: ;public static final String PROCESS_EXECUTE = 进程执行队列: ;public static final String PROCESS_BLOCK = 进程阻塞队列: ;/进程队列信息显示private JLabel process_ready = new JLabel(PROCESS_READY) ;private JLabel process_execute = new JLabel(PROCESS_EXECUTE) ;private JLabel process_block = new JLabel(PROCESS_BLOCK) ;/更新进程队列信息process_ready.setText(PROCESS_READY + readyLink.print() ;process_execute.setText(PROCESS_EXECUTE + executeLink.print() ;process_block.setText(PROCESS_BLOCK + blockLink.print() ;2) 进程状态转换操作:a) 创建新的进程:其部分代码如下:private JTextField process_name= new JTextField(8) ; /进程名输入域private JLabel process_add = new JLabel(小于4个字符);/添加进程提示信息b) 已存在的进程的状态切换操作:其部分代码如下:/进程状态转换操作按钮private JButton executeTOready = new JButton(执行-就绪(a) ;private JButton executeTOblock = new JButton(执行-阻塞(s) ;private JButton readyTOexecute = new JButton(就绪-执行(d) ;private JButton blockTOready = new JButton(阻塞-就绪(f) ;3) 进程转换示意图:private ImageIcon imageIcon = new ImageIcon(D:/process.jpg); 需把图片放在D盘根目录下图 2. 进程转换示意图4) 作者及版本信息:new JLabel(作者:杨松青 版本:PMD 1.0+ 仲恺农业工程学院计算机科学与工程学院网络工程083班+ 电子邮箱:)其中:PMD为Process Management Demo的简写。4、 创建进程图 3. 创建进程包括进程名输入域和添加进程提示信息两个组件,进程名输入域可输入进程名(长度不大于4)按回车键添加进程队列中不存在的进程(进程名不能重复);点击下方的按钮将改变进程名对应的进程的状态,详细见6、进程状态转换操作。按回车键后,在输入域后方的添加进程提示信息组件会打印出提示信息,提示用户进程是否添加成功。如果输入的进程名长度大于4,程序将自动截取前4个字符,确保名字长度不大于4,这中控制是由于该程序无须名字很长的进程名,这样队列管理中可以显示更多的进程。5、 时间片管理为了模拟处理器的时间片,程序单独开启一个新的线程cpuThread处理时间片到时的进程切换和获得时间片的操作。时间片的定义如下:/时间片public static final Integer TIMEOUT = 5 ;public int timeOut = TIMEOUT ;其中TIMEOUT为处理器的每次分配的时间片大小,该值是固定的,所以使用final关键字修饰。timeOut为进程执行过程中时间片的消耗,但该值为0时,将检查就绪队列,如果就绪队列为空,则为原执行中的进程再次分配TIMEOUT大小的时间片,进程继续占用处理器;如果就绪队列不为空,则原执行中的进程时间片到,转为就绪态,而就绪队列的队首结点转入执行状态。具体操作流程及代码如下:图 4. 线程cpuThread流程图if(executeLink.getRoot() != null) if(timeOut != 0) /时间片未到timeOut - ;executeLink.getRoot().setAge(executeLink.getRoot().getAge()-1);if(executeLink.getRoot().getAge() = 0) / 进程正常结束executeLink.deleteRoot() ;process_Info.setText(进程+executeLink.getRoot().getName()+正常撤销) ; else timeOut = TIMEOUT ; /时间片到if(readyLink.getRoot() != null) /将进程放回就绪队列中process_Info.setText(时间片到,进程+executeLink.getRoot().getName()+让出处理器) ;executeLink.getRoot().setState(0) ;readyLink.add(executeLink.getRoot();executeLink.deleteRoot() ; else / 就绪队列为空,当前进程继续占有cputimeOut - ;executeLink.getRoot().setAge(executeLink.getRoot().getAge()-1);if(executeLink.getRoot().getAge() = 0) / 进程正常结束executeLink.deleteRoot() ;process_Info.setText(进程+executeLink.getRoot().getName()+正常撤销) ; else if (readyLink.getRoot() != null) /进程占有处理器Node node = readyLink.getRoot() ;readyLink.deleteRoot() ;node.setNext(null) ;node.setState(1) ;executeLink.setRoot(null) ;executeLink.add(node) ;process_Info.setText(就绪进程+executeLink.getRoot().getName()+执行) ;6、 进程队列管理图 5. 进程队列管理实时更新进程就绪队列、进程执行队列、进程阻塞队列,及进程执行队列中进程Node(模拟PCB 块)的更新。a) 队列:Link.java存放于.util包中,具体接口信息如下图:图 6. Link.java接口信息图 7. Node.java接口信息b) 进程:Node.java存放于.util包中,具体接口信息如下图7:其中name表示进程名,age表示进程所需的剩余的时间片,next用于在进程队列Link中,指向下一个进程结点Node,state表状态域(执行、等待、就绪)。7、 进程状态转换操作在进程名输入域中输入已存在的进程名:(不存在时点击任何按钮不产生状态转换,并提示“不存在正在*的进程*”)a) 如果该进程在执行队列(处于运行态)中,则单击“执行就绪(a)”按钮可以把进程切换到就绪态,并提示“进程*:执行就绪”信息。具体的操作如下:Node node = executeLink.getRoot();/1.先取出该进程node.setNext(null) ; /2.切断进程链node.setState(0) ;/3.修改进程状态readyLink.add(node) ;/4.放入就绪队列executeLink.setRoot(null) ;/5.从执行队列中移除其中,切断进程链的操作是相当重要的,在以下的每次状态转换都需要执行此操作。如果没有及时切断进程链,将会导致结点的next中仍然残存着其他信息,这样会在不断的进程切换时,链表变成循环链表,将导致程序发生致命错误。b)单击“执行阻塞(s)”按钮可以把进程切换到等待态,并提“进程*:执行阻塞”信息。具体的操作如下:Node node = executeLink.getRoot();node.setNext(null) ;node.setState(3) ;blockLink.add(node) ;executeLink.setRoot(null) ;c) 如果该进程在执行队列中,则单击“就绪执行(d)”按钮可以把进程切换到执行态,并提“进程*:就绪执行”信息。具体的操作如下:/1.先把正在执行的进程放入就绪队列Node node = executeLink.getRoot();node.setNext(null) ;node.setState(0) ;readyLink.add(node) ;executeLink.setRoot(null) ;/2.把就绪队列中的进程放入执行队列node = readyLink.getNodeByName(processName);readyLink.delete(processName) ;node.setNext(null) ;node.setState(1) ;executeLink.add(node) ;d) 如果该进程在阻塞队列中,则单击“阻塞就绪(f)”按钮可以把进程切换到就绪态,并提“进程*:阻塞就绪”信息。具体的操作如下:Node node = blockLink.getNodeByName(processName);blockLink.del
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夏季亲子活动策划方案
- 建筑方案设计-技术创新
- 情感咨询账号搭建方案
- 小型建筑形体构建方案设计
- 延庆建筑景观拍摄方案设计
- 南开区全网营销报价方案
- 某县第十中学河北省人工智能创客教育实验校总结
- 市北混凝土道路施工方案
- 大学外出活动策划方案
- 工艺美术展览方案
- 新教科版科学六年级上册知识点
- 众辰变频器z2400t-15gy-1说明书
- ov属性分析技术在地震数据采集中的应用
- 新疆地方史课件
- 一粒种子旅行
- GB 4287-1992纺织染整工业水污染物排放标准
- 10室外配电线路工程定额套用及项目设置
- 腰椎间盘突出症课件
- 桂阳县中小幼教师资格定期注册工作指南专家讲座
- 广联达算量模型与revit土建三维设计建模交互
- 急救中心急救站点建设标准
评论
0/150
提交评论