操作系统复习重点模板资料Word格式文档下载.docx
《操作系统复习重点模板资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《操作系统复习重点模板资料Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
2独立性
信息查询系统中每个终端用户在与系统交互时,彼此互相独立互不干扰。
同样在实时控制系统中,对信息的采集和对对象的控制也都是彼此互不干扰的。
3,及时性
4,交互性
5,可靠性
微机操作系统的发展:
单用户单任务操作系统,单用户多任务操作系统,多用户多任务操作系统
操作系统的基本特征:
1.3.1并发:
并行性是指两个或多个事件在同一时刻发生;
而并发性是指两个或多个事件在同一时间间隔内发生。
1.3.2共享:
指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。
1.3.3虚拟:
是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
1.3.4异步性:
并发执行的程序以不同的“速度”前进。
操作系统的主要功能
处理机管理功能1进程控制2进程同步3进程通信4调度
存储器管理功能1内存分配2内存保护3地址映射4.内存扩充
设备管理功能1缓冲管理2设备分配3设备处理
文件管理功能1.文件存储空间的管理2.目录管理3.文件的读/写管理和保护
文件系统不仅方便了用户,保证了文件的安全性,还有效地提高系统资源的利用率。
操作系统与用户之间的接口
传统操作系统的功能:
用户接口:
方便用户直接或间接的控制自己的作业,操作系统向用户提供了命令接口。
该接口进一步分为联机用户接口,脱机用户接口和图形用户接口
程序接口:
为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。
现代操作系统的新功能;
除了具有传统操作系统的功能外,还添加了面向安全面向网络和面向多媒体等功能。
第二章进程的描述与控制
第一节
前趋图有向无循环图直接前驱直接后继初始结点终止结点
重量每个结点具有一个重量,表示该结点所含有的程序量或者程序的执行时间。
第二节进程
程序的顺序执行仅当前一操作(程序段)执行完后,才能执行后继操作。
程序顺序执行时的特征
(1)顺序性;
(2)封闭性;
(3)可再现性;
相邻语句并发执行的条件①R(S1)∩W(S2)={∮},②W(S1)∩R(S2)={∮},③W(S1)∩W(S2)={∮}
程序并发执行时的特征1.间断性2.失去封闭性3.不可再现性
进程的特征:
1)结构特征:
程序段、相关的数据段、PCB构成了进程实体。
2)动态性:
进程是进程实体的一次执行过程。
3)并发性:
多个进程实体,同存于内存中,能在一段时间内同时
运行。
4)独立性:
独立运行和资源调度的基本单位。
5)异步性:
各自独立的、以不可预知的速度向前推进。
进程的定义:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”。
进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。
它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。
它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。
进程的三种基本状态及其转换
进程同步
资源有正负,负的绝对值为等待资源的进程个数
什么叫临界区?
在并发进程中,对共享变量操作的那段程序叫临界区。
同步机制应遵循的规则:
(1)空闲让进。
(2)忙则等待。
(3)有限等待。
(4)让权等待。
PV操作:
例题:
生产围棋的工人不小心把相等数量的黑子和白子混装在一个箱子里,现要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程组成,功能如下:
1)进程A专门拣黑子,进程B专门拣白子;
(2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一个进程去拣子;
分析:
由功能
(2)可知进程之间是互斥的关系。
processB
begin
L2:
P(s);
拣白子;
V(s);
gotoL2;
end;
设置一个公有信号量s,其值取决于公有资源的数目,由于箱子只有一个,s的初值就设为1。
processA
L1:
P(s);
拣黑子;
V(s);
gotoL1;
(3)当一个进程拣了一个棋子(黑子或白子)以后,必让另一个进程拣一个棋子(黑子或白子)。
第一步:
确定进程间的关系。
由功能
(1)
(2)(3)可知,进程间的关系为同步关系。
第二步:
确定信号量及其值。
进程A和B共享箱子这个公有资源,但规定两个进程必须轮流去取不同色的棋子,因而相互间要互通消息。
对于进程A可设置一个私有信号量s1,该私有信号量用于判断进程A是否能去拣黑子,初值为1。
对于进程B同样设置一个私有信号量s2,该私有信号量用于判断进程B是否能去拣白子,初值为0。
当然你也可以设置s1初值为0,s2初值为1。
s1:
=1;
s2:
=0;
P(s2);
拣白子;
V(s1);
begin
L1:
P(s1);
拣黑子;
V(s2);
gotoL1;
end;
有一个仓库,可以存放A和B两种产品。
要求:
(1)每次只能存入一种产品(A或B);
(2)一N<
A产品数量一B产品数量<
M。
试用PV操作描述产品A与产品B的入库过程。
在系统中安装三种颜色的灯泡(如红黄蓝三种)和一个报警器,当对mutex,sa,sb进行p操作时,让系统监控三个信号灯的数值变化,一旦某个值小于零时,系统控制发出警报声并且对应的灯泡亮,这样可以通过警报声和发亮的灯泡的颜色来及时排除非法操作。
互斥信号量mutex=1;
同步信号量sa=M一1,sb=N一1
intmutex=1;
intsa=M-1;
intsb=N-1;
main()
{
while(true)
{
取一个产品;
if(取的是A产品)else
{{
P(sa);
P(sb);
P(mutex);
P(mutex);
将产品入库;
V(mutex);
V(mutex);
V(sb);
V(sa);
}}
}
}
用PV操作实现进程间同步与互斥应注意些什么?
答:
(1)对每一个共享资源(含变量)都要设立信号量,互斥时对一个共享资源设一个信号量,同步时对一个共享资源可能要设两个或多个信号量,视由几个进程来使用该共享变量而定。
(2)互斥时信号量的初值可大于或等于1,同步时,至少有一个信号量的初值大于等于1。
(3)PV操作一定要成对调用,互斥时在临界区前后对同一信号量作PV操作,同步时则对不同的信号量作PV操作,PV操作的位置一定要正确。
(4)对互斥和同步混合问题.PV操作可能会嵌套,一般同步的PV操作在外,互斥的PV操作在内。
p是减1,V是加1.
例题
有两个用户进程A和B,在运行过程中都要使用系统中的一台打印机输出计算结果。
(1)试说明A、B两进程之间存在什么样的制约关系?
A、B两进程之间存在互斥的制约关系。
因为打印机属于临界资源,必须一个进程
使用完之后另一个进程才能使用。
(2)为保证这两个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。
要求给出信号量的含义和初值。
答:
mutex:
用于互斥的信号量,
因为只有一台打印机,所以初值为1。
进程A
进程B
...
...
P(mutex);
申请打印机;
使用打印机;
V(mutex);
…
…
某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,厅外的购票者可立即进入,否则需要在外面等待。
每个购票者可看成一个进程。
首先确定进程间的关系,售票厅是各进程共享的公有资源,当售票厅中多于20名购票者时,厅外的购票者需要在外面等待,所以进程间是互斥的关系;
然后确定信号量及其值,只有一个公有资源:
售票厅,所以设置一个信号量mutex.售票厅最多容纳20个进程,即可用该资源实体数为20,mutex的初值就设为20.程序如下:
REPEAT
P(mutex);
进入售票厅;
购票;
退出;
V(mutex);
UNTILfalse;
由此可知,互斥信号量的初值可大于等于1(当售票厅内至多容纳1名购票者时,初值为1),初值取什么,关键是可用资源数.
例2:
在公共汽车上,司机和售票员各司其职。
司机:
正常行车、到站停车、启动开车;
售票员:
售票、开车门、关车门。
司机和售票员之间应该密切配合,协调一致,以确保行车安全。
请用PV操作实现司机和售票员之间的同步。
司机和售票员在到站、开门、关门、启动开车几件事情上存在有同步关系:
到站后才能开门,关门后才能开车.用2个私有信号量stop、run分别表示可以开门和可以开车.设初始状态是汽车行车和售票员售票,所以初值应该都为0,到站后才会有司机发消息让开门.程序如下:
售票员:
REPEATREPEAT
正常行车;
售票;
到站停车;
P(stop);
V(stop);
开车门;
P(run);
关车门;
启动开车;
V(run);
UNTILfalse;
如果司机和售票员的工作流程如下,司机:
启动开车、正常行车、到站停车;
开车门、关车门、售票.此时,设初始状态为停车而还没开门状态,设stop=1、run=0,两个程序为:
UNTILfalse:
UNTILfalse
假定阅览室最多可同时容纳100个人阅读,读者进入时,必须在阅览室门口的一个登记表上登记,内容包括姓名、座号等,离开时要撤掉登记内容。
用P、V操作描述读者进程的同步算法。
算法的信号量有三个:
seats——表示阅览室是否有座位(初值为100,
代表阅览室的空座位数);
readers——表示阅览室里的读者数,初值为0;
mutex——用于互斥的,初值为1。
读者进入阅览室的动作描述getin:
while(TRUE)
P(seats);
/*没有座位则离开*/
P(mutex)/*进入临界区*/
填写登记表;
进入阅览室读书;
V(mutex)/*离开临界区*/
V(readers)
读者离开阅览室的动作描述getout:
P(readers)/*阅览室是否有人读书*/
P(mutex)/*进入临界区*/
消掉登记;
离开阅览室;
V(mutex)/*离开临界区*/
V(seats)/*释放一个座位资源*/
进程的两个基本属性
1、进程是一个可拥有资源的独立单位。
2、进程是一个可以独立调度和分派的基本单位。
系统为使程序并发执行而进行的一系列操作。
1、创建进程。
2、撤销进程。
3、进程切换。
线程的基本概念(为什么引入线程)
1、由于进程同时是资源拥有者,在进程创建、撤销、切换时需要较大的时空开销,所以系统中所设置的进程数和进程切换的频率都受到了限制,影响了OS并发程度的提高。
2、引入线程,作为独立调度和分派的单位,不独立拥有资源(仅有少量基本资源),而与其它线程共享同一进程的资源,减少了系统的时空开销。
3、实质:
把进程的任务划分为更小、不能继续分的、具有独立功能的单位,以线程的形式来并发执行,以提高程序并发执行的程度
1、线程是进程中的一个实体,是被系统独立调度和分派的基本单位。
2、线程只拥有在运行中必需的资源(程序计数器,一组寄存器和栈),但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
3、一个线程可以创建和撤销另一个线程。
4、同一进程中的多个线程可以并发执行。
5、线程在运行中呈现间断性,也有就绪、阻塞和执行三种基本状态。
第三章处理机调度和死锁
按什么原则分配CPU—进程调度算法
CPU调度的目的:
分配CPU。
进程调度的分类有:
按调度层次,分为:
高级调度(作业),中级调度(进程),低级调度(内存)(引入中级调度的目的:
提高内存利用率和系统吞吐量)
按OS的类型,分为:
批处理调度,分时调度,实时调度,多处理机调度。
CPU利用率(处理机利用率)=cpu的有效工作时间/cpu有效工作时间+cpu空闲等待时间
先来先服务调度算法(FCFS)(不可抢占):
优点:
实现简单缺点:
没考虑进程的优先级。
此算法是有利于长(大)作业(进程),不利于短(小)作业(进程);
有利于CPU繁忙的作业(进程),不利于I/O繁忙的作业(进程)。
短作业(进程)优先调度算法(SJF/SPF):
该算法相对FCFS来说调度性能要好些,且能满足大多数作业(均是短作业)用户的要求。
⑴该算法对长作业不利。
⑵该算法未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)及时得到处理。
⑶该算法不一定能真正做到短作业优先调度。
优先权调度算法(PSA):
基本原理是:
对于进程调度,它总是把处理机分配给就绪队列中具有最高优先权的进程;
对于作业调度,它总选择后备队列中若干具有高优先权的作业进入内存。
优先级调度算法又可分为:
非抢占的优先级调度法
可抢占的优先级调度法
1.静态优先权
确定静态优先权的依据有:
(1)进程类型
(2)进程对资源的需求
(3)用户要求的优先权。
静态优先权简单易行,系统开销小,但不精确。
2.动态优先权:
动态优先权是基于某种原则,使进程的优先权随时间而改变。
高响应比优先调度算法(HRRN):
响应比Rp定义如下:
Rp=作业响应时间tR/要求执行的时间
作业响应时间tR=作业进入系统后等待时间+要求执行的时间
Rp=1+(作业等待时间tW/要求执行的时间)
Rp=等待时间+要求服务时间/要求服务时间
响应时间=等待时间++要求服务时间
周转时间=结束时间--进入时间
带权周转时间=周转时间//运行时间
时间片轮转法:
⑴基本原理
轮转法是最简单又最公平的进程调度算法。
主要用于分时系统中作为其主调度算法。
轮流使用CPU。
如果时间片到期时,进程尚未完成运行,调度程序将剥夺它正在使用的CPU,转让给另一进程使用;
如果进程在使用完它的某一时间片之前已经完成运行或已阻塞,CPU也立即转让给另一进程使用。
时间片选择有:
固定时间片和可变时间片;
与时间片大小有关的因素有:
系统响应时间、就绪进程个数和CPU处理能力三个。
死锁:
死锁引起的原因:
竞争不可抢占性资源引起死锁,竞争可消耗资源引起死锁,进程推进顺序不当引起死锁。
定义:
如果一组进程中的每一个进程都在等待仅有该组进程中的其他进程才能引发的事件,那么该组进程是死锁的。
产生死锁的必要条件:
互斥条件,请求和保持条件,不可抢占条件,循环等待条件。
处理死锁的方法:
(1)预防死锁。
(事先设置某些限制条件,破坏产生死锁的必要条件,破坏请求和保持条件,不可抢占条件,循环等待条件。
)
(2)避免死锁。
(在资源动态分配过程中,利用算法避免死锁)
(3)检测死锁。
(4)解除死锁。
银行家算法:
WorkNeedAllocationwork+AllocationFinish
ABCABCABC
P1
P2
存在安全序列
死锁的检测和解除
资源分配图
死锁定理:
S为死锁的充分条件是:
当且仅当S状态的资源分配图是不可完全简化的。
该充分条件称为死锁定理。
死锁的解除:
1抢占资源
2终止(撤销)进程进程优先级大小,进程已经执行了多长时间,还有。
。
进程运行中使用了多少资源,以后。
进程的性质是交互式的还是批处理的。
第四章:
程序的装入:
绝对装入方式,可重定位装入方式,动态运行时的装入方式。
程序的链接:
静态链接方式,(
(1)对相对地址进行修改。
(2)变换外部调用符号)
装入时动态链接(
(1)便于修改和更新。
(2)便于实现对目标模块的共享。
运行时动态链接(加快程序的装入过程,可节省大量的内存空间。
连续分配方式:
单一连续分配,
固定分区分配固定分区式分配是将内存用户空间划分为若干个固定大小的区域,在每个分区中只装入一道作业。
它是一种最简单的可运行多道程序的存储管理方式。
(优点:
易于实现,开销小。
缺点:
内碎片造成浪费;
分区总数固定,限制了并发执行的程序数目。
动态分区分配算法:
(1)首次适应算法FF
空闲区链:
首址递增排列;
申请:
按分区的先后次序,从头查找,找到符合
要求的第一个分区;
优点:
尽量使用低地址空间,
高地址空间保持大的空闲区域。
随着低地址分区不断划分而产生较多小分区(内存碎片),每次分配时查找时间开销会增大。
2)循环首次适应算法
从上次分配的分区起查找(到最后分区时再回到开头),找到符合要求的第一个分区,应设置一个查询指针。
特点:
空闲分区分布均匀;
大的空闲分区不易保留;
查找时间开销会减小。
(3)最佳适应算法
分区容量递增排列;
找到符合要求的第一个分区。
碎片较小,但从整体来看,会形成较多的碎片
(4)最差适应算法
分区容量递减排列;
大的空闲分区不易保留。
逻辑地址(相对地址):
程序用来访问信息所用的一系列地址单元
物理地址(绝对地址):
主存中一系列储存物理单元。
地址空间:
一个目标程序所限定的地址范围
分页地址中的地址结构:
3112110
0-11位为页内地址,每页大小为4kb,12-31位为页号,地址空间最多允许有1M页。
给定一个逻辑空间中的地址为A,页面大小为L,则页号和业内地址按下示求
P=INT[A/L],d=[A]MODL;
为什么引入分段储存管理方式:
分段存储管理方式更符合用户和程序员的需要:
方便编程,信息共享,信息保护,动态增长,动态链接。
分页和分段的主要区别:
(1)页是信息的物理单位。
分页仅仅是系统管理上的需要,分段的目的在于更好的满足用户的需要。
(2)页的大小固定且有系统决定,段的长度决定于用户所编写的程序
(3)分页的用户程序地址空间是一维的,分页是系统行为而分段是用户的行为。
段页式存储管理方式
1.基本原理
将用户程序划分若干个段,然后再把每个段分成若干页,并为每一段赋一个段名。
为了实现从逻辑地址到物理地址的变换,系统中需要同时配置段表和页表.
为了便于实现地址转换,须配置一个段表寄存器,存放段表始址和段长TL。
为了获得一条指令或数据需要三次访问内存。
虚拟存储器基本概念:
两种情况:
(1)有的作业很大,其所要求的内存空间超过了内存总容量,作业不能全部被装入内存,导致该作业无法运行。
(2)有大量作业要求运行,但是由于内存容量不足以容纳所有这些作业,只能将少数的作业装入内存让它们先运行,而将其它大量的作业留在外存上等待。
虚拟存储器特征:
(1)一次性:
作业必须一次性的全部装入内存后方能开始运行。
(2)驻留性,作业被装入内存后,整个作业一直驻留在内存中,其中任何部分都不会换出,直至作业运行结束。
局部性原理:
(1)程序执行时,除少部分的转移和过程调用外,在大多数情况下是按顺序执行的,
(2)过程调用会使程序的执行轨迹由一部分区域转至另一部分区域。
(3)程序中存在许多循环结构,被多次调用,
(4)程序中包括对数据结构的处理
局部性又同时表现在下述两个方面:
时间局部性(典型原因程序中存在大量的循环操作)
空间局部性(典型情况程序的顺序执行)
虚拟存储器定义:
所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
虚拟存储器的特征:
多次性,多次性是指一个作业被分多次调入内存。
多次性是虚拟存储器最重要的特征
对换性,对换性是指允许在作业的运行过程中换进、换出。
换进和换出能够有效提高内存利用率。
虚拟性,虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远远大于实际容量。
虚拟性是以多次性和对换性为基础的。
内存分配策略和分配算法
最小物理块数的确定