操作系统1-6章
2021-07-21 18:56:54 23 举报
AI智能生成
包含课内知识点,并夹杂了部分易错的习题语句
作者其他创作
大纲/内容
一、引论
操作系统的定义
资源管理的观点
定义
管理计算机资源的
系统软件
本质:程序集合
划分为
处理机管理
存储管理
设备管理
文件管理
用户接口
用户的观点(扩展机器的观点)
是扩充逻辑功能的软件,是比裸机功能更强的、使用方便的虚拟机
操作系统的产生和发展
阶段
第一代计算机
没有操作系统
第二代计算机
有了监控系统
出现了早期的单道批处理系统
脱机输入输出
程序和数据的输入是在一台专门用来输入输出的计算机的控制下进行的(即脱离主机)
优点
减少了CPU的空闲时间
提高了输入输出的速度
联机输入输出
输入输出都在主机的控制下进行
第三代计算机
多道程序设计技术
思想
把多个程序同时放入内存并运行,使它们共享系统中的资源
目的
充分利用CPU,减少CPU的等待时间
优点
充分发挥CPU(处理机)、I/O设备(外部设备/外设)并行工作
分时系统
第四代计算机
操作系统形成的标志
多道批处理系统
分时系统
单机系统中,多道程序在内存中
宏观
并行运行
微观
串行运行
操作系统的特征
并发性(程序的并发执行)
共享性(资源共享)
互斥共享方式
共同访问方式
虚拟性
不确定性
一次作业第一次执行时用了5分钟,而第二次执行时用了6分钟
操作系统的功能
进程管理(处理机管理)
P22
进程控制
进程同步
进程通信
进程调度
存储管理
P22-23
内存分配
地址映射
内存保护
内存扩充
设备管理
P23
设备分配
设备控制
设备的无关性
文件管理
P24
文件存储空间的管理
目录管理
文件的读写管理
文件的存取控制
操作系统接口
命令接口
为一般用户提供
联机命令接口
脱机命令接口
图形用户界面接口
程序接口
为程序员提供
操作系统类型
批处理操作系统
形式
单道批处理操作系统
主要特征
自动性
顺序性
单道性
多道批处理操作系统
优点
CPU利用率得到提高
内存、输入输出设备的利用率提高
增加了系统的吞吐量
主要特征
多道性
无序性
调度性
允许用户把多个作业同时交给计算机
优点
资源利用率高
系统吞吐量大
缺点
平均周转时间长
无交互能力
分时操作系统
分时技术的引入
P27
要解决的关键问题
P28
及时接收
及时处理
实现形式
单道分时操作系统
具有“前台”和“后台”的分时操作系统
多道分时操作系统
特征
多路性
独占性
交互性
及时性
允许在一台主机上同时连接多台终端,多个用户可以通过多台终端同时交互地使用计算机。
实时操作系统
类型
实时控制系统
早期应用
提供过程控制
环境监控
实时信息处理系统
特殊要求
高可靠性
设计时,必须首先考虑系统的
可靠性
过载防护
对截止时间的要求
特征
多路性
独占性
交互性
及时性
计算机能及时处理由过程控制反馈的数据并做出及时响应
实时与分时的比较
P31
多处理机操作系统
引入的原因
P38
增加系统的吞吐量
节省投资
提高系统的可靠性
类型
非对称多处理机模式(主一从模式)
处理机分为
主处理机
1个
P38
从处理机
多个
P38
此模式的操作系统易于实现,但资源利用率低
对称多处理机模式
P38
优点
允许多个进程同时运行
网络操作系统
计算机网络的产生
P39
网络操作系统的模式
客户端/服务器模式
2种形式的节点
服务器节点
服务器
概念
网络的控制中心
任务
向客户端提供一种/多种服务
类型
文件服务器
打印服务器
数据库服务器
包含
服务程序
服务支撑软件
客户端节点
客户端
概念
用户本地处理、访问服务器的计算机节点
包含
本地处理软件
访问服务器上的服务程序的软件接口
特征
分布处理
集中控制
对等模式(Peer to Peer)
节点
对等的
计算机在网络中的功能、地位是相同的
作为客户端去访问其他节点
作为服务器向其他节点提供服务
网络中没有服务处理中心、控制中心
网络服务、控制功能分布于各个节点上
特征
分布处理
分布控制
网络操作系统的功能
P39-40
网络通信
资源共享管理
网络服务
网络管理
最基本的任务:安全管理
互操作能力
P40
分布式操作系统
计算机网络
概念
一组相互连接并能交换信息的计算机
特点
任何一台计算机上的用户都可以共享网络中其他计算机上的资源
不是一个一体化的系统
没有标准的、统一的接口
对用户不透明
存在的问题
P40
分布式操作系统
出现的原因
大量的实际应用需要有一个完整的一体化系统、且具有分布处理的能力
概念
由若干计算机经互联网连接而形成的系统
一定是有多台计算机组成的系统
这些计算机都可以
独立工作(自治性)
协同合作
并行运行分布式程序
特点(与网络操作系统相比)
P40-41
多机合作
分布式操作系统
概念
多机合作
自动的任务分配、协调
任务
任务分配
网络操作系统
每个用户都在本地计算机上处理任务,所以妹妹哟任务分配程序
健壮性
自动恢复
良好的可用性、可靠性
网络操作系统
其系统的重构功能很弱
透明性
隐藏了系统内部的实现细节
分布在各个站点的软、硬件资源可供全系统中的所有用户共享
嵌入式操作系统
概念
将计算机嵌入其他设备
需要专用开发工具和方法进行设计
是技术密集、高度分散、不断创新的知识集成系统
面向特定任务
特性
实时系统
具有实时约束
处理机速度<<个人计算机的速度
三、进程同步、通信
操作系统中的并发进程
独立的
交互关系(相互协作的)
互斥
概念
多个进程不能同时使用同一个资源
性质
相互竞争(约束)
先来先得
进程之间知道对方的程度最低
同步
多个进程中发生的时间存在着某种时序关系
相互制约、协调
知道对方的程度稍高
进程通信
多个进程之间要传递一定量的信息
知道对方的程度最高
临界资源、临界区
概念
临界资源
某段时间内只许一个进程使用的资源
所有的共享资源都是临界资源。
临界区
每个进程中访问临界资源的程序
进程访问临界区的一般结构
P73
采用互斥访问的方式实现共享
临界区进入准则
P73
空闲让进
忙则等待
有限等待
保证在有效时间内进入
让权等待
不能进入临界区时,应立即释放处理机
临界区不允许两个进程同时进入
解决进程互斥进入临界区的问题
互斥实现的硬件方法
包括
禁止中断
单处理机环境
为了保证互斥,只要保证一个进程不被中断即可
在临界区进程不能被中断
保证了互斥
多处理机环境
仅对本指令的CPU起作用
不能保证对临界区的互斥进入
专用机器指令
TS(Test and Set)指令
P74
Swap指令
P74
优缺点
P75
互斥实现的软件方法
P75-77
单标志算法
双标志、先检查算法
双标志、先修改后检查算法
先修改、后检查、后修改者等待算法
信号量、PV操作
信号量的定义
P77
分为
整型信号量
P操作
wait (s){
while(s<=0);资源没有了,只能等待别人释放。加入这样就一直保持这样
s--;当前面这条语句不满足时,才会执行它
}
while(s<=0);资源没有了,只能等待别人释放。加入这样就一直保持这样
s--;当前面这条语句不满足时,才会执行它
}
V操作
signal (s){
s++;
}
s++;
}
记录型信号量
P操作
wait (semaphore s){
s.value -- ;
if(s.value < 0) {
block(S,L);没有申请到资源,一直处于阻塞状态
}
}
s.value -- ;
if(s.value < 0) {
block(S,L);没有申请到资源,一直处于阻塞状态
}
}
V操作
signal (semaphore s){
s.value ++ ;释放资源
if(s.value <= 0) {
wakeup(S,L);唤醒队列中的一个进程
}
}
s.value ++ ;释放资源
if(s.value <= 0) {
wakeup(S,L);唤醒队列中的一个进程
}
}
信号量的物理意义(信号量机制)
信号量的初值(资源信号量)
系统中某种资源的数目
P,V操作中信号量的值永远代表着某类可用资源的数量
S.value>0时的值表示可用的资源数目
每次最多允许2个进程进入该程序段
则s.value = 2
信号量的取值范围则从2开始减
P操作
s.value = s.value -1
进程申请一个临界资源
当s.value < 0时
资源已分配完毕
进程所申请的资源不能满足,进程无法继续执行
block(s.queue)
自我阻塞,放弃处理机,插入等待该信号量的等待队列
V操作
s.value = s.value +1
进程释放一个临界资源
当s.value <= 0时
仍有请求该资源的进程被阻塞
wakeup(s.queue)
唤醒相应阻塞队列中的首进程
当s.value < 0时
| s.value |表示等待队列的进程数
用信号量解决互斥问题
P78
初始值为 semaphore s=1
在利用信号量实现进程互斥时,应将临界区置于(P操作)和(V操作 )之间
用信号量解决同步问题
P78
初始值为 semaphore s=0
提供资源(先)的用V
使用资源(后)的用P
经典进程同步、互斥问题
生产者—消费者问题
P79
读者—写者问题
P81
哲学家进餐问题
P82
管程
P88-91
同步与互斥实例
P91-93
进程通信
P93
类型
共享存储器系统
消息传递系统
直接通信方式
间接通信方式
信箱通信
发送方、接收方之间的关系
一对一
多对一
一对多
多对多
管道通信
在消息缓冲通信中,消息队列是一种(临界)资源
四、调度、死锁
调度
类型
P101
高级调度(作业调度)
可以限制多道程序的道数
中级调度(对换程序)
提高内存的利用率、系统的吞吐量
低级调度(进程调度)
方式
P101
不可剥夺方式(非抢占方式)
处理机分配给某个进程,该进程要一直执行下去,直到运行完毕或出错,决不允许其他进程抢占正在运行的处理机
适合批处理操作系统
不适合实时操作系统(对时间要求严格)
可剥夺方式(抢占方式)
采用优先权原则
高优先级的进程可以抢占处理机而运行
优先级低的进程调度CPU,让优先级高的进程运行
时机
肯定会发生调度的情况
进程退出
因为进程退出后,CPU空闲,必须从就绪队列中选择一个进程运行
进程阻塞
进程由于等待I/O、信号量等而放弃CPU时,必须选择另一个进程运行
尽管调度在逻辑上不必须,但经常发生
P102
新进程创建
中断发生
时钟中断
(选择调度算法)性能准则
面向用户
响应时间
提交一个请求 → 系统响应
用户可见
尽快响应交互式用户的请求
周转时间
作业被提交 → 完成
平均周转时间
带权周转时间
响应比
= (等待时间+服务时间)/服务时间
尽量减少进程的等待时间
优先权
截止时间
截止开始时间
截止完成时间
面向系统
系统吞吐量
单位时间内所完成的作业数
尽可能提高系统的吞吐量
处理机的利用率
尽量提高处理机的利用率
各类资源的平衡利用
公平
当进程调度程序未能选中一个进程时,就绪队列、阻塞队列一定为空。
调度算法
先来先服务调度算法FCFS
按时间顺序
特点
利于长作业
利于处理机(CPU)繁忙的作业,不利于I/O繁忙的作业
短作业优先调度算法SJF、SPN
第一个到达的进程先运行,接下来就是运行时间短的先
事先估计进程的运行时间
如果所有进程同时到达,此算法使进程的平均周转时间最短。
优点
改善了平均周转(、带权)时间,缩短了等待时间
提高系统的吞吐量
缺点
不利于长作业
不考虑作业的紧迫程度
准确性不高,从而影响调度性能
可能导致长作业被饿死
时间片轮转调度算法RR
主要指标
时间片的长度
影响时间片的因素
系统的处理能力
系统的负载状况
系统对响应时间的要求
用户的响应时间T=N(进程数目)x q(时间片)
在分时系统中,当用户数一定时,影响响应时间的主要因素是时间片
优点
适于
分时操作系统
事务处理系统
不足
不利于I/O频繁的进程
做题方法
画坐标轴,一小格一小格
从A开始,遵守“进划插还”的规则,一个字母一个字母的写入坐标轴
优先权调度算法Priority
适用于
作业调度
系统从后备队列选择若干个优先权最高的作业调入内存
进程调度
把处理机分配给就绪队列中优先权最高的进程
可剥夺方式
进程运行时, 可把处理机分配给新出现的优先权更高的进程
不可剥夺方式
响应比
(等待时间+服务时间)/服务时间
关键
确定进程的优先权
静态优先权
在进程创建时确定的,且不变
因素
进程的类型
系统进程 >(优于) 用户进程
进程对资源的要求
要求少的 > 要求多的
用户的要求
用户的紧迫程度
动态优先权
变化的
取决于
进程的等待时间
↑,优先权 ↑
为了让优先权低的进程,提高优先权,而被调度执行
占有处理机的时间
↑,优先权 ↓
防止一个长进程长期垄断处理机
最高响应比HRRN
要考虑
进程的等待时间
进程执行时间(CPU上的运行时间)
多级反馈队列调度算法MFQ
P107
多种调度算法比较
P107
选择调度算法的准则
尽快响应交互式用户的请求
尽量提高处理机的利用率
尽可能提高系统的吞吐量
尽量减少进程的等待时间
死锁
定义
一组竞争系统资源 / 相互通信的进程相互的“永久”阻塞
不是临时
每个进程等待着某个不可能得到的资源
死锁只发生在相互竞争资源的进程之间。
产生的原因
资源不足
资源
可重复使用资源
一次只提供一个进程安全使用,且不会因使用而耗尽
如处理机、I/O通道、设备、文件、数据库
解决这类死锁的策略
设计系统时施加关于资源请求顺序的约束
可消耗资源
可以创建、撤销的资源
当进程使用后,这种资源就不存在了
如中断、信号量、缓冲区
多个进程竞争资源出现了循环等待
(进程)推进次序非法
进程的动态执行
并发进程的执行速度
应用程序的细节
产生的根本原因
竞争互斥资源
产生的必要条件
P112
互斥条件
请求和保持
不可剥夺方式
环路条件
解决死锁
预防死锁
P113
互斥
预防死锁不可以去掉互斥条件
请求和保持
资源预先静态分配
可以破坏产生死锁的请求与保持条件
不可剥夺
环路
资源的有序分配
可以破坏产生死锁的环路条件
避免死锁
避免进入不安全状态
系统安全状态
不安全状态未必死锁
死锁一定是不安全状态
安全状态一定不会死锁
安全状态是没有死锁的状态,非安全状态是可能有死锁的状态
银行家算法
P115
新资源请求的题目
request<need
合法请求
request<available
系统能满足资源需求
死锁的检测
P118
死锁的解除
P120
剥夺资源
五、存储管理
管理的对象
内存
管理方案
单一连续分配
页式和段式存储方案
用户编制程序时使用符号名地址,处理机访问存储器时使用物理地址。
程序的装入和链接
多道程序环境下,程序运行必须先装入内存
用户源程序 → 可在内存运行的程序
编译
生成目标模块
以“0”为开始地址
里面的地址称为
相对地址(逻辑地址)
链接
编译后形成的多个目标模块、它们所需要的库函数链接在一起形成装入模块
有统一的地址空间
以“0”为参考地址
装入
装入模块装入内存实际物理地址空间
修改程序中与地址有关的代码
连续分配存储管理方式
分为
单一连续分区
内存区域
系统区域
提供给操作系统使用
可驻留在
内存的低地址部分
内存的高地址部分
用户区域
供应用程序使用的内存区域
操作系统、用户程序的3中组织方案
P126
防止操作系统受到用户程序的破坏
设置保护机构
使用界限寄存器
指令的物理地址与界限寄存器的地址对比
没超过
执行
超过
产生越界中断,停止用户程序的执行
固定分区
在进程装入内存前,操作员或OP系统把内存划分成若干个【大小不等】的分区
分区说明表
一旦划分好,在运行期间不能重新划分
每个分区的大小是
可以不相同
需预先设定
处理器需设置【上、下限】寄存器以保证作业在所在分区内运行。
优点
每个用户进程共驻内存
技术简单
缺点
一个进程的大小刚好==某个分区大小的情况很少,总有一小部分被浪费
内存利用率不高
可变分区(动态分区)
概念
在进程装入内存时,把可用的内存空间切出一个连续的区域分配给进程
整个内存分区的大小、个数不是固定的,根据进程的大小动态划分
用户申请分区时系统根据用户的情况给用户分配大小的内存空间,而不是分配大小固定的内存
碎片
内部碎片
在存储管理时,给程序配了一定的内存,但是没有全部使用,有一部分空闲而浪费
外部碎片
可用内存无法满足用户要求而导致的浪费问题,比如用户要求2MB的内存,但是可用内存中有1MB,无法满足用户需求
合并分区的目的是
合并空闲区
数据结构
记录内存的使用情况
分为
空闲分区表
为每个还没分配出去的分区设置一个表项
分区序号
分区起始地址
分区大小
空闲分区链
在每个空闲分区中设置
用于控制分区分配的信息
用于链接各个分区的指针
分配算法
首次适应算法(First Fit)
以【地址递增】的次序,从上往下
缺点
优先用低地址,留下很多难以利用的空闲分区
每次从低地址部分开始查找,影响查找速度
高地址很少被利用
下次适应算法(Next Fit)
每次不再从链首开始查找,而是从上次找到的空闲分区的下一个开始找
优点
内存比较均衡使用
减少查找空闲分区的开销
缺点
系统缺乏打的空闲分区,导致大的进程无法运行
最佳适应算法(Best Fit)
第一次找到的满足要求的空闲区
将空闲块按【大小递增】次序排列的
优点
如果空闲分区大小刚好==进程大小,则必然选中该空闲块
保留有较大的空闲分区
缺点
链表头部会留下很多难以利用的小空闲区(碎片),影响分配速度
最坏适应算法(Worst Fit)
每次分配先找最大的空闲区
优点
不会留下小的空闲分区,不易形成碎片
缺点
当有大的进程需要运行时,不能满足要求
最佳适应算法比首次适应算法具有更好的内存利用率。
内存的回收
P128-129
动态重定位分区
P129
页式存储管理
基本原理
概念
把内存空间分成大小相同的若干个存储块(页框),编号
把进程的逻辑地址空间分成若干个与内存块大小相等的页(页面)
为进程分配空间时,以【页】为单位
页分别装入多个不相邻的存储块
页内碎片
进程的最后一页经常装不满一个存储块,而形成不可利用的碎片
为了减少内部碎片,页的大小越小越好
页式系统的优点是消除了外部碎片,更有效地利用了内存。
程序分页、内存分块
P130
分页是由【硬件】完成的
页表
作用
实现从页号到存储块号的地址映射
驻留在内存
空闲块表
P131
页的大小
P131
地址变换机构
任务
实现逻辑地址→物理地址的动态重定位
逻辑地址
页号
页号>页表寄存器中页表的长度
本次访问超出了进程的地址空间
系统产生越界中断
页号<页表寄存器中页表的长度
通过页表寄存器中页表始址找到页表
根据页号找出页表项
得到该页的存储块号
页内位移
页表的硬件实现
P132
实现方式
专门的寄存器
页表放在内存中
快表
作用
加快地址变换过程
采用的硬件
Cache
页表的组织
P133-134
段式存储管理
优点
P137
方便编程
段的共享
段的保护
动态链接
动态增长
基本原理
P138
先将程序分段
然后段内分页
内存分配以块(页框)为单位
如果不考虑使用快表的情况,每条访存指令需要3次访问内存,分别查找
段表
页表
指令或数据
地址变换过程
P138
若程序的逻辑地址用24位表示,其中8位表示段号,则每个段的最大长度是
地址转换是操作系统的地址变换机构【自行完成】的,无需用户干预
分段、分页的区别
页
信息的物理单位
大小固定
逻辑地址
页号
页内位移
逻辑地址空间
一维
地址
段
信息的逻辑单位
长度可变,由用户写的程序决定
逻辑地址空间
二维
段号
段内地址
段的大小受内存空间的限制
分页
实现进程在内存的有效离散存放
减少碎片,提高内存利用率
系统管理的需要
由硬件完成
分段
满足用户的需要
由硬件完成
段的共享与保护
页共享与段共享的比较
P139
在段式系统中段的共享比页式系统中页的共享更方便
共享段表
P140
共享段的分配、回收
P141
段的保护
P141
六、虚拟存储管理
引入
局部性原理
局部性表现在
空间局部性
顺序执行
顺序访问数据结构
时间局部性
因为程序中存在大量循环操作
虚拟存储器
具有请求调入功能、置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统
逻辑内存的容量由
内存
外存
可用于
段式存储管理
段页式存储管理系统
特征
离散性
离散分配
多次性
对换性
虚拟性
受到的限制
外存的容量
指令中的地址长度
理论基础
局部性原理
在支持虚拟存储器的系统中,CPU能运行比该计算机内存容量还要大的程序。
题目
设主存的容量为4MB
辅存的容量为40MB
计算机的地址线24位
设一个计算机系统的CPU地址长度为32位,内存的大小是32MB
则该计算机的物理地址空间的大小为
真实的内存空间==32MB.
逻辑地址空间的大小为
32位CPU可以寻址的空间为∗(1GB)的物理地址
说明该CPU最大支持的内存容量为4GB.这是逻辑空间
虚拟存储管理策略
可以扩大逻辑内存容量
请求页式存储管理
P154
页面置换算法
最佳置换算法OPT
先进先出置换算法FIFO
当分配给进程的页面增加时,缺页的次数可能 ↓ ,也可能不变
最近最久未使用置换算法LRU
时钟置换算法Clock / NRU
在请页式存储管理系统中,LRU置换策略总是优于FIFO置换策略。
P156
性能
驻留集
抖动和加载控制
系统抖动
概念
被调出的页面又立刻被调入,由此所形成的频繁调入调出的现象
……最容易引起系统抖动
固定分配,局部置换
系统抖动现象的发生
与(……)无关
交换的信息过大
地址变换过程中要访问的页面在内存不会引起中断
所需访问的页面不在内存,则会引起缺页中断
缺页率
页的大小与缺页率成反比
进程在执行过程中发生了缺页中断,操作系统处理后,应让其继续执行被中断的指令
采用多道程序设计的系统中,系统的道数越多,系统的效率越高。
0 条评论
下一页