操作系统复习要点.docx
- 文档编号:25638055
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:34
- 大小:717.17KB
操作系统复习要点.docx
《操作系统复习要点.docx》由会员分享,可在线阅读,更多相关《操作系统复习要点.docx(34页珍藏版)》请在冰豆网上搜索。
操作系统复习要点
-操作系统的目标:
1、方便性:
操作系统使计算机更容以使用
2、有效性:
允许以更有效的方式使用计算机系统资源(a.提高系统资源利用率b.系统的吞吐量高)
3、可扩展性:
允许有效地开发、测试和引进新的系统功能(更方便的增加新的功能和模块儿,并能修改老的功能和模块儿(为了适应计算机硬件、体系结构以及应用发展的要求))
4、开放性:
实现应用程序的可移植性和互操作性,要求具有统一的开放的环境(计算机操作系统的应用环境已有单机封闭环境转向开放的网络环境,为使来自不同厂家的计算机和设备能够通过网络加以集成化,并能正确、有效地协同工作,实现应用的可移植性和互操作性,要求操作系统必须提供统一的开放环境,进而要求OS具有开放性。
(开放性是指系统能遵循世界标准规范,特别是遵循开放系统互连OS国际标准。
凡遵循国际标准开发的硬件和软件均能彼此兼容,可方便地实现互连)开放性已成为20世纪90年代以后计算机技术的一个核心问题)
-用户使用计算机的方式:
a.命令方式b.系统调用方式c.图形、窗口方式
——操作系统是什么?
从用户的观点看:
操作系统提供人机接口(图形化接口、命令接口、编程接口),操作系统的作用是为用户提供一台等价的扩展机器或者称虚拟机。
从系统的观点:
操作系统时系统资源的管理者,也是工作流程的调度者。
-操作系统作为系统资源的管理者:
处理器管理、存储器管理、I/O设备管理、文件管理
-OS实现了对计算机资源的抽象:
(I/O软件隐藏了对I/O设备操作的具体细节,向上提供了一组抽象的I/O设备)
-OS是铺设在计算机硬件上的多层系统软件,他们不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由他们实现对计算机硬件操作的多个层次抽象。
-操作系统的发展过程:
Type1:
无操作系统的计算机系统
缺/优点
人工操作方式
独占性、串行性、易出错、费时间
20世纪50年代中期
脱机输入/输出技术
减少了CPU的空闲时间
提高了I/O速度
20世纪50年代末
Type2:
单道批处理系统
关键词:
专门的计算机操作员、批处理(监督程序:
常驻内存的小核心代码,用于实现各作业之间的自动转接、提高了系统效率)
特征:
自动性、顺序性、单道性
批处理系统的优点:
系统吞吐量大、资源利用率高
批处理系统的主要缺点:
交互性差(一旦提交作业其间过程就很难控制)
批处理分类:
优点
缺点
特点
联机批处理
解决了作业自动转接,减少了作业建立和手工操作时间
CPU与I/O串行操作,输入输出时,CPU处于等待状态
慢速的I/O处理仍直接由主机来完成
脱机批处理(一种缓冲技术)
摆脱了慢速的I/O的工作的影响,可以比较充分地发挥它的高速计算的能力,提高了CPU的利用率。
由于主机和卫星机可以并行操作,因此相比早期的联机批处理系统而言,脱机批处理系统大大提高了系统的处理能力
磁带需要手工拆装,系统的保护不够
将用户程序和数据在一台卫星机(外围计算机)的控制下预先从低速输入设备输入到磁带上,当CPU需要这些程序和数据时再直接从磁带机告诉输入到内存
当程序运行完毕或告一段落CPU需要输出时,无需直接把计算结果送至低速输入设备而是高速地把结果送到磁带上,然后在另一台外微机控制下把磁带上的计算结果由相应的输出设备输出
Type3:
执行系统(20世纪60年代初)
通道:
专用处理部件,能控制一台或多台输入输出设备工作,负责输入输出设备与主存之间的信息传输。
(一旦被启用就能独立与CPU运行,这样可使CPU和通道并行操作,而且CPU和多种输入输出设备也能并行操作)
中断:
当主机接到外部信号时马上停止原来的工作,转去处理这一事件,处理完毕后回到原来的断点继续工作。
执行系统特点:
借助通道和中断技术,I/O工作可以在主机控制下完成。
(原有的监控程序不仅要负责调度作业自动地运行而且还要提供I/O控制功能)比原来的功能增强了。
这个发展了监督程序常驻内存,称为执行系统。
执行系统优点:
比脱机处理前进了一步,节省了卫星机降低了成本而且同样执行主机和通道、主机和外设的并行操作;在执行系统中用户程序对I/O的操作是委托给系统完成的,由系统来检查其命令是否合法,这样就可以避免由于不合法的I/O指令对系统的威胁,从而提高了系统的安全性。
Type4:
多道批处理系统(20世纪60年代中期)
在OS中引入多道程序设计的好处:
提高CPU利用率、提高内存和I/O设备利用率、增加系统吞吐量
优点:
资源利用率高、系统吞吐量大、平均周转时间长
缺点:
无交互能力
Type5:
分时系统
名词:
人-机交互、共享主机、便于用户上机、
特征:
多路性(允许在一台主机上同时连接多态联机终端,系统按分时原则为每个用户服务)、独立性(每个用户独占一个终端)、及时性(用户的请求能在很短时间内获得响应)、交互性(用户可可通过终端进行广泛的人机对话)
Type6:
实时系统(系统能及时响应外部事件的请求,在规定的时间内完成对事件的处理并控制所有史诗任务协调一致地运行)
实时控制:
通常把用于进行实时控制的系统称为实时系统
实时信息处理:
人们把用于对信息进行实时处理的系统称为实时信息处理系统
实时任务:
(周期性、非周期性)(硬实时任务、软史诗任务)
特征:
多路性(实时信息处理系统也按分时原则为多个终端用户服务。
实时控制系统的多路性则主要表现在系统周期性地对多路现场信息进行采集,以及对多个对象或多个执行机构进行控制。
而分时系统中的多路性则与用户情况有关,时多时少。
)、独立性(对信息的采集和对对象的控制也都是彼此互不干扰)、及时性(实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒)、交互性(人与系统的交互仅限于访问系统中某些特定的专用服务程序。
它不像分时系统那样能向终端用户提供数据处理和资源共享等服务)、可靠性(在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性)
——操作系统有哪三种基本类型?
各自特点对比。
分为:
多道批处理系统、分时系统、实时系统三种基本类型
微机操作系统发展
1.单用户单任务操作系统(CP/M、MS-DOS、)
2.单用户多任务操作系统(Windows1.0、Windows2.0、windows3.0、windows3.1、windows95、windows98、windowsXP)
3.多用户多任务操作系统(UNIXOS、Xenix、SolarisOS、LinUxOS)
——操作系统的特征
1.并发性:
2.共享性:
3.虚拟技术:
4.异步性:
注:
并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。
一方面,资源共享是以程序(进程)的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。
-操作系统的主要功能
1.处理机管理功能:
处理机管理的主要功能是创建和撤消进程(线程),对诸进程(线程)的运行进行协调,实现进程(线程)之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)。
(进程控制、进程同步、进程通信、调度)
注:
进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。
在现代OS中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。
进程是以异步的方式运行的并以人们不可预知的速度向前推进。
为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。
进程同步的主要任务是为多个进程(含线程)的运行进行协调,方式有进程互斥方式(这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式)和进程同步方式(这是指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调)。
2.存储器管理功能(内存分配、内存保护、地址映射、内存扩充)
3.设备管理功能(缓冲管理、设备分配、设备处理)
4.文件管理功能(文件存储空间管理、目录管理、文件的读写管理和保护)
5.操作系统与用户之间的接口(用户接口、程序接口)
——进程与程序的区别
进程是程序的执行,属于动态,程序是静止的;进程的存在是暂时的,程序的存在是永久的。
进程实体=程序+数据+PCB(进程控制块儿)即进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
一个程序可以对应多个进程,一个进程可以包含多个程序。
在操作系统中引入进程的目的:
为了使多个程序能够并发执行
进程:
进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
多个进程之间可以并发执行和交换信息。
一个进程在运行时需要一定的资源,如CPU、存储空间及I/O设备等。
进程的特征:
动态性、并发性、独立性、异步性
在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位。
——进程控制块(PCB)(系统为每个进程定义了一个数据结构——PCB)
定义:
为了刻画一个进程在各个不同时期所处的状态所定义的一个与进程相联系的数据结构,称为进程控制块儿。
作用:
使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。
(a.作为独立运行基本单位的标志b.能实现间断性运行方式c.提供现场管理所需信息d.提供进程调度所需信息e.实现与其他进程的同步通信)
性质:
是用以记录进程的有关信息的一块主存,它是由系统为每个进程分别建立的。
描述了一个进程和其它进程以及系统资源的关系。
联系:
当系统创建一个进程时,必须为它设置一个PCB,然后根据PCB的信息对进程实施控制管理,进程任务完成时,系统收回它的PCB,进程也随之消亡。
PCB内容可分为调度信息和现场信息两部分。
PCB是进程存在唯一标志。
PCB组织方式:
线性方式、链接方式、索引方式
——进程的基本状态及其转换
进程的三个基本状态:
运行状态(当一个进程在处理机上运行时,则称该进程处于运行状态)、就绪状态(一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态)、阻塞状态(一个进程正在等待某一事件发生而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态)(五种:
+创建态、终
止态)(七种:
+挂起就绪、挂起阻塞)
三个基本状态之间可能转换和转换原因如下:
就绪态――>运行态:
进程调度程序按某种算法将处于就绪队列的某个进程选出,把CPU分配给它,该进程便由就绪状态转变为运行状态。
运行态――>就绪态:
处于运行状态的进程因时间片用完而被中断,将该进程的PCB表插入就绪队列,该进程便由运行状态转变为就绪状态。
如果在采用抢占式调度策略的系统中,进入就绪队列的进程的优先级高于正处在运行状态的进程,可抢占CPU,将执行状态进程的PCB表插入就绪队列,由运行状态转变为就绪状态。
运行态――>阻塞态:
进程在某等待事件发生(例如I/O请求、原语P操作等)而无法执行时,会由运行状态转变为阻塞状态,在等待该事件的完成过程中将放弃CPU的使用权。
进程源语:
终止(Holt、Logsoff)、阻塞(block)、唤醒(wakeup)、挂起(suspend)、激活(active)
——共享资源与临界资源
共享资源:
进程同步机制的主要任务,是对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好的相互合作,从而使程序的执行具有可再现性。
临界资源:
像打印机这类一次只允许一个进程使用的资源称为临界资源。
属于临界资源的硬件有打印机,软件有变量、数组、缓冲区等。
临界资源又称独享资源。
——信号量及其含义
信号量是一种特殊的变量,代表可用资源实体的数量。
信号量机制的发展:
从整型信号量机制发展到记录型信号量机制,进而发展为“信号集”机制。
现在信号量机制已广泛应用于OS中。
*公用信号量(互斥信号量):
它为一组需互斥共享临界资源的并发进程而设置,代表共享的临界资源,每个进程均可对它施加P、V操作,即都可申请和释放该临界资源,其初始值置为1。
*专用信号量(同步信号量):
为一组需同步协作完成任务的并发进程而设置,只有拥有该资源的进程才能对它施加P操作(即可申请资源),而由其合作进程对它施加V操作(即释放资源)
*整型信号量:
用一个整型变量作为信号量(如S),信号量的初值表示同类临界资源的个数。
设置两种基本操作PV,利用对信号量的改变达到互斥与同步的目的。
*记录型信号量机制:
让p1和p2共享一个共同信号量synch,且初始化为0。
在进程p1中插入语句:
s1;
signal(synch);
在进程p2中插入语句:
wait(synch);
s2;
*AND型信号量:
将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。
只要尚有一个资源未能分配给进程,其它所有可能为之分配的资源,也不分配给他。
引入AND信号量后,上面的例子就可以简单改写为:
processA:
processB:
Swait(Dmutex,Emutex);Swait(Emutex,Dmetux);
………………
Ssignal(Dmutex,Emutex);Ssignal(Emutex,Dmutex);
这样也就不会出现死锁问题。
*信号量集:
对AND信号量机制加以扩充,形成一般化的“信号量集”机制。
——P、V操作
用一个整型变量作为信号量(如S),信号量的初值表示同类临界资源的个数。
设置两种基本操作wait(S)/P(S)和signal(S)/V(S)(P和V分别是荷兰文的“等待”和“发信号”两词的首字母),利用对信号量的改变达到互斥与同步的目的。
当信号量被初始化后,只能为P、V操作所改变。
P、V是一对同步原语,是不可中断的原子操作。
P.V操作必须成对出现,有一个P操作就一定有一个V操作;
当为互斥操作时,它们同处于同一进程;
当为同步操作时,则不在同一进程中出现;
如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要,一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前;
两个V操作顺序无关紧要。
——进程的互斥与同步
互斥:
这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式
同步:
这是指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。
进程同步和互斥的区别:
互斥的各个进程在各自单独执行时都可以得到正确的运行结果,但是当它们在临界区内交叉执行时就可能出现问题。
而同步的各个进程,如果各自单独执行将不会完成作业的特定任务,只要当它们互相配合、共同协调推进时才能得到正确的运行结果。
互斥的进程只要求它们不能同时进入临界区,而至于哪个进程先进入则不会产生运行的错误。
但同步的进程的协调关系是建立在它们之间执行时序的基础上,所以,各个进程必须按照严格的先后次序执行。
一般情况下,互斥的进程并不知道对方的存在,而同步的进程不仅知道其它进程的存在,还要通过与其它进程的通信来达到相互的协调。
——写程序完成互斥、同步操作
互斥1:
夫妻两人的共同存款,保存在count(共享资源)变量中。
semaphoreS=1;
intcount;
进程p1:
{intR1;
P(S);
R1∶=count;
R1∶=R1+1;
count∶=R1;
V(S)
}
进程P2:
{intR1;
P(S);
R1∶=count;
R1∶=R1+1;
count∶=R1;
V(S)
}
互斥2:
设一民航航班售票系统有n个售票处。
每个售票处通过终端访问系统中的公用数据区,假定公共数据区中一些单元xk(k=1,2,…)分别存放×月×日×次航班的现存票数。
设P1,P2,…,Pn表示各售票处的处理进程,R1,R2,…,Rn表示各进程执行时所用的工作单元。
用信号量实现进程间互斥的程序如下:
SemaphoreS=1;
进程Pi(i=1,2,…,n)
{按旅客订票要求找到xk;
P(S)
Ri=xk;
if(Ri>=1){Ri=Ri-1;xk=Ri;
V(S);输出一张票;
}
else{V(S);输出“票已售完”;}
}
同步1:
用信号量实现司机和售票员的同步。
(1) 确定同步的规则
根据一般常识,司机和售票员在车上的操作规则如下:
1)售票员操作的规则是只有司机停车后,售票员才能开门
让乘客上下车;
2)司机操作的规则是只有售票员关门后,司机才能启动开
始行驶汽车。
(2)进程的操作流程
售票员进程
dowhile
关车门;
设立车门已关标志;
售票;
是否停车?
没停则等待;
开车门;
上下乘客;
enddo
司机进程
dowhile
是否关门?
没关则等待;
启动车辆;
正常行车;
到站停车;
设立车停标志;
enddo
(3) 确定信号量的个数和含义
根据同步规则以及操作流程确定信号量的个数是2个,S1和S2。
S1的含义是否关门;
S2的含义是否停车。
(4)确定信号量的初值(假设正处于停车状态)
S1=0;
S2=1。
(5)确定P、V操作的位置
1)司机操作中,是否关门?
没关则等待,这是一个P操作,
P(S1);
2)司机操作中,设立停车标志,这是一个V操作,V(S2);
3)售票员操作中,是否停车?
没停则等待,这是一个P操作
,P(S2);
4)售票员操作中,设立关门标志,这是一个V操作,V(S1)
(6) P、V操作实现
intS1=0,S2=1;
main()
{
cobegin
driver();busserver();
coend
}
driver()
{dowhileT
{P(S1);
启动车辆;
正常行车;
到站停车;
V(S2);
}
}
busserver()
{dowhileT
{关车门;
V(S1);
售票;
P(S2);
开车门;
上下乘客;
}
}
——死锁定义
死锁是指在多道程序系统中,一组进程中的每一个进程均无限期的等待被该组进程中的另一个进程占有且永远不会释放的资源,这种现象成系统处于死锁状态,处于死锁状态的进程称为死锁进程。
——死锁定理
如果资源分配图中没有环路,则系统中没有死锁;如果图中存在环路,则系统中可能存在死锁。
——作业调度算法及其特点
作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。
然后再将新创建的进程插入就绪队列,准备执行。
处理机三级调度
1.高级调度――作业调度外存到内存
2.低级调度――进程调度进程调度决定就绪队列中哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
3.中级调度——对换为了充分发挥内存的效能,需将那些暂时不能运行的进程从内存调到外存盘交换区去等待,而将那些在盘交换区的等待事件已经发生急需调度运行的进程从盘交换区调入内存。
进程调度是最基本的调度,任何操作系统都有进程调度
在批处理系统中,是以作业为基本单位从外存调入内存的。
一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所作的有关该次业务处理的全部工作,称为一个作业。
在每次执行作业调度时,都须做出以下两个决定。
1)决定接纳多少个作业取决于多道程序度。
2)决定接纳哪些作业应将哪些作业从外存调入内存,这将取决于所采用的调度算法。
简单的:
先来先服务调度算法,指将最早进入外存的作业最先调入内存;
只考虑了作业的等待时间,不考虑作业的运行时间。
常用:
短作业优先调度算法,将外存上最短的作业最先调入内存;
只考虑了作业的运行时间,不考虑等待时间。
缺点:
必须预知作业的运行时间。
2.对长作业非常不利,延长长作业的周转时间;3.人机无法实现交互;4.紧迫作业不能及时得到处理
较常用:
基于作业优先级的调度算法,将外存上优先级最高的作业优先调入内存;
基于作业的紧迫程度来确定优先级。
比较常用:
“响应比高者优先”的调度算法。
既考虑作业的等待时间又考虑作业的运行时间。
——死锁及其产生的必要条件
死锁是指在多道程序系统中,一组进程中的每一个进程均无限期的等待被该组进程中的另一个进程占有且永远不会释放的资源,这种现象成系统处于死锁状态,处于死锁状态的进程称为死锁进程。
必要条件:
1.互斥条件2.请求和保持条件3.不可抢占条件4.循环等待条件
引起死锁的原因:
1.竞争不可抢占性资源引起死锁2.竞争可消耗资源引起死锁3.进程推进顺序不当引起死锁。
——解决死锁问题的方法
1.死锁的预防
静态方法:
在进程执行前采取的措施,通过设置某些限制条件,去破坏产生死锁的四个必要条件之一,防止发生死锁。
2.死锁的避免
动态方法:
在进程执行过程中采取的措施,不需事先采取限制措施破坏产生死锁的必要条件,而是在进程申请资源时用某种方法去防止系统进入不安全状态,从而避免发生死锁。
3.检测死锁
可通过系统设置的检测机构及时检测死锁的发生,如果检测到死锁,则死锁解除方法使系统正常工作。
4.解除死锁
常用的方法是撤销一些进程,回收他们的资源,将它们分配给已处于阻塞状态的进程,使其能继续运行。
——银行家算法
假定系统中有五个进程{P0、P1、P2、P3、P4}和三种类型
资源{A、B、C},每一种资源的数量分别为10、5、7。
各
进程的最大需求、T0时刻资源分配情况如下所示。
MaxAllocationNeedAvailable
ABCABCABCABC
P0753010743332
P1322200122
P2902302600
P3222211011
P4433002431
试问:
①T0时刻是否安全?
②P1请求资源Request1(1,0,2)是否允许?
③P4请求资源Request4(3,3,0)是否允许?
最具代表的避免死锁算法是Dijkstra的银行家算法,这是由于该算法用于银行系统现金贷款的发放而得名。
银行家算法的数据结构
可用资源向量Available[m]
m为系统中资源种类数,Available[j]=k表示系统中第j类资源数为k个。
最大需求矩阵Max[n][m]
n为系统中进程数,Max[i][j]=k表示进程i对j类资源的最大需求数为k。
分配矩阵Allocation[n][m]
Allocation[i][j]=k表示进程i已分得j类资源的数目为k个。
需求矩阵Need[n][m]
Need[i][j]=k表示进程i还需要j类资源k个。
Need[i][j]=Max[i][j]-Allocation[i][j]
银行家算法介绍
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习 要点