操作系统知识体系概述
1、操作系统管理计算机资源的五大核心任务:
(1)系统结构;
(2)进程管理;
(3)内存管理;
(4)文件系统;
(5)IO管理。
2、操作系统五大模块分别解决计算机运行中的什么问题?
操作系统(Operating System,OS)是管理计算机硬件资源和软件资源的系统软件,其核心作用是协调计算机各个部分的运行,提高资源利用率,并为用户程序提供统一的运行环境。
操作系统主要围绕以下五个方面展开:
一、系统结构
1.1 系统结构解决的问题:操作系统内部如何组织和实现?
操作系统本身是一个复杂的软件系统,需要合理的结构设计来管理各种功能模块。
不同的系统结构决定了操作系统中各个功能模块之间的组织方式,例如:
- 单体结构;
- 分层结构;
- 微内核结构;
- 客户-服务器结构。
系统结构的作用:
合理划分操作系统功能,提高系统的可靠性、可维护性和扩展能力。
1.2 系统调用解决的问题:用户程序如何请求操作系统帮忙完成任务?
普通用户程序不能直接访问计算机硬件资源,例如磁盘、内存、设备等。
当程序需要完成某些操作时,需要通过系统调用向操作系统提出请求。
例如:
打开文件时,用户程序不能直接访问磁盘,需要:
用户程序 → 系统调用 → 操作系统 → 磁盘设备
常见的系统调用包括:
- open()
- read()
- write()
- close()
- fork()
- exec()
- wait()
- exit()
系统调用的作用:
为用户程序提供访问操作系统功能的接口,使用户程序能够安全、高效地使用计算机资源。
1.3 微内核解决的问题:如何设计更加稳定、安全的操作系统?
传统操作系统通常将大量功能集中在内核中,导致内核复杂,维护困难。
微内核思想是:
将操作系统中最核心、最基本的功能保留在内核中,其他功能作为独立服务运行。
例如:
应用程序
↓
系统服务
↓
微内核
↓
硬件
微内核的作用:
减少内核规模,提高系统安全性、可靠性和可扩展性。
1.4 虚拟机解决的问题:如何在一台计算机上运行多个独立系统?
虚拟机技术通过软件模拟出多个虚拟计算机,使一台物理计算机能够同时运行多个操作系统。
例如:
一台电脑同时运行:
- Windows系统;
- Linux系统。
虚拟机的作用:
提高硬件资源利用率,方便系统测试和环境隔离。
二、进程管理
2.1 进程管理解决的问题:多个程序如何同时运行?
计算机中通常存在多个程序同时运行,例如:
- 浏览网页;
- 播放音乐;
- 下载文件。
但是CPU同一时间只能执行有限任务,因此需要进程管理协调多个程序的执行。
进程管理主要负责:
- 创建和管理进程;
- 分配CPU资源;
- 控制进程执行顺序;
- 解决多个进程之间的竞争问题。
2.2 进程解决的问题:如何描述一个正在运行的程序?
程序本身是静态的代码文件,当程序运行后,会形成一个动态执行过程,即进程。
例如:
微信程序
↓
微信进程
进程的作用:
作为操作系统管理程序运行的基本单位,使操作系统能够记录程序运行状态,并分配系统资源。
2.3 线程解决的问题:一个程序内部如何同时执行多个任务?
一个进程内部可能包含多个执行任务。
例如微信:
- 接收消息;
- 下载文件;
- 播放语音。
这些任务可以通过多个线程并行执行。
线程的作用:
作为CPU调度和执行的基本单位,提高程序执行效率。
2.4 进程调度解决的问题:CPU应该执行哪个程序?
多个进程同时处于运行需求状态,但CPU资源有限,因此操作系统需要决定:
"下一步运行哪个进程?"
常见调度算法:
- FCFS进程调度(先来先服务);
- 时间片轮转调度;
- 优先级调度;
- 多重队列调度;
- 最短进程优先调度;
- 两级调度。
进程调度的作用:
合理分配CPU资源,提高系统响应速度和资源利用率。
2.5 同步与互斥解决的问题:多个进程同时运行如何避免冲突?
多个进程可能同时访问共享资源,例如:
多个程序同时修改同一个数据。
如果没有控制,可能产生错误。
同步与互斥用于协调多个进程之间的执行关系。
主要机制:
- 临界区;
- 锁变量;
- 原子操作;
- 信号量;
- 管程。
作用:
保证多个进程能够正确、有序地共享资源。
2.6 进程通信(IPC)解决的问题:多个进程之间如何交换信息?
不同进程之间通常相互独立,需要通过进程通信(IPC,Inter Process Communication)交换数据。
常见方式:
- 消息通信;
- 共享资源通信。
进程通信的作用:
实现不同进程之间的信息传递和协同工作。
2.7 死锁解决的问题:多个进程互相等待导致无法运行怎么办?
当多个进程竞争资源时,可能出现:
某个进程等待另一个进程释放资源,而另一个进程又等待它释放资源。
最终所有进程都无法继续执行。
死锁处理方法:
- 死锁预防;
- 死锁检测;
- 死锁避免;
- 银行家算法。
作用:
保证系统资源能够合理分配,避免系统停止运行。
三、内存管理
3.1 内存管理解决的问题:程序如何使用有限的内存空间?
计算机内存容量有限,而程序规模不断增大,因此操作系统需要合理管理内存资源。
内存管理负责:
- 地址转换;
- 内存分配;
- 虚拟存储;
- 页面置换。
作用:
提高内存利用率,使更多程序能够同时运行。
四、文件系统
4.1 文件系统解决的问题:数据如何长期保存和管理?
内存断电后数据会丢失,而文件系统负责管理磁盘中的长期存储数据。
文件系统主要负责:
- 文件管理;
- 目录管理;
- 文件存储组织;
- 文件访问控制。
作用:
方便用户保存、查找和管理数据。
五、输入输出(IO)管理
5.1 IO管理解决的问题:CPU如何高效管理外部设备?
计算机中存在大量外部设备:
- 磁盘;
- 键盘;
- 打印机;
- 终端设备。
这些设备速度和工作方式不同,需要操作系统进行统一管理。
IO管理负责:
- 控制设备访问;
- 管理设备驱动;
- 提高设备利用率。
相关技术:
- IO控制方式;
- 设备驱动程序;
- SPOOLing;
- 磁盘调度算法。
作用:
实现CPU与外部设备之间高效、可靠的数据交换。
总结
操作系统本质上就是围绕五个核心问题展开:
| 模块 | 解决的问题 |
|---|---|
| 系统结构 | 操作系统自身如何组织和实现 |
| 进程管理 | 多个程序如何同时运行 |
| 内存管理 | 程序如何使用有限内存 |
| 文件系统 | 数据如何长期保存和管理 |
| IO管理 | CPU如何高效控制外部设备 |




