预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
黑龙江大学“操作系统课程设计”读书工程报告学院年级1软件学院42010级专业:软件工程1学号1姓名1报告日期2013/7/03成绩黑龙江大学计算机科学技术学院黑龙江大学软件学院一、基本理论阐述死锁的概念:系统中多个进程因素因竞争资源而产生的僵死状态,若无外力推动进程将无法继续执行。死锁的根本原因;对资源的竞争;进程推进的顺序不当。死锁产生的必要条件互斥条件在某一段时间里,某资源被一个进程所占有,不能为别的进程使用;请求并保持(不释放)进程每次申请它所需要的一部分资源。在等待新资源的同时,进程继续占用已分配到的资源;非剥夺条件进程所获得的资源在为使用完之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放;环路条件存在一种进程资源的循环等待链,链中的每一个进程已获得资源的同时被链中下一个进程所请求。死锁的预防破坏“互斥条件”.由于资源特性所限,一般情况下这个条件是无法摒弃的,但对于某些互斥共享的设备,如打印机,则可以通过Spooling技术来摒弃互斥条件。破坏“请求与保持条件".可以采用资源静态分配法,即对资源采用一次性分配策略,但会导致资源利用率的下降.破坏“非剥夺条件”。可以采用剥夺策略,但涉及到对资源现场的恢复问题,需付出高昂代价。因此,一般只适用于处理机和存储器资源,不适宜对其他资源使用该方法.破坏“环路等待条件”。可以采用资源顺序分配法,但实际情况是:资源编号增加的顺序与实际使用资源的顺序不一致,从而可能导致提早分配资源而导致资源长期不用的现象,使资源利用律下降。通过精心分配资源,可以动态回避死锁;即通过执行一种算法,在分配过程中预测出死锁发生的可能性并加以避免。死锁避免算法的实质是防止系统进入不安全状态。常用的是银行家算法。但执行这种测试需要的开销较大。进程:是操作系统中最基本、最重要的概念,但直到目前还没有一个统一的定义,下面通过能反映进程实质的几点描述来认识进程:进程是程序的一次执行;进程是可以和别的计算并发执行的计算;进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位;进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。进程具有几个基本的特征:动态性、并发性、独立性、异步性;每个进程通常由程序段、数据段和进程控制块三部分组成,其中进程控制块能唯一标识一个进程。进程执行时间的间断性,决定了进程可能具有多种状态。事实上,运行中的进程至少具有以下三种基本状态:就绪状态:进程已获得除处理机以外的所有资源,一旦分到了处理机就可以立即执行,这时进程所处的状态为就绪状态;执行状态:又称运行状态.当一个进程获得必要的资源,并占有处理机,即在处理机上运行,此时进程所处的状态为执行状态;阻塞状态:又称等待状态,正在执行的进程,由于发生了某事件而暂时无法-0-执行下去(如等待输入/输出完成),此时进程所处的状态称为阻塞状态.进程并非固定处于某一状态,它随着自身的推进和外界条件的变化而发生变化。银行家算法:银行家算法是一种有代表性的避免死锁的算法。在避免死请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构。要解释银行家算法,必须先解释操作系统安全状态和不安全状态。安全序列是指一个进程序列{P1,...,Pn}是安全的,即对于每一个进程Pi(1<i<n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj(j<i)当前占有资源量之和。银行家算法原理:我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款.为保证资金的安全,银行家规定:当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;顾客可以分期贷款,但贷款的总数不能超过最大需求量;当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量.若超过则拒绝分配资源,若能满足则按当前的申请量分配资源,否则也要推迟分配.二、当前应用现状操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等