当你打开电脑、点击图标、运行应用程序时,背后真正让这一切运作的核心——就是 操作系统(Operating System, 简称 OS) 。
操作系统是一种管理计算机硬件与软件资源的系统软件。它位于 硬件 和 应用程序 之间,为用户提供一个易于使用的接口,并为程序提供安全、受控的运行环境。
操作系统是“计算机的管理者”,也是“应用程序的服务员”。
资源管理 :统一管理 CPU、内存、磁盘、网络等硬件资源。
程序调度 :决定哪个程序、什么时候、在什么条件下执行。
文件与存储管理 :为数据存取提供高层抽象,如文件系统。
安全与隔离 :保护不同程序之间互不干扰。
用户交互 :通过命令行或图形界面与用户沟通。
早期批处理系统 :一次只能执行一个任务。
多道程序系统 :允许多个任务同时驻留内存,提高 CPU 利用率。
分时系统 :每个用户获得短时间的 CPU 使用权,实现“多人同时使用”。
现代操作系统 :支持多核并行、虚拟化、分布式、移动设备等。
类型
示例
桌面系统
Windows、macOS、Linux
服务器系统
Ubuntu Server、CentOS、Debian
移动系统
Android、iOS
嵌入式系统
RT-Thread、FreeRTOS、VxWorks
+---------------------------------------+
| 用户(User) |
+---------------------------------------+
| 应用程序(Applications) |
+---------------------------------------+
| 操作系统(Operating System) |
| ├── 系统调用接口(System Call) |
| ├── 内核(Kernel) |
| └── 驱动程序(Device Drivers) |
+---------------------------------------+
| 硬件(Hardware) |
+---------------------------------------+
模块
功能简述
进程管理
负责进程的创建、调度与终止
内存管理
控制内存分配与回收
文件系统
管理磁盘文件的读写、创建、删除
设备管理
管理输入输出设备
系统调用接口
提供程序与内核交互的统一接口
类型
特点
举例
单体内核
所有核心功能都在一个大内核中运行
Linux、早期 UNIX
微内核
仅保留核心功能,其他服务在用户态运行
Minix、QNX
模块化内核
支持模块加载,灵活可扩展
现代 Linux
混合内核
结合单体与微内核优点
Windows NT、XNU
#include <unistd.h>
#include <sys/syscall.h>
int main () {
syscall (SYS_write , 1 , "Hello OS\n" , 9 );
return 0 ;
}
三、进程管理(Process Management)
程序 vs 进程 :程序是静态代码,进程是运行实例。
特征 :动态性、独立性、并发性、异步性。
+-----------+
| 新建(New) |
+-----+-----+
|
v
+-----------+
| 就绪(Ready)|
+-----+-----+
|
v
+-----------+
| 运行(Run) |
+-----+-----+
^ |
| v
+-----------+
| 阻塞(Block)|
+-----+-----+
|
v
+-----------+
| 终止(Exit)|
+-----------+
算法
特点
场景
FCFS
先来先服务
批处理系统
SJF
短作业优先
CPU 密集型
RR
时间片轮转
分时系统
Priority
优先级调度
实时任务
MFQ
多级反馈队列
Linux 等通用系统
保存当前进程状态并加载下一个进程状态,以实现多任务运行。
线程是进程内最小执行单位。
优点:并发性高、资源共享、开销小。
用户线程 vs 内核线程:速度与阻塞行为不同。
并发(Concurrency) vs 并行(Parallelism):单核交替 vs 多核同时。
机制
特点
场景
管道
单向通信
父子进程
消息队列
异步传递
事件系统
共享内存
最高效通信
高频交互
信号量/互斥锁
控制同步
并发控制
信号
内核通知事件
异常、终止
四、内存管理(Memory Management)
寄存器 → 高速缓存 → 主存(RAM) → 外存(硬盘)
连续分配 :简单但有碎片问题。
分页 :将内存划分为固定页框,程序分页。
分段 :按逻辑模块划分段。
段页式结合 :兼顾逻辑与物理效率。
程序“以为”有完整内存,实际按需加载。
缺页中断:访问未加载页面时触发。
页表:记录虚拟页与物理页框映射。
算法
思想
FIFO
先入先出
LRU
最近最少使用
OPT
理论最优
Clock
LRU 近似实现
内存隔离防止互相干扰。
共享内存加速通信。
写时复制(COW)、内存映射文件(mmap)提升效率。
操作系统连接硬件与应用。
系统结构决定能力。
进程管理支持多任务。
内存管理保障高效安全。
虚拟内存让有限变无限。
《操作系统概念》(Silberschatz)
《现代操作系统》(Tanenbaum)
《深入理解计算机系统》(CSAPP)
《Linux 内核设计与实现》(Robert Love)