操作系统(系统学习一)
文章目录
操作系统简介
操作系统的概念
- 用户也是可以直接和操作系统交互的
- 操作系统的作用
- 从中间往两边 : 负责管理协调硬件, 软件等计算机资源的工作
- 对上(应用程序, 用户) : 为上层应用程序和用户提供易用的服务
- 对下 : 操作系统是最接近硬件的系统软件, 而不是硬件
操作系统的功能和目标
作为系统资源(硬件, 软件, 文件)管理者
- 用QQ和同学视频聊天的过程 (需要安全, 高效的)
- 找到QQ的可执行文件 (文件管理)
- 双击QQ可执行文件 (打开一个程序, 会把该程序和相关数据放入内存中, 等待执行, 存储器管理)
- 运行QQ (放入内存中的进程需要被处理器处理运行, 处理机管理)
- 打开摄像头聊天 (调用了摄像头这个设备, 设备管理)
作为用户和计算机硬件之间的接口
- 三种类型的接口
- 命令接口 (用户直接使用命令让操作系统操作计算机资源)
- 联机命令接口 : 说一句做一句(单个命令)
- 脱机命令接口 : 说一堆做一堆(多个命令批处理)
- 程序接口 (用户通过程序间接让操作系统操作计算机资源, 由一组系统调用组成, 这些系统调用都可以完成某些功能, 用户不用关心底层的实现)
- GUI接口 : 图新用户界面, 不需要记忆复杂命令, 直接通过图新直观执行各种功能.
- 命令接口 (用户直接使用命令让操作系统操作计算机资源)
作为最接近硬件的层次
- 实现对硬件机器的扩展, 将裸机改造成为功能更强, 使用更方便的机器. 用户可以直接使用这些功能, 而无需关注底层的复杂实现
总结
操作系统的四个特征
- 并发和共享互为存在条件
- 如果没有并发性, 那么操作系统中同一时间间隔只能有一个运行这的进程, 也就不存在和别人共享资源
- 如果没有共享, 操作系统的资源只能被一个进程使用, 也就只有一个进程能够执行, 也就没有了并发性.
并发
-
并发 : 两个或多个事件同一时间间隔(微观)内发生, 宏观上同时, 微观上交替发生
-
并行 : 两个或多个时间同一时刻发生(微观)
-
操作系统的并发性 : 操作系统中同时(宏观)存在多个运行着的程序.
- 微信, qq, 浏览器, 音乐…
- 一个单核cpu同一时刻只能执行一个程序, 因此操作系统会负责协调多个程序交替执行
- 操作系统和程序并发是一起诞生的
共享
- 共享 : 资源共享, 操作系统的资源可供内存中多个并发执行的进程共同使用
- 互斥共享 : 一个时间段内只允许一个进程访问该资源
- 摄像头, QQ和微信同一时间段内只能一个使用
- 同时共享 : 一个时间段内多个进程“同时”访问该资源
- QQ和微信同时传输文件
- 互斥共享 : 一个时间段内只允许一个进程访问该资源
虚拟
-
虚拟 : 把一个物理上的实体变为若干个逻辑上的对应物
- 物理实体 : 真实存在; 逻辑上的对应物 : 用户感受到的存在
-
一个程序只有放入内存中, 并且为他分配CPU才能运行
- 一个内存只有4GB的电脑同时运行着多个应用程序, 然用户感觉内存远不止4GB
- 空分复用技术
- 单核CPU同时运行着多个程序, 然用户感觉同时有多个CPU为自己服务
-
时分复用技术 : 把一个大的时间段分成若干个小的时间片, 微观上处理机在各个微小时间片中交替执行各个进程
-
时分复用技术 : 把一个大的时间段分成若干个小的时间片, 微观上处理机在各个微小时间片中交替执行各个进程
- 一个内存只有4GB的电脑同时运行着多个应用程序, 然用户感觉内存远不止4GB
异步
- 异步 : 多个程序并发执行, 由于资源有限, 进程的执行不是一贯到底的, 而是走走停停的, 以不可预知的速度向前推进
- 因为系统资源有限, 并发执行的程序同时要使用一个资源时, 只能等其中一个使用完毕后, 另一个才能占有执行. (互斥共享)
总结
- 没有并发, 就谈不上后面的虚拟和异步.
- 而并发和共享互为存在条件.
- 因此并发和共享是操作系统的两个最基本特征.
OS发展阶段
- 各阶段的主要优点 就是 解决了上一阶段的主要缺点
手工操作阶段
- 主要缺点
- 用户独占全机
- 人机速度矛盾, 资源利用率低
单道批处理系统
- 引入脱机输入/输出技术 (一次输入输出多个任务)(用磁带完成), 并使用监督程序(操作系统的雏形)负责控制作业的输入输出
- 优点
- 缓解了一定程度的人机速度矛盾
- 资源利用率有所提升
- 缺点
-
内存中仅能有一道程序运行
, 只有该程序执行完毕了才能执行下一道, CPU有大量时间是在等待I/O完成
. 资源利用率依然很低
-
多道批处理系统
- 操作系统诞生
- 主要优点 : 多道程序
并发
执行,共享
计算机资源.资源利用率大幅提升
. - 主要缺点 : 用户响应时间长,
没有人机交互功能
(用户提交自己的作业之后就只能等待计算机处理完成, 中间不能控制自己的作业执行)
为何多道批处理系统能使资源利用率大幅提升
- 因为它使得系统资源可以并行工作, 更多的处于忙绿状态, 而不是像单道批处理系统只能串行调用各个资源
分时操作系统
-
操作系统以时间片为单位
轮流为各个用户/作业服务
, 各个用户通过终端与计算机进行交互 -
主要优点
- 用户请求可以被及时相应,
解决了人机交互问题
- 允许多个用户同时使用一台计算机, 并且用户对计算机系统相互独立, 感受不到别人的存在.
- 用户请求可以被及时相应,
-
主要缺点 :
不能优先处理一些紧急任务
, 操作系统对各个用户/作业都是完全公平的, 循环地为每个用户/作业服务一个时间片, 不区分任务的紧急性
实时操作系统
-
操作系统接收到外部信号后及时处理, 并且要在
严格时限内处理完事情
. 主要特点 :及时性, 可靠性
-
主要优点 : 能够优先相应一些紧急任务, 某些紧急任务不需要进行时间片排队
-
硬实时操作系统 : 必须在严格的规定时间内完成处理
-
软实时操作系统 : 可以接受偶尔违反时间规定
总结
操作系统的运行机制和体系结构
什么是指令
- 指令 : 处理器能够直接识别, 执行的最基本命令
- 一条高级语言代码经过翻译可能对应多条指令
指令的安全性
-
非特权指令 : 有些指令
并不会影响系统的安全性
, 比如加减乘除这些普通指令 -
特权指令 :
有些指令有很高的权限
, 比如: 内存清零指令. 如果用户程序可以使用这个指令, 就意味着一个用户可以讲其他用户的内存数据随意清零. 会严重影响系统的安全性 (一般情况下不允许用户程序使用)
处理器的状态
CPU如何判断当前能不能执行特权指令
- 用户态(目态) : 此时CPU只能执行非特权指令
- 核心态(管态) : 特权指令, 非特权指令都可以执行
- 处理器的状态 : 由
程序状态字寄存器
(PSW)中的某个标识为来标识当前处理器的状态
程序分类
- 内核程序 : 系统的管理者, 既可以执行特权指令也可以执行非特权指令, 运行在内核态
- 用户程序 : 只能执行非特权执行, 运行在用户态
内核
操作系统中的哪些功能需要有内核程序完成?
-
内核 : 操作系统中最重要, 最核心, 最基础的部分,
实现操作系统内核功能的程序就是内核程序
- 和硬件紧密相关的 : 时钟管理 (实现计时功能, 进程调度管理都要基于计时功能), 中断处理, 原语 (一种特殊的程序, 设备驱动, CPU切换都靠原语实现. , 运行具有原子性)
- 系统资源管理相关的 : 进程管理, 存储器管理, 设备管理等功能
-
不同操作系统对内核的划分不同
- 大内核 : 操作系统的主要功能模块都放在了内核
- 高性能
- 内核代码庞大, 结构混乱, 难以维护
- 微内核 : 只把和硬件紧密相关的最基本的必不可少的功能放在了内核
- 内核功能少, 结构清晰, 方便维护
- 需要频繁在核心态和用户态之间频繁切换, 性能低.
- 大内核 : 操作系统的主要功能模块都放在了内核
总结
中断和异常
中断机制的诞生
- 多道批处理系统之前, 各个程序只能串行执行, 资源利用率低
- 多道批处理系统阶段, 发明了操作系统, 引入了中断机制, 实现了多道程序并发执行
- 本质 :
发生中断
就意味着需要操作系统的介入, 开展管理工作
中断的概念和作用
- 当中断发生后, CPU会立即进入核心态
- 当中断发生后, 当前运行的进程会暂停运行, 并有操作系统内核对中断进行处理 (用户程序->内核程序)
- 对于不同的中断信号, 会进行不同的处理.
发生了中断, 就意味着需要操作系统介入, 开展管理工作, 由于操作系统的管理工作(比如机进程切换, 分配I/O设备等) 需要使用特权指令, 因此CPU需要从用户态转为核心态, 中断
可以使CPU从用户态切换为和心态, 是操作系统获得计算机的控制权. 有了中断, 才有了多道程序的并发执行,
"用户态->核心态"是通过中断
实现的, 并且中断
是唯一
途径
"核心态->用户态"是通过执行一个特权指令
, 将程序状态字(PSW)寄存器
的标识为设置为“用户态”
中断的分类
- 分类标准 : 是否来自CPU内部, 与当前执行的指令是否有关
- 系统调用 : 用户程序调用内核程序, 执行特权指令的方法