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. 程序

  • 内核程序:操作系统的核心部分,运行在核心态
  • 应用程序:用户程序,运行在用户态

系统调用

系统调用是操作系统提供给应用程序的接口,是应用程序请求操作系统服务的唯一方式。

系统调用的过程

  1. 应用程序调用库函数
  2. 库函数将系统调用号放入寄存器
  3. 执行 trap 指令(陷入指令)
  4. CPU 从用户态切换到核心态
  5. 操作系统根据系统调用号执行相应的服务
  6. 返回用户态,继续执行应用程序

系统调用与库函数的区别

特性系统调用库函数
执行环境核心态用户态
开销较大(需要状态切换)较小
功能操作系统服务通用功能
示例read(), write()printf(), scanf()

注意
库函数可能会调用系统调用,如 printf() 最终会调用 write() 系统调用。

本节小结

  • 操作系统是管理计算机硬件和软件资源的系统软件
  • 操作系统的四大特征:并发、共享、虚拟、异步
  • 操作系统的主要功能:处理器管理、存储器管理、文件管理、设备管理
  • 操作系统运行在核心态,应用程序运行在用户态
  • 系统调用是应用程序请求操作系统服务的接口

下一节: 1.2 操作系统的发展与分类