死锁预防:打破4个必要条件

需积分: 9 0 下载量 143 浏览量 更新于2024-08-22 收藏 402KB PPT 举报
"本章节主要介绍了处理机调度与死锁中的死锁预防策略,以及作业在操作系统中的基本概念,包括作业、作业说明书、作业控制块(JCB),并提到了CPU繁忙型和I/O繁忙型作业的差异。" 在操作系统中,死锁是指两个或多个并发进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉它们都将无法推进下去。防止死锁的发生是系统设计的重要环节。死锁的预防策略主要目标是破坏形成死锁的四个必要条件: 1. **破坏“互斥”条件**:互斥是指资源在一段时间内只能被一个进程独占。为了防止死锁,可以采取措施使得某些资源可以同时被多个进程使用,例如通过资源的复制或者实现资源共享机制。 2. **破坏“占用并等待”条件**:当一个进程已经占有至少一个资源,但又申请新的资源时,如果新资源被其他进程占用,该进程会等待。为了避免这种情况,可以要求进程在开始执行前一次性申请所有需要的资源,这样就不会出现占有资源后等待的情况。 3. **破坏“不可剥夺”条件**:资源一旦被分配给进程,除非进程主动释放,否则不能被其他进程强行夺走。为了防止死锁,系统可以在某些情况下允许强制剥夺进程的资源,使陷入死锁的进程有机会释放资源。 4. **破坏“循环等待”条件**:循环等待是指存在一个进程集合,每个进程都在等待集合中的另一个进程释放资源,形成了一个等待环。解决方法可以是引入资源的有序分配,比如为资源编号,规定进程必须按照递增顺序申请资源。 在作业管理方面,作业是用户提交给系统的任务,由程序、数据和作业说明书组成。作业说明书包含了作业的控制要求和资源需求,是操作系统管理和控制作业的重要依据。作业控制块(JCB)则是系统用来记录和管理作业的关键数据结构,它包含了作业的描述信息和控制信息,如作业的状态、优先级和资源需求等。根据作业对CPU和I/O的操作频率,可以将作业分为CPU繁忙型和I/O繁忙型,前者侧重于计算,后者则涉及大量输入输出操作。 作业的建立过程包括将作业的程序和数据输入到外部存储,并创建JCB,作业完成后,系统会撤销JCB并释放占用的资源。了解这些基本概念有助于理解操作系统如何有效地调度和管理资源,避免潜在的死锁问题,提高系统的效率和稳定性。