调度与死锁
- 调度类型与准则
- 高级调度(作业调度):进程的创建一i退出
- 中级调度(对换调度):挂起状态的切换
- 低级调度:进程基本三状态
- 进程调度方式:
- 不可剥夺方式
- 绝不允许其它进程抢占正在运行进程的处理机
- 优点:实现简单,开销小
- 缺点:难以满足紧急任务的进程调度
- 可剥夺方式
- 能够满足优先权选择
- 进程调度的时机
- 进程退出
- 进程阻塞
- 进程创建/进程阻塞/时钟中断
- 进程的性能准则
- 周转时间:服务时间+等待时间
- 带权周转:周转时间/服务时间
- 调度算法
特点 | FCFS | SPN | SRT | HRRN | RR | Priority | MFQ |
调度方式 | 不可剥夺 | 不可剥夺 | 可剥夺 | 均可 | 可剥夺 | 均可 | 可剥夺 |
吞吐量 | 不突出 | 高 | 高 | 高 | 时间片短,则吞吐量低 | 不强调 | 可剥夺 |
响应时间 | 有时可能高 | 短进程响应时间比较高 | 较高 | 较高 | 高 | 高 | 高 |
系统开销 | 最小 | 较高 | 较高 | 较高 | 较小 | 较高 | 较小 |
对进程影响 | 对短进程不利 | 对长进程不利 | 对长进程不利 | 较好平衡进程 | 对I/O频繁的进程不利 | 较好平衡进程 | 可能对I/O频繁进程有利 |
饿死问题 | 无 | 可能 | 可能 | 无 | 无 | 可能 | 可能 |
- 死锁的定义
- 死锁可以定义为一组竞争系统资源或相互通信的进程互相的永久阻塞。若无外力作用,则这组进程永远不能继续执行。
- 死锁产生的原因
- 资源不足
- 不合法的进程推进次序
- 死锁产生的必要条件
- 互斥条件
- 请求和保持
- 不可剥夺条件
- 环路条件
- 死锁的避免
- 由于死锁的预防中,存在许多问题。而采用避免死锁
- 避免死锁就是动态的决定是否允许进程当前的资源请求。避免死锁采用资源分配的动态拒绝策略
- 什么时安全序列?
- 至少存在一个安全序列<P1,P2,P3.......>,按照这个序列为进程分配所需要的资源。直到满足最大需求,使每个进程可以顺利完成。若系统不存在一个这样的序列,则系统处于不安全状态。
- 避免死锁的实质就是如何使系统不进入不安全状态
- 银行家算法
- 由资源请求、安全检测两部分构成
- 首先检测本次请求资源是否满足系统资源总量
- 当前系统是否由足够资源来分配给本次请求
- 进行安全检测