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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

操作系统课程设计.docx

1、操作系统课程设计操作系统原理及应用课程设计报告银行家算法对死锁的避免 学院(系): 计算机科学与工程学院 班 级: 学号 学生姓名: 指导教师: 向南 时间: 从 2014年 01 月06日 到 2014年01月10日1课程设计的目的操作系统是一门重要的专业基础课,是涉及较多硬件知识的计算机系统软件课程。在计算机软硬件课程的设置上,它起着承上启下的作用。操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。操作系统课程设计的主要任务是研究计算机操作系统的基本原理和算法,掌握操作系统的进程管理、存储管理、文件管理和设备管理的基本

2、原理与主要算法。目的是使学生掌握常用操作系统(如DOS、Windows或Linux)的一般管理方法,了解它是如何组织和运作的,对操作系统的核心概念和算法有一个透彻的理解,并对系统运行的机制有一个全面的掌握,从而充分理解系统调用与程序设计之间的关系2课程设计的内容及要求仿真模拟银行家算法对死锁的避免。对于进程死锁的避免问题,分为两种状态:安全状态和非安全状态。在避免死锁的方法中,允许进程动态地申请资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,令进程等待。 所谓安全状态是指系统能按某种进程顺序,来为每个进程pi分配所需的资源,直至满足每

3、个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个序列,则系统处于不安全状态。只要系统处于安全状态,系统便可避免进入死锁状态。因此避免死锁的实质在于:系统在进行资源分配时,如何使系统不进入不安全状态。银行家算法就是一种最有代表性的避免死锁的算法。3实现原理我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。 为保证资金的安全,银行家规定: (1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客; (2) 顾客可以分期贷款,但贷款的总数不能超过最大需求量; (3) 当银行家现有的资

4、金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款; (4) 当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金. 操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量。若超过则拒绝分配资源,若能满足则按当前的申请量分配资源,否则也要推迟分配。4程序中使用的数据结构及使用的变量说明和作用程序分为两个模块,其中第一个模块涉及到添加进程

5、、清空进程、设置Allocation、申请资源等等。第二个模块涉及到将申请资源的结果显示、执行银行家算法。对于这两个模块的实现主要通过两个类来实现的。(1)第一个模块是类public class MyJlist来实现的,因为用的编程语言是JAVA,所以程序对于各种功能是显示是通过给按钮添加事件监听器来实现的,即add_button.addActionListener(this);/用来实现添加进程allocation_button.addActionListener(this);/用来设置对应进程的当前各类资源的占有情况request_button.addActionListener(this

6、);/用来实现进程对资源的申请available_button.addActionListener(this);/用来设置当前各类资源的当前的数clear_button.addActionListener(this);/清空各个进程的记录example1_button.addActionListener(this);/实例1example2_button.addActionListener(this);/实例2check_safe_arry.addActionListener(this);/执行算法,弹出对话框(2)第二个模块的实现通过一个内部类:class ComputeDialog ext

7、ends JDialog implements ActionListener,与第一模块类似,该模块的功能的实现也是通过按钮添加事件监听器来实现的。check_safe_button.addActionListener(this);/实现银行算法,查找到安全序列。查/不到的时候,显示安全序列不存在。safe_arry.setText(安全序列不存在!);/安全序列不存在的时候,设置为此文本 对于模块在程序中的作用,第一个模块是主体,第二个模块是在第一个模块的基础上实现的。5关键算法实现流程图 1、第一个模块中涉及添加、清空、设置Allocation、设置Available。(1)主程序初始化。

8、(2)添加功能(3)清空功能(4)设置Allocation(5)设置Available。 (6)设置Request2、第二模块主要是实现银行家算法: loop控制循环次数,超过指定次数,说明没有安全序列6结果输出及分析 1.、本程序的运行环境是MyEclipse环境,使用的编程语言是Java语言,操作系统是Windows Xp操作系统。2、程序无需安装,只需要安装了MyEclipse即可。3、程序使用之前,在MyEclipse中建立一个Java工程,在工程中建立一个MyJlist类,将代码粘贴到其中,直接运行即可。点击编译器中运行按钮,程序中出现如下情况:(1)程序运行从截图中可以看出,目前系

9、统的进程数目是0,即没有进程。当前各个控件的情况是空,这是一个初始化状态。当前程序中有三类资源,默认数值为10、5、7(2)在标签“添加进程:”所对应的这一列中进行添加进程。在“进程名:”右面的编辑框中输入进程的名字,如p1。在往下,选择每一类资源的该进程所用到的资源的最大数目。如可以选择进程所需要的三类资源的数目都为5。这样方便一些。设置完之后,直接点击下面的按钮“添加”即可。这样进程p1就直接添加到了系统中。此时后,“目前系统中的进程数目为:”后面显示为1。具体的操作如下图所示:依照以上的过程,再添加一些进程到系统中。(3)在标签“Allocation”所对应的这一列中,是用来设置每个进程

10、的当前所占有的资源的数目的。同样的,在标签“选择进程:”标签后面的文本框中填写所要设置的进程的名字。在往下,选择资源的进程的所占有的数量,例如可以设置进程p1当前拥有的三类资源的数目为1,2,3。过程如下图所示: 同样,根据上述过程,设置其他的进程的数值。(4)在标签“Request”这一类是用来设置某一个进程是否申请了资源的,进程在执行的过程可以申请资源。例如进程p1可以申请资源的数目为Request(2,2,2)。结果如下图所示:(5)在标签“Available”这一列,设置当前三类资源的剩余数目。可设置为(2,2,2)(6)点击“清空”按钮,结果与程序开始运行的结果是一样的。点击实例1,

11、实例2按钮会出现两个实例。点击执行算法按钮,会出现如下对话框,接着点击对话框中的“检查安全性”按钮就可求出安全序列。7心得体会 通过操作系统的课程设计使我对于操作系统有了一个新的认识和深入的了解学习。在这之前的所有的操作系统的学习一直是一个比较抽象的概念,一直觉得距离现实很远。虽然每一天都在用电脑,一直在用操作系统,但是对操作系统的了解很少,对于其内部的运行过程更是无从了解。学习的过程只是一个抽象的过程,无法将其运用到实践中来。此次课程设计提供了一个有理论转向实践的过程。 由于这学期也学习了JAVA编程,所以程序是利用JAVA语言编写的。程序的整个实现过程还是比较简单的,但是对于JAVA语言实

12、现界面的过程是比较困难的。Java的布局非常难调,但是最终还是搞定了。对于程序中编写遇到的困难,解决的主要路径是通过网络解决问题。特别是对于控件的添加及其图形结果的现实,在向容器中添加控件主要用到了一个类JscrollPane,用控件的对象来初始化该类,再将该类的对象添加到容器中。 程序的主要部分是银行家算法德实现,这个算法的实现还是比较容易的。银行家算法放在了对话框中实现。利用几个数组,执行算法后得出的结果在将其转化为字符串。利用Jlist的一个方法将结果显示在对话框。在实现算法的过程中遇到了一些困难,首先就是以前对银行家算法的理解不是多深,一开始程序的编写完全是想当然的实现的,当然产生了错

13、误。其次就是对Java语言的应用不是很熟练。为此还专门查找写资料,将以前看的一些Java视频又重新搬出来看了看。Java编程有了很深的认识。 总之,通过此次课程设计使我对操作系统中的进程执行有了很深的理解,对系统中资源的分配也有了比较好的认识。银行家算法是避免进程死锁的最好方法,程序对银行家算法的实现主要是将字符串转化为数字存储在三个数组中实现的。整体来说还是比较容易的,Java是一种网络编程语言,虽然实现界面比较困难。但是学了就想用一用,所以对与界面的实现还是比较愿意做的。课程设计使我的学习能力有了很大提高,程序的实现过程中不懂的地可以去问一问同学,使我提高了自己的交际能力。为了做程序,从新看了操作系统的这部分的知识,对于将来考研还是有很大提高的。8参考文献1 汤子瀛 编著,计算机操作系统(修订版),西安电子科技大学出版社,2001年2 张尧学、史美林 编著,计算机操作系统教程,清华大学出版社,2001年3 叶核亚 编著,Java程序设计使用教程(第三版),电子工业出版社, 2010年4 刘长炯 编著,MyEclipse 6 Java 开发中文教程,西安电子科技大学出版社,2007年5Java图形设计卷 下载网址:6 李竞超 编著,操作系统教材辅导,科学技术文献出版社,2008年

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

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