第一章
操作系统的概念、功能和目标
操作系统的概念
操作系统(OS)是指
- 控制和管理整个计算机系统的硬件和软件资源,
- 并合理地组织调度计算机的工作和资源的分配,
- 以提供给用户和其他软件方便的接口和环境,
- 它是计算机系统中最基本的系统软件。
操作系统的功能和目标
-
作为系统资源的管理者
- 处理机管理:将对应的进程交给**处理机(CPU)**处理
- 存储器管理:将要执行的程序的相关数据放入内存
- 文件管理:找到文件存放位置的过程
- 设备管理:将外接设备分配给进程、回收的过程
- 目标:安全、高效
(进程是一个程序的执行过程,执行前需要将该程序放到内存中,才能被CPU处理)
-
用户与计算机硬件之间的接口
- 命令接口:允许用户直接使用
- 联机命令接口:交互式(e.g. cmd)
- 脱机命令接口:批处理(e.g. 代码文件)
- 程序接口(系统调用 / 广义指令)(允许用户通过程序间接使用):由一组系统调用组成
- GUI(图形用户界面)
- 目标:方便用户使用
(命令接口和程序接口统称用户接口)
- 命令接口:允许用户直接使用
-
最接近硬件的层次
- 对硬件机器的扩展
(把覆盖了软件的机器称为扩充机器、虚拟机)
操作系统的特征
- 并发
- 共享
- 虚拟
- 异步
并发与共享是两个最基本的特征,两者互为存在条件。(如果不存在其中一种,另一种也就失去了意义)
并发
- 并发:指两个或多个事件在同一时间间隔内发生。宏观上同时发生,微观上交替发生。
- 并行:指两个或多个事件在同一时刻同时发生。
操作系统的并发性指计算机系统中同时存在多个运行中的程序。即单核处理机同一时刻只能执行一个程序,操作系统赋值协调多个(宏观)程序交替(微观)执行。
共享
资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用。
两种资源共享方式:
- 互斥共享方式
- 一个时间段内只允许一个进程访问
- (微信和QQ不能同时视频聊天)
- 同时共享方式
- 一个时间段内允许多个进程访问(宏观上同时,微观上交替)
- (微信和QQ同时发送文件,微观上交替访问硬盘)
虚拟
指把一个物理实体(实际存在)变为若干个逻辑对应物(用户感受)。
虚拟技术:
- 空分复用技术
- 如虚拟存储器
- 时分复用技术
- 如虚拟处理器:即使只有一个单核CPU,宏观上似乎有多个CPU为自己服务,微观上处理机在各个微小的时间段内交替为各个进程服务。
如果失去并发性,则一个时间段内系统只能运行一段程序,则失去实现虚拟性的意义。
异步
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行需要不可预知地不断地中断开始。这就是进程的异步性。
如果失去并发性,则每个进程执行完才执行下一个,则失去实现异步性的意义。
操作系统的发展和分类
OS的发展与分类:
- 手工操作阶段
- 缺点:人机速度矛盾
- 批处理阶段
- 单道批处理系统(引入脱机输入输出技术)
- 优点:缓解人机速度矛盾
- 缺点:资源利用率依然很低
- 多道批处理系统(操作系统开始出现)
- 优点:多道程序并发执行,资源利用率高
- 缺点:不提供人机交互功能
- 单道批处理系统(引入脱机输入输出技术)
- 分时操作阶段
- 优点:提供人机交互功能
- 缺点:不能优先处理紧急任务
- 实时操作阶段
- 硬实时系统
- 软实时系统
- 优点:能优先处理紧急任务
- 网络操作系统
- 分布式操作系统
- 个人计算机操作系统
操作系统的运行机制与体系结构
运行机制
指令是处理器能识别、执行的最基本的命令。(即代码翻译过来的机器语言指令)
两种指令:
- 特权指令:不允许用户程序使用(如内存清零)
- 非特权指令:允许用户程序使用(如普通的运算)
两种处理器状态(通过程序状态字寄存器(PSW)中的某标志位类标识状态(0用户态1核心态)):
- 用户态(目态):此时只能执行非特权指令
- 核心态(管态):此时都可以执行
两种程序:
- 内核程序:可以执行两种指令,运行在核心态
- 应用程序:可以执行非特权指令,运行在用户态
内核
内核:计算机上配置的底层软件,是操作系统最基本、最核心的部分
- 对系统资源进行管理的功能(非必要内核程序):进程管理、存储器管理、设备管理等功能(大内核拥有,微内核无)
- 时钟管理:实时计时功能
- 中断管理
- 原语(设备驱动、CPU切换等):一种特殊的程序,最接近硬件的部分,具有原子性(不执行或执行至结束)。
(时钟管理、中断管理、原语是必要的)
体系结构
- 大内核:
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:代码庞大,结构混乱,难以维护
- 微内核
- 只把最基本的功能保留在内核
- 优点:代码少,结构清晰,方便维护
- 缺点:需要频繁在核心态和用户态之间切换,性能低
中断和异常
中断机制的诞生
为了实现多道程序并发执行而引入的一种技术。
中断的概念和作用
本质:发生中断就意味着需要操作系统介入,开展管理工作。
背景:由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。
作用:中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断才能实现多道程序的并发执行。
表现:
- 当中断发生时,CPU立即进入核心态
- 当中断发生后,当前进程暂停运行,由操作系统内核对中断进行处理
- 对于不同的中断信号会进行不同的处理
中断是CPU从用户态进入核心态唯一途径。核心态进入用户态只需执行特权指令修改PSW的标志位。
中断的分类
第一种分类方式:
-
内中断(也称异常、例外、陷入):信号来源CPU内部,与当前执行的指令有关
- 自愿中断——指令中断(系统调用)
- 强迫中断
- 硬件故障(缺页)
- 软件中断(整数除0)
-
外中断(也称中断):信号来源CPU外部,与当前执行的指令无关
- 外设请求
- 人工干预
第二种分类方式:
- 内中断
- 陷入:有意的异常(系统调用)
- 故障:可处理的故障(缺页)
- 终止:不可修复的错误(整数除0)
- 外中断
- I/O中断请求
- 人工干预
外中断的处理过程
- 每次执行完一条指令,CPU检查当前是否有外中断信号
- 如果有,保存当前进程的CPU环境
- 转入相应的中断处理程序(核心态)
- 恢复进程CPU环境,继续执行下一条指令
系统调用
概念:
- 系统调用是操作系统提供给应用程序使用的接口,
- 通过系统调用来获得操作系统的服务。
- 系统调用会使处理器从用户态进入核心态。
- 系统中的各种共享资源都由操作系统统一管理,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用向操作系统提出服务请求,由操作系统完成。
作用:保证系统的稳定性和安全性,防止用户非法操作。
分类(按功能划分):
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
系统调用的功能需要执行一些特权指令才能完成,故需要在核心态上进行。
系统调用的过程
传递系统调用参数 =》执行陷入指令(用户态) =》 执行系统调用相应的服务程序(核心态) =》 返回用户程序
注意:
- 陷入指令是在用户态执行的,执行后引发一个内中断,使CPU进入核心态
- 发出系统调用请求是在用户态,系统调用相应的处理是在核心态
- 陷入指令是唯一一个只能在用户态执行,不能在核心态执行的指令
第二章
进程的定义、组成、组织方式、特征
进程的定义
程序:一个指令序列。
单道程序技术:在内存中,程序保存在程序段,程序运行过程的数据保存在数据段。
多道程序技术:为方便管理,引入进程、进程实体。PCB、程序段、数据段三部分构成进程实体(进程映像)。
(PCB:进程控制块,用来描述进程的各种信息,是进程存在的唯一标志)
定义:
- 进程是程序的一次执行过程
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在数据集合上运行的过程(动态性),它是系统进行资源分配和调度的一个独立单