- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设备的分配与回收
操作系统课程设计
题 目
题 目:
班 级:
姓 名:
指导教师:
系主任:
哈尔滨理工大学
课程设计
(操作系统)
设.的分配与剧卜
计算机科学与技术学院计算机系10-8班
陈俊鸣
高雪瑶
林克正
03月01日
1生产者消费者问题课程设计 错误!未定义书签
题目分析 错误!未定义书签
1.2数据结构 错误!未定义书签
流程图 错误!未定义书签
实现技术 错误!未定义书签
设计结论和心得 错误!未定义书签
2 Linux 代码分析 错误!未定义书签
功能说明 错误!未定义书签
接口说明 错误!未定义书签
局音8数据结构 错误!未定义书签
流程图 错误!未定义书签
2.5以实例说明运行过程 错误!未定义书签
1设备的分配与回收 课程设计
1.1题目分析
在多到程序环境下,系统中的设备供所有进程共享。为防止进程对系统 资源的无序竞争,特规定系统设备不允许用户白行使用 ,必须由系统统一分
配。每当进程项系统提出I/O请求时,只要是可能和安全带,设备分配程序 编按照一定的策略,吧设备分配给请求用户。在有的系统中 ,为了确保在
CPU与设备之间能进行通信,还应分配相应的控制器和通道。为了实现设 备分配,必须在系统中设置相应的数据结构。
1.2数据结构
设计中用到了 Map映射)的数据结构,Map结构包括了 key和value两 部分,经过key的匹配来查询value的值,符合次涉及到的要求,解决了四 张表之间的关系
public static Map mapD= newHashMap();
// 对应DCW的映射,key值为设备类型
public static Map mapS= new HashMap();
// 对用SDT勺映射,key值为设备类型
public static Map mapCO newHashMap();
// 对应COC的映射,key值为控制器标识符
public static Map mapCH newHashMap();
//对应CHCT勺映射,key值为通道标识符
public static Mythread[] mt = newMythread[3];
//允许申请3个进程,可根据需要做相应更改
以上4个映射用于存放对应表的信息,设计为全局静态是为了能存储文件
和添加的设备、控制器、通道信息。
1.3流程图
实现设计中主程序和其它子模块的算法,以流程图的形式表示,需画出 函数和过程的调用关系图。
文件读取Fileread(初始化)类
添加设备increase类
#1^~
+ 将界面信息读
I
新建用户定义
*
分别将对应信 息赋给里程―
将新的进程类
保存到用户定
V ~
申请新进程increaseP类
IX
州进程调用
Mythread类:进程执行的方法
XI
MainF
1.4实现技术
在这次编程中,选择使用的是java是MyEclipse8.6拥有窗口的框架,但同 时,由于java中没有指针的概念,使得SDT DCT COCT CHC巨间的练习 让我很头疼,因此我选择了使用映射 map,映射中包含key和value,而key 就仿佛C+珅的指针的next,能将4张表练习到一起。随后,在对进程的vo id方法中的设计令我认识到白己对 java进程知识的掌握还很匮乏,现在
还不能很好的运用sleep(),wait(),yield() 等方法,也不清楚其之间的区 别,因此设计要求中的暂停无法很好的实现。
1.5设计结论和心得
这次编程,是我对设备的分配有了更进一步的了解 ,也是我的编译能力得
到了锻炼。
经过本次课程设计,加深了对所学的操作系统的知识的理解 ,而且提高了白 已的编程水平,也让白已认识到了白已编程中存在的问题 ,例如:没有对系 统做全面分析的习惯,以致于白已的程序没有把全部可能出现的情况考虑
进内,以致于对于某一些特别的值,不能给出正确的运行结果,本次课程序
设计认白已体会到了全面系统的分析问题的重要性和必要性。多实践 ,多
进行一些编程锻炼,这将成为我今后的一项课程,白己的编程水平还是太水 今后必须更加努力才行。
2 .ILinux 代码分析
为了进一步了解操作系统内核,学习了 Linux操作系统的进程同步程
序,主要程序源代码如下:
package jframe;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStre
文档评论(0)