收藏 分销(赏)

黑龙江大学“操作系统课程设计”读书工程报告.doc

上传人:二*** 文档编号:4532843 上传时间:2024-09-27 格式:DOC 页数:12 大小:101.50KB
下载 相关 举报
黑龙江大学“操作系统课程设计”读书工程报告.doc_第1页
第1页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、- -XX大学“操作系统课程设计读书工程报告学院软件学院年级2010级专业软件工程学号报告日期2013/7/03成绩XX大学计算机科学技术学院XX大学软件学院- word.zl- -一、根本理论阐述1.死锁的概念:系统中多个进程因素因竞争资源而产生的僵死状态,假设无外力推动进程将无法继续执行。2.死锁的根本原因;对资源的竞争;进程推进的顺序不当。3死锁产生的必要条件互斥条件在某一段时间里,某资源被一个进程所占有,不能为别的进程使用;请求并保持不释放进程每次申请它所需要的一局部资源。在等待新资源的同时,进程继续占用已分配到的资源; 非剥夺条件 进程所获得的资源在为使用完之前,不能被其他进程强行夺

2、走,即只能由获得该资源的进程自己来释放; 环路条件 存在一种进程资源的循环等待链,链中的每一个进程已获得资源的同时被链中下一个进程所请求。4.死锁的预防破坏“互斥条件。由于资源特性所限,一般情况下这个条件是无法摒弃的,但对于某些互斥共享的设备,如打印机,那么可以通过Spooling技术来摒弃互斥条件。破坏“请求与保持条件。可以采用资源静态分配法,即对资源采用一次性分配策略,但会导致资源利用率的下降。破坏“非剥夺条件。可以采用剥夺策略,但涉及到对资源现场的恢复问题,需付出高昂代价。因此,一般只适用于处理机和存储器资源,不适宜对其他资源使用该方法。破坏“环路等待条件。可以采用资源顺序分配法,但实际

3、情况是:资源编号增加的顺序与实际使用资源的顺序不一致,从而可能导致提早分配资源而导致资源长期不用的现象,使资源利用律下降。通过精心分配资源,可以动态回避死锁;即通过执行一种算法,在分配过程中预测出死锁发生的可能性并加以防止。死锁防止算法的实质是防止系统进入不平安状态。常用的是银行家算法。但执行这种测试需要的开销较大。5.进程:是操作系统中最根本、最重要的概念,但直到目前还没有一个统一的定义,下面通过能反映进程实质的几点描述来认识进程: 进程是程序的一次执行; 进程是可以和别的计算并发执行的计算; 进程是程序在一个数据集合上运行的过程,是系统进展资源分配和调度的一个独立单位; 进程是一个具有一定

4、功能的程序关于某个数据集合的一次运行活动。进程具有几个根本的特征:动态性、并发性、独立性、异步性;每个进程通常由程序段、数据段和进程控制块三局部组成,其中进程控制块能唯一标识一个进程。进程执行时间的连续性,决定了进程可能具有多种状态。事实上,运行中的进程至少具有以下三种根本状态:就绪状态:进程已获得除处理机以外的所有资源,一旦分到了处理机就可以立即执行,这时进程所处的状态为就绪状态;执行状态:又称运行状态。当一个进程获得必要的资源,并占有处理机,即在处理机上运行,此时进程所处的状态为执行状态;阻塞状态:又称等待状态,正在执行的进程,由于发生了某事件而暂时无法执行下去如等待输入/输出完成,此时进

5、程所处的状态称为阻塞状态。进程并非固定处于某一状态,它随着自身的推进和外界条件的变化而发生变化。6.银行家算法:银行家算法是一种有代表性的防止死锁的算法。在防止死请资源,但系统在进展资源分配之前,应先计算此次分配资源的平安性,假设分配不会导致系统进入不平安状态,那么分配,否那么等待。为实现银行家算法,系统必须设置假设干数据构造。 要解释银行家算法,必须先解释操作系统平安状态和不平安状态。平安序列是指一个进程序列P1,Pn是平安的,即对于每一个进程Pi(1in,它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j i )当前占有资源量之和。7.银行家算法原理:我们可以把操作系统看作是

6、银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的平安,银行家规定:当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;顾客可以分期贷款,但贷款的总数不能超过最大需求量;当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。操作系统按照银行家制定的规那么为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量那么按当前的申请量分配资源,否那么就推迟

7、分配。当进程在执行中继续申请资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量。假设超过那么拒绝分配资源,假设能满足那么按当前的申请量分配资源,否那么也要推迟分配。 二、当前应用现状操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等根本领务。管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的效劳界面。操作系统的管理控制程序,大致

8、包括5 个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等。但所有的操作系统具有并发性、共享性、虚拟性和不确定性四个根本特征。根据应用领域来划分,可分为桌面操作系统、效劳器操作系统、主机操作系统、嵌入式操作系统。1.、操作系统的开展手工操作阶段。在这个阶段的计算机,主要元器件是电子管,运算速度慢,没有任何软件,更没有操作系统。用户直接使用机器语言编写程序,上机时完全手工操作,首先将预先准备好的程序纸带装入输入机,然后启动输入机把程序和数据送入计算机,接着通过开

9、关启动程序运行,计算完成后,打印机输出结果。批处理阶段多道程序系统阶段现代操作系统阶段2.计算机操作系统的开展现状 Windows 是一款流行的操作系统,在全球桌面系统市场占有90%左右的份额,同时在中低端效劳器市场也有广泛的应用,如web 效劳器和数据库效劳器。Windows 作为一个现代操作系统,无论在技术方面,还是在市场方面,都是成功的。 Unix 操作系统具有统一开放的事实标准和认证标准。该标准使不同unix 操作系统上开发的应用程序可以轻松移植,极大地促进了unix 的开展和应用。Unix 已经成为大型机、效劳器以及工作站的主要操作系统。Linux 作为unix 技术的继承者,日益得

10、到越来越多的效劳器设备、数据库和中间件等软件厂商的支持,并对商业版unix 系统构成很强的威胁。开源软件模式及其实现的价值越来越得到社会的认可。以开源linux 等为代表的类unix 操作系统在不断地侵蚀unix 的市场空间。 Linux 操作系统无论从硬件还是从软件来讲,linux 都已经是个成熟的操作系统。免费与开源的特性使得linux 对windows 的威胁也越来越大。在效劳器和嵌入式系统市场上,linux 已经是主流的操作系统之一。Linux 现在正在稳步拓展桌面操作系统市场随着linux 的流行,越来越多的厂商开场爱其销售的计算机上预装linux。3. 处理死锁的方法两相封锁法Tw

11、o Phase Lock通过防止并发操作间的冲突到达事务处理之间的同步。在读出数据项x之前,事务处理必须要对x拥有读封锁。在对数据项x写入之前,事务处理必须要对x拥有写封锁。拥有读封锁和写封锁要遵照两条管理规那么:第一、二个事务处理不能同时对于同一个数据项拥有相互冲突的封锁。第二,在一个事务释放了对某一个数据项的封锁拥有权以后,就不得再申请要求得到对任何数据项的封锁拥有权。上述对封锁拥有权的规定使得每个事务处理都以两相方式获得封锁的拥有权。在增加封锁拥有权的阶段,事务处理不能释放对任何数据项的封锁拥有权、而只可以不断申请获得新的数据项的封锁拥有权。在一旦释放了对某一数据项的封锁拥有权以后,事务

12、处理进入压缩封锁拥有权的阶段。在这个阶段中。事务处理只能不断释放它的封锁拥有权而不得再申请对任何数据项的封锁拥有权。在事务处理完毕或夭折时,将自动释放全部封锁。两相封锁法有一种特殊情况,在事务处理的主体局部执行以前,就申请拥有该事务处理所需要的全部封锁拥有权,通常称这种特殊情况为“事先要求。显然,事先要求算法有二个缺点:第一,过早地对数据项拥有封锁权将会限制系统可能到达的并发程度。第二,对程序设计者提出了事先列出本领务所需要的全部的封锁权要求,增加了程序设计者的负担。用两相封锁法处理读写写写冲突操作时,它实现了非循环的rwrww关系,保证了一组事务处理过程的可串行化。串行执行的顺序由事务处理获

13、得封锁拥有权的先后次序而定。在增长阶段完毕时,获得了所需要的全部封锁有权以后,称为到达了该事务处理的封锁点。令E表示采用两相封锁法作为同步机构时,各事务处理的执行顺序,令E表示每个事务处理在它的封锁点一次申请拥有全部所需封锁拥有权的情况下的执行顺序。在这两种情况下所作出的rwr及ww关系是一样的,因而这二者的执行顺序也是一致的。根本型两相封锁法两相封锁法的实现机构是一个调度程序,当事务处理对数据项发出读写请求时,调度程序按两相封锁法所描述的规定对数据项进展封锁和解锁操作。在分布式系统中,在每一个DM上有一调度程序,管理该DM所管辖的数据库中的数据项。当DM接收到对数据项x的读出写入请求时,调度

14、程序自动地为该数据项申请读写封锁。如果这时该数据项已被其它操作封锁,那么把申请封锁操作置于该数据项的封锁等待队列中。在写入操作完成以后,调度程序自动释放写封锁,释放读封锁需要专用的释放操作,它可以和写入操作同时发出。写入操作标志着压缩阶段的开场。当某一事务处理释放了它的读写封锁后;以先进先出的方式处理在等待队列上的其他事务处理的读写封锁的请求。在数据项有多个副本的情况下,假设逻辑数据项x有副本x1, x2, , xn,对于读操作,事务处理可以读任何一个副本,因此只需要获得它实际执行读操作的那个副本上的读封锁。对于写操作,需要修改数据项的所有副本,必须要获得所有副本上的写封锁。主副本型的两相封锁

15、法本方法专用于处理逻辑数据项有多个副本的情况,每个逻辑数据项的一份副本被指定为主副本,事务处理在逻辑数据项的任何副本以前,必须在主副本上获得所需的封锁。对于读封锁,本方法比根本型的两相封锁法有更多的通信开销,当事务处埋希望读出的副本不是主副本时,它必须与二个DM通信。一个是存放主副本的DM,另一个是要读出的副本所在的DM,而在根本型两相封锁法中,只要和要读出的副本所在的DM通信。当事务处理所在的TM与要读出的副本所在的DM在同一个计算机结点时,增加的开销是很大的。对于写封锁,主副本型两封相锁法比根本型的封锁开销要少。在根本型算法中,事务处理要向具有副本的所有结点发出封写锁请求,而在主副本型算法

16、中,只要向主副本所在结点发出请求。投票表决型两相封锁法投票表决型两相封锁法也是用于多副本的系统中的一种同步算法。当事务T要对x发出写入请求时,把请求发往持有x的副本的所有DM,DM检查本数据库中x的副本情况,如果x已被封锁,那么发回“封锁受到阻塞的信号;如果x没有被封锁,那么对x加锁,并发回“封锁已设置信号,事务T对“封锁已设置的响应信号计数,当数量过半,那么认为全部封锁均已设置,如数量缺乏半数,它将等待发出“封锁受到阻塞的DM在x被解锁以后发回“封锁已设置的信号。只要不出现死锁,它最终将收到足够的“封锁已设置信号而继续工作。集中型两相封锁法集中型两相封锁法把管理数据项封锁的调度程序全部集中在

17、一个结点上,在读写任何结点上的数据以前,必须从中心结点的调度程序获得相应的封锁。这个算法非常相似于主副本型的两相封锁法,相当于把所有数据项的主副本都集中在中心结点上,故很容易在中心结点构成通信和封锁操作的瓶颈。它的主要优点是简单。三、对银行家算法局部的体会通过此次的实验,让我知道了应付死锁最好的方法银行家算法。更让我知道了银行家算法的实现过程。1.银行家算法1如果Requestior =Need,那么转向步骤(2);否那么,认为出错,因为它所需要的资源数已超过它所宣布的最大值。2如果Requestor=Available,那么转向步骤3;否那么,表示系统XX无足够的资源,进程必须等待。3系统试

18、探把要求的资源分配给进程Pi,并修改下面数据构造中的数值: Available=Available-Requesti; Allocation=Allocation+Request; Need=Need-Request;(4)系统执行平安性算法,检查此次资源分配后,系统是否处于平安状态。2.平安性算法系统所执行的平安性算法可描述如下:设置两个向量工作向量Work,它表示系统可以提供应进程继续运行所需的各类资源数目,它含有m个元素,在执行平安算法开场时,Work:=Available。Finish,它表示系统是否有足够的资源分配给进程,使之运行完成。开场时先做Finishi:=FALSE;当有足够

19、资源分配给进程时,再令Finishi:=TRUE。从进程集合中找到一个能满足下述条件的进程: Finishi=FALSE; NeedI,jor=Workj;假设找到,执行步骤3,否那么,执行步骤4。当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Workj:=Workj+Allocationi,j;Finishi:=TRUE;Go to step 2;如果所有进程的Finishi=TRUE都满足,那么表示系统处于平安状态;否那么,系统处于不平安状态。四、课程设计过程中的应用与实践4.1目的:切实加深对进程死锁的认识;正确理解系统的平安状态与不平安状态;更进一步地理

20、解和掌握银行家算法。4.2内容:将本实验分成两个阶段,第一阶段实现系统平安性检测算法;第二阶段实现银行家算法;要求用户能自主地输入不同的向量矩阵;程序能正确输出不同的运算结果;程序应具备良好的容错能力;力求用户界面的简洁美观;4.3数据构造数组 int Max100100=0;/各进程所需各类资源的最大需求 int Avaliable100=0;/系统可用资源 char name100=0;/资源的名称 int Allocation100100=0;/系统已分配资源 int Need100100=0;/还需要资源 int Request100=0;/请求资源向量 int temp100=0;/

21、存放平安序列 int Work100=0;/存放系统可提供资源4.4算法设计 算法设计进程一开场向系统提出最大需求量; 进程每次提出新的需求(分期贷款)都统计是否超出它事先提出的最大需求量;假设正常,那么判断该进程所需剩余剩余量(包括本次申请)是否超出系统所掌握的 剩余资源量,假设不超出,那么分配,否那么等待。五、读书工程心得总结经过这几周的努力,终于把银行家算法大致的模拟出来了。 坦白讲,虽然是借鉴了别人的程序,但是有很多地方也做了改良,然后进展了一下功能的补充和扩大。然后再借鉴的过程中,也有了很多的错误,导致运行不出来结果,我也进展了一一排查,然后进展改错,最终实现了其完整的功能。在此次的

22、大作业中,我也学习到了很多的东西。例如,银行家算法的具体实现过程以及平安性算法的实现过程。让我加深了对数组以及银行家算法的理解以及对操作系统的进程申请资源的调度流程也有了比拟深刻等的体会,这些都是在书本上学不到的财富。这也是在理论课上学习不来的。在课程设计过程中,我认真编写文档和程序代码,完成代码的编写后再认真测试,检查程序的缺乏。在此次的课程设计中,让我体会到了变成的乐趣与那份那一诉说的成就感。也让我将平时学习到的C语言,数据构造,操作系统,软件工程概论进展融会贯穿。让我更专业的从一个工程师的角度出发,更全面、周密的理解题目并做好需求分析,从而编出程序。总而言之,这次的实验让我知道了理论必须要与实践相结合,尤其是我们的专业知识,只有自己从手做一遍,才可以把知识真正的变成自己的,也让知识变活。参考文献1.秦明,李波. 计算机操作系统实验与实践:基于Windows与LinuxM. 中国电力,2004- word.zl-

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服