先来个思维导图,喜欢文字的读者可以看博客,也对思维导图进行了一些补充,结合起来可以快速复习操作系统概述这一章节。
操作系统
1.1 概论
1.1.1 OS概念(定义)
- OS是指控制和管理整个计算机系统的硬件与软件资源,
合理的组织、调度计算机的工作与资源分配,
进而为用户和其他软件提供方便接口与环境的程序集合。
是计算机系统中最基本的系统软件。
1.1.2 操作系统的特征
-
并发(最重要、其他特征的前提)
- 两个或多个事件在同一时间间隔内发生
-
共享
-
系统中的资源可供内存中多个并发执行的进程共同使用
资源共享即共享- 互斥共享方式(对摄像头设备的共享使用)
- 同时访问方式(对硬盘资源的共享使用)
-
-
虚拟
-
把一个物理上的实体变为若干逻辑上的对应物
- 分时使用资源
-
-
异步
- 多道程序环境允许多个程序并发执行,由于资源有限,进程的执行不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进
1.1.3 操作系统的目标
- 方便性
- 有效性
- 可扩充性
- 开放性
目标和功能
操作系统的作用
提供的服务
-
OS作为计算机系统资源的管理者
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
-
OS作为用户与计算机硬件系统之间的接口
(向上层提供服务)-
普通用户使用
-
GUI 图形用户接口(最终归结属于程序接口)
-
命令接口
-
联机控制方式
- 联机命令接口(交互式命令接口)适用于分时或实时系统
-
脱机控制方式
- 脱机命令接口(批处理命令接口)适用于批处理系统
-
-
-
软件/程序员使用
-
程序接口(系统调用/广义指令)
-
用户通过在程序中使用系统调用命令请求OS为其提供服务。
用户在程序中可以直接使用系统调用命令向系统提出各种服务要求。- 例如 使用外部设备、进行有关磁盘文件的操作、
申请分配和回收内存以及各种控制要求
- 例如 使用外部设备、进行有关磁盘文件的操作、
-
-
-
-
OS用作扩充机器
实现对计算机资源的抽象- 扩充机器/虚拟机:覆盖了软件的机器
1.2 发展与分类
1.2.1 手工操作阶段
-
缺点
- 用户独占全机
- CPU等待手工操作,CPU利用不充分
-
人机矛盾、CPU和I/O速度不匹配的矛盾
1.2.2 批处理阶段
-
单道批处理系统(引入脱机输入输出技术)
- 优点:缓解人机速度矛盾
- 缺点:资源利用率仍低,高速CPU等待低速I/O
-
多道批处理系统(多道程序设计技术 操作系统开始出现)
多道程序设计(多道、宏观上并行,微观上串行)-
优点
- 资源利用率高,多道程序共享计算机资源
- 系统吞吐量大,CPU和其他资源保持“忙碌”
-
缺点
- 用户响应时间长、无人机交互能力
-
1.2.3 分时OS
-
优点
- 提供人机交互功能
-
缺点
- 无法优先处理紧急任务
1.2.4 实时OS
-
软实时系统
- 能够接受偶尔违反时间规定且不会引起永久性的损害
-
硬实时系统
- 某个动作必须绝对地在规定的时刻(或规定的时间范围)发生
微机操作系统
网络OS
分布式OS
个人计算机OS
1.3 运行环境
1.3.1 运行机制
-
程序运行原理
- 高级语言编写程序——>机器指令
- 程序运行的过程就是CPU执行指令的过程
-
两种程序
- 内核程序
- 应用程序
-
两类指令
-
特权指令(例如I/O指令、置中断指令等)
-
非特权指令
- 访管指令(程序的运行由用户态转到核心态)
-
-
两种处理器状态
- 内核态/核心态/管态
- 用户态/目态
-
如何变态?
-
内核态->用户态
- 一条修改PSW的特权指令
-
用户态->内核态
-
由中断引起,硬件自动完成
-
例子
- 系统调用
- 发生一次中断
- 用户程序中产生了一个错误状态
- 用户程序中企图执行一条特权指令
- 从核心态转向用户态由一条指令实现,这条指令也是特权命令,一般是中断返回指令
-
-
-
内核(计算机上配置的底层软件)
操作系统最重要最核心的部分-
时钟管理
- 实现计时功能
-
中断机制
- 负责实现中断机制
-
原语
- 是一种特殊的程序
- 处于操作系统最底层,是最接近硬件的部分
- 这种程序的运行具有原子性——其运行只能一气呵成,不能中断
- 运行时间较短,调用频繁
-
系统控制的数据结构及处理
对系统资源进行管理的功能- 进程管理
- 存储器管理
- 设备管理
-
-
中断
-
中断的作用
- 让操作系统内核强行夺回CPU的控制权
- 使CPU从用户态变为内核态
-
中断的分类
-
内中断(异常/例外/陷入)
与当前执行的指令有关
中断信号来源于CPU内部-
陷阱、陷入
- 陷入指令引发,应用程序故意引发
-
故障
- 错误条件引起,可能被内核程序修复。
内核程序修复后会把CPU使用权还给应用程序,让它继续执行。(如缺页中断)
- 错误条件引起,可能被内核程序修复。
-
终止
- 由致命错误引起,内核程序无法修复该错误,一般直接终止该应用程序。
(如整数除以零、非法使用特权指令)
- 由致命错误引起,内核程序无法修复该错误,一般直接终止该应用程序。
-
-
外中断(中断)
与当前执行的指令无关
中断信号来源于CPU外部- 外设请求(时钟中断)
- 人的干预(I/O中断请求)
-
-
中断机制的基本实现原理
-
检查中断信号
- 内中断:CPU在执行指令时检查是否由异常发生
- 外中断:每个指令周期末尾,CPU检查是否有外中断信号需要处理
-
找到相应的中断程序
- “中断向量表"
-
-
-
系统调用(OS对 应用程序/程序员 提供的接口)
程序接口/广义指令-
系统调用是用户在程序中调用OS所提供的一些子功能,可视为特殊的公共子程序
涉及到系统资源管理、进程管理。必须使用某些特权指令,因此运行在核心态 -
系统调用与库函数的区别
- 有的库函数是对系统调用的进一步封装
- 有的库函数没有使用系统调用
-
什么功能要用系统调用实现
- 设备管理:完成设备的请求或释放,以及设备启动等功能。
- 文件管理:完成文件的读、写、创建及删除等功能。
- 进程控制:完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信:完成进程之间的消息传递或信号传递等功能。
- 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。
-
系统调用的过程
- 传参
- 陷入指令/Trap/访管
- 由操作系统内核程序处理系统调用请求
- 返回应用程序
-
1.4 体系结构
1.4.1 大内核
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:内核代码庞大,结构混乱,难以维护
1.4.2 微内核
- 只把最基本的功能保留在内核
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁地在核心态和用户态之间切换,性能低
1.5 并行与并发对比
OS的并发性是通过分时实现的
并发性
- 两个或多个事件在同一时间间隔内发生
并行性
-
两个或多个事件在同一时刻发送
- 需要硬件支持
多道程序环境下,一段时间,宏观上,多道程序同时执行
某一时刻,单处理机环境下实际仅有一道程序执行,微观上程序分时交替执行
1.6 中断和异常
中断处理和子程序调用的区别
-
入口地址
-
中断
- 由中断隐指令根据中断向量得到
-
子程序调用
- 由调用程序根据寻址方式得到
-
-
保存环境
-
中断
- 保存PC,PSW,通用寄存器
-
子程序调用
- 保存PC,通用寄存器
-
-
进程状态
-
中断
- 从用户态转向内核态
-
子程序调用
- 无状态变化
-