1.1 操作系统的基本概念
什么是操作系统
操作系统(Operating System,OS)是管理计算机硬件与软件资源的计算机程序,是计算机系统的核心与基石。
操作系统是一个系统软件,它管理计算机的硬件和软件资源,为用户和应用程序提供简单易用的接口。
操作系统的目标
1. 方便性
操作系统使计算机更易于使用,用户无需了解硬件细节。
2. 有效性
提高系统资源的利用率,提高系统的吞吐量。
3. 可扩充性
操作系统应该易于扩充和维护。
4. 开放性
遵循国际标准,便于移植和互操作。
操作系统的作用
1. 作为用户与计算机硬件之间的接口
操作系统为用户提供三种接口:
- 命令接口:用户通过命令与操作系统交互
- 联机命令接口(交互式命令接口)
- 脱机命令接口(批处理命令接口)
- 程序接口:用户通过系统调用使用操作系统功能
- 图形用户接口(GUI):通过图形界面与操作系统交互
2. 作为计算机系统资源的管理者
操作系统管理的资源包括:
- 处理器管理:进程管理、处理器调度
- 存储器管理:内存分配、虚拟内存
- 文件管理:文件的存储、检索、共享
- 设备管理:设备的分配、驱动、控制
3. 实现对计算机资源的抽象
操作系统将硬件资源抽象为易于使用的逻辑资源。
操作系统的特征
1. 并发性(Concurrence)
并发是指两个或多个事件在同一时间间隔内发生。
并行是指两个或多个事件在同一时刻发生。
区别
- 并发:宏观上同时进行,微观上交替执行
- 并行:真正的同时执行,需要多个处理器
单处理器系统:只能并发,不能并行
多处理器系统:既可以并发,也可以并行
2. 共享性(Sharing)
共享是指系统中的资源可供多个并发执行的进程共同使用。
共享方式:
- 互斥共享:一段时间内只允许一个进程访问(如打印机)
- 同时共享:允许多个进程同时访问(如磁盘文件)
考点提示
并发性和共享性是操作系统最基本的两个特征,二者互为存在条件。
3. 虚拟性(Virtual)
虚拟是指把一个物理实体变为若干个逻辑实体。
虚拟技术:
- 时分复用技术:虚拟处理器、虚拟设备
- 空分复用技术:虚拟存储器
4. 异步性(Asynchronism)
异步性是指进程以不可预知的速度向前推进。
由于资源有限,进程的执行不是一贯到底的,而是"走走停停"。
操作系统的功能
1. 处理器管理
- 进程控制:创建、撤销、阻塞、唤醒
- 进程同步:互斥、同步机制
- 进程通信:消息传递、共享内存
- 进程调度:作业调度、进程调度
2. 存储器管理
- 内存分配:连续分配、非连续分配
- 内存保护:防止进程越界访问
- 地址映射:逻辑地址到物理地址的转换
- 内存扩充:虚拟存储技术
3. 文件管理
- 文件存储空间管理
- 目录管理
- 文件的读写管理和保护
4. 设备管理
- 缓冲管理
- 设备分配
- 设备处理(设备驱动)
5. 用户接口
- 命令接口
- 程序接口(系统调用)
- 图形用户接口
操作系统的发展历程
1. 手工操作阶段(无操作系统)
- 用户独占全机
- CPU 等待人工操作
- 资源利用率低
2. 批处理阶段
单道批处理系统
- 自动成批处理作业
- 内存中只有一道程序
- CPU 利用率仍然较低
多道批处理系统
- 内存中同时存放多道程序
- 宏观上并行,微观上串行
- 显著提高资源利用率
特点:
- 多道:内存中同时存放多道程序
- 宏观上并行:多道程序同时处于运行状态
- 微观上串行:CPU 在多道程序间切换
3. 分时操作系统
分时:把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。
特点:
- 多路性:多个用户同时使用
- 独立性:用户感觉独占系统
- 及时性:用户请求能及时响应
- 交互性:用户与系统进行人机对话
4. 实时操作系统
实时系统:能够在规定的时间内完成对事件的处理。
分类:
- 硬实时系统:必须在严格的时间内完成(如导弹控制)
- 软实时系统:允许偶尔违反时间规定(如视频播放)
5. 网络操作系统
提供网络通信和网络资源共享功能。
6. 分布式操作系统
将多台计算机的资源统一管理,对用户透明。
7. 个人计算机操作系统
如 Windows、macOS、Linux 等。
8. 嵌入式操作系统
用于嵌入式系统,如智能手机、物联网设备。
操作系统的运行机制
1. 指令
- 特权指令:只能在核心态执行的指令(如 I/O 指令)
- 非特权指令:可以在用户态执行的指令
2. 处理器状态
- 核心态(管态、系统态):可以执行所有指令
- 用户态(目态):只能执行非特权指令
3. 程序
- 内核程序:操作系统的核心部分,运行在核心态
- 应用程序:用户程序,运行在用户态
系统调用
系统调用是操作系统提供给应用程序的接口,是应用程序请求操作系统服务的唯一方式。
系统调用的过程
- 应用程序调用库函数
- 库函数将系统调用号放入寄存器
- 执行
trap指令(陷入指令) - CPU 从用户态切换到核心态
- 操作系统根据系统调用号执行相应的服务
- 返回用户态,继续执行应用程序
系统调用与库函数的区别
| 特性 | 系统调用 | 库函数 |
|---|---|---|
| 执行环境 | 核心态 | 用户态 |
| 开销 | 较大(需要状态切换) | 较小 |
| 功能 | 操作系统服务 | 通用功能 |
| 示例 | read(), write() | printf(), scanf() |
注意
库函数可能会调用系统调用,如printf()最终会调用write()系统调用。
本节小结
- 操作系统是管理计算机硬件和软件资源的系统软件
- 操作系统的四大特征:并发、共享、虚拟、异步
- 操作系统的主要功能:处理器管理、存储器管理、文件管理、设备管理
- 操作系统运行在核心态,应用程序运行在用户态
- 系统调用是应用程序请求操作系统服务的接口
下一节: 1.2 操作系统的发展与分类
