操作系统原理
2024-09-13 22:48:18 0 举报
AI智能生成
计算机相关专业基础课程操作系统原理思维导图。
作者其他创作
大纲/内容
第四章 处理机调度
实际上就是处理机的分配与管理
衡量调度策略的常用指标
1.面向用户的性能指标
周转时间
平均周转时间
平均带权周转时间
响应时间
截止时间
公平性
优先级
2. 面向系统的性能指标
吞吐率
响应时间
设备利用率
3. 面向算法的性能指标
实现难度
执行开销比
4.1 分级调度
作业调度(高级)
交换调度(中级)
进程调度(低级)
线程调度
作业与进程的关系
作业可被看作是用户向计算机提交任务的实体
进程则是计算机为了完成用户任务实体而设置的执行实体,是系统分配资源的基本单位
一个做也可由多个进程组成,而一个进程不可能对应多个作业。
4.2 作业调度
作业的组成
程序
数据
作业说明书
作业步
编译源程序
连接装配程序
运行程序
状态
提交
后备
运行
完成
4.2.1 作业调度及其功能
选择作业
分配资源
建立作业的进程
建立其他相关表格
作业后续处理
4.2.2 作业调度目标与性能衡量
目标
公平合理
高设备利用率
执行新可能多的作业
快的响应时间
性能衡量
平均周转T
平均带权周转T
4.3 进程调度
4.3.1 功能
记录系统中所有进程的执行情况
选择占有处理机进程
进行进程上下文切换
4.3.2 进程调度的时机
原因
正在执行的进程执行完毕
执行中的进程调用阻塞原语将自己阻塞起来进入睡眠状态
执行中的进程调用了P原语操作,从而引起资源不足而被阻塞
执行此中的进程提出I/O请求后被阻塞
执行中的进程在分时系统中的时间片已用完
系统程序返回用户进程时,可认为系统进程执行完毕
在剥夺方式下
方式
非剥夺
剥夺
时间片原则
优先权原则
4.3.3 进程上下文切换
上下文组成
正文段
数据段
硬件寄存器的内容
有关数据结构
步骤
1. 决定是否做上下文切换以及是否允许做上下文切换
2. 保存当前执行进程的上下文
3. 按照某个进程调度算法,选择一个处于就绪状态的进程
4. 恢复或装配所选进程的上下文,将CPU控制权交给所选进程
4.3.4 性能评价
定性衡量
可靠性
简洁性
定量衡量
CPU利用率
进程等待-执行时间比
响应时间
4.4 进程调度算法
4.4.1 先来先服务(FCFS)
内容
按照作业提交或进程变为就绪状态的先后次序,分派CPU
当前进程占用CPU,直到执行完或阻塞,才出让CPU
在进程唤醒后,并不立即恢复执行,通常等到当前作业或进程出让CPU
特点
最简单的算法,表面公平
有利于长作业不利于短作业
利于CPU繁忙不利于I/O繁忙的作业
影响
可能会降低吞吐率
增加平均周转时间
4.4.2 最短作业优先(SJF)
内容
对FCFS算法的改进
目标是提高吞吐率,减少平均周转时间
对预计执行时间短的作业优先分配处理机
非剥夺
特点
优点
比FCFS改善平均周转带权周转T,缩短作业的等待时间
提高系统吞吐量
缺点
对长作业非常不利,可能长时间得不到执行
未能依据作业的紧迫程度来划分执行的优先级
难以准确估计作业的执行时间,从而影响调度性能
4.4.3 轮转法(RR)
内容
将就绪进程按照FCFS原则,排成一个队列
每次调度时将CPU分派给队首进程,让其执行一个时间片
在一个时间片结束时发生时钟中断
调度程序据此暂停当前进程的执行
进程可以未使用完一个时间片,就出让CPU
时间片长度
影响
过长
过短
对响应时间的要求
影响因素
就绪进程的数目
系统的处理能力
4.4.4 多级反馈论转法
内容
把就绪队列分类
每个队列按FCFS方式排列
当一个进程在执行完他的时间片后
特点
不必事先知道
4.4.5 优先级法
内容
按照进程的优先权大小来调度
分类
静态优先级
进程类型
进程对资源的需求
根据用户要求
动态优先级
4.4.6 最高相应比优先法(HRRN)
内容
计算响应比R然后选择最大值的作业投入运行
FCFS与SJF是片面的调度算法
HRRF是介乎这两者之间的折中算法
特点
短作业容易得到较高响应比
长作业等待时间足够长后也获得足够高的响应比
饥饿现象不会发生
4.6 实时系统调度方法
与其他系统的最大区别
4.6.1 特点
外部任务
周期性
非周期性
特点
有限等待时间
有限响应时间
用户控制
可靠性高
系统出错处理能力强
4.6.2 分类
静态表格驱动类
静态优先级驱动抢先调度算法类
动态计划调度算法类
尽力而为调度算法类
第五章 存储管理
5.1 存储管理的功能
5.1.1 虚拟存储器
原理
好处
大程序
大的用户空间
并发
易于开发
概念
进程中的目标代码、数据等的虚拟地址组成的虚拟空间
不考虑物理存储器的大小和信息的实际位置
每个进程都有自己的虚拟存储器
从虚地址到物理地址空间需要进行地址变换
5.1.2 地址变换
静态地址重定位
动态地址重定位
5.1.3 内外存数据传输的控制
交换方式
请求调入方式
预调入方式
5.1.4 内存的分配与回收
分配结构
放置策略
交换策略
调入策略
回收策略
5.1.5 内存信息的共享与保护
硬件法:上下界保护法
软件法:保护键法
软硬结合:界限寄存器与CPU用户态或核心态工作方式结合
5.2 分区存储管理
5.2.1 基本原理
把内存划分成若干个大小不等的区域
以连续存储个进程的程序和数据
出系统占用一个区域之外
其余由多道环境下的并发进程共享
方法
固定分区法
特点
适用于多道程序系统和分时系统
支持多个程序并发执行
难以进行内存分区的共享
问题
内碎片
外碎片
动态分区法
数据结构
分区说明表
可用表
自由链
请求表
5.2.2 分区的分配与回收
固定分区的分配与回收
动态分区的分配与回收
最先适应法
排序
寻找
划出
合并
最佳适应法
最坏适应法
5.2.3 有关分区管理其他问题的讨论
1. 关于虚拟存储器的实现
实现了每个用户可以自由编程的虚拟空间
无法实现容量只受内存和外存容量之和限制的虚拟存储器
每个用户进程所需内存容量收到分区大小的限制
2. 关于内存扩充
3. 关于地址变换和内存保护
4. 分区管理的主要优缺点
优点
实现了内存共享,有利于多道程序设计,提高了内存利用率
硬件支持少,管理算法简单,容易实现
缺点
内存利用率仍不高,小碎片难以利用
进程大小受分区大小限制
难以实现分区间的信息共享
5.3 覆盖和交换技术
5.3.1 覆盖技术
5.3.2 交换技术
优点
增加并发运行的程序数目
并且给用户提供适当的响应时间
编写程序时不影响程序结构
缺点
对换入和换出的控制增加处理机开销
程序整个地址空间都进行传送
没有考虑执行过程中地址访问的统计特性
5.4 页式管理
5.4.1 页式管理的基本原理
基本原理
1. 虚拟地址空间被划分成若干个长度相等的页
2. 物理内存空间也按页的大小划分为页面
3. 页式管理吧页式虚拟地址与内存物理地址建立一一对应的页表
4. 采用请求调页或预调页技术实现了内外存存储器的统一管理
解决的问题
1. 页式存储管理系统的地址映射
2. 调入策略
3. 淘汰策略
4. 放置策略
5.4.2 静态页面管理
方法
进程开始执行之前
把该作业或进程的程序段和数据全部装入内存的各个页面中
并通过页表和硬件地址变换机构
实现虚地址到内存物理地址的地址映射
分配
存储页面表
请求表
页表
页号
页面号
回收
特点
优点
解决了分区管理时的碎片问题
缺点
页面数小于用户要求时只好等待
作业或进程的大小仍受内存可用页面数的限制
5.4.3 动态页式管理
请求页式管理
预调入页式管理
抖动问题
5.4.4 请求页式管理中的置换算法
先进先出
内存利用率不高
会产生Belady现象
随即淘汰算法
、最近最久未使用页面置换算法
理想型淘汰算法
5.4.5 存储保护
地址越界保护
存取控制保护
5.4.6页式管理的优缺点
优点
有效地解决了碎片问题
提供了内外存统一管理的虚拟存储器实现方式
缺点
要求有相应的硬件支持
增加了系统开销
置换算法不当会产生抖动现象
每个进程的最后总有一部分空间得不到利用
5.5 段式与段页式管理
5.5.1 段式管理的基本思想
把程序按内容或过程关系分成段,每段有自己的名字
一个用户作业或进程所包含的段对应于一个二维的线性虚拟空间
以段为单位分配内存,通过地址映射机构转换地址
采用交换技术扩充内存
5.5.2 段式管理的实现原理
1. 段式虚存空间
2. 段式管理的内存分配与回收
以段为单位分内存,每段分配一个连续的内存区
同一进程包含的各段之间不要求连续
内存的分配与释放动态进行
段淘汰算法
3. 段式管理的地址变换
4. 段的共享和保护
5.5.3 优缺点
优点
提供了内外存统一管理的虚拟存储器的实现
段长可根据需要动态增长
便于对具有完整逻辑功能的信息段进行共享
便于实现动态链接
缺点
需要更多硬件成本
存在碎片问题
动态增长带来难度和系统开销
长度受内存可用区大小的限制
抖动现象
5.5.4 段页式基本思想
5.5.5 段页式实现原理
原理
进程中具有独立逻辑功能的数据段或程序化分成段
段中的程序按大小划分成不同的页
1. 虚地址构成
段号s
页号p
页内相对地址d
不再受可用区的限制
2. 段表和页表
3. 动态地址变换过程
内存中放段表和页表
至少访问三次以上
设快速联想寄存器
4. 优缺点
优点
段式
页式
缺点
系统开销大
实现复杂
需要大量硬件支持
子主题
不采用联想寄速度低
子主题
5.6 局部性原理和抖动问题
局部性原理
集中访问程序而不是平均的访问概率
工作集
抖动问题
增加s扩大工作集
改变a和b选择不同的淘汰算法
第八章 文件系统
引言
是计算机组织、存取和保存信息的重要手段
8.1 文件系统的概念
1. 文件的概念
用户的角度
系统的角度
形式
流式
记录式
文件名
2. 文件系统的概念
系统
用户
功能
对磁盘空间进行统一管理
对文件名实行按名存取
建立文件的物理结构
提供文件的共享和保护功能
特点
友好的用户接口
按名存取对用户透明
可被多个用户或进程共享
可存储大量信息
3. 文件的分类
性质和用途
系统文件
库文件
用户文件
组织形式
普通文件
目录文件
特殊文件
信息流向
输入文件
输出文件
入/出文件
保护级别
只读
读写
可执行
非保护
8.2 文件的逻辑结构与存取方法
8.2.1 逻辑结构
分为
字符流式的无结构文件
记录式有结构文件
原则
1. 流式特点
查找文件信息困难
管理简单
操作方便
适用于对基本信息单位操作不多的文件
2. 记录式文件
记录
一个具有特定意义的基本信息单位
由逻辑地址
与记录名对应的一组键
属性及属性值组成
种类
连续结构
多重结构
转置结构
顺序结构
8.2.2 存取方法
1. 顺序存取法
2. 随机存取法
3. 按键存取法
搜索算法
线性搜索法
散列法
二分法
8.3 文件的物理结构与存储设备
8.3.1 文件的物理结构
存储块
逻辑块
对于流式
对于记录式
种类
连续
优点
缺点
串联
克服了连续的不足
但随机访问开销较大
适应于顺序访问
索引
既适应于顺序也适应于随机
有索引表的空间开销
和文件索引的时间开销
8.3.2 文件存储设备
1. 顺序存取设备
磁带
2. 直接存取设备
磁盘
8.4 文件存储空间管理
实质
空闲块的组织
空闲块的分配和回收
空闲块管理方法
空闲文件目录
空闲块链
位示图
1. 空闲文件目录
2. 空闲块链
按空闲块大小顺序链接
按释放顺序链接
按成组链接法
3. 位示图
8.5 文件目录管理
管理
存储空间的有效利用
快速搜索
文件命名冲突
文件共享
8.5.1 文件的组成
文件说明
文件体
8.5.2 文件目录
单级目录
优点
缺点
二级目录
组名有关放主目录MFD
文件说明放用户目录UFD
解决文件重名和共享问题
可获得较高的搜索速度
多级目录结构
目录文件
根目录
特点
层次清楚
解决的重名问题
查找搜索速度快
8.5.3 便于共享的文件目录
绕道法
链接法
基本文件目录表BFD
BFD
文件的结构信息
物理块号
存取控制
管理信息
系统赋予唯一的内部标识
符号文件目录表SFD
用户给出的符号名
系统赋予文件说明信息的内部标识符
8.5.4 目录管理
8.6 文件存取控制
涉及
文件的共享
保护
保密
1. 目标
有权限的可操作
无权限的禁止操作
防止冒充
防止误用
步骤
审定用户的存取权限
比较权限是否一致
与保密性比较是否冲突
2. 验证用户权限的方法
存取控制矩阵
存取控制表
口令
密码技术
8.7 文件系统的层次模型
1. 用户接口
2. 符号文件系统层
3. 基本文件系统层
4. 存取控制验证层
5. 逻辑文件系统层
6. 物理文件系统层
7. 文件存储分配模块和设备策略模块
8. 启动输入输出层
第一章 绪论
计算机和计算机软件的诞生
计算机语言发展历程
计算机系统组成
硬件系统
中央处理器
内存
外设
I/O设备
存储设备
其他设备
软件系统
系统软件
应用软件
工具软件
软件与硬件的关系
硬件是计算机系统的基础
软件是提高计算机系统效率方便用户使用计算机的程序
它们二者相互依赖、相互促进、共同发展
1.1什么是操作系统
第一种观点
是计算机中的一个系统软件,是一些程序模块的集合:
管理和控制计算机系统中的软硬件资源
合理地组织计算机工作流程
有效地利用这些资源为用户提供一个功能强,使用方便的工作环境
在计算机与用户之前起到接口的作用
是裸机上的第一层软件
第二种观点
资源管理器
硬件资源管理
1.处理机分配
2.内存管理
3.设备管理
4.软件资源管理
信息管理
用户接口
1.2操作系统的发展
1.2.1手工阶段
1.2.2 批处理
系统中有一个监控程序
1.2.3 多道程序系统
特征:多道 宏观上并行 围观上串行
1.2.4 分时操作系统
多路调制性
独占性
交互性
1.2.5 实时操作系统
响应时间
指用户发出命令到系统完成所需时间
特点
系统对外部的信号必须能及时响应
要求高可靠性和安全性,效率放在第二位
系统整体性强
不要求很强的“会话”能力
1.2.6 网络操作系统
网络协议
网络操作系统
实现网络低层协议功能
网络设备管理功能
1.2.7 分布式操作系统
1.
以计算机网络为基础
包含多台处理机
每台处理机完成一部分功能
2.
可以共享存储器
也可以是分布式的存储器
3.
硬件上与计算机局域网没有任何区别 关键是软件
1.3 操作系统的分类
批处理
分时
实时
通用
PC
网络
分布式
1.4 操作系统的功能
处理机管理
存储管理
内存分配
存储保护
内存扩充
设备管理
设备分配
设备独立性
信息管理
用户接口
程序接口
作业一级接口
1.5 与操作系统有关的硬件资源
CPU与指令的长度及执行方式
内存、缓存和高速缓存等存储装置
各类寄存器
通用寄存器
控制寄存器
状态寄存器
中断
外部设备与I/O控制装置
内部总线与外部总线
对硬件进行操作的指令集
1.6 算法的描述
1.7 研究操作系统的几种观点
是一个大型的程序系统
负责计算机的全部软硬件资源的分配、调度工作
控制并协调并发活动
实现信息的存取和保护
提供用户接口,是用户获得良好的工作环境
使整个计算机系统实现了高效率和自动化
第三章 进程管理
3.1 进程的概念
现代操作系统的特点
程序的并发性
系统资源的共享
用户操作的随机性
是操作系统在 多用户 随机使用的环境下 进行资源分配、资源共享和控制程序并发执行的基本单位
3.1.1 程序的并发执行
顺序执行
是单道批处理系统的执行方式,也用于简单的单片机系统
特征
顺序性
封闭性
可再现性
多道程序执行环境的特点
独立性
随机性
资源共享
并发执行
概念
执行时间在客观上相互重叠
一个程序段执行尚未结束
另一个程序段的执行已经开始的这种执行方式
逻辑上互相独立的程序或程序段在执行过程中
特征
间断性
失去封闭性
失去可再现性
条件
达到
可再现性
封闭性
Bernstein
保证一个程序的两次读之间数据不变化
R(i)交W(j)=空
W(i)交R(j)=空
保证写的结果不丢掉
W(i)交W(j)=空
3.1.2 进程的定义
定义
是一个具有一定独立功能的程序 对某个数据集合在处理机上的执行过程和分配资源的基本单位
进程与程序的区别
进程是动态的 程序是静态的
程序是有序代码的集合 进程是程序的执行
程序可以作为软件资料长期保存 进程是有生命周期的
进程具有并行特征 程序没有
程序不反映执行过程,所以不具有并行特征
进程是竞争系统资源的基本单位
进程与程序的对应关系
通过多次执行,一个程序可对应多个进程
通过调用关系,一个进程可包括多个程序
3.2 进程的描述
进程的静态描述
进程控制块PCB
有关程序段
数据结构集
3.2.1 进程控制块PCB
概念
是由OS维护的用来记录进程相关信息的一块内存
创建进程时
OS首先创建其PCB,然后才能根据PCB中的信息对进程实施有效的管理和控制
进程完成功能后
系统释放PCB进程随之消亡
内容
进程描述信息
进程控制信息
资源管理信息
CPU现场保护结构
小结
是系统感知进程存在的唯一实体
通过对PCB的操作,系统为有关进程分配资源从而使得有关进程得以被调度执行
与进程有关的所有现场信息都保存在PCB中
进程执行结束后,OS通过释放PCB释放进程占有的资源
3.2.2 进程上下文
概念
是对进程执行活动全过程的静态描述
构成
与进程有关的各种寄存器
程序段经过编译后形成的机器指令代码集
数据集合各种堆栈值
PCB结构
分类
用户级上下文
寄存器级上下文
系统级上下文
3.2.3 进程空间
概念
进程在执行时所拥有的地址空间
要点
进程空间的大小只与处理机位数有关
分为:用户空间和系统空间
用户程序在用户空间内执行
称为用户态
操作系统内核程序在系统空间内执行
称为核心态
用户态时不可直接访问受保护的OS代码
核心态时执行OS代码,可以访问全部进程空间
3.3 进程状态及其转换
一个进程生命周期的划分
就绪状态
执行状态
等待状态(阻塞状态)
3.3.1 进程状态
运行状态
概念
占用处理机资源
处于此状态的进程数目小于CPU的数目
分类
用户态
核心态
就绪状态
概念
已获得除处理机外的所需资源
等待分配处理机资源
只要分配CPU就可执行
分类
内存就绪状态
外存就绪状态
等待状态
由于进程等待某种条件
条件满足之前即使分配处理机也无法继续执行
3.4 进程控制
概念
系统使用一些具有特定功能的程序段
来创建、撤销进程以及完成进程各状态之间的转换
从而达到多进程高效率并发执行和协调、实现资源共享的目的
原语
概念
把系统态下执行的某些具有特定功能的程序段称为原语
分类
指令级原语
功能级原语
用于进程控制的原语
创建原语
撤销原语
阻塞原语
唤醒原语
3.4.1 进程的创建与撤销
创建方式
由系统程序模块统一创建
由父进程创建
被撤销的情况
1. 该进程已完成所要求的功能而正常终止
2. 由于某种错误导致非正常终止
3. 祖先进程要求撤销某个子进程
3.4.2 进程的阻塞与唤醒
阻塞原语
概念
将进程由执行状态变为阻塞状态
使用条件
在一个进程期待某一事件发生,但发生条件尚不具备时,被该进程自己调用来阻塞自己
唤醒原语
概念
将进程由阻塞状态变为就绪状态
条件
当等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒
3.5 进程互斥
进程间资源访问冲突
共享变量的修改冲突
操作顺序重读
进程间的制约关系
间接制约“互斥”
直接制约“同步”
3.5.1 临界区
概念
不允许多个并发进程交叉执行的一段程序
要点
是由属于不同并发进程的程序段共享共用数据或变量而引起的
不可能用增加硬件的方法来解决,也被称为访问公用数据的那段程序
互斥
概念
不允许两个以上的并发进程同时进入临界区
满足的条件
1. 不能假设各并发进程的相对执行速度
2. 某个进程不在临界区时,它不能阻止其他进程进入临界区
3. 若干个并发进程申请进入临界区时,只能有一个进程进入临界区
4. 申请进入临界区的进程应在有限时间内得以进入临界区内
死锁
只多个进程互不相让,都得不到足够的资源,只好一直处于等待状态
饥饿
指一个进程一直得不到资源
3.5.2 互斥的加锁实现
使用临界区加锁的方法可以实现并发进程互斥地访问临界区
3.5.3 信号量和P、V原语
需要一个地位高于进程的管理者来解决公有资源的使用问题
信号量
sem大于等于零时,代表可供并发进程使用的资源数
sem小于零时,表示等待使用临界区的进程数
P、V原语
P原语
sem=sem-1 s>=0 否调用进程入等待队列
V原语
sem=sem+1 s<=0是 唤醒等待队列中的一个进程
实现进程互斥
利用PV原语和信号量可以方便地解决并发进程的互斥问题,而且不会产生使用加锁发解决互斥问题所出现的问题
为临界资源设置一个互斥信号量sem,其初值为1,在每个进程中将临界区代码置于PV原语之间
必须成对使用PV原语
3.6 进程同步
3.6.1 原理
同步
并发进程在一些关键点上可能需要相互等待或互通消息
这样的相互制约关系称为进程同步
解决办法
两个进程互相给对方发送条件已具备的信号
这样被制约进程可以省去对执行条件的测试
只要收到了制约进程发来的信号便开始执行
未收到信号时便进入等待状态
3.6.2 私用信号量
与进程互斥时使用的功用信号量相对
公用信号量用于整组并发进程的互斥
私用信号量用于制约进程与被制约进程之间实现同步执行,与其他进程无关
3.6.3 用PV原语操作实现同步
1. 首先为各并发进程设置私用信号量
2. 为私用信号量赋初值
3. 最后用PV原语和私用信号量规定各进程的执行顺序
3.6.4 生产者-消费者问题
1. 公用信号量mutex:初值为1,用于实现临界区互斥
2.生产者私用信号量empty:初值为n,指示空缓冲块数目。
3. 消费者私用信号量full:初值为0,指示满缓冲块数目
4. 整型量i和j初值均为0,i指示首空缓冲块序号,j指示首满缓冲块序号
补充:结构化的同步/互斥机制——管程
1. 局部于该管程的共享数据,这些数据表示了相应资源的状态。
2. 局部于该管程的若干过程,每个过程完成关于上述数据的某种规定操作。
3.7 进程通信
分类
低级通信
只能传递状态和整数值,包括进程互斥和同步所采用的信号量
优点:速度快
缺点
1. 传送信息量小
2. 编程复杂
高级通信
能够传送任意数量的数据
三种
消息缓冲区
邮箱机制
管道
3.7.1 进程的通信方式
单机中分为
主从式
特点
主进程可以自由使用从进程的资源或数据
从进程的动作受主进程的控制
主进程和从进程的关系是固定的
例子
终端控制进程和终端进程
会话式
特点
使用进程在使用服务进程提供的服务进程之前,必须得到服务进程的许可
服务进程根据使用进程的要求提供服务,但对所提供服务的控制由服务进程自身完成
使用进程和服务进程在进程通信时有固定的连接关系
例子
用户进程与磁盘管理进程之间的通信
消息或邮箱机制
特点
无论接受进程是否已准备好接受消息,发送进程都将把所要发送的消息送入缓冲区或邮箱。
发送进程和接收进程地位平等
只要存在空缓冲区或邮箱,发送进程就可以发送消息
发送进程和接收进程之间无直接的连接关系,接受进程可能在收到某个发送进程发来的消息之后,又转去接受另一个发送进程发来的消息
发送进程和接收进程之间存在缓冲区或邮箱,用来存放消息
共享存储区方式
不要求数据移动
两个需要互相交换信息的进程通过对同一个共享数据区的操作来达到互相通信的目的
共享数据区是每个互相通信进程的一个组成部分
3.7.2 消息缓冲机制
两个进程必须满足
发送进程和接收进程操作缓冲区是,禁止其他进程对缓冲区消息队列的访问
当缓冲区中无消息时,接受进程不能受到任何消息
3.7.3 邮箱通信
概念
由发送进程申请建立一个与接收进程连接的邮箱。
发送进程把消息送往邮箱,接受进程从邮箱中奖消息取走
从而完成进程间的消息交换
好处
发送进程和接收进程之间没有处理时间上的限制
组成
邮箱头
邮箱体
条件
发送进程发送消息时,邮箱中至少有一个空格能存放该消息
接收进程接受消息是,邮箱中至少有一个消息存在
描述
发送进程调用过程deposit(m)向邮箱发送消息,私有信号量为fromnum
接受进程调用过程remove(m)从邮箱中取走消息,私有信号量为mesnum
发送进程与接收进程之间是同步关系而不是互斥关系
3.7.4 进程通信实例-和控制台的通信
3.7.5 进程通信实例-管道
无名管道为建立管道的进程及其子孙进程提供了一条以比特流方式传送消息的通信管道
无名管道临时文件
有名管道永久文件
3.8 死锁问题
3.8.1 死锁的概念
概念
是指并发进程彼此互相等待对方所拥有的资源
且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源
从而造成大家都想得到资源而又都得不到资源
各并发进程不能继续向前推进的状态
原因
起因是并发进程的资源竞争
根本原因:系统提供的资源个数少于并发进程所要求的该类资源数
可采用适当的资源分配方法避免死锁
死锁发生的必要条件
互斥条件
非剥夺条件
部分分配条件
环路条件
3.8.2 死锁的排除方法
预防(计划经济)
避免(市场经济)
检测与恢复(完全自由的资本主义经济)
不理会死锁(鸵鸟政策)
3.8.3 死锁预防
1. 阻止互斥
只能对可共享的资源这样做
不适合非共享资源
2. 破坏“部分分配”条件
必须保证:当一个进程申请一个资源时,它不能占有其它资源。
采用资源的静态预分配测策略,一次申请所有的资源。
3. 破坏“非抢占”条件
方法1
若拥有某种资源的进程
在申请其他资源时遭到拒绝
则它必须释放其占用的资源
以后若有必要可再次申请上述资源
方法2
当一进程申请的资源正被其他进程占用时
可通过操作系统抢占该资源
在两个进程优先级相同时不能防止死锁
4. 破坏“循环等待”条件
采用资源定序方法将所有资源按类型线性排队
并按递增规则编号
进程只能以递增方式申请资源
因此不会导致循环等待
两种主要测率(归纳)
预先静态分配法
降低了对资源的利用率,降低进程的并发程度
有可能无法预先知道所需资源
有序资源使用法
限制进程对资源的请求
资源的排序占用系统开销
3.8.4 死锁避免
要点
在分配资源时判断是否会出现死锁
如不会死锁,则分配资源
基本模式
把进程分为多个步
其中每个步所使用的资源是固定的,且在一个步内,进程所保持的资源数不变
银行家算法特点
允许互斥、部分分配和不可抢占,可提高资源利用率
要求事先说明最大资源要求,在现实中很困难
死锁检测
哲学家就餐问题
读者/写者问题
3.9 线程
3.9.1 概念
概念
一个进程内的基本调度单位称为线程或轻权进程
这个调度单位既可以由操作系统内核控制
也可以由用户程序控制
与进程的比较
进程是资源分配的基本单位,线程与资源分配无关
进程是抢占CPU资源的调度单位,它拥有一个完整的虚拟地址空间
当进程发生调度时
线程只由相关堆栈、寄存器和线程控制表TCB组成。
进程切换时将涉及到有关资源指针的保存以及地址空间的变化等问题
进程的调度与切换都是由OS内核完成
3.9.2 适用范围
最大好处
在有多个任务需要处理机处理时
减少处理机的切换时间
而且线程的创建和结束所需要的系统开销也比进程要小得多
适用于多处理系统
统一用户程序可以根据不同的功能
划分为不同的线程
放在不同处理机上执行
单处理机系统中的应用
服务器中的文件管理和通信控制
前后台处理
异步处理
3.9.3 执行特性
基本状态
执行
就绪
阻塞
基本操作
派生
阻塞
激活
调度
结束
3.9.4 分类
用户级线程
管理过程全部由用户程序完成,操作系统内核只对进程进行管理
系统(核心)级线程
由OS内核进程管理
比较
用户级占用的系统开销较小
实现用户级线程不许OS内核的特殊支持
第九章 设备管理
9.1 引言
9.1.1 类别
交互对象
人机
与其他电子设备
计算机间通信
使用特性
存储
输入出
脱机
终端
从属关系
系统
用户
信息交换的单位
块设备
字符设备
9.1.2 设备管理的功能和任务
任务
选择分配设备以进行数据传输
控制设备和CPU交换数据
为用户提供友好的透明接口
力高并行操作度、使OS获得最佳效率
功能
提供设备和管理系统的接口
进行设备分配
实现并行操作
进行缓冲区管理
9.2 数据传送控制方式
9.2.1 程序直接控制方式
优:实现简单硬件支持少
缺:CPU与外设只能串行工作,利用率低
不能实现并行工作
无法处理由于设备或其他硬件产生的错误
适用于CPU执行速度慢外设少的系统
9.2.2 中断方式
优点
CPU在进程上下文中执行时
也可以启动不同的设备启动指令和允许中断指令
做到了并行操作
提高了CPU利用率
缺点
在一次数据传送中可能发生多次中断
多外设中断增加造成CPU无法相应而丢失数据现象
外设速度高时造成缓冲区内数据来不及取走而丢失
9.2.3 DMA方式
基本思想
在内存和外设之间开辟直接的数据交换通路
包括
控制状态寄存器
数据缓存器
字节计数器
内存地址寄存器
数据输入过程
内存始址及字节数放入DMA控制器中,中断允许位1,开始输入
发出数据要求的进程进入等待状态,其他程序占据CPU
输入设备不断挪用CPU工作周期,写入直到全部传送完毕
完成时通过中断请求线,CPU转中断处理程序进行善后处理
中断处理结束时,CPU返回被中断进程处执行或被调度到新的进程上下文环境中执行
与中断的主要区别
中断是在数据缓冲寄存器满后发出中断要求
DMA是在数据块全部传送结束时发出中断要求
中断的数据传送是在中断处理时由CPU控制完成
DMA是在DMA控制器下不经过CPU控制完成
特点
优点
大大提高了CPU利用率
不会造成数据丢失问题
局限
DMA方式对外设的管理和某些操作仍由CPU控制
多个DMA控制器的同时使用会引起内存地址冲突使控制过程复杂化
多个DMA控制器同时使用不够经济
9.2.4 通道控制方式
9.3 中断技术
9.3.1 中断的基本概念
中断
指计算机在执行期间
系统内发生任何非寻常的
或非预期的急需处理事件
使得CPU暂时中断当前正在执行的程序
而转去执行相应的事件处理程序
待处理完毕后又返回原来被中断处
继续执行或调度新的进程执行的过程
中断源
引起中断发生的事件
中断请求
中断源向CPU发出的请求处理中断的信号
中断响应
CPU收到中断请求后转向相应的事件处理程序
禁止中断
关中断
开中断
中断屏蔽
9.3.2 中断的分类和优先级
1. 分类
外中断
内中断/陷阱
2. 优先级
中断和陷阱的区别
中断的优先级在系统设计时给定
陷阱通常由CPU正在执行的指令引起
陷阱处理程序是为当前进程提供的服务
CPU在执行完一条指令之后
在有的系统中
9.3.3 软中断
9.4 缓冲技术
9.4.1 缓冲技术的引入
9.4.2 缓冲的种类
单缓冲
在设备和CPU之间设置一个缓冲器
属于临界资源不能达到并行操作
双缓冲
解决两台外设间的并行操作问题
一个缓冲器作为数据输入缓冲
另一个可以作为输出缓冲
不能在实际系统中应用
多缓冲
把多个缓冲区连接起来组成两部分
一部分用来输入,另一部分用来输出
缓冲池
吧多个缓冲区连接起来进行统一管理
既可用于输入也可用于输出
9.4.3 缓冲池的管理
结构
由多个缓冲区组成
一个缓冲区由两部分组成
一部分用来表示该缓冲器和用于管理的缓冲首部
另一部分是用于存放数据的缓冲体
缓冲区队列
空白缓冲队列
输入缓冲队列
输出缓冲队列
工作缓冲区
收容输入
提取输出
收容输出
提取输入
9.5 设备分配
9.5.1 设备分配用的数据结构
设备控制表DCT
系统设备表SDT
控制器表COCT
通道控制表CHCT
9.5.2 设备分配的原则
总原则
充分发挥设备的效率
避免造成进程死锁
用户程序和具体物理设备隔离开来
分配方式
静态分配
动态分配
分配策略
先请求先分配
优先级高者分配
9.6 I/O进程控制
9.6.2 I/O控制的功能
把用户进程的I/O请求变为设备管理程序所能接受的信息
用户的I/O请求
申请的逻辑设备名
要求的操作
传送数据的长度
起始地址
I/O请求处理模块
9.6.3 I/O控制的实现
作为请求I/O操作进程的一部分实现
作为当前进程的一部分实现
由I/O进程完成
9.7 设备驱动程序
驱动物理设备和DMA或I/O控制器
等直接进程I/O操作的子程序的集合
管理
设备开关表DST
给出相应设备的各种操作子程序的入口地址
二维结构
分配设备和缓冲区后,可使用DST调用所需的驱动程序进行I/O操作
0 条评论
下一页