操作系统复习
操作系统的作用
- 管理系统中的各种资源
- 为用户提供友好的界面
操作系统的定义
操作系统是位于硬件层之上,所有其他软件之下的一个系统软件,通过它管理系统中的各种软件和硬件资源,使他们能够充分利用,方便用户使用计算机系统
操作系统的产生
- 手动操作阶段
- 批处理阶段
- 联机批处理
- 脱机批处理
- 执行系统阶段
操作系统的完善
- 多道批处理阶段
- 分时系统:一个主机,多个终端,交互式工作,追求交互
- 实时处理系统
- 通用操作系统
操作系统的发展
由于硬件体系结构由集中向分散发展,出现了计算机 络。为此出现了 络操作系统和分布式操作系统
操作系统的特性
- 并发性:即程序并发与程序并行,要实现程序并行必须要有多个处理器
- 共享性:是指操作系统与多个用户程序公用系统中的资源
- 异步性
- 虚拟性:操作系统把一个实的cpu改造成多个虚拟的cpu
操作系统的分类
- 多道批处理操作系统:输入井和输出井,主要目的有两个:提高资源利用率,提高吞吐量。两个特性:多道和成批
- 分时操作系统,特性:多路性,交互性,独占性
- 实时操作系统:实时控制,即使信息处理
- 通用操作系统:同时具有分时、实时和批处理功能的操作系统
- 单用户操作系统
- 络操作系统
- 分布式操作系统
- 多处理器操作系统
- 集群操作系统
- 云计算操作系统
- 嵌入式操作系统
- 智能卡操作系统
操作系统的硬件环境
-
定时装置
- 绝对时钟
- 间隔时钟:也称之为闹钟,它每隔固定的时间,发生一次时钟中断
-
堆与栈:系统栈也称为核心栈:作用一是保存操作系统子程序间相互调用的返回点,参数局部变量,返回值。作用二是响应中断时保存的中断现场
-
寄存器
-
特权指令和非特权指令
- 特权指令:只能在管态下执行的指令。不仅会影响运行程序本身,也会影响其他程序,甚至整个系统。
- 非特权指令:目态和管态均可执行。这些指令的执行只与运行程序本身有关,不会影响其他程序和操作系统。
-
处理器状态及状态转换:目态到管态:中断和陷阱,管态到目态:修改程序状态字,特权指令
交互式终端命令:unix系统的交互式命令解释程序由shell提供
进程,线程和作业
多道程序设计
根本目的是提高整个计算机系统的效率,衡量系统效率的尺度叫做吞吐量
系统的吞吐量定义为单位时间内系统所处理的作业(程序)的道数(数量)
吞吐量=作业道数/全部处理时间
单道程序设计的缺点
- 设备资源利用率低
- 内存资源利用率低
- 处理器资源利用率低
中断,通道,DMA控制器的引入使处理器与外围设备的并行成为可能
多道程序设计的提出
- 设备资源利用率高
- 内存资源利用率高
- 处理器资源利用率提高
- 自然地表达一个程序内在的并行性
多道程序设计的问题
多道程序设计改善了系统资源的使用情况
- 处理器资源管理问题
- 内存资源管理问题
- 设备资源管理问题
进程的引入
进程是具有一定独立功能的程序关于一个数据集合的一次运行活动
进程状态及状态转换
- 进程的状态
- 运行态
- 就绪态
- 等待态
- 状态转换
进程控制块
PCB
进程控制块是进程存在的标志,它由一组信息构成。
进程控制块是标志进程存在的数据结构,其中包含系统对进程进行管理所需要的全部信息
进程的组成与上下文
- 进程控制块:存放在系统空间中
- 程序
进程的物理实体与支持进程运的物理环境称为上下文,进程切换过程就是上下文切换的过程
系统开销一般是指运行操作系统程序,对系统进行管理所花费的时间和空间
进程的队列
进程队列时间上是由进程控制块构成的队列
- 就绪队列:一般整个系统有一个就绪队列
- 等待队列:每个等待时间有一个等待队列
- 运行队列:在单处理器中只有一个运行队列,在多处理器系统中每一个cpu各有一个运行队列,每个队列中只有一个进程
进程的类型和特性
- 系统进程,也称为守护进程
- 用户进程
无论系统进程还是用户进程,都具有如下特性
- 并发性
- 动态性
- 独立性
- 交互性
- 异步性
- 结构性
进程间的相互联系与相互作用
- 相关进程:在逻辑上具有某种联系的进程成为相关进程
- 无关进程
进程间相互作用方式:
- 直接相互作用:进程之间不需要通过媒介而发生的相互作用
- 间接作用:需要通过某种媒介而发生的作用,间接相互作用可能发生在任意进程之间
进程的创建,撤销与汇集
- 进程创建:pid=fork()
- 进程销毁:exit(status)
- 进程汇聚
线程与轻进程
线程thread又称为轻线程LWP,是一个相对独立的执行流
进程是资源的分配单位,线程是cpu的调度单位
与进程相比,线程有以下优点:
- 上下文切换速度快
- 系统开销小
- 通信容易
线程控制块 TCB
线程的实现
- 用户级别线程
- 核心级别线程
- 混合线程
线程的应用
采用多线程一方面可以提高应用程序的并行性,另一方面也使得程序设计简洁,明晰
作业
用户要求计算机操作系统为其完成的计算任务的集合成为作业(job)
中断与处理器调度
中断是实现多道程序设计的必要条件
中断与中断系统
中断概念
在程序运行过程中出现某种紧急事件,必须终止当前正在运行的程序,转去处理此事件,然后再恢复原来运行的程序,这个过程称为中断
中断的实现需要硬件和软件的合作:硬件部分称为中断装置,软件部分称为中断处理程序,中断装置和中断处理程序统称为中断系统
中断装置
它的职能是发现并响应中断,具体包括一下几个步骤
- 识别中断源,当有多个中断源同时存在时,由中断装置选择优先级别最高的中断源
- 保存现场,将正在运行的内容压入系统栈
- 引出中断处理程序
引起中断的事件称为中断源,中断寄存器中的内容称为中断字
中断可以分为两大类
- 强迫性中断事先不可知)
- 自愿性中断(发生具有必然性)
中断优先级别:根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称为中断优先级别,中断优先级是由硬件决定的,因此不可改变
中断嵌套:在中断事件的处理过程中可能会发生新的中断
中断处理逻辑
保存现场之间需要关中断,保存现场之后再开中断,中断处理程序需要根据中断码(访管 )进一步分析中断源
硬件中断处理
电源故障处理:
- 将寄存器内容和内存信息写至外存储器
- 停止外围设备工作
- 停止处理器工作
处理器调度
处理器调度算法
调度算法的选择应当与系统的设计目标保持一致,同时考虑公平性与用户满意度。具体有以下几个指标
-
cpu利用率
-
吞吐量
-
周转时间
-
响应时间
-
系统开销
对处理器的一次连续使用称为cpu阵发期
最高响应比优先算法HRN
是先到先服务算法和最短作业优先算法的折中
反馈排队算法
- 短进程优先处理
- 设备资源利用率高
- 系统开销小
中断是进程切换的前提,也可以说操作系统是中断驱动的
处理器调度过程
- 保存下降进程现场
- 选择将要运行的进程
- 恢复上升进程现场
互斥,同步与通信
顺序程序及其特性
内部顺序性:对于一个进程来说,它的所有指令是按顺序执行的
外部顺序性:对于多个进程来说,所有进程的活动是一次执行的
顺序程序的特性:1连续性2封闭性3可再现性
并发程序及其特性
内部并发性:一个程序内部
外部并发性:多个程序
并发程序失去了顺序程序的良好特性:1.间断性2.非封闭性3.不可再现性
进程互斥
共享变量与临界区
有些变量,两个进程或两个以上的进程都需要访问它们这些变量称为共享变量也称为公共变量
多个进程均需要访问的变量称为共享变量
访问共享变量的程序称为临界区
关于共享变量的临界区可能只有一个,也可能有多个
临界区与进程互斥
两个或两个以上的进程不能同时进入关于同一组共享变量的临界区,否则可能发生与时间有关的错误,这种现象称为进程互斥
entry section和exit section保证同一时刻最多只有一个进程处于临界区内。实现进程互斥。对于临界区的管理应该满足以下原则:
- 互斥性原则。排他
- 进展性原则。效率
- 有限等待性原则。公平
进程同步
pv操作
一段不可间断执行的程序称为原语
进程高级通信
进程间通信模式:共享内存模式,消息传递模式
死锁与饥饿
死锁:并发进程在请求资源时候发生的无限期等待,无法避免
饥饿:资源分配不公,只要设计资源分配策略时考虑进程等待时间,即老化这一因素,就可以防止饥饿的发生
参与死锁的进程数目至少为2,参与死锁的所有进程均为等待资源,参与死锁的进程至少有两个占有资源,参与死锁的进程是系统总当前正在运行的进程集合的一个子集
死锁的类型
竞争资源引起的死锁
进程间通信引起的死锁
其他原因引起的死锁:after you/after you问题
死锁的条件
- 资源独占
- 不可剥夺
- 保持申请
- 循环等待
死锁的处理
不让死锁发生的策略可以划分为两种,一种是静态的,称为死锁预防,另一种是动态的,称为死锁避免
死锁要研究的问题:
- 静态死锁预防策略
- 动态死锁避免策略
- 动态死锁检测策略
- 动态死锁恢复策略。
资源分配图的约简
- 寻找非孤立且没有请求边的进程节点p,若没有则结束
- 去除p的分配边,使p孤立
- 寻找所有请求便均可满足的进程p,将p的请求边改为分配边
- 转1
死锁的预防
是保证系统进入死锁状态的静态策略
常见的策略有两种:预先分配策略(进程在运行前一次性地向系统申请它所需要的全部资源)和有序分配策略(与预先分配策略相比,它一定程度提高了资源的利用率)
死锁的检测时刻、
何时进行死锁的检测,主要取决于:
- 死锁发生的频率
- 死锁设计的进程数
检测:
- 等待时检测
- 定时检测
- 资源利用率降低时检测
死锁的恢复
- 系统重新启动
- 终止进程
- 剥夺资源
- 进程回退
鸵鸟算法
unix和windows等商用系统都采用这种做法
饥饿与饿死
当等待时间给进程的推进和响应带来明显的影响时,就成发生进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时,称该进程被饿死
从进程状态考虑,死锁的进程都处于等待态。忙式等待(或处于运行态或处于就绪态)的进程并非等待态,但是却有可能被饿死
活锁
忙式等待条件下发生的饥饿称为活锁(live lock)
主存储器管理
存储管理的功能
存储管理既包括内存资源的管理,也包括用于实现分级存储体系的外存资源的管理
存储管理需要完成以下功能:存储分配,存储共享,存储保护,存储扩充,地址映射
将逻辑地址转换为物理地址的过程称为地址映射
存储共享的目的
- 节省内存空间
- 实现进程间的通信
存储共享的内容
- 代码共享
- 数据共享
存储保护
- 防止地址越界
- 防止操作越权
页式存储管理
物理地址=物理页框首址+页内地址=页框 *2^i+业内地址
第k个逻辑页面的起始地址(首地址)为k*2^i
访问也好在块表中的次数与总访问次数之比称为命中率(ht ratio)
快表可达
TLB定义为通过快表地址映射可以覆盖的内存范围
虚拟存储系统
页面调入时机
页面调入时机是指将一个页面由外存储器调入内存的时机。两种方法:请调和预调
最佳算法
淘汰以后不再需要的或者在最长的时间以后才会用到的页面
缺页率=×/总数
命中率=1-缺页率
先进先出
淘汰最先进入内存的页面
最近最少使用算法
颠簸的处理
- 增加分配给进程的页面框数
- 改进页面置换算法
- 改进程序结构
中断处理
- 连接中断
- 缺页中断
- 越界中断
- 越权中断
文件系统
文件是具有符 名且在逻辑上有完整意义的信 项的有序序列
unix系统中:普通文件可以保存数据等信息,特殊文件对应各种设备,将设备作为文件处理是unix系统的一个标志性成功特点
文件的访问方式
顺序访问
就是按照从前到后的次序依次存取文件的各个信息项
随机访问
就是无需存取文件的某些信息项
- 按 随机访问
- 按键随机访问
文件的保护和保密
文件的保护
- 存取控制矩阵(存取控制系统)
- 访问权限说明
- 分级目录
内存映射文件
就是将文件映射到内存空间,然后以内存访问方式存取文件
文件的安全
转储可以采用三种策略之一,完全存储,增量转储,差分转储
设备与输入输出管理
设备的分类
按照数据传输的基本单位可以将其分为块形设备与字符型设备
块型设备与字符型设备
- 块型设备
- 字符型设备
- 时钟与显示器
通道
三种类型:字节多路通道,数组选择通道,数组多路通道
I/O软件的层次
调用路径从I/O软件往下到硬件,返回路径从硬件往上到用户I/O软件
设备驱动程序
是I/O进程与设备控制器之间的通信程序
设备调度
应该考虑公平性和高效性两个基本因素
缓冲
系统中的缓冲区集合被称为缓冲池
RAID级别
RAID采用分条数据存储方式,分条有两种:位级分条和块级分条
虚拟设备
引入虚拟设备,其基本思想是在独占型设备与内存进程之间加入一个共享性设备作为过渡
并不存在绝对稳定可靠的存储介质
操作系统管理
操作系统使用
- 编译生成法
- 连接生成法
- 运行生成法
操作系统维护
- 改正新发现的软件错误和设计上的缺陷
- 适应特定的工作环境
- 提高原有性能,增加新的功能
操作系统安全
对操作系统的安全威胁来自如下方面:
- 用户不负责任
- 用户刺探
- 用户侵入
对系统安全的威胁可以分为以下4类:
- 阻断:系统资产被损毁或者变成不可用,不能用。如病毒破坏BIOS,删除系统文件
- 截取
- 篡改
- 伪造
防止闯入和恶意程序的破坏,首先应该从操作系统入手
可信系统
可信计算机通常由三个部分组成:绝大多数硬件,操作系统核心中的一部分,其他具有特权的用户程序
操作系统设计
操作系统设计方法
- 模块接口法
- 核扩充法
- 层次结构法
- 面向对象设计方法
操作系统新技术
可以将超线程技术看作是对处理器的虚拟化
没有公共内存的并行操作系统
络与分布式操作系统
- 计算模型
- 数据迁移
- 计算迁移
- 作业迁移
- 负载均衡:作业或者作业步可以在 络上分布以均衡工作负载
- 进程迁移
- 线程迁移
- 进程驱逐
多处理器环境下,互斥策略主要有自旋锁和队列自旋锁两种
加速比:调度六时间除以并行工作时间的结果
加速比用来度量多和系统的加速程度
死锁预防:
- 等-死资源申请者回退
- 伤-等资源占有者回退
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!