操作系统复习笔记.docx
- 文档编号:24512461
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:39
- 大小:464.31KB
操作系统复习笔记.docx
《操作系统复习笔记.docx》由会员分享,可在线阅读,更多相关《操作系统复习笔记.docx(39页珍藏版)》请在冰豆网上搜索。
操作系统复习笔记
第一章操作系统引论
OS作为用户与计算机硬件系统之间的接口,OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统
单道批处理系统:
单道性顺序性自动性
多道批处理系统:
多道性无序性调度性
分时系统满足用户请求
特征:
多路性独立性及时性交互性
实时系统即时处理完成截止时间开始截止时间
操作系统的特征
并发性:
与并行不同
共享性:
互斥共享同时访问
异步性:
表现为“走走停停”
虚拟性:
指通过某种技术把一个物理实体变为若干个逻辑上的对应物
通过虚拟存储器技术,将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量。
操作系统功能
处理机管理:
进程管理(进程控制进程同步进程通信进程调度)
存储管理:
内存分配内存保护内存扩充地址映射
设备管理:
缓冲管理(单缓冲双缓冲缓冲池)设备分配(设备控制器通道)设备处理虚拟设备
文件管理
操作系统和用户接口
用户接口
脱机用户接口
联机用户接口
程序接口
图形接口
第二章进程管理
程序的顺序执行及其特征
顺序性:
封闭性:
可再现性:
前趋图(PrecedenceGraph)是一个有向无循环图,记为DAG(DirectedAcyclicGraph),用于描述进程之间执行的前后关系
偏序关系
程序的并发执行及其特征
间断性
失去封闭性
不可再现性
进程的特征和定义
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
结构特征
动态性
并发性
独立性
异步性
进程的三种基本状态
就绪
执行
阻塞
挂起态:
把暂时无法执行的进程从内存调出到外出提高内存利用率
进程控制块PCB
进程标识符用于惟一地标识一个进程
处理机状态信息主要是由处理机的各种寄存器中的内容组成的
OS是根据PCB来对并发执行的进程进行控制和管理的
进程控制块的组织方式
链接方式
索引方式
原语:
由若干条指令组成的,完成一定功能的一段程序。
原子性
进程的创建(CreationofProgress)
(1)申请空白PCB。
(2)为新进程分配资源。
(3)初始化进程控制块。
(4)将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
进程的终止
正常结束
异常结束
外界干涉
进程的终止过程
(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。
(2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。
(3)若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程。
(4)将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。
(5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。
进程阻塞过程
阻塞原语block
进程的阻塞是进程自身的一种主动行为
先立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞,并将PCB插入阻塞队列
进程唤醒过程
调用唤醒原语wakeup(),将等待该事件的进程唤醒。
唤醒原语执行的过程是:
首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中
进程的挂起
系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起
进程的激活过程
系统将利用激活原语active()将指定进程激活。
激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞
进程同步
两种形式的制约关系
间接相互制约关系:
竞争临界资源比如打印机
直接相互制约关系:
协同工作
临界资源:
一次只允许一个进程访问
进入区临界区退出区剩余区
同步机制应遵循的规则:
空闲让进
忙则等待
有限等待
让权等待
信号量机制解决进程问题
整型信号量:
违反了“让权等待”规则
记录型信号量:
wait(s),signal(s)语句
AND型信号量:
将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。
只要尚有一个资源未能分配给进程,其它所有可能为之分配的资源,也不分配给他。
亦即,对若干个临界资源的分配,采取原子操作方式:
要么全部分配到进程,要么一个也不分配
Swait(S1,S2,…,Sn)
ifSi≥1and…andSn≥1then
fori∶=1tondo
Si∶=Si-1;
endfor
else
placetheprocessinthewaitingqueueassociatedwiththefirstSifoundwithSi<1,andsettheprogramcountofthisprocesstothebeginningofSwaitoperation
endif
Ssignal(S1,S2,…,Sn)
fori∶=1tondo
Si=Si+1;
RemovealltheprocesswaitinginthequeueassociatedwithSiintothereadyqueue.
endfor;
信号量机制
Swait(S1,t1,d1,…,Sn,tn,dn)
ifSi≥t1and…andSn≥tnthen
fori∶=1tondo
Si∶=Si-di;
endfor
else
PlacetheexecutingprocessinthewaitingqueueofthefirstSiwithSi<tiandsetitsprogramcountertothebeginningoftheSwaitOperation.
endif
signal(S1,d1,…,Sn,dn)
fori∶=1tondo
Si∶=Si+di;
RemovealltheprocesswaitinginthequeueassociatedwithSiintothereadyqueue
Endfor
一般“信号量集”的几种特殊情况:
(1)Swait(S,d,d)。
此时在信号量集中只有一个信号量S,但允许它每次申请d个资源,当现有资源数少于d时,不予分配。
(2)Swait(S,1,1)。
此时的信号量集已蜕化为一般的记录型信号量(S>1时)或互斥信号量(S=1时)。
(3)Swait(S,1,0)。
这是一种很特殊且很有用的信号量操作。
当S≥1时,允许多个进程进入某特定区;当S变为0后,将阻止任何进程进入特定区。
换言之,它相当于一个可控开关。
Varmutex:
semaphore∶=1;
begin
parbegin
process1:
begin
repeat
wait(mutex);
criticalsection
signal(mutex);
remainderseetion
untilfalse;
end
process2:
begin
repeat
wait(mutex);
criticalsection
signal(mutex);
remaindersection
untilfalse;
end
parend
利用信号量实现前趋关系
管程机制
①局部于管程的共享变量说明;
②对该数据结构进行操作的一组过程
③对局部于管程的数据设置初始值的语句。
此外,还须为管程赋予一个名字。
进程通信
(1)共享存储器系统
基于共享数据结构的通信方式。
基于共享存储区的通信方式
(2)消息传递系统
直接通信方式
Send(Receiver,message);发送一个消息给接收进程;
Receive(Sender,message);接收Sender发来的消息
间接通信方式
Send(mailbox,message);将一个消息发送到指定信箱;
Receive(mailbox,message);从指定信箱中接收一个消息
邮箱分为私有邮箱,公共邮箱,共享邮箱。
(3)管道(Pipe)通信
所谓“管道”,是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。
向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道;而接受管道输出的接收进程(即读进程),则从管道中接收(读)数据。
由于发送进程和接收进程是利用管道进行通信的,故又称为管道通信。
这种方式首创于UNIX系统,由于它能有效地传送大量数据,因而又被引入到许多其它操作系统中
借助外存实现
线程
轻型实体
独立调度和分派的基本单位
可并发执行
共享进程资源
第三章处理机调度和死锁
调度类型
高级调度:
将作业从外存后备队列中调入内存
中级调度:
对应于挂起状态,提高内存的利用率和系统的吞吐量
低级调度:
进程调度
调度方式
抢占式(高优先权,短道作业(进程)优先,时间片)
非抢占式
面向用户的准则
(1)周转时间短
(2)响应时间快。
(3)截止时间的保证。
(4)优先权准则。
面向系统的准则
(1)系统吞吐量高
(2)处理机利用率好
(3)各类资源的平衡利用
周转时间:
完成时间—到达时间
带权周转时间:
周转时间/服务时间=(等待时间+服务时间)/服务时间
调度算法
先来先服务FCFS:
按作业到达顺序,顺序执行
短道作业(进程)优先SJF/SPF对长作业不利
高优先权HPF:
抢占式非抢占式
时间片轮转
系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。
时间片的大小从几ms到几百ms。
当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。
这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间
高响应比优先
既考虑了短作业,又考虑了长作业
如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业
当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务
多级反馈队列调度算法
(1)应设置多个就绪队列,并为各个队列赋予不同的优先级
(2)当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。
当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n队列中便采取按时间片轮转的方式运行。
(3)仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。
如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。
注意是时间片用完的情况还是外界干预情况,区别对待。
优先权类型:
静态动态
死锁:
多个进程因竞争临界资源而陷入僵局的状态
产生死锁的原因
竞争资源
进程间推进顺序非法
产生死锁的必要条件
互斥条件
请求和保持条件
不可剥夺条件
环路等待条件
处理死锁的方法
预防死锁
1.摒弃“请求和保持”条件采用资源一次性分配方式
2.摒弃“不剥夺”条件如果无法获取其他资源,立即释放现在已申请到的资源
3.摒弃“环路等待”条件
避免死锁:
安全性算法找进程执行的安全序列
检测死锁:
资源分配图
解除死锁:
剥夺资源撤销进程
系统的安全状态
安全状态,是指系统能按某种进程顺序(P1,P2,…,Pn)(称〈P1,P2,…,Pn〉序列为安全序列),来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。
如果系统无法找到这样一个安全序列,则称系统处于不安全状态
死锁检测:
资源分配图(找到一个既不阻塞又不独立的进程结点开始简化)
利用银行家算法避免死锁
(1)可利用资源向量Available
这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目Available[j]=K
(2)最大需求矩阵Max
这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。
如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K
(3)已分配矩阵Allocation
这也是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数
(4)需求矩阵Need
一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。
如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务
Need[i,j]=Max[i,j]---Allocation[i,j]
执行过程
系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:
Available[j]∶=Available[j]-Requesti[j];
Allocation[i,j]∶=Allocation[i,j]+Requesti[j];
Need[i,j]∶=Need[i,j]-Requesti[j]
系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。
若安全,才正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待
P1请求资源:
P1发出请求向量Request1(1,0,2),系统按银行家算法进行检查:
①Request1(1,0,2)≤Need1(1,2,2)
②Request1(1,0,2)≤Available1(3,3,2)
第四章存储器管理
程序的装入
绝对装入方式:
物理内存的地址
可重定位装入方式:
动态装入方式:
把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。
因此,装入内存后的所有地址都仍是相对地址。
程序的链接方式
静态链接
装入时动态链接
运行时动态链接:
运行时由OS去找该模块并装入内存,这样未用到的都不会被调入内存
内存分配方式
连续分配方式
(1)单一连续分配
把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用
(2)固定分区分配
划分分区(分区大小相等或不等)内存碎片
(3)动态分区分配
涉及的数据结构:
空闲分区表空闲分区链
分区分配算法
首次适应算法:
循环适应算法
最佳适应算法
最坏适应算法
分配内存操作
可重定位分区分配,使用紧凑技术
动态重定位分区分配
内存回收
对换技术(swapping)
所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。
对换是提高内存利用率的有效措施。
对应于挂起状态提高内存的利用率
将具有对换功能的OS,外存分为文件区和对换区
文件区:
存放文件目的是实现对文件存储空间的利用率
对换区:
存放从内存中对换出来的进程提高进程换入换出的速度
基本分页存储管理方式
页面:
对应于逻辑地址空间,将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页
物理块:
对应于物理内存空间,把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame)
由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”
页面大小:
地址转换:
(逻辑地址—>物理地址)页号+偏移量
若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按下式求得:
物理地址=由页号索引得到的块号*页面大小+偏移量的d
页表:
页号+块号
地址变换机构
越界中断:
是指计算的页号值大于页表的索引值,而发生中断
缺页中断:
所申请访问的页面不在内存,产生中断将其从外存调入
具有快表的地址转换机构
两级和多级页表
基本分段存储管理方式
段号+段内地址
分页和分段的主要区别
(1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。
或者说,分页仅仅是由于系统管理的需要而不是用户的需要。
段则是信息的逻辑单位,它含有一组其意义相对完整的信息。
分段的目的是为了能更好地满足用户的需要。
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址
段页式存储管理方式
虚拟存储器
虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
特点:
对换性多次性虚拟性
程序运行的局部性原理
内存分配算法
最小物理块数:
指能保证进程正常运行所需的最小物理块数。
单地址指令直接寻址2个
其他的将多于2个
分配策略
1)固定分配局部置换
2)可变分配全局置换
3)可变分配局部置换
物理块分配算法
1)平均分配算法
2)按比例分配算法
3)考虑优先权的分配算法
调页策略
预调策略
请求调入策略
外存分为两部分,用于存放文件的文件区,和用于存放对换页面的对换区
(1)系统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页速度
(2)系统缺少足够的对换区空间,这时凡是不会被修改的文件,都直接从文件区调入;而当换出这些页面时,由于它们未被修改而不必再将它们换出,以后再调入时,仍从文件区直接调入。
但对于那些可能被修改的部分,在将它们换出时,便须调到对换区,以后需要时,再从对换区调入
(3)UNIX方式。
由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。
而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时,应从对换区调入
每当程序所要访问的页面未在内存时,便向CPU发出一缺页中断。
中断处理程序首先保留CPU环境,分析中断原因后,转入缺页中断处理程序。
该程序通过查找页表,得到该页在外存的物理块后,如果此时内存能容纳新页,则启动磁盘I/O将所缺之页调入内存,然后修改页表。
如果内存已满,则须先按照某种置换算法从内存中选出一页准备换出
页面置换算法
1)最佳置换算法Opt向后看算法
2)先进先出置换算法FIFO
3)最近最久未使用置换算法LRU向前看算法
此处涉及缺页率计算
Clock置换算法
简单的Clock置换算法
改进的Clock置换算法
在虚拟内存中,页面在内存和外存之间频繁的调度,以至于调度页面所需要的时间比进程实际运行的时间还多,此时,系统效率剧烈下降,甚至导致系统崩溃,这种现象被称为抖动或颠簸。
分段保护
越界检查
存取控制检查等
第五章设备管理
I/O设备分类
按传输速率分为低速设备中速设备高速设备
按信息交换的单位分为块设备(DMA)字符设备
按共享属性分为独占设备共享设备虚拟设备
设备控制器的基本功能:
接收和识别命令数据交换标识和报告设备状态地址识别数据缓冲差错控制
结构:
与处理机的接口与设备的接口I/O逻辑
I/O通道设备
目的将CPU从繁忙的IO操作中解脱出来
I/O通道是一种特殊的处理机。
它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作
一是其指令类型单一,这是由于通道硬件比较简单,其所能执行的命令,主要局限于与I/O操作有关的指令;
二是通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,换言之,是通道与CPU共享内存
通道类型
字符多路通道
不适合连接高速设备
数组选择通道
可连接多台高速设备,但只含一个分配型子通道,一段时间内只能执行一道通道程序,控制一台设备。
不允许抢占。
数组多路通道
它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率
瓶颈问题
单通路I/O系统
解决瓶颈问题,是多通路IO系统
多通路I/O系统
PCI总线?
I/O控制方式
程序查询方式
在该方式中,CPU要不断地测试I/O设备的状态,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费
中断驱动方式
使CPU与I/O设备并行工作,仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理
DMA方式
特点是:
①数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;②所传送的数据是从设备直接送入内存的,或者相反;③仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的
(1)命令/状态寄存器CR。
用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态
(2)内存地址寄存器MAR。
在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址
(3)数据寄存器DR。
用于暂存从设备到内存,或从内存到设备的数据
(4)数据计数器DC。
存放本次CPU要读或写的字(节)数
I/O通道控制方式
I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。
同时,又可实现CPU、通道和I/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习 笔记