文章目录
01. 计算机系统概述
1.1 OS 的基本概念
- 操作系统(OS)
- 指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配——系统资源的管理者
- 以提供给用户和其他软件方便的接口和环境——向上层提供方便易用的服务
- 是计算机系统中最基本的
系统软件
——最接近硬件的一层软件
OS的目标和功能
-
计算机系统资源的管理者
- 处理机管理:可以归结为对进程的管理(多道程序环境下,处理机的分配和运行都是以进程为基本单位)
- 存储器管理
- 文件管理
- 设备管理:主要任务是完成用户的 I/O 请求
-
用户与计算机硬件系统之间的接口
- 图形用户界面 GUI :最终通过调用程序接口实现
OS提供的接口主要分两类
- 命令接口:用户利用这些操作命令来组织和控制作业的执行
- 联机式命令接口 / 交互式命令接口
- 适用于:分时 / 实时系统
- 由一组键盘操作命令组成
- 说一句做一句
- 脱机式命令接口 / 批处理命令接口
- 适用于:批处理系统
- 由一组控制命令组成
- 说一堆做一堆
- 联机式命令接口 / 交互式命令接口
- 程序接口:编程人员可以使用它们来请求OS服务
- 系统调用 / 广义指令(用户通过程序使用)
-
实现对计算机资源的扩充
- 裸机(纯硬件)→ 扩充机器 / 虚拟机(覆盖了软件的机器)
OS的特征
并发和共享是 OS 两个最基本的特征,两者之间互为存在的条件。没有并发和共享,就谈不上虚拟和异步
-
并发:指两个或多个事件在同一时间间隔内发生。宏观上是同时发生的,但微观上是交替发生的
-
OS 通过分时实现
-
操作系统和程序并发是一起诞生的
-
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行
易混淆- 并行:同一时刻,需要相关硬件的支持
-
-
共享
- 互斥共享方式:一个时间段内只允许一个进程访问该资源
- 同时共享方式:允许一个时间段内由多个进程“同时”对它们进行访问
-
虚拟:把一个物理上的实体变为若干个逻辑上的对应物
- 空分复用技术:如虚拟存储技术
- 时分复用技术:如虚拟处理器技术
-
异步
1.2 OS 发展历程
-
手工操作阶段
-
所有工作都要人工干预,人机矛盾越来越大
-
突出特点:用户独占全机、CPU等待手工操作
-
-
批处理阶段:为解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾
-
单道批处理系统:缓解了人机速度矛盾
- 对作业的处理是成批进行的,但内存中始终保持一道作业
- 特点:自动性、
顺序性
、单道性 - 问题:每次主机内存中仅存放一道作业,每当它运行期间发出 I/O 请求,高速 CPU 便处于等待低速 I/O 完成的状态
-
多道批处理系统:进一步提高资源利用率和系统吞吐量
-
允许多个程序同时进入内存且在 CPU 中交替运行,共享系统中的软硬件资源
-
特点:多道、宏观上并行、微观上串行、制约性(资源竞争)、间断性、共享性
程序失去了封闭性和顺序性
-
-
-
分时操作系统:为解决人机交互的问题
- 计算机以时间片为单位轮流为各个用户 / 作业服务(多个用户通过终端同时共享一台主机)
- 特点:同时性/多路性、交互性、独立性(系统中多个用户可以彼此独立地进行操作)、及时性
-
实时操作系统
- 特点:实时性、可靠性
1.3 OS 运行环境
1.3.1 处理及运行模式
-
特权指令:不允许用户直接使用的指令
- 如:I/O 指令、置中断指令、清内存、置时钟、分配系统资源、修改虚表的段表或页表、修改用户访问权限、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令
【2021.23】常见的特权指令:① 有关对 I/O 设备操作的指令;② 有关访问程序状态的指令;③ 存取特殊寄存器指令;④ 其他指令
-
非特权指令:允许用户直接使用的指令,不能直接访问系统中的软硬件资源
-
应用程序(用户态)向 OS 请求服务时通过使用访管指令 = 陷入指令 = trap指令,产生一个中断事件将 OS 转换为核心态
访管指令本身不是特权指令
大多数OS的内核包括4方面内容
- 时钟管理
- 中断机制
- 现代 OS 是靠中断驱动的软件
- 只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序
- 原语
- 系统控制的数据结构及处理:实际上是
系统调用
类的指令- 常见的操作有进程管理、存储器管理、设备管理等
1.3.2 中断和异常的概念
-
时钟中断:处理和时间有关的信息及决定是否执行调度程序
和时间有关的所有信息包括:系统时间(可以更新内核中时钟变量的值)、进程的时间片、延时、使用 CPU 的时间、各种定时器
1.3.3 系统调用
-
系统调用
- 操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务
- 用户在程序中调用 OS 所提供的一些子功能,可视为特殊的公共子程序
-
系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代完成
-
系统调用的过程
【2022.31】发生系统调用时,CPU 通过执行软中断指令(软件引起的中断)让 CPU 的运行模式由用户态切换到内核态,该过程与中断和异常的处理过程相同
- 硬件:负责保存断点和程序状态字,并将 CPU 模式改为内核态
- OS:执行 OS 内核的系统调用入口程序,该内核程序负责保存通用寄存器的内容,再调用执行特定的系统调用服务例程
注意区分调用和执行,调用可能发生在用户态(调用广义指令的那条指令不一定是特权指令),但广义指令存在于核心态,一定执行在核心态
操作系统不同,底层逻辑、实现方式均不同,为应用程序提供的系统调用接口也不同
1.4 OS 结构
- 微内核
-
基本概念
-
从四方面来描述
- 内核足够小
- 基于客户 / 服务器模式
- 应用**“机制与策略分离”**原理
- 采用面向对象技术
-
将 OS 划分为两部分:微内核和多个服务器(借助微内核提供的消息传递机制实现交互)
- 微内核通常包括
- 与硬件处理紧密相关的部分
- 一些较基本的功能
- 客户与服务器之间的通信
- 微内核 OS 中的绝大部分功能都放在微内核外的一组服务器(进程)中实现——
用户态
- 微内核通常包括
-
-
基本功能:“机制与策略分离”
- 进程(线程管理)
- 进程通信 / 切换 / 调度,处理机之间的同步等都在微内核中
- 低级存储器管理
- 微内核中只配置最基本的低级存储器管理机制,这部分是依赖于硬件的
- 中断和陷入处理
- 进程(线程管理)
-
特点
- 扩展性和灵活性:增加或修改功能时,只需在相应的服务器中增加或修改,或则再增加一个专用的服务器,无需改动内核代码
- 可靠性和安全性:一个模块的错误不会使得整个系统崩溃
- 可移植性
- 分布式计算:C 和 S 之间、S 和 S 之间的通信采用消息传递机制,使得微内核系统可以很好地支持分布式系统和网络系统
-
典型的大内核/宏内核/单内核 操作系统: Linux、UNIX
典型的 微内核 操作系统: Windows NT
1.5 OS 的引导(开机)
OS 是一种程序,程序以数据的形式存放在硬盘中
① CPU从一个特定主存地址开始,取指令,执行ROM(BIOS)中的引导程序/自举程序/boot程序
(之后 → 先进行硬件自检,再开机)
- ROM 中存储了 BIOS(基本输入/输出系统 ),BIOS 中有引导程序
② 加载带有 OS 的硬盘,将磁盘的第一块 —— **主引导记录(MBR)**读入内存,执行磁盘引导程序,扫描分区表
- 主引导记录:告诉 CPU 去硬盘的哪个分区找 OS
③ 加载硬盘活动分区,从活动分区(又称主分区,即安装了 OS 的分区)读入分区引导记录(PBR),执行其中的程序
- 分区引导记录 PBR:用于寻找并激活分区根目录下用于引导 OS 的程序(启动管理器)
④ 从根目录下找到完整的操作系统初始化程序(即 启动管理器)并执行,加载 OS,完成“开机”的一系列动作
计算机开机后,OS 被加载到 RAM 中
- 引导程序分两种
- 位于 ROM 中的自举程序(BIOS的组成部分),用于启动具体设备
- 位于装有 OS 硬盘的活动分区的引导扇区中的引导程序(称 启动管理器),用于引导 OS
OS 初始化过程中需要创建中断向量表
1.6 虚拟机
- 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统
- 同义术语:虚拟机管理程序 / 虚拟机监控程序 / Virtual Machine Monitor(VMM)/ Hypervisor
VMware workstation 虚拟机属于第二类虚拟机管理程序
Notes
- 库函数和系统调用的区别
- 库函数:是语言或应用程序的一部分,可以运行在用户空间中
- 许多库函数会使用系统调用来实现功能,未使用系统调用的库函数执行效率通常比系统调用高
- 系统调用:是 OS 的一部分,是内核为用户提供的程序接口,运行在内核空间中
- 库函数:是语言或应用程序的一部分,可以运行在用户空间中