本文主要是介绍3 处理机调度和死锁(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
处理机调度的实质:资源分配
-
处理机调度的层次:
- 高级调度:长程调度/作业调度
- 低级调度:短程调度/进程调度
- 中级调度:内存调度
-
处理机调度算法的目标:
-
共同目标:资源利用率、公平性、平衡性、策略强制执行
-
批处理系统的目标:
平均周转时间短(什么是周转时间?是指从作业被提交给系统开始到作业完成为止的这段时间间隔 区别平均带权周转时间)、
系统吞吐量高(吞吐量是指在单位时间内系统所完成的作业数 尽量选择短作业运行)、处理机利用率高(选择计算量大的作业运行)
-
分时系统的目标:
响应时间快、均衡性
-
实时系统的目标:
截止时间的保证、可预测性
-
-
作业类别
- 批处理型作业:用于巨型机和大型服务器系统(脱机运行)
- 交互型作业:联机运行
- 实时型作业:响应时间有实时需求的作业 硬实时 软实时
不同类别作业的管理、调度方式不同
-
批处理系统中的作业
-
作业控制块 JCB:保存了系统对作业进行管理和调度所需的全部信息
-
作业运行的三个阶段和三种状态:
三个阶段:收容、运行、完成
三种状态:后备、运行、完成
-
-
作业调度的主要任务:
按照一定的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源,排在就绪队列上等待调度
-
作业调度算法:
-
先来先服务调度算法 FCFS(人机无法实现交互)
-
最短作业优先调度算法 SJF (运行时间最短)
-
优先级调度算法 PSA (数字越小 越优先)
-
高响应比优先调度算法 HRRN (每次选择后备作业中优先级最高的作业)
优先权/响应比 = (等待时间 + 运行时间)/ 运行时间 数字越大 优先权越高
-
-
几个计算:
到达时间
运行时间
开始时间 = max(上一个作业的开始时间 + 上一个作业的运行时间, 该作业的到达时间)
完成时间 = 开始时间 + 运行时间
周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 / 运行时间
平均周转时间 = sum(周转时间) / 作业个数
平均带权周转时间 = sum(带权周转时间) / 作业个数
等待时间 = 开始时间 - 到达时间
-
优先级
输入输出为主作业优先级最高,均衡型作业其次,计算为主作业优先级最低
-
进程调度:
-
从调度方式:
-
非抢占式调度
-
抢占式调度:
原则:优先权原则、短进程优先原则、时间片原则
-
-
轮转调度算法 RR算法
应用于分时系统
时间片q大小的确定:
进程数多 q小 反之 q大
系统要求的响应时间苛刻 q小 反之 q大
-
优先级调度算法
- 非抢占式优先级调度算法
- 抢占式优先级调度算法
- 优先级类型:
- 静态优先级:创建进程时确定,运行期间保持不变
- 动态优先级:创建进程时赋予,运行期间可以改变(高响应比优先)
-
多队列调度算法
不同队列优先级不同,采用的调度算法不同;同一队列进程优先级不同
-
多级反馈队列调度算法
多个就绪队列优先级依次降低,时间片依次递增,每个队列RR方式运行,靠前队列可抢占式优先调用
-
基于公平原则的调度算法
- 保证调度算法
- 公平分享调度算法
-
实时调度
采用抢占式调度机制,具有快速切换机制(对中断的快速响应能力、快速的任务分派能力)
-
分类:
硬实时 软实时
非抢占(非抢占式RR算法 非抢占式优先调度算法) 抢占(基于时钟中断的抢占式优先级调度算法 立即抢占的优先级调度算法)
-
最早截止时间优先调度算法 EDF
- 非抢占式调度方式用于非周期实时任务
- 抢占式调度方式用于周期实时任务
-
最低松弛度优先调度算法 LLF
松弛度 = 必须完成时间 - 其本身运行时间 - 当前时间
-
优先级倒置
-
-
-
死锁
剩余内容在3 处理机调度和死锁(下)
这篇关于3 处理机调度和死锁(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!