设备管理实现

上传人:工**** 文档编号:503624169 上传时间:2022-10-01 格式:DOCX 页数:39 大小:68.15KB
返回 下载 相关 举报
设备管理实现_第1页
第1页 / 共39页
设备管理实现_第2页
第2页 / 共39页
设备管理实现_第3页
第3页 / 共39页
设备管理实现_第4页
第4页 / 共39页
设备管理实现_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《设备管理实现》由会员分享,可在线阅读,更多相关《设备管理实现(39页珍藏版)》请在金锄头文库上搜索。

1、第3部分、设备管理实现:基本要求:在前面的实验基础上实现设备管理功能的模拟, 主要包括通道 和控制器的添加和删除,设备的添加、删除,设备的分配和回收。参考学时:12学时实验提示:1、假定模拟系统中已有键盘、鼠标、打印机和显示器四个设备,另有三个 控制器和两个通道,它们之间的控制关系如图所示:2、设备管理子系统涉及到系统设备表(SDT、通道控制表(CHCT、控制器 控制表(COCT和设备控制表(DCT来体现输入输出系统的四级结构和 三级控制。应实现上述数据结构来完成对外围设备的管理。3、实现上述设备、控制器以及通道的层次关系,同时能够添加或删除新的 设备、控制器或通道。4、通过键盘命令模拟进程执

2、行过程中提出的设备分配或释放请求,并为此 请求分配或释放设备。分配设备成功后可将进程状态调整为阻塞,释放 设备后变为就绪状态。5、分配设备时应如果该设备已被其它进程占用,则设备分配失败,请求进 程进入阻塞状态,同时等待该设备的释放。如果设备空闲,进程占用设备的同时还应提出申请控制器请求,直到与设备相关的通道都已申请成 功为止。6、设备、控制器或通道的释放应引起对应节点的等待队列中的第一个阻塞 进程被唤醒。如果被唤醒的进程还未完成申请操作,应继续执行上级节 点的申请操作。import java.util.Vector;import java.io.*;class ProcessPage Page

3、Table;Vector PageQueue;private int size;private int Pagecount;private String name;double visit;double replacement;public void setPage(Page 口PageTable) this.PageTable=new PagePageTable.length;for(int i=0;iPageTable.length;i+) this.PageTablei=PageTablei;public int getPageBlock(int PageNum) return Page

4、TablePageNum.getBlockNum();public void setSize(int size) this.size=size;public int getSize() return size;public void setPagecount(int Pagecount) this.Pagecount=Pagecount;public int getPagecount() return Pagecount;visit=0;replacement=0;public Process。public Process(String name) this.name=name;public

5、Process(String name,int size) this(name);this.size=size;public String toString() return name;class Page int flag;int blockNum;int writed;/xiu gai weiint accessfield;/fang wen zi duanint swapsapce_blockno;/wai cun dizhi int t;blockNum=0;writed=0;accessfield=0;t=0;public Page() flag=1;swapsapce_blockn

6、o=-1;public Page(int flag,int swapsapce_blockno) this.flag=flag;this.swapsapce_blockno=swapsapce_blockno;public int getBlockNum() return blockNum;public int getFlag() return flag;class IONodeString name;IONode next;Process process;Vector waitinglist;IONode parent;public IONode() this.name=name;publi

7、c void setNext(IONode next) this.next=next;public lONode getNext() return next;public void setParent(IONode parent) this.parent=parent;public String toString() return name;class CHCT extends IONode String name;CHCT next;Process process;Vector waitinglist;/CHCT parent;public CHCT() public CHCT(String

8、 name) this.name=name;public void setNext(CHCT next) this.next=next;public CHCT getNext() return next;public void setParent(CHCT parent) this.parent=parent;public String toString() return name;class COCT extends IONode String name;COCT next;Process process;Vector waitinglist;CHCT parent;public COCT(

9、) public COCT(String name) this.name=name;public void setNext(COCT next) this.next=next;public COCT getNext() return next;public void setParent(CHCT parent) this.parent=parent;public String toString() return name;class DCT extends lONode String name;DCT next;Process process;Vector waitinglist;COCT p

10、arent;public DCT() public DCT(String name) this.name=name;public void setNext(DCT next) this.next=next;public DCT getNext() return next;public void setParent(COCT parent) this.parent=parent;public String toString() return name;class OS3 public static Vector ready,blocked;public static Process runnin

11、g;public static BufferedReader br;static int a=new int88;置换空间static int口d=new int1010;/static int count=0;static CHCT chct=new CHCT();static COCT coct=new COCT();static DCT dct=new DCT();public OS3() ready=new Vector();blocked=new Vector();br=new BufferedReader(new InputStreamReader(System.in);for(int i=0;ia.length;i+) for(int j=0;jai.length;j+) if(Math.random()0.5) aij=0;else a皿=1;for(int i=0;id.length;i+) for(int j=0;jdi.length;j+) if(Math.random();tryint i=Integer.pa

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 销售管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号