操作系统基础
1. 基本概念
1.1. 操作系统的目标
**方便性(用户):**良好一致的用户接口;
**有效性(管理员):**有效利用外设,软硬件资源;
**可扩充性:**新增/修改功能模块;
开放性:遵循标准规范;
1.2. 操作系统的作用
作为用户和硬件系统之间的接口;
管理计算机系统资源;
对计算机资源的抽象(用 API 操作硬件);
1.3. 操作系统的特性
三种基本操作系统:多道批处理系统,分时系统,实时系统;
三种系统的共同基本特征:并发,共享,虚拟,异步;
不同的特征:
批处理系统:较高资源利用率和吞吐量;
分时系统:响应及时;
实时系统:实时性;
并发(Concurrence)
- 区分:并行与并发
共享(Sharing)
互斥共享:某些系统资源(如打印机)同一时间段内只允许一个进程访问,系统应建立一个机制,确保多个进程对这类资源的互斥访问;
同时访问:同一时间段内允许多个进程“同时”进行访问的系统资源(如磁盘,或一些用重入码编写的文件);
虚拟(Virtual)
时分复用技术
虚拟处理机
虚拟设备
空分复用技术
虚拟磁盘
虚拟主存
异步(Asynchronism)
定义:进程向前推进的速度,程序完成所花费的时间在并发系统中是不可预知的;
原因:由于某些系统资源的互斥性,处于内存中的多个进程提出资源占用请求时可能需要等待,而等待的时间未知,加之进程能获得处理机运行的时间未知,导致并发系统中,一个程序完成所实际需要的时间是不可预知的;
1.4. 操作系统的主要功能
传统 OS:处理机管理,存储器管理,设备管理,文件管理等功能,和提供方便的用户接口;
处理机管理:进程控制,进程同步,进程通信,调度(作业调度,进程调度)
存储器管理:内存分配,内存保护,地址映射,内存扩充;
设备管理
主要任务:完成用户进程提出的 IO 请求,提高 CPU 和 IO 设备的利用率,提高 IO 速度;
功能:缓冲管理,设备分配,设备处理;
文件管理:存储空间管理,目录管理,文件读写管理,文件保护;
用户接口:联机接口,脱机接口,图形接口,程序接口;
联机用户接口:命令接口和解释程序;
脱机用户接口:脚本,作业控制语言;
程序接口:为用户程序在执行中访问系统资源而设置的接口,是用户程序取得操作系统服务的唯一途径;
2. 操作系统的发展过程
2.1. 无 OS 的计算机系统
人工操作方式:纸带穿孔直接送入计算机;
- 缺点:用户独占全部计算资源,CPU 需要等待人工操作,利用率低。
脱机 IO 方式:外围机将纸带数据输入磁带,再输入计算机;
- 磁带输入速度快,减少了 CPU 空闲时间,提高了 IO 速度。
2.2. 单道批处理系统(Simple Batch Processing System)
处理过程:一批作业先输入到磁带上,再在监督程序控制下,由系统连续处理;
缺点:系统资源(CPU)利用率低,程序 IO 时,CPU 空闲,且 IO 设备速度低加剧问题;
2.3. 多道批处理系统
基本概念:引入了多道程序设计技术形成的批处理系统
优点
资源利用率高,CPU 能最大限度保持忙碌状态,同时提高了内存的利用率和 IO 设备利用率;
系统吞吐量大,单位时间内能处理的工作数提高;
系统调度开销小
缺点
周转时间延长,由于作业排队处理,对于单个作业,其周转时间可能较长;
无交互能力,用户提交作业到系统后,无法与作业进行交互,修改与调试程序极为不便;
需要解决的问题
处理机分配:满足多个程序运行需要的同时,提高处理机利用率;
内存分配和保护;
IO 设备分配:方便用户使用设备的同时,提高设备利用率;
文件的组织与管理;
作业管理;
用户与系统的接口;
2.4. 分时系统(Time Sharing System)
为了满足**人机交互(共享主机)**的需求,而引入的一种新型 OS;
关键概念:时间片,时间片轮转
关键问题:实现用户与作业的交互
及时接收作业(使用多路卡)
及时处理作业
作业直接进入内存
作业轮转运行,每个作业每次只能运行一个时间片
特征:多路性,独立性,及时性,交互性;
2.5. 实时系统(Real Time System)
常见的几种实时系统:工业或武器控制 OS,信息查询 OS,多媒体 OS,嵌入式;
实时任务的类型
周期性和非周期性任务:看外部设备发出的激励信号有无明显周期性,但都需要具有截止时间;
硬实时任务和软实时任务:是否必须满足截止时间要求,对于软实时任务,错过截止时间对系统产生的影响也不大。
3. 程序运行环境
3.1. CPU 运行模式
内核模式和用户模式
内核态(管态,系统态):系统管理程序执行时的状态。具有较高的特权,能执行一切指令,访问所有的寄存器和存储区;
用户态(目态):用户程序执行时的状态。具有较低的特权,只能执行规定指令;访问指定的寄存器和存储区;CPU 的指令集分为特权指令和非特权指令两类;
注意:以上两种为模式为概括性描述,实际 CPU 工作模式远多于这两种;
3.2. 中断和异常处理
中断(Interrupt)是处理机对系统内外发生的异步事件的响应;
异常(或陷阱,Trap)是系统发起的一次确定的服务过程;
3.3. 系统调用
系统调用是应用程序请求 OS 内核完成某功能的一种过程调用;
系统调用是特殊的过程调用,和一般的过程调用由如下区别
系统调用时,CPU 会运行在不同的系统状态,涉及到状态切换;
返回值问题;
嵌套调用;
区分:看是否涉及到 OS 完成某一功能,一般与 IO 有关;
3.4. 程序的链接和装入
用户程序要在系统中运行,通常要经过以下步骤(静态链接)
编译(Compile):由编译程序进行编译,生成若干个模块(Object Module);
链接(Link):由链接程序将上述模块以及所需库链接,形成完整的装入模块(Load Module)
装入(Load):由装入程序将模块装入内存(装入程序为系统软件);
图示

程序的装入方式
绝对装入(Absolute Loading Mode)
场合:单道批处理 OS;
特点:程序装入内存的地址是固定的,编译和链接时产生的都是物理地址,无逻辑地址;
可重定位装入(Relocation Loading Mode)
特点:装入时将程序指令中的逻辑地址全部替换为内存中的物理地址;
也称为静态重定位装入
动态运行时装入(Dynamic Runtime Loading)
- 特点:装入时,程序指令中的逻辑地址不进行替换,当运行到相关指令时,再动态计算物理地址;
程序的链接方式
静态链接(Static Linking)
将程序所用到的库函数实现全部封装至可执行文件中;
特点:程序一般比较大,但是跨平台性好;
装入时动态链接(Load-time Dynamic Linking)(不常考)
运行时动态链接(Runtime Dynamic Linking)
运行到缺失实现的函数时,再去库文件搜索对应实现,装入内存运行;
特点:程序本体精简,体积小;
3.5. 程序运行时的内存映像与地址空间(了解)
装载到内存中的程序代码区域称为程序的内存映像,按存放的内容可分为 3 个区域
程序区:存放程序指令;
静态存储区:存储永久数据;
动态存储区:存放临时数据;
4. 操作系统体系结构(了解)
4.1. 分层
分层法的设计任务:在目标系统
和裸机系统(又称宿主系统) 之间,铺设若干个层次的软件 ,使得 通过这些中间层能够在 上运行; 优缺点:
优点
容易保证系统正确性;
容易扩充,可维护性好;
缺点
- 系统开发效率低(每层之间都要建立通信机制,且 OS 的每个功能都要自上而下穿越多个层次,修改代价高)
4.2. 模块化设计
概念:一种结构化的程序设计技术,基于“分解”和“模块化”的原则来控制大型软件的复杂度;按其功能划分为若干个具有一定独立性和大小的模块;
关键:模块化设计中,关键问题是模块的划分和设计模块之间的接口;
4.3. 宏内核
- 概念:将内核(进程、线程和内存管理,文件系统,驱动,网络协议等核心功能)从整体上作为一个大过程实现,同时运行在一个单独的地址空间。所有的内核服务都在一个地址空间运行,相互之间直接调用函数,简单高效。
4.4. 微内核(主流)
足够小的内核:指精心设计的,能够实现现代 OS 最基本功能的小型内核,通常包含
与硬件处理紧密相关的部分;
现代 OS 较为基本的功能;
客户和服务器之间的通信;
基于客户/服务器模式(C/S 模式)
- 程序进行内核调用时,类似于客户端向服务端发送请求的过程;
基于“策略与机制分离”原则;
机制:指内核具有的功能特性,例如进程切换功能;
策略:机制的具体算法实现,这部分不放在内核中;
面向对象技术;
4.5. 外核
主要任务是为虚拟机分配资源,并确保不同虚拟机之间的资源相互独立;
每个用户层的虚拟机可以运行自己的 OS,但只能使用自己申请并获得分配的资源来运行;
5. 操作系统引导
5.1. 传统 BIOS 引导和 UEFI 引导
传统 BIOS 引导过程

第一步:BIOS 启动,BIOS 内 bootstrap 程序启动,执行硬件检查;
第二步:读取 MBR(Master Boot Record,主引导记录)内容,启动激活分区;
第三步:从激活分区读取对应系统的引导加载程序(如 Windows 是 bootmgr);
第四步:读取 BCD(Boot Configuration Data,启动设置数据);
第五步:启动系统(如 Windows 是启动 winload.exe);
UEFI 引导过程(现在主流)

- FAT 分区是磁盘上的一个分区;
6. 虚拟机
6.1. 第一类虚拟机
指虚拟机监控程序,在逻辑上运行并具备了多道程序功能;
该系统向上层提供若干台虚拟机,是裸机硬件的精确复制品;
6.2. 第二类虚拟机
提供虚拟系统服务,管理程序,利用宿主 OS 及其文件系统创建进程,存储文件等;
例如:虚拟机 Linux(WSL)
小结
基本概念;
用甘特图分析多道批处理系统;