101 计算机系统概述
操作系统的基本概念
操作系统的概念
- 操作系统:指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合
- 为上层用户,应用程序提供简单易用的服务
- 是计算机系统中最基本的系统软件
操作系统的特征
- 并发和共享是最基本的两个特征,两者互为存在条件:
- 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题
- 若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法执行
- 如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性
- 如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性
并发
- 并发:两个或多个事件在同一时间间隔内发生
- 并行:系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作
- 可并行的有【处理机与设备】【处理机与通道】【设备与设备】
- 不可并行的有【进程与进程】
- 引入进程的目的是使程序能够并发执行
- 注意:
- 单核 CPU 同一时刻只能执行一个程序,各个程序只能并发地执行
- 多核 CPU 同一时刻可以同时执行多个程序,多个程序可以并行地执行
共享
- 共享:指系统中的资源可供内存中多个并发执行的程序共同使用
- 互斥共享方式:
- 规定一段时间内只允许一个进程访问该资源【称为临界资源】
- A 访问完并释放该资源后,才允许另一进程访问
- 如:计算机系统中的大多数物理设备及某些软件中所有的栈、变量和表格
- 同时访问方式:
- 宏观上,一段时间内由多个进程“同时”访问某类资源
- 微观上,进程之间可能交替对该资源进行访问
- 如:磁盘设备,一些可重入代码编写的文件
- 互斥共享方式:
虚拟
- 虚拟:指将一个物理上的实体变为若干逻辑上的对应物
- 用于实现虚拟的技术称为虚拟技术
- 时分复用技术:如虚拟处理器
- 空分复用技术:如虚拟存储器
异步
- 进程的异步性:由于资源有限,进程的执行不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进
操作系统的功能和目标
操作系统作为计算机系统资源的管理者
处理器管理
- 处理机的分配和运行都以进程(或线程)为基本单位
- 对处理器的管理可归结为对进程的管理
- 主要功能:进程控制 + 进程同步 + 进程通信 + 死锁处理 + 处理机调度
存储器管理
- 为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率
- 主要功能:内存分配与回收 + 地址映射 + 内存保护 + 共享和内存扩充
文件管理
- 计算机的信息都是以文件的形式存在的
- 操作系统重负责文件管理的部分称为文件系统
- 主要功能:文件存储空间的管理 + 目录管理 + 文件读写管理和保护
设备管理
- 主要是完成用户的 I/O 请求,方便用户使用各种设备,提高设备的利用率
- 主要功能:缓冲管理 + 设备分配 + 设备处理 + 虚拟设备
操作系统作为用户与计算机硬件系统之间的接口
命令接口
- 用户利用这些操作命令来组织和控制作业的执行
- 联机命令接口【交互式命令接口】:
- 适用于分时或实时系统的接口
- 由一组键盘操作命令组成
- 用户发送一个命令,系统就执行一次,主要特点是交互性
- 脱机命令接口【批处理命令接口】:
- 适用于批处理系统的接口
- 由一组作业控制命令组成
- 用户一次性发送命令清单,系统按清单执行,中途不能干预
程序接口
- 可以在程序中进行系统调用来使用程序接口
- 普通用户不能直接使用程序接口,只能通过程序代码间接使用

操作系统实现了对计算机资源的扩充
- 裸机:没有任何软件支持的计算机,仅构成计算机系统的物质基础
- 在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器
- 扩充机器/虚拟机:覆盖了软件的机器
操作系统的发展历程
手工操作阶段
- 此阶段无操作系统
- 所有工作都要人工干预
- 缺点:
- 用户独占全机,资源利用率低
- CPU 等待手工操作,CPU 的利用不充分
批处理阶段
- 为了解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾,出现了批处理系统
单道批处理系统
- 引入脱机输入/输出技术(用外围机 + 磁带完成),并由监督程序负责控制作业的输入、输出
- 特点:自动性、顺序性、单道性
- 优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
- 缺点:
- 内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序
- CPU 有大量的时间是在空闲等待 I/O 完成,资源利用率依然很低
多道批处理系统
- 允许多个用户将若干个作业提交给计算机系统集中处理
- 当某道程序因请求 I/O 操作而暂停运行时,通过中断机制,CPU 转去运行另一道程序
- 特点:多道、宏观上并行、微观上串行
- 优点:
- 资源利用率高,多道计算机共享计算机资源,从而使各种资源得到充分利用
- 系统吞吐量大,CPU 和其他资源保持“忙碌”状态
- 缺点:
- 用户的响应时间较长
- 不提供人机交互能力
分时操作系统
- 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
- 特点:同时性(多路性)、交互性、独立性、及时性
- 优点:
- 用户请求可以被即时响应,解决了人机交互问题
- 允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在
- 缺点:
- 不能优先处理一些紧急任务
- 操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性
实时操作系统
- 为了能在某个时间限制内完成某些紧急任务而不需要时间片排队
- 硬实时系统:某个动作必须绝对地在规定的时刻(或规定的时间范围)发生【飞机的飞行自动控制系统】
- 软实时系统:能够接受偶尔违反时间规定且不会引起任何永久性的损害【飞机订票系统、银行管理系统】
- 特点:及时性、可靠性
- 优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队
其他几种操作系统
- 网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)
- 分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务
- 个人计算机操作系统:如 Windows XP、MacOS,方便个人使用
操作系统的运行环境
处理器运行模式
- CPU 执行两种不同性质的程序:内核程序和应用程序
- 操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态
- 为了保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态
两种指令
特权指令
- 指不允许用户直接使用的指令
- 如:对 I/O 设备操作指令、存取特殊寄存器的指令、有关访问程序状态的指令、置中断指令、关中断指令、清内存指令、置时钟指令
非特权指令
- 允许用户直接使用的指令
- 不能直接访问系统中的软硬件资源,只限于访问用户的地址空间
- 如:访管指令(trap)
两种处理器状态
核心态【管态、内核态】
- 此时运行的是内核程序,可以执行特权指令
- 只能在核心态运行的指令和程序:
- 时钟管理相关的指令【置时钟指令】
- 中断机制相关的指令【时钟中断程序】
- 原语相关的指令
- 系统控制的数据结构与处理【进程调度程序】【进程切换】【缺页处理程序】【系统调用命令】
用户态【目态】
- 此时运行的是用户程序,只能执行非特权指令
- 在用户态运行的指令和程序/发生的事件:
- 命令解释程序【属于命令接口,面向用户】
- 访管/Trap 指令,跳转指令,压栈指令
- 广义指令 (系统调用) 的调用
- 外部中断,缺页
如何变态
- 内核态 -⇒ 用户态:执行一条特权指令——修改 PSW 的标志位为“用户态”,这个动作意味着操作系统将主动让出 CPU 使用权
- 用户态 -⇒ 内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回 CPU 的使用权
- 注意:
- CPU 中的程序状态字寄存器(PSW),其中有个二进制位,1 表示“内核态”,0 表示“用户态”
- 需要操作系统介入的地方,都会触发中断信号
操作系统的内核
- 内核:是计算机上配置的底层软件,是操作系统最基本、最核心的部分。实现操作系统内核功能的那些程序就是内核程序
与硬件关联紧密的模块
- 时钟管理:实现计时功能
- 中断处理:负责实现中断机制
- 原语:
- 是一种特殊的程序
- 处于操作系统最底层,是最接近硬件的部分
- 该程序运行具有原子性(运行只能一气呵成,不可中断)
- 运行时间较短,调用频繁
对系统资源进行管理的功能
- 设备管理:完成设备的请求和释放,以及设备启动等功能
- 进程管理:完成进程的创建,撤销,阻塞及唤醒等功能
- 存储器管理:完成内存的分配,回收以及获取作业占用内存区大小及地址等功能
中断和异常
基本概念

中断处理和子程序调用的比较
| 中断处理 | 子程序调用 |
|---|---|
| 中断处理程序与被中断的当前程序是相互独立的 | 子程序与主程序是同一程序的两部分,它们属于主从关系 |
| 中断的产生是随机的 | 子程序的调用是通过调用指令 (CALL) 引起的,是由程序设计者事先安排的 |
| 中断处理的过程需要有专门的硬件 | 完全属于软件处理过程 |
| 中断处理程序的入口地址可由硬件向量法产生向量地址,再由向量地址找到入口地址 | 子程序的入口地址是由 CALL 指令中的地址码给出的 |
| 中断隐指令保存 PC 的内容 | CALL 指令保存 PC 的内容,先将当前 PC 值压入栈,再将 PC 设置为入口地址 |
| 需对同时检测到的多个中断请求进行裁决 | 无这种操作 |
系统调用
基本概念
- 操作系统对应用程序和程序员提供的接口
- 系统调用需要触发陷入指令(Trap)
- OS 通过提供系统调用避免用户程序直接访问外设
- 在用户程序中,凡是与资源有关的操作(存储分配、I/O 传输及管理文件等)都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成,保证系统的稳定性和安全性
- 每个系统调用都有唯一的系统调用号
系统调用与库函数的区别
- 库函数:
- 是语言或应用程序的一部分,可以运行在用户空间中
- 许多库函数都会使用系统调用来实现功能
- 有的库函数没有使用系统调用
- 系统调用:
- 是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间
- 系统调用要完成上下文的切换和状态的转换,因此未使用系统调用的库函数,执行效率较高
按功能分类
- 设备管理:完成设备的请求或释放 + 设备启动
- 文件管理:完成文件的读 + 写 + 创建 + 删除
- 进程控制:完成进程的创建 + 撤销 + 阻塞 + 唤醒
- 进程通信:完成进程之间的信息传递或信号传递
- 内存管理:完成内存的分配 + 回收 + 获取作业占用内存区大小及始址
系统调用的过程
- 传参
- 陷入指令/Trap/访管【执行系统调用】,发生在用户态
- 由操作系统内核程序处理系统调用请求,发生在内核态
- 返回应用程序

系统调用与一般过程调用的区别
运行状态不同
- 一般过程调用的调用过程和被调用过程运行在同一系统状态【用户态或内核态】
- 系统调用的调用过程是运行在用户态,被调用过程是运行在内核态
软中断进入机制
- 一般的过程调用可直接由调用过程转向被调用过程
- 系统调用不允许由调用过程直接转向被调用过程,一般通过软中断机制,先进入操作系统内核,经内核分析后才转向相应命令处理程序
返回及重新调度
- 一般过程调用被调用结束后,返回调用点继续执行
- 系统调用被调用完后,要对系统中所有运行进程重新调度
- 只有当调用进程仍具有最高优先权才返回调用过程继续执行
操作系统结构
- 微内核定义:只把核心功能放入内核,其余功能用用户进程的形式运行在用户态
- 微内核优点:
- 内核足够小
- 基于 C/S 模式
- 应用机制与策略分离原理
- 采用面向对象技术
- 微内核缺点:
- 执行效率不高
- 开销较大

操作系统引导
- 操作系统引导:指计算机利用 CPU 运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统
常见操作系统的引导过程如下:
- 激活 CPU:激活的 CPU 读取 ROM 中的 boot 程序,将指令寄存器置为 BIOS (基本输入/ 输出系统) 的第一条指令,即开始执行 BIOS 的指令
- 硬件自检:BIOS 程序在内存最开始的空间构建中断向量表,接下来的 POST 过程要用到中断功能,然后通过通电自检,检查硬件是否出现故障
- 加载带有操作系统的硬盘:BIOS 将控制权交给启动顺序排在第一位的存储设备,CPU 将其引导扇区的内容加载到内存中
- 加载主引导记录(MBR):硬盘以特定的标识符区分引导硬盘和非引导硬盘【MBR 告诉 CPU 去硬盘的哪个主分区去找操作系统】
- 扫描硬盘分区表,并加载硬盘活动分区:MBR 包含硬盘分区表,以特定标识符区别活动分区和非活动分区,MBR 识别含有操作系统的硬盘分区(活动分区)后,加载并将控制权交给活动分区
- 加载分区引导记录(PBR):读取活动分区的第一个扇区【分区引导记录 PBR】,其作用是寻找并激活分区根目录下用于引导操作系统的程序 (启动管理器)
- 加载启动管理器
- 加载操作系统 注意:
- 自检程序 -⇒ 引导装入程序/自举装入程序 -⇒ 引导程序 -⇒ 操作系统
- 操作系统被装入 RAM 中
- 自举程序 BIOS 装在 ROM 中
- 引导程序装在硬盘中
虚拟机
- 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(VM),每个虚拟机器都可以独立运行一个操作系统

