「操作系统」学习:(一)计算机系统概述
一、计算机系统概述
(一)操作系统的基本概念
1.操作系统的概念
操作系统是指:控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。
2.操作系统的特征
(1) 并发
操作系统的并发性是指计算机系统重同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。
在操作系统中引入进程的目的是,使程序能并发执行。
操作系统的并发性是通过分时得以实现的。
注意区分并发和并行。
(2) 共享
资源共享,系统中的资源可以供内存中多个并发执行的进程共同使用。分为互斥共享方式和同时访问方式。
- 互斥访问方式
- 同时访问方式
【并发和共享的关系】:并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件:
没有并发就无法共享;没有共享就无法并发
(3) 虚拟
虚拟是指把一个物理实体变为若干逻辑上的对应物。
- 虚拟处理器
- 虚拟内存
- 虚拟外部设备
虚拟技术可以归纳为:时分复用技术(如处理器的分时共享)、空分复用技术(如虚拟存储器)
(4) 异步
在多道程序环境下,多个进程并发执行,但由于资源有限(比如 CPU 只有一个),进程会交替使用 CPU,执行过程是“走走停停”的,而不是一气呵成,这就是进程的异步性。
异步性使操作系统运行在随机环境下,可能导致与时间有关的错误,如:多个进程访问同一全局变量,执行顺序不同可能导致结果不同。
3.操作系统的目标和功能
(1) 操作系统作为计算机资源的管理者
处理机管理
(处理机的分配和运行以进程为基本单位,因而对处理机的管理可归结为对进程的管理。)
- 存储器管理
- 文件管理
- 设备管理
(2) 操作系统作为用户与计算机硬件系统之间的接口
命令接口:允许用户通过特定的命令来组织和控制作业(任务)的执行。
- 联机命令接口(交互式命令窗口)
- 脱机命令窗口(批处理命令窗口)
- 程序接口:由一组系统调用(System Call)组成,允许运行中的程序请求操作系统内核提供服务(如申请内存、读写磁盘、创建进程等)。
(3) 操作系统实现了对计算机资源的扩充
没有任何软件支持的计算机称为裸机。
操作系统提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强,使用更方便 的机器。我们把覆盖了软件的机器称为扩充机器或虚拟机。
(二)操作系统的发展历程
1. 手工操作阶段(无操作系统)
- 特点:所有操作(装程序、运行、输出)均需人工干预,用户独占全机。
- 缺点:资源利用率极低,CPU 频繁等待手工操作,效率低下。
- 核心矛盾:人机速度不匹配,资源浪费严重。
2. 批处理阶段(操作系统开始出现)
为解决人机矛盾及 CPU 与 I/O 速度不匹配问题,批处理系统应运而生。
单道批处理系统
- 特征:自动性(无需人工干预)、顺序性(按进入顺序执行)、单道性(内存中仅一道作业)。
- 局限:CPU 在作业 I/O 时仍需等待,资源利用率仍有提升空间。
多道批处理系统(引入多道程序设计技术)
- 特征:多道(内存中同时存放多道程序)、宏观上并行(程序都处于运行过程中)、微观上串行(程序轮流占用 CPU)。
- 优点:资源利用率高,系统吞吐量大,CPU 和外设保持 “忙碌” 状态。
- 缺点:用户响应时间长,无交互能力,无法干预或了解程序运行。
3. 分时操作系统
- 核心思想:将处理器时间划分为短时间片,按时间片轮转分配给多个终端用户。
主要特征:
- 同时性:允许多个用户同时使用一台计算机。
- 交互性:用户可通过终端与系统对话,控制程序运行。
- 独立性:用户间互不干扰,感觉独占计算机。
- 及时性:用户请求能在短时间内获得响应。
- 解决问题:良好的人机交互,满足用户对系统响应的即时性需求。
4. 实时操作系统
- 核心目标:在严格的时间限制内完成紧急任务,无需排队。
分类:
- 硬实时:任务必须在绝对规定的时间内完成(如飞行器控制)。
- 软实时:偶尔超时不会造成严重后果(如机票预订)。
- 特点:对外部信号响应及时,处理过程具有及时性和可靠性。
5. 网络操作系统与分布式操作系统
- 网络操作系统:将计算机网络中的各台计算机有机结合,提供统一、经济、有效的网络通信与资源共享服务。
- 分布式操作系统:由多台计算机组成,系统中任意两台计算机可通过通信方式交换信息;所有计算机地位平等,可并行、协作完成同一任务,具有分布性和并行性。
6. 个人计算机操作系统
- 应用场景:广泛应用于文字处理、电子表格、游戏等,是目前使用最广泛的操作系统。
- 常见代表:Windows、Linux、MacOS 等。
(三)程序运行环境
1.处理器运行模式
- CPU运行两种不同性质的程序:操作系统内核程序、应用程序。
- 指令分为:特权指令、非特权指令。内核程序可以执行特权指令,应用程序不可以。
- CPU的运行模式划分为:用户态(目态)、核心态(管态、内核态)。
- 与硬件关联紧密的模块(时钟管理等)和运行频率较高的程序(进程管理等)共同构成操作系统的内核。
操作系统的内核包括4方面的内容:
(1) 时钟管理
- 向用户提供系统时间
- 采用时间片轮转调度,实现进程的切换
(2) 中断机制
中断机制的本质是让CPU在执行当前任务时,能够相应并处理来自硬件或软件的紧急请求,处理完毕后再无缝回到原来的任务重。
中断机制中,内核负责保护和恢复中断现场的信息。
例:你正在电脑上写代码(CPU 执行程序),突然收到了一封新邮件(外设中断)。
主程序运行:你正在用编辑器写代码,CPU 正在执行编辑器进程的指令,屏幕上不断刷新你输入的字符。
中断发生:网卡检测到新邮件到达,向 CPU 发送了一个硬件中断信号。
内核响应(中断处理核心):
- CPU 立即暂停当前的编辑器代码执行,由内核保护现场(保存当前寄存器、程序计数器等)。
- 内核根据中断号,找到对应的网卡驱动处理程序入口,将控制权转移过去。
处理程序执行:网卡驱动程序开始执行,读取网卡缓冲区中的邮件数据,将其存入内存,并更新邮件客户端的未读计数。
恢复执行:处理完成后,内核恢复之前保存的编辑器现场,CPU 继续执行被打断的代码编辑任务,你几乎感觉不到任何卡顿。
(3) 原语
原语处于操作系统最底层,运行具有原子性,运行时间短,调用频繁。
(4) 系统控制的数据结构及处理
系统控制的数据接口有作业控制块、进程控制块、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。
2.中断和异常
定义
中断,也称外中断,是指来自CPU执行指令外部的事件。通常用于信息输入/输出。
时钟中断:硬件定时器按预设频率周期性地向CPU发送中断信号,就像心脏跳动。
每次中断,CPU 都会暂停当前任务,进入内核态执行时钟中断处理程序,更新系统时间、检查进程时间片、驱动调度器等。
异常,也称内中断,是指来自CPU执行指令内部的事件。如程序的非法操作码、地址越界等。
异常不能被屏蔽,一旦出现必须立即处理。
分类

异常可以分为故障、自陷、终止。(异常是不可屏蔽的)
- 故障(Fault):通常是由指令执行引起的异常,如除数为0等。(属于软件中断)
- 自陷(Trap):一种事先安排的异常事件,用于在用户态下调用操作系统内核程序。(属于软件中断)
- 终止(Abort):出现了使得CPU无法继续执行的硬件故障,如控制器出错等。(属于硬件中断)
外中断可以分为可屏蔽中断、不可屏蔽中断。(都属于硬件中断)
- 可屏蔽中断:通过INTR线发出的中断请求。通过改变屏蔽字可以实现多重中断,使中断处理更加灵活。
- 不可屏蔽中断:通过NMI线发出的中断请求。通常是紧急的硬件故障,如电源掉电等。
处理过程
中断和异常处理过程的大致描述如下:
当CPU在执行用户程序的第i条指令时检测到一个异常事件/执行第i条指令后发现一个中断请求信号,则CPU打断当前的用户程序,转到相应的中断或异常处理程序去执行。若中断或异常处理程序能解决相应的问题,则在中断或异常处理程序的最后,CPU通过执行中断或异常返回命令,回到被打断的用户程序的第i条指令或第i+1条指令继续执行;若中断或异常处理程序发现是不可恢复的致命错误,则终止用户程序。
3.系统调用
系统调用按功能可分为:设备管理、文件管理、进程控制、进程通信、内存管理。
系统调用的处理需要操作系统内核程序负责完成。要运行在核心态,用户程序可以执行陷入指令(访管指令、trap指令)来发起系统调用。
过程:用户程序执行 “陷入指令”,之后相当于把 CPU 的使用权主动交给操作系统内核程序(CPU 状态会从用户态进入核心态),之后操作系统内核程序再对系统调用请求做出相应处理。处理完成后,操作系统内核程序又会把 CPU 的使用权还给用户程序(即 CPU 状态会从核心态回到用户态)。

由用户态转到核心态,会用到访管指令,访管指令是在用户态使用的,它不是特权指令。
从核心态转向用户态由一条指令实现,一般是中断返回指令,这条指令是特权命令。
注:由用户态进入核心态,不仅状态需要切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的。
(四)操作系统结构
1.分层法
- 核心思想:将操作系统分为若干层,仅能调用紧邻的低层功能(单向依赖)。
- 优点:便于系统调试和验证;易于扩充和维护。
- 缺点:合理定义各层比较困难;层间依赖导致灵活性不足;效率较低。
2.模块化
- 核心思想:按功能划分为若干独立模块,模块间通过接口通信(微内核由模块、子模块组成)。
- 衡量标准:内聚性(模块内部关联程度)、耦合度(模块间相互影响程度)。
- 优点:提高系统设计正确性、可理解性和可维护性;增强可适应性;加速开发过程。
- 缺点:模块接口验证困难,难以找到可靠的决定顺序。
3.宏内核(单内核)
- 核心思想:将系统主要功能模块作为紧密整体运行在核心态,管理模块间共享信息。
- 代表系统:Windows、Android、iOS、macOS、Linux 等。
- 优势:性能高,模块间交互直接。
- 发展趋势:逐步吸收微内核优点,向混合内核架构演进(如 Fuchsia、鸿蒙 OS)。
4.微内核
基本概念:
- 将内核中最基本的功能保留在内核,不需要在核心态执行的功能移到用户态,以降低内核设计复杂性。
- 微内核是精心设计的小型内核,仅包含与硬件紧密相关及较基本的功能,其余功能由用户态服务器实现。
微内核通常功能:
- 进程(线程)管理:进程创建、切换、调度等机制部分放入微内核。
- 低级存储器管理:地址映射等依赖硬件的机制放入微内核。
- 中断和陷入处理:仅将与硬件紧密相关的小部分放入微内核,其余交由服务器处理。
- 主要优点:扩展性和灵活性好;可靠性和安全性高;可移植性强;支持分布式和网络系统。
- 主要问题:频繁的核心态与用户态切换导致执行开销增大,可通过将频繁使用的服务移回内核改善性能。
5.外核
- 核心思想:在裸机上运行外核程序,为虚拟机分配独立的硬件资源(如磁盘块),并检查资源使用权限。
- 优点:减少了地址映射等不必要的抽象,提高性能;应用可根据需求定制资源。
- 缺点:应用需自行管理资源,复杂度增加;外核需保证虚拟机间不发生冲突。
(五)操作系统引导
操作系统引导是指计算机利用CPU运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统。
操作系统引导过程(8 步)
- 激活 CPU:CPU 读取 ROM 中的 boot 程序,将指令寄存器设置为 BIOS 的第一条指令,开始执行 BIOS。
- 硬件自检:BIOS 启动后进行硬件自检(POST),检查硬件故障;有故障则蜂鸣中止,无故障则显示硬件信息。
- 加载带操作系统的硬盘:BIOS 按启动顺序(Boot Sequence),将控制权交给首位可引导存储设备,CPU 加载其引导扇区内容。
- 加载主引导记录(MBR):硬盘以特定标识区分引导盘和非引导盘,MBR 告诉 CPU 去哪个主分区找操作系统。
- 扫描硬盘分区表:MBR 包含硬盘分区表,扫描后识别活动分区(含操作系统的分区),并将控制权交给它。
- 加载分区引导记录(PBR):读取活动分区的第一个扇区(PBR),其作用是寻找并加载活动分区根目录下的启动管理器。
- 加载启动管理器:PBR 搜索并加载活动分区中的启动管理器。
- 加载操作系统:启动管理器加载操作系统内核,完成引导,系统启动。
(六)虚拟机
虚拟机是一台逻辑计算机,是指利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。有两类虚拟化方法。
1. 第一类虚拟机管理程序(裸金属架构)
- 运行位置:直接运行在裸机硬件上,是唯一拥有最高特权级的程序,具备多道程序功能。
- 核心特点:向上层提供与裸机硬件精确复刻的虚拟机,因此虚拟机上可运行任意操作系统。
- 本质:像一个专门用于虚拟化的操作系统,直接管理硬件资源。
2. 第二类虚拟机管理程序(寄居架构)
- 运行位置:作为用户态进程,依赖于 Windows、Linux 等宿主操作系统来分配和调度资源。
核心特点:
- 虚拟机上的操作系统认为自己运行在内核态(实际为虚拟内核态),执行敏感指令时会陷入虚拟机管理程序。
- 虚拟机管理程序会检查指令来源:若来自虚拟机操作系统,则安排其正确执行;若来自虚拟机用户进程,则模拟硬件行为。
- 在不支持虚拟化的 CPU 上,敏感指令会被转为对虚拟机管理程序的调用,由其模拟功能。
- 典型代表:VMware Workstation。

本文系作者 @xiin 原创发布在To Future$站点。未经许可,禁止转载。
暂无评论数据