黑龙江大学操作系统课程设计读书工程报告_第1页
黑龙江大学操作系统课程设计读书工程报告_第2页
黑龙江大学操作系统课程设计读书工程报告_第3页
黑龙江大学操作系统课程设计读书工程报告_第4页
黑龙江大学操作系统课程设计读书工程报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

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

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

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

8、程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有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. 处理死锁的方法两相封锁法(two phase loc

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

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

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);否则,表示系统中尚无足够的资源,进程必须

18、等待。(3)系统试探把要求的资源分配给进程pi,并修改下面数据结构中的数值: available=available-requesti; allocation=allocation+request; need=need-request;(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。2.安全性算法系统所执行的安全性算法可描述如下:设置两个向量工作向量work,它表示系统可以提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,work:=available。finish,它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做finishi:=f

19、alse;当有足够资源分配给进程时,再令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;/存放安全序列 int work100=0;/存放系统可提供资源 4.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论