死锁预防:打破4个必要条件
需积分: 9 143 浏览量
更新于2024-08-22
收藏 402KB PPT 举报
"本章节主要介绍了处理机调度与死锁中的死锁预防策略,以及作业在操作系统中的基本概念,包括作业、作业说明书、作业控制块(JCB),并提到了CPU繁忙型和I/O繁忙型作业的差异。"
在操作系统中,死锁是指两个或多个并发进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉它们都将无法推进下去。防止死锁的发生是系统设计的重要环节。死锁的预防策略主要目标是破坏形成死锁的四个必要条件:
1. **破坏“互斥”条件**:互斥是指资源在一段时间内只能被一个进程独占。为了防止死锁,可以采取措施使得某些资源可以同时被多个进程使用,例如通过资源的复制或者实现资源共享机制。
2. **破坏“占用并等待”条件**:当一个进程已经占有至少一个资源,但又申请新的资源时,如果新资源被其他进程占用,该进程会等待。为了避免这种情况,可以要求进程在开始执行前一次性申请所有需要的资源,这样就不会出现占有资源后等待的情况。
3. **破坏“不可剥夺”条件**:资源一旦被分配给进程,除非进程主动释放,否则不能被其他进程强行夺走。为了防止死锁,系统可以在某些情况下允许强制剥夺进程的资源,使陷入死锁的进程有机会释放资源。
4. **破坏“循环等待”条件**:循环等待是指存在一个进程集合,每个进程都在等待集合中的另一个进程释放资源,形成了一个等待环。解决方法可以是引入资源的有序分配,比如为资源编号,规定进程必须按照递增顺序申请资源。
在作业管理方面,作业是用户提交给系统的任务,由程序、数据和作业说明书组成。作业说明书包含了作业的控制要求和资源需求,是操作系统管理和控制作业的重要依据。作业控制块(JCB)则是系统用来记录和管理作业的关键数据结构,它包含了作业的描述信息和控制信息,如作业的状态、优先级和资源需求等。根据作业对CPU和I/O的操作频率,可以将作业分为CPU繁忙型和I/O繁忙型,前者侧重于计算,后者则涉及大量输入输出操作。
作业的建立过程包括将作业的程序和数据输入到外部存储,并创建JCB,作业完成后,系统会撤销JCB并释放占用的资源。了解这些基本概念有助于理解操作系统如何有效地调度和管理资源,避免潜在的死锁问题,提高系统的效率和稳定性。
2023-03-30 上传
2008-07-03 上传
2023-03-30 上传
2022-06-01 上传
2022-07-04 上传
2022-08-03 上传
2022-06-17 上传
2021-12-07 上传
清风杏田家居
- 粉丝: 21
- 资源: 2万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜