6.1 作业与作业调度
"作业"是批处理系统时代的核心概念:用户交给系统的一批工作。
- 作业(Job)——用户在一次算题过程中,要求计算机所做工作的总称,包括程序、数据和操作说明。
- 作业控制块(JCB)——记录作业信息的表格(类似进程的 PCB),是作业存在的标志。
- 作业的状态:提交 → 后备(在磁盘等待)→ 运行 → 完成。
| 调度级别 | 又叫 | 做什么 | 发生频率 |
|---|---|---|---|
| 高级调度 | 作业调度 | 从后备队列选作业,分配资源让它进入内存 | 低(几分钟一次) |
| 中级调度 | 交换调度 | 内存紧张时把进程换出到磁盘(挂起),反之换入 | 中 |
| 低级调度 | 进程调度 | 从就绪队列选进程,真正分配 CPU | 最高频(毫秒级) |
记住分工
- 高级调度决定"谁能进场",低级调度决定"谁上台表演"。
- 分时/实时系统一般不需要作业调度(没有批处理作业),但都离不开进程调度。
课堂练习(2 题)
- 三级调度里频率最高的是哪个? 答:低级调度(进程调度),每次 CPU 空闲/时间片到期都要执行。
- 作业存在的标志是什么? 答:作业控制块 JCB。
6.2 用户接口:人和系统怎么对话
三种接口各自的样子,概念题。
| 接口 | 形态 | 例子 |
|---|---|---|
| 命令接口 | 输命令 → 系统执行 | Linux Shell、Windows CMD:ls、dir;批处理脚本(脱机命令) |
| 程序接口 | 程序里调用的函数 | 系统调用:open/read/write/fork |
| 图形用户界面 GUI | 窗口、图标、鼠标点选 | Windows 桌面、GNOME/KDE |
系统调用速览(认识名字即可)
| 类别 | 典型调用 | 用途 |
|---|---|---|
| 进程控制 | fork / exec / wait / exit | 创建、替换、等待、结束进程 |
| 文件操作 | open / read / write / close | 打开、读写、关闭文件 |
| 设备管理 | ioctl / read / write | 操作外设 |
| 内存管理 | brk / mmap | 调整堆、映射内存 |
| 进程通信 | pipe / shmget / kill | 管道、共享内存、发信号 |
课堂练习(2 题)
- "用户程序请求操作系统服务"通过什么机制实现? 答:系统调用(执行访管指令陷入核心态,由内核完成服务)。
- Linux 中创建一个新进程用哪个系统调用? 答:fork。