系统架构师备考:操作系统基础 | 作业管理
一、作业管理核心概念
1.1 作业的定义
作业(Job)是用户提交给操作系统的一整套完整任务集合,主要包含三部分:执行程序、所需数据、作业控制指令。
从调度层级区分:作业是用户侧宏观调度单元,聚焦任务整体的提交与落地;进程是CPU侧微观执行单元,负责具体任务的CPU运算执行,二者层级完全不同。
1.2 作业 VS 进程(高频必考辨析)
作业和进程是考生最易混淆的知识点,下表从核心维度完整区分,直接秒杀选择题:
|
对比维度 |
作业(Job) |
进程(Process) |
|
调度层级 |
高级调度 |
低级调度 |
|
存储位置 |
外存后备队列 |
内存就绪队列 |
|
核心职责 |
筛选作业调入内存、分配资源、创建进程 |
分配CPU时间片,执行具体任务 |
|
适用系统 |
仅批处理操作系统 |
所有操作系统通用 |
|
调度频率 |
极低(分钟/小时级) |
极高(毫秒级) |
秒杀核心结论:作业调度只负责把任务「送入内存」,进程调度负责让任务「占用CPU执行」。
1.3 作业四大状态及流转逻辑
一个完整的作业,从提交到结束会经历四个固定状态,是状态题核心考点:
-
提交状态:用户上传作业数据与指令,操作系统正在接收、校验作业信息,任务尚未入队。
-
后备状态:作业接收完成,存入外存后备队列排队,等待高级调度选中,也叫收容状态。
-
运行状态:作业被调度调入内存,系统创建对应进程,接入CPU调度队列开始执行。
-
完成状态:作业全部执行完毕,系统回收内存、设备等资源,输出执行结果并撤销作业。
标准流转链路:提交 → 后备 → 运行 → 完成
二、操作系统三级调度体系
操作系统分为高级、中级、低级三级调度,层级分工明确,其中仅高级调度为作业专属调度,其余两级适配所有系统。
2.1 高级调度(作业调度)
调度对象为外存后备作业队列中的批量任务,核心是筛选合适作业调入内存、分配系统资源、创建进程,仅批处理系统具备该调度能力,核心目标是提升系统整体吞吐量与资源利用率。
2.2 中级调度(内存调度)
调度对象为内存与外存间的挂起进程,核心作用是实现进程换入、换出与挂起/解挂,缓解内存资源紧张问题,是Windows、Linux等所有现代操作系统的通用调度机制。
2.3 低级调度(进程调度)
操作系统最核心、执行频率最高的调度方式,调度对象是内存就绪进程,负责分配CPU时间片,掌控程序的实际执行,是所有操作系统必备的基础调度。
|
调度层级 |
别名 |
调度位置 |
分时系统是否具备 |
|
高级调度 |
作业调度 |
外存 |
❌ 无 |
|
中级调度 |
内存调度 |
内存↔外存 |
✅ 有 |
|
低级调度 |
进程调度 |
内存 |
✅ 有 |
三、四大作业调度算法(考试核心)
作业调度算法针对批处理系统后备队列设计,是选择题辨析、计算题求解的核心考点,四种算法各有优劣,适配不同业务场景。
3.1 FCFS 先来先服务
严格按照作业进入后备队列的先后顺序调度执行。
✅ 优点:逻辑简单、实现成本低,绝对公平,无任务饥饿问题
❌ 缺点:存在短作业护航效应,短作业需等待长作业执行完成,整体平均周转时间长,系统吞吐率低
3.2 SJF 短作业优先
优先选择预估运行时长最短的作业调度执行,聚焦提升系统吞吐能力。
✅ 优点:有效缩短平均周转时间,四大算法中系统吞吐量最优
❌ 缺点:需要提前预知作业运行时长;持续大量短作业涌入时,长作业会长期得不到调度,产生饥饿现象
3.3 HRRN 高响应比优先(高频必考)
软考最常考查的综合最优算法,动态计算作业响应比,择优调度。
必背响应比计算公式
$$R = \frac{等待时间 + 运行时间}{运行时间}$$
✅ 核心优势:兼顾长短作业性能,短作业天然响应比高、优先执行,保障吞吐率;长作业随等待时间增加,响应比动态提升,彻底解决饥饿问题,综合平衡性最强
❌ 缺点:需预知作业运行时长,每次调度需遍历所有后备作业计算比值,系统开销略大
3.4 优先级调度
根据作业优先级高低调度,分为静态优先级和动态优先级两种模式,适配关键任务场景。
静态优先级任务优先级固定,高优先级任务持续抢占资源时,低优先级任务易出现饥饿;动态优先级可随等待时间自动提升优先级,缓解饥饿问题,多用于重要批处理任务调度。
四、作业性能评价指标
作业调度计算题核心公式固定,熟记即可满分,参数定义:Tc为作业完成时间、Ts为作业提交时间、Tr为作业实际运行时间。
1. 周转时间:作业从提交到完全执行完成的总耗时
$$T = Tc - Ts$$
2. 带权周转时间:衡量作业等待开销与自身运行时长的匹配度,是核心评价指标
$$W = T / Tr$$
3. 平均指标:所有作业周转时间、带权周转时间的平均值
核心判分标准:评判调度算法优劣的唯一核心依据是平均带权周转时间,数值越小,算法性能越优。
五、作业三大分类
根据操作系统运行模式,作业可分为三类,仅批处理作业具备完整作业调度流程:
-
批处理作业:无实时人机交互,任务批量后台执行,存在完整的作业调度机制,适配服务器批量任务场景
-
分时作业:聚焦人机实时交互,对响应速度要求高,无后备作业队列,不存在作业调度
-
实时作业:应用于工控、医疗、自动驾驶等场景,有严格截止时间要求,追求任务实时性,无作业调度
六、高频易错考点
-
✅ 分时系统、实时系统无高级作业调度,仅批处理系统专属
-
✅ 作业调度仅负责内存资源分配、进程创建,不分配CPU,CPU分配由进程调度完成
-
✅ SJF算法吞吐率最高,但存在严重饥饿问题;HRRN算法综合性能最优,彻底规避饥饿问题
-
✅ 调度算法性能对比,优先参考平均带权周转时间,而非单一周转时间
-
✅ SRTF最短剩余时间调度属于进程抢占式调度,不属于作业调度范畴
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)