调度是操作系统中的一个核心概念,它涉及确定某种规则来决定处理任务的顺序。根据任务的不同层次,调度可以分为三种主要类型:作业调度、内存调度和进程(处理机)调度。
目录
扫描二维码关注公众号,回复:
17512302 查看本文章

作业调度(高级)
- 概念: 作业调度主要负责选择一个作业调入内存。每个作业只调入一次,调出一次。
- 作用: 这是一个相对高层的调度,决定了哪些作业应该进入内存,并开始执行。
内存调度(中级)
- 概念: 当内存不足时,内存调度负责将某些进程的数据调出外存(挂起)。等内存空闲或进程需要运行时,再重新调入内存。
- 特点:
- 挂起与阻塞: 挂起是将进程数据移出内存,而阻塞是在内存中等待。
- 七状态模型: 引入了就绪挂起和阻塞挂起的状态。
进程(处理机)调度(低级)
- 概念: 进程调度是最基本的调度,负责将一个处理机分配给一个进程。
- 时机:
- 可以进程调度: 当进程主动放弃(如正常终止、异常终止、主动阻塞)或被动放弃(时间片用完、紧急事件、高优先级进程)时。
- 不可以进程调度: 在处理中断过程、内核程序临界区、原语操作中。
- 调度方式:
- 非剥夺调度方式(非抢占): 适用于批处理系统。
- 剥夺调度方式(抢占): 适用于分时操作系统、实时操作系统。
- 进程调度和切换:
- 过程: 保存原进程数据,恢复新进程数据。
- 代价: 频繁切换会降低系统效率。
评价指标
- CPU利用率: CPU忙碌时间占总时间的比例。
- 系统吞吐量: 单位时间完成的专业数量。
- 周转时间: 作业提交到完成的时间间隔。
- 带权周转时间: 作业时间/运行时间。
- 等待时间: 处于等待处理机状态的总时间。
- 响应时间: 提交请求到首次响应的时间。
闲逛进程
- 概念: 在没有其他就绪进程时,运行闲逛进程(idle)。
调度算法
调度算法根据系统的不同需求设计,主要分为以下几种:
用于批处理系统的调度算法
- 先来先服务(FCFS): 非抢占式,公平,对长作业有利,不会饥饿。
- 短进程优先(SJF): 非抢占式,对短作业有利,可能饥饿。
- 最短剩余时间优先算法(SRTN): 抢占式。
- 高响应比优先(HRRN): 非抢占式,综合考虑等待和运行时间,不会饥饿。
用于交互式系统的调度算法
- 时间片轮转(RR): 抢占式,公平,响应快,不会饥饿,用于分时操作系统。
- 优先级调度: 区分紧急程度,可能饥饿,用于实时操作系统。
- 多级反馈队列: 综合各种调度算法,注重系统响应时间、公平性等,可能导致饥饿。
多级队列
- 概念: 系统中按进程类型设置多个队列,进程创建后插入某个队列。
- 调度策略:
- 固定优先级: 高优先级队列空时低优先级才能被调度。
- 时间片划分: 如三个队列分配时间50%、40%、10%。
- 应用:
- 系统进程队列: 采用优先级调度。
- 交互式队列: 采用时间片轮转。
- 批处理队列: 采用先来先服务。