ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:184.25KB ,
资源ID:2125595      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2125595.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编写单通路IO系统中的设备分配程序实验报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编写单通路IO系统中的设备分配程序实验报告.docx

1、编写单通路IO系统中的设备分配程序实验报告合肥学院计算机科学与技术系 实验报告2013 2014学年第1 学期课程 操作系统原理实验名称编写单通路I/O系统中的 设备分配程序学生姓名张玉东 杨少帅 舒正昇 陈杰 孙元进专业班级 11计本(3)班指导教师屠 菁2000 年 12 月一、实验目的 熟练掌握单通路I/O系统中的设备分配方法。二、实验内容本实验要求实现模拟单通路I/O系统中的设备分配程序,有如下要求:1、设计系统设备表SDT、设备控制表DCT、控制器表COCT、通道表CHCT和逻辑设备表LUT。2、提供给用户各表目的初态。3、回答信息: 能够分配时,给出设备号、控制器号、通道号, 否则

2、,给出无法分配的回答,插入相应的等待队列。三、实验步骤1、 任务分析为单通路I/O系统设计系统设备表SDT、设备控制表DCT、控制器表COCT、通道表CHCT和逻辑设备表LUT五张表。用户可以查看各表目的内容,另外,程序为用户进程分配设备,并且输出分配结果,如果能够分配,则给出设备号、控制器号、通道号,否则,给出无法分配的回答,插入相应的等待队列。2、概要设计为实现本次实验任务要求,首先,定义SDT、DCT、COCT、CHCT、LUT五张表,调用AddCHCT、AddCOCT、AddDCT类初始化各表内容;其次,调用displaySDT、displayDCT、displayCOCT、displ

3、ayCHCT、displayLUT方法实现对上述五张表的输出显示;最后,调用SimulationAdd类,为用户进程申请设备,如果分配成功,给出设备号、控制器号、通道号,否则,给出无法分配的原因,并将该进程插入相应的等待队列中。本程序包含如下3个模块:(1) 主模块,由类Equipement组成。(2) 初始化模块,由AddCHCT、AddCOCT、AddDCT类组成。(3) 显示表目模块,由displaySDT、displayDCT、displayCOCT、displayCHCT、displayLUT方法组成。(4) 分配设备模块,由SimulationAdd等类组成。绘制流程图如下: 流程

4、图3、详细设计和编码通过以上的分析和初步设计,已经对本程序作了初步了解。下面将对本程序的各个模块作详细的讲解。(1) 主类模块 调用各个子模块,完成特定的功能。(2) 初始化模块对各个表就行初始化,设置好各个表的状态,以及对各个步骤进行类调用来实现本实验的要求。(3)显示表目模块调用displaySDT、displayDCT、displayCOCT、displayCHCT、displayLUT方法,显示出SDT系统设备表、DCT设备控制表、COCT控制器控制表、CHCT通道表和LUT逻辑设备表五张表目,直接显示各表中的设备类型、设备名称和设备状态等信息。(4) 分配设备模块在此模块中,首先调用

5、SimulationAdd类,要求用户选择所要申请的逻辑设备名称,然后根据逻辑设备名称查看LUT表中的该设备是否存在,若不存在,则直接退出分配,输出分配失败原因,若存在,则继续如下分析:a.分配设备。根据LUT表找到设备表,然后根据SDT表中指向DCT表该设备的指针,检索到DCT设备控制表中该物理设备,检查该设备的状态信息Busy。若忙,则将要求I/O的进程插入到该设备的等待队列中等待;若不忙,则继续步骤(b)。b.分配控制器。根据设备控制表DCT中的控制器表指针,可找到与此设备相连的控制器表COCT,通过检查该表中的状态信息Busy。若忙,则将要求I/O的进程插入到等待该控制器的队列中等待;

6、若不忙,则把该控制器分配给进程,继续步骤(c)。c.分配通道。首先根据控制器表COCT中的通道表指针找到与此控制器相连的通道表CHCT,从中了解此通道的状态信息Busy。若为忙,则把该进程插入等待通道的队列CHL中;若通道空闲,则表明本次I/O请求所需之I/O设备和相应的控制器、通道都能得到,于是便可启动I/O设备开始数据传送。调用equipementFunction方法来实现上述步骤。分配完成后,将相应的设备、控制器和通道的状态信息Busy置1。结束分配程序。4、调试分析本次程序设计的核心内容在于设备的分配过程,一次分配只有在设备、控制器和通道三者都分配成功时,这次分配才算成功。该程序的核心

7、逻辑关系是先分配设备再分配控制器最后分配通道。当三者都空闲并安全时,才可分配,最终启动该I/O设备进行数据传送。5、测试结果数据库表: 主界面:图1图2图3初始化设备:显示各表信息:图4进程分配信息图5四、实验总结通过本次实验,充分的理解了单通道I/O设备分配程序,知道了设备表,控制器表,通道表以及其他表的数据结构,加深了对课本知识的理解,明白了设备分配的过程:先分配设备,接下来分配控制器,然后再分配通道,若成功就可以启动该I/O设备进行数据传送了。同时,通过和同学一起做这个实验,从中学习到了合作的经验,为以后的工作打下基础。经过编写程序,复习了JAVA语言程序。深刻体会团队分工合作的重要性。

8、五、附录部分源程序:package cn.edu.hfuu.action;import java.awt.EventQueue;public class Equipement extends JFrame private JPanel contentPane; public TextArea textArea; /* * Launch the application. */ public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try Equipement fra

9、me = new Equipement(); frame.setVisible(true); catch (Exception e) e.printStackTrace(); ); /* * Create the frame. */ public Equipement() setTitle(u6A21u62DFu5355u901Au8DEFI/Ou7CFBu7EDFu4E2Du7684u8BBEu5907u5206u914D); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 561, 296); JMen

10、uBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu menu = new JMenu(u6DFBu52A0); menuBar.add(menu); JMenuItem menuItem_3 = new JMenuItem(u6DFBu52A0u901Au9053); menuItem_3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) addCHCT(e); ); menu.add(menuItem_3); JM

11、enuItem menuItem_4 = new JMenuItem(u6DFBu52A0u63A7u5236u5668); menuItem_4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) addCOCT(e); ); menu.add(menuItem_4); JMenuItem menuItem_5 = new JMenuItem(u6DFBu52A0u8BBEu5907); menuItem_5.addActionListener(new ActionListener

12、() public void actionPerformed(ActionEvent e) addDCT(e); ); menu.add(menuItem_5); JMenu menu_1 = new JMenu(u663Eu793A); menuBar.add(menu_1); JMenuItem mntmsdt = new JMenuItem(u7CFBu7EDFu8BBEu5907u8868(SDT); mntmsdt.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) dis

13、playSDT(e); ); menu_1.add(mntmsdt); JMenuItem mntmdct = new JMenuItem(u8BBEu5907u63A7u5236u8868(DCT); mntmdct.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) displayDCT(e); ); menu_1.add(mntmdct); JMenuItem mntmcoct = new JMenuItem(u63A7u5236u5668u63A7u5236u8868(COC

14、T); mntmcoct.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) displayCOCT(e); ); menu_1.add(mntmcoct); JMenuItem mntmchct = new JMenuItem(u901Au9053u63A7u5236u8868(CHCT); mntmchct.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) displayCHCT(e); ); menu_1.add(mntmchct); JMenuItem mntmlut = new JMenuItem(u903Bu8F91u8BBEu5907u8868(LUT); mntmlut.addActionListener(new Action

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1