1.4 操作系统的主要功能
L04
学习目标
处理机管理、存储器管理、设备管理、文件管理四大功能,加上用户接口和现代 OS 新功能,构成操作系统的功能体系。
- 处理机管理:进程控制(创建/终止)、进程同步(协调)、进程通信、调度(作业调度和进程调度)。
- 存储器管理:内存分配与回收(静态/动态)、内存保护(防止越界)、地址映射(逻辑→物理)、内存扩充(虚拟存储技术)。
- 设备管理:缓冲管理、设备分配(独占/共享/虚拟)、设备处理(驱动程序)、虚拟设备(SPOOLing)。
- 文件管理:文件存储空间管理、目录管理、文件的读写管理和保护;用户接口包括命令接口(联机/脱机)和程序接口(系统调用)。
- 现代 OS 新功能:系统安全、网络功能与服务、支持多媒体。
原理 · 深入理解
1.4 操作系统的主要功能
本节概览:先建立「操作系统的主要功能」的框架,再依次展开下列小节。
- 处理机管理功能
- 存储器管理功能
- 设备管理功能
- 文件管理功能
- 操作系统与用户之间的接口
- 现代操作系统的新功能
1.4.1 处理机管理功能
处理机管理的核心是进程。先能创建、撤销、并在运行中改状态;再让多个进程(以及线程)不要互相踩,合作的要按次序,最简单的同步手段是锁;需要交换数据时走进程通信;最后才是调度——传统上分作业调度和进程调度两步。
为作业创建进程,结束时撤销,并控制运行中的状态转换。
协调多个进程:访问临界资源时互斥,合作完成同一任务时由同步机构排好次序。
让相互合作的进程交换信息;在同一台机器上通常用直接通信。
传统操作系统里包括作业调度和进程调度。
1.4.2 存储器管理功能
内存分配要让每道程序有地方住,少留碎片,必要时还能再要空间。无论静态还是动态,这几件事都要管;动态还允运行中再申请、必要时挪位置。
装入时就把空间定死,执行过程中既不能再申请,也不能在内存里挪位置。
装入时先给一块基本空间,运行中还可以再申请,也允许作业在内存中移动,好适应数据和程序变长。
分配之后还须防止越界。每道用户程序只能在自己的内存中执行,不能访问操作系统的代码和数据,也不能进入其他程序不共享的内存空间。没有保护,多道程序会互相修改内存。
物理内存总是不够用。虚拟存储并不把芯片焊大,而是从逻辑上扩充:用户觉得内存比实际大,于是可以同时执行更多程序。要做到这一点,至少要有请求调入(缺了再从外存搬进来)和置换(内存满了把暂时不用的换出去)。下图左边是真正的芯片,虚线框是用户感觉到的容量。
当前要用的那部分才进内存,缺了再调。
内存不够时,把暂时不用的程序或数据换到外存。
1.4.3 设备管理功能
设备管理需同时完成两项任务:完成用户进程的 I/O 请求,以及使 CPU 和设备尽量并行工作、提高 I/O 速度、方便用户使用。为此通常具备四项功能。
在设备和 CPU 之间放缓冲区,缓和速度差。常见有单缓冲、能双向同时传的双缓冲,以及多家设备共用的缓冲池。
按进程的请求、现有资源和分配策略把设备分出去,用完立刻收回。系统里要有设备控制表、控制器控制表一类的登记。
即驱动程序:向控制器发 I/O 命令,并及时响应控制器送来的中断。
把一台物理设备分时复用成多台逻辑设备,让多道程序都觉得自己在用。
1.4.4 文件管理功能
文件管理负责管理用户文件和系统文件:既要方便用户使用,又要保证安全性。后续各章将展开讨论,此处先掌握四个要点。
外存上哪些块空着、文件实际放在哪。
通过文件名查找文件,而非要求用户记忆磁盘块号。
把用户眼里的记录,变成磁盘上的块来读、来写。
该共用的能共用,不该动的不能被改掉或读走。
1.4.5 操作系统与用户之间的接口
操作系统与用户之间的接口有三种形式:命令接口、作业说明书接口,以及后来的图形用户界面。
一组键盘命令加上命令解释程序,供终端前的用户使用。
批处理用户用作业控制语言,事先把控制和干预写在作业说明书里,连同作业一起交给系统。
联机敲命令又慢又不直观,于是用图标把功能、程序和文件画出来,用鼠标点。
为用户程序在执行中访问系统资源而设置,是用户程序取得操作系统服务的唯一途径。 由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序。每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用(子程序)。 只有在用汇编语言书写的程序中才能直接使用系统调用。
1.4.6 现代操作系统的新功能
传统操作系统对处理机、内存、设备和文件进行管理即可满足基本需求。现代操作系统的新功能可归纳为三个方面:面向安全、面向网络、面向多媒体。
认证用来确认对方是谁;密码用来保护存储和传输中的数据;访问控制限制谁能访问哪些文件;病毒则重在预防。
主机之间要能无差错传数据;网上的共享资源要统一管理;不同网络连在一起时,还要能互通、互用信息。
声音和画面有截止时间。系统要限制同时执行的软实时任务数量(接纳控制),调度时要看截止时间,并尽快把盘上的数据送到输出设备。
做 · 交互动画
- 根据「学习目标」列出 3 个关键词,对照原理段落解释给自己听。
操作系统的主要功能
用控件单步操作;日志区记下每一步发生了什么。
总结与提升
- 能把教材四管理与本课模块粗略对应。
- 能用自己的话复述学习目标,并指出概念与板上实验的对应。
延伸思考
- 接口管理(第九章)在 MCU 课以什么形式出现?
- 如果把本节机制拿到 Linux 或完整 OpenHarmony 上,会多出哪些硬件假设?