操作系统复习总结,仅供笔者复习使用,参考教材:
- 《操作系统原理》 - 何静媛编著. 西安电子科技大学出版社
- 《操作系统考研复习指导》2024年 - 王道论坛组编. 电子工业出版社
本文主要内容为:计算机系统概述;
计算机系统概述 部分见 操作系统复习总结1;
进程与线程 部分见 操作系统复习总结2;
内存管理 部分见 操作系统复习总结3;
文件管理 部分见 操作系统复习总结4;
输入输出管理 部分见 操作系统复习总结5;
目录
- 1. 操作系统基本概念
- 2. 操作系统发展历程
- 3. 操作系统运行环境
- 4. 操作系统结构
- 5. 操作系统引导
- 6. 虚拟机
1. 操作系统基本概念
- 计算机系统:硬件、操作系统、应用程序、用户;
- 操作系统 OS:控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合;
- 操作系统的特征:
-
并发:操作系统能够处理和调度计算机系统中多个运行的程序同时执行;
并发 ≠ 并行
并发:一段时间内,宏观上有多道程序同时执行,但在每一时刻,单处理机只会执行一道程序,因为微观上这些程序是分时交替执行的。
并行:同一时刻执行多道程序,需要相关硬件的支持,如多级流水线或多处理机。 -
共享:系统中的资源可供内存中多个并发执行的进程共同使用。根据是否能同时使用,共享分为 互斥共享 和 同时访问 两种方式;
-
虚拟:把物理上实际存在的实体变为若干逻辑上的对应物,这些对应物是虚的,是用户感觉上的事物。操作系统的虚拟技术分为 时分复用技术 和 空分复用技术;
- 虚拟处理器:通过分时使用同一个处理器让多道程序并发执行,使每个终端用户都感觉有一个 CPU 在专为其服务。因此,多道程序设计技术把一个物理上的 CPU 虚拟为多个逻辑上的 CPU,即虚拟处理器;
- 虚拟存储器:通过将计算机的物理内存和磁盘空间相结合,提供比实际物理内存更大的地址空间供程序使用。虚拟存储器的核心思想是将程序所需的数据和指令从磁盘加载到物理内存中,并根据需要在物理内存和磁盘之间进行数据交换,使得程序能够运行并处理比物理内存更大的数据集;
- 虚拟设备:通过创建虚拟层,将一个硬件设备虚拟化为多个逻辑设备,使多个操作系统或应用程序可以共享同一物理设备;
-
异步:多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行无法一贯到底,而是以不可预知的速度间断向前推进。与同步性(任务的执行按照确定的顺序和时间进行,一个任务执行完后才能执行下一个任务)相对,异步操作系统中任务的执行不是严格按照线性的顺序进行,而是根据任务的状态和优先级来确定执行顺序;
-
- 操作系统的功能:
- 管理系统资源:
- 处理机管理:以进程为基本单位分配和运行处理机,还包括进程控制、进程同步、进程通信、死锁处理、处理机调度等;
- 存储器管理:主要包括内存分配与回收、地址映射、内存保护与共享、内存扩充等功能;
- 文件管理:主要包括文件存储空间管理、目录管理及文件读写管理等功能;
- 设备管理:主要包括完成用户的 I/O 请求、缓冲管理、设备分配、虚拟设备等功能;
- 提供用户接口:
- 命令接口:用户利用命令接口提供的操作命令来组织和控制作业的执行;
- 程序接口:开发者使用程序接口(系统调用)请求操作系统服务;
- 扩充计算机资源:操作系统丰富了裸机的功能,使用户可以更方便的使用计算机;
- 管理系统资源:
2. 操作系统发展历程
- 手工操作阶段:人工完成计算机上的所有工作,无操作系统;
- 批处理阶段:
- 单道批处理系统:系统按顺序逐个处理一批作业,同一时刻内存中只保持一道作业;
- 多道批处理系统:多个程序同时进入内存并在 CPU 中交替进行,即宏观上并行,微观上串行;
- 分时操作系统:通过分时技术将时间片轮流把处理器分配给各联机作业使用,一般用于服务器,能够保证多个用户通过终端同时共享一台主机;
- 实时操作系统:在某个时间限制内必须完成某些紧急任务而不需要时间片排队,分为硬实时系统和软实时系统;
- 网络操作系统:把网络中多台计算机有机结合,实现资源共享与通信;
- 分布式计算机系统:多台地位同等的计算机并行、协同工作;
- 个人计算机操作系统:如今广泛使用的 Windows、Linux、MacOS等;
上述操作系统都可以统称为通用操作系统,可以在各种计算设备上运行,包括个人计算机、服务器、移动设备和嵌入式系统等。它使用时间片轮转调度算法,提供了多任务支持、文件系统、设备管理、内存管理、网络支持等核心功能,旨在为用户提供统一的计算环境。
3. 操作系统运行环境
-
CPU 程序:
- 应用程序:执行 非特权指令 只能访问用户的地址空间;
- 内核程序:执行 特权指令 访问系统中的软硬件资源,包括一些与硬件关联密切的模块(时钟管理、中断处理、设备驱动)和运行频率较高的程序(进程管理、存储器管理、设备管理);
-
CPU 运行模式:
- 用户态:应用程序运行在用户态,当想要执行特权指令时向操作系统请求服务,通过 系统调用接口 使用 访管指令 产生中断将操作系统切换为核心态;
访管指令
访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件,将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
处于用户态的用户程序使用访管指令时,系统根据访管指令的操作数执行访管中断处理程序,访管中断处理程序将按系统调用的操作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。- 核心态:操作系统内核程序运行在核心态,主要内核功能如下:
- 时钟管理:为分时操作系统中的时间片、实时系统中的截止时间、批处理系统中的作业时间等提供时钟中断;
- 中断机制:键盘或鼠标的输入、进程的管理和调度、系统调用、设备驱动、文件访问等;
- 原语:操作系统底层最接近硬件部分可被调用的公用小程序,运行具有原子性,操作一气呵成,不可分割;
- 系统控制的数据结构:进程管理、存储器管理和设备管理等;
-
中断和异常:处于用户态的 CPU 可以通过中断或异常进入核心态:
- 中断:也叫外中断,通常用于设备输入/输出处理或时间片走完;
- 异常:也叫内中断,通常是来自 CPU 内部的事件,分为 故障、自陷、终止;
- 故障:指令执行异常,如非法操作码、缺页故障、除 0、运算溢出等;
- 自陷:用户态执行系统调用时执行自陷指令;
- 终止:CPU 无法继续执行,如控制器出错、存储器校验错等;
-
系统调用:用户程序想要调用操作系统提供的一些子功能时执行自陷指令,把 CPU 的使用权交给操作系统内核程序,CPU 进入内核态,操作系统内核程序再对系统调用请求作相应处理;
4. 操作系统结构
-
分层法:每层只调用紧邻它的低层的功能和服务;
-
模块 - 接口法:将操作系统功能划分为若干具有一定独立性的模块,通过 内聚性 和 耦合度 衡量模块的独立性;
-
宏内核:将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务;
-
微内核:将内核最基本的功能保留在内核,其余不需要在核心态执行的功能移到用户态执行,从而降低内核的设计复杂性。微内核结构的操作系统使用 足够小的内核,基于 客户 / 服务器方式,应用 “机制与策略分离” 原理,采用 面向对象 技术进行设计。
5. 操作系统引导
操作系统是一种程序,以数据的形式存放在硬盘中。操作系统引导就是计算机利用 CPU 运行特定程序,通过程序识别硬盘及其分区上的操作系统,最后通过程序启动操作系统。该过程如下:
- 激活 CPU 读取 ROM 中的 boot 程序,将指令寄存器置为 BIOS 的第一条指令并开始执行;
- 硬件自检,如有故障,主板会发出蜂鸣,启动停止;若无故障,屏幕会显示 CPU、内存、硬盘等信息;
- 加载带有操作系统的硬盘和主引导记录 MBR;
- 扫描硬盘分区表并加载硬盘活动分区;
- 加载分区引导记录 PBR;
- 在 PBR 中扫描并启动活动分区中的启动管理器;
- 加载操作系统;
6. 虚拟机
虚拟机是指利用虚拟化技术,通过隐藏计算机的实际物理特性,为用户提供抽象、统一的模拟计算环境的逻辑计算机。
- 第一类虚拟机管理程序:运行在 裸机 上并具备多道程序功能,向上层提供若干裸机环境,每个裸机可以运行各自的操作系统;
- 第二类虚拟机管理程序:依赖宿主操作系统,就像一个普通的进程,运行客户操作系统;