操作系统概论(5)--死锁

来源:互联网 发布:淘宝卖家要在哪看粉丝 编辑:程序博客网 时间:2024/05/29 06:51

一、什么是死锁:
当某一进程提出资源的使用要求后,使得系统中一些进程处于无休止的阻塞状态,在无外力的作用下,这些进程永远也不能继续前进。
起因:
当两个或两个以上的进程同时对多个互斥资源提出使用要求时,有可能导致死锁。(资源竞争可能导致死锁,但死锁是进程在运行中对资源要求在时间上的冲突(与时序有关))
当进程争夺资源时,有可能产生死锁,但不一定就会死锁。这取决于各进程推进的速度和对资源请求的顺序,从而说明死锁是一种与时间有关的错误。

二、产生死锁的必要条件
1、互斥控制:进程对其所要求的资源进行排他控制,一个资源仅能被一个进程独占。
2、非剥夺控制:进程所获得的资源在未被释放之前,不能被其他进程剥夺,即使该进程处于阻塞状态,它所占用的资源也不能被其它进程使用,而其它进程只能等待该资源的释放。
3、请求和保持条件(逐次请求):进程以随意的零星方式逐次取得资源,而不是集中性的一次请求,这样有利提高资源的利用率。
对策:
鸵鸟策略、预防策略、避免策略、监测和解除。

三、
1、死锁预防:破坏产生死锁的四个必要条件之一即可
互斥:采用共享使用法
非剥夺:剥夺控制
逐次请求和环路:采用资源静态分配法和资源顺序分配法
资源静态分配法:某一进程在其运行之前一次申请它所需的全部资源,而不是零星地逐次申请。
资源顺序分配法:对系统的全部资源加以全局编号,制定规则,进程任何时候都能够申请资源,不过所有的申请必须按编号增加的顺序进行。(缺点:按资源编号增加顺序申请可能与实际资源的顺序不一致)

2、死锁避免:单项资源的银行家算法、多种资源的银行家算法
3、死锁检测:
4、死锁解除:资源剥夺、撤销进程、进程回退

一、概念(即联系):
作业:用户在一次算题过程或一次事物处理中要求计算机系统所做工作的总和。在一个多道程序并发执行的系统中,一个作业就是独立于其他作业的工作单位。通常包括程序、数据和操作说明书。
当一个作业被作业调度程序选中后,为其建立作业步进程。

进程:由进程控制块、程序和数据集合组成。程序是进程的实体。

结论:一个作业可划分为若干个进程来完成,而每个进程又都有其实体—程序和数据集合。

二、区别:
进程和程序间的区别:
(1)进程是程序的一次执行,属于一种动态概念,而程序是一组有序的指令,是一种静态概念。但是进程离开了程序也就失去了存在的意义。因此,我们可以这样说,进程是程序执行的动态过程,而程序是进程运行的静态文本。
(2)程序可以作为一种软件资源长期保留,而进程是程序的一次执行过程,是暂时的。
(3)一个进程可以执行一个或几个程序;反之,同一程序可能由几个进程同时执行。
(4)进程具有并发性,它能与其它进程并发运行。
(5)进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位。