操作系统整合复习题.docx
- 文档编号:28411699
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:47
- 大小:203.86KB
操作系统整合复习题.docx
《操作系统整合复习题.docx》由会员分享,可在线阅读,更多相关《操作系统整合复习题.docx(47页珍藏版)》请在冰豆网上搜索。
操作系统整合复习题
第1章:
引论
1.操作系统的定义:
操作系统是计算机系统中的系统软件,是能有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够合理,方便,有效地使用计算机,使整个计算机系统高效运行的一组程序模块的集合。
2.
操作系统的发展史:
缺点:
用户独占全机,处理机等待人工操作。
为了解决人机矛盾及处理机和I/O设备之间速度不匹配的矛盾。
(外围机是核心)
自动地将一个作业一个作业的进行处理,直至磁盘上的作业全部
完成。
好处:
提高处理机的利用率(可同时把若干道程序装入内存,并且交
替地执行。
)
提高内存和I/O的设备利用率(内存中装入多道程序,并允许
并发执行。
)
增加系统吞吐量
特征:
多道性(允许并发,提高了资源利用率和增加系统吞吐量)
无序性
调度性
3.分时系统与实时系统的比较:
分时系统
实时系统
多路性
为多个终端用户服务。
对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。
独立性
每个用户各占一个终端,彼此独立操作。
信息的采集和对对象的控制也彼此互不干扰。
及时性
用户的请求时间通常是2-3S
及时性由控制对象所要求的开始截止时间或完成截止时间来确定的。
交互性
用户可以请求系统提供各方面的服务,如文件编辑,数据处理和资源共享。
仅限于访问系统中某些特定的专业服务程序。
可靠性
要求可靠。
要求高度可靠。
通常采取了多级容错措施保证数据的安全。
4.操作系统的几种观点:
操作系统
软件的观点
有作为软件的外在和内在特性。
外在特性:
即操作命令定义集和界面,完全确定了操作系统这个软件的使用方式。
内在特性:
具有一般软件的结构特点,但又具有一般软件不具备的特殊结构。
计算机系统资源管理的观点
提供一些机制去协调程序间的竞争与同步,提供机制对资源进行合理使用。
处理机管理:
用于分配和控制处理机。
存储器管理:
负责内存的分配和回收。
I/O设备管理:
负责I/O设备的分配和操纵。
文件管理:
负责文件的存取,共享和保护。
进程的观点
操作系统=若干个可以同时独立运行的程序(进程)+一个对这些程序进行协调的核心
(进程完成任务,核心则控制盒协调这些进程的运行,解决进程之间的通信。
)
用户与计算机硬件系统之间接口的观点
注意这个接口是软件接口。
用户可以使用两种方式来使用计算机:
(1)命令方式
(2)系统调用方式
虚机器的观点
用户不直接使用硬件计算机,而是通过操作系统来控制盒使用计算机。
服务提供者观点
从用户角度看,操作系统为用户提供功能更强,服务质量更高,使用户更方便,灵活的虚拟计算机。
包括:
程序执行,I/0操作,文件系统操作,通信,差错检测
5.操作系统的功能:
6.操作系统的特征:
并发性
注意并行性跟并发性的区别:
并行性:
两个或多个时间在同一时刻发生。
并发性:
两个或多个事件在同一时间间隔内发生。
共享性
系统中的资源可以供多个并发执行的进程共同使用。
互斥共享:
例如打印机,磁带机。
同时访问:
例如磁盘以及一些重入码编写的文件。
虚拟性
通过某种技术把一个物理实体变成若干个逻辑上的对应物。
异步性
在多道程序环境下,由于资源等因素的限制,程序是以走走停停的方式运行的。
系统中的每道程序何时执行,多道程序间的执行顺序以及完成每道程序所需的时间都是不确定的,因而也是不可未知的。
7.微内核
特点:
(1)足够小的内核:
微内核纸包括操作系统中最基本的部分,是操作系统的小核心,它将各种操作系统共同需要的核心功能提炼出来,形成微内核的基本功能。
这些基本功能包括:
进程管理,低级存储器管理,中断和陷入的处理。
(2)基于客户/服务器模式:
操作系统最基本的部分放入内核中,大部分放在内核外的一组服务器(进程)中实现。
(3)应用机制和策略分离的技术:
机制是实现某一功能的具体执行机构,而策略处于系统的高层。
(4)面向对象的技术:
微内核是操作系统发展的最新成果,具有提高系统的扩展性,增强系统的可靠性,可移植性和可以支持分布式系统,采用面向对象技术等特点。
主要思想:
在操作系统内核中只留下一些最基本的功能,而将其他服务尽可能地从内核中分离出去,用若干个运行在用户态下的进程来实现。
优点:
(1)每个服务进程运行在独立的用户进程中,即某个服务器失败或产生问题时不会引起系统其他服务器和其他组成部分的崩溃,可靠性好。
(2)系统具有很好的灵活性,只要接口规范,操作系统可以方便地增删服务功能。
(3)便于维护,即修改服务器的代码不会影响、
(4)系统其他部分。
缺点:
效率不高,因为所有的用户进程都要通过微内核相互通信,所以微内核本身就成了系统的瓶颈,尤其是通信频繁的系统。
8.客户/服务器模式
即C/S模式,普通用户进程可以通过内核像服务器进程发送请求,以取得操作系统的服务。
优点:
既允许数据的分布处理和存储,又便于集中管理,灵活性和可扩充性强,容易修改。
缺点:
存在不可靠性和瓶颈问题。
(服务器是瓶颈)
9.操作系统的硬件环境:
(1)特权指令和非特权指令
特权指令
在指令系统中那些只能由操作系统使用的指令。
非特权指令
用户只能使用的指令。
问题:
如果用户想要使用特权指令,只能通过系统调用来实现,否则会使系统陷入混乱。
(2)处理机的状态:
核心态
(管态,系统态)
全部指令可以执行,可以使用所有资源并具有改变处理机状态的能力。
用户态(目态)
只有非特权指令能执行。
注意:
在系统调用时,将由用户态转到核心态。
(3)存储器的类型:
分类
定义
作用(举例)
读/写存储器
可以把数据存入其中任一地址单元,并且可在以后的任何时候把数据读出来或者重新存入别的数据。
通常被称为随机访问存储器(RAM)
用于存放随机存取的程序和数据。
只读型存储器
只能从其中读取数据。
通常被称为只读存储器(ROM)
(4)
存储器的层次结构:
(5)
(存储装置)
达到提高存储系统效能的关键在于:
程序的存储访问局部性原理。
注意:
按层次结构来设计操作系统,就是将操作系统的所有功能模块按功能的调用次序排列成若干层,使得功能模块之间只存在单向调用和单向依赖。
优点:
模块间的组织和依赖关系清晰明了。
缺点:
个功能模块应该放在哪一层,如何有效地进行分层式必须考虑的问题。
(5)常用存储保护机制:
界地址寄存器
比较简单,易于实现。
在处理机中设置一对界限寄存器用来存放概用户作业内存中的下限和上限地址。
当处理机要访问内存时,如果越界就将程序中断。
存储键
每个存储块都有一个与其相关的由二进制组成的内存保护键附加在每个存储块上。
(6)缓冲技术:
缓冲区:
是硬件设备之间进行数据传输时,专门用来暂存这些数据的一个存储区域。
缓冲技术的用途:
处理机与内存之间
处理机与其他外部设备之间
设备与设备之间
目的:
解决部件之间速度不匹配的问题。
(7)中断:
含义:
指处理机对系统中或者系统外发生的异步事件的响应。
分类:
可屏蔽中断(I/O中断)
不可屏蔽中断(机器内部故障,掉电中断)
程序错误中断(溢出,除法错等中断)
软件中断(Trap指令或者终端指令INT)
中断与异常的区别:
中断时系统正常功能的一部分,在系统处理完其他事情之后会继续执行中断前的进程。
异常是由错误引起的。
(通常异常会引起中断,而中断未必是由异常引起的)
(8)系统调用:
系统调用时操作系统提供的用户接口之一,是由操作系统实现的所有系统调用所构成的集合,即程序接口或应用编程接口,是应用程序同系统之间的接口。
系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。
组成:
进程控制、文件系统控制、系统控制、内存管理、网络管理、socket控制、用户管理、进程间通信
(9)作业状态:
通过各种输入设备将作业从外部送入计算机系统的辅助存储设备。
等待作业调度程序调度。
被分配所需资源,然后调入内存,并为其创建进程。
作业调度程序收回其占用的所有资源,做必要的善后处理。
第3章:
进程与进程管理
1.前趋图(有向无循环图)
图中每个节点可以表示一条语句,一个程序段或者一个进程,节点间的有向边表示两个节点之间存在的偏序或前趋关系“”
2.程序的顺序执行:
一个程序中的程序段必须按照某种先后顺序执行,仅当一个操作执行完之后才能执行后续操作。
特征:
顺序性
严格按照程序所规定的顺序执行
封闭性
程序一旦开始运行,执行结果不受外界因素影响。
可再现性
只要程序执行的初始状态和执行环境相同,当程序重复执行时,都将获得相同的结果。
3.程序的并发执行:
注意并发跟并行的区别:
并行
两个或多个事件在同一时刻发生。
并发
两个或多个事件在同一时间间隔内发生。
特征:
(相比顺序执行)
间断性
由共享资源而产生的间接制约关系,这种制约关系将导致并发程序具有“执行—暂停执行—执行”这种间接性的活动规律。
失去封闭性
程序并发执行时,多个程序共享系统资源,故这些资源的状态将由多个程序来改变,致使程序的运行失去封闭性。
不可再现性
程序并发执行时,由于失去了封闭性,将导致也失去其运行结果的可再现性。
程序和计算不再一一对应
在并发执行时,一个共享程序可为多个用户作业调用,而使该程序处于多个执行中,因而形成了多个“计算”。
注意:
引入并发的目的是为了提高资源的利用率,从而提高系统的效率。
程序并发执行,虽然能有效地提高资源利用率和系统吞吐量,但必须采取某种措施使并发程序保持“可再现性”。
4.多道程序设计:
注意一点:
核心是并发。
5.进程
(1)定义:
进程是一个程序对某个数据集的一次运行活动。
(进程是动态的概念,程序是静态的概念)
(2)特征:
动态性
进程是程序在处理器上的一次执行过程过程。
并发性
多个进程同时存在于内存中,能在一段时间内同时运行。
引入进程的目的是使程序能于其他程序并发执行,以提高资源利用率。
独立性
进程是一个能独立运行运行的基本单位,也是系统进行资源分配和调度的独立单位。
异步性
进程以各自独立的,不可预知的速度向前推进。
结构特征
为了描述和记录进程的运动变化过程,引入了进程控制模块PCB。
从结构上看,进程=程序段+数据段+PCB
(3)3种基本状态:
就绪状态
进程已获得除了处理器以外的其他所有资源。
执行状态
获得必要资源在CPU上面执行。
阻塞状态
正在执行的进程,由于发生某事件而暂时无法执行下去。
(注意:
当进程处于阻塞状态时,即使把处理器分配给该进程,也无法运行)
三个状态相互转换:
①②③
④
①:
进程分配到处理机。
②:
在分时系统中,正在执行的进程由于时间片用完而暂时被暂停执行。
在抢占调度方式中,一个优先级高的进程可以抢占一个正在进行的优先级低的进程的处理机。
③:
因为某事件而无法执行。
例如:
临界资源被其他进程访问。
④:
进程等待的事件发生而被唤醒。
(4)
引入挂起状态:
条件激活
挂起
挂激挂激
起活起活
在上面三个状态转换的基础上加入一个挂起状态。
(5)为什么说PCB是进程存在的唯一标识?
首先看PCB的作用:
是系统为每个进程定义的一个数据结构,是为了使程序能独立运行。
PCB是为了保证程序的并发执行。
创建进程实质是创建PCB,撤销进程,实质上是撤销PCB.
接下来:
PCB保存着处理机的状态信息,系统总是通过PCB对进程进行控制。
(6)进程的创建:
一个进程可以创建若干个新的进程,新的进程又可以创建子进程。
(一般用前趋图表示)
过程:
申请空白进程控制块为新进程分配资源初始化进程控制块将新进程插入就绪队列
(7)进程的终止:
引起终止事件:
①正常结束
越界错误:
程序所访问的存储区已越出该进程的区域。
保护错误:
以不适当的方法进行访问。
特权指令错误:
用户进程试图去执行一条只允许操作系统执行的指令。
②异常结束:
非法指令错:
试图去执行一条不存在的指令。
运行超时:
执行时间超出指定的最大值。
等待超时
算数运算错:
进程试图去执行一个被禁止的计算
I/0故障
③外界干预
过程:
从PCB中读出进程的状态终止进程执行并设置调度标志为真如进程还有子孙进程,也予以终止
归还进程的资源给系统将被终止的进程的PCB从所在队列移除
(8)进程的阻塞和唤醒:
阻塞原语:
执行状态阻塞状态(进程自己调用)
过程:
停止当前进程的运行保存该进程的CPU现场停止运行该进程转到进程调度程序
唤醒原语:
阻塞状态就绪状态(另一个发现者调用)
过程:
将被唤醒进程从相应的等待队列中移除将状态改为就绪并插入相应的就绪队列
(9)调度方式:
非剥夺方式
(非抢占方式)
即使有优先级高的进程进入就绪队列,也直到正在进行的进程完成或者因某事件而进入阻塞时,才让优先级高的进程执行。
剥夺方式
(抢占方式)
当有某个优先级更高的进程进入就绪队列,则立即暂停正在执行的进程,将处理器分配给优先级高的进程。
(10)进程调度算法:
先来先服务(最简单):
按照进入就绪队列的先后次序来分配处理器。
短作业优先(SJF):
把处理器分配给最快完成的作业。
优先级调度:
把处理器分配给优先级最高的进程。
按进程累确定(系统进程>用户进程)
静态优先级按作业的资源要求(申请资源越多,优先级越低)
进程优先级按用户类型和要求(收费标准越高,优先级越高)
占用CPU时间长短(时间越长,优先级越低)
动态优先级等待CPU时间长短(时间越长,优先级越高)
时间片轮转(分时系统):
等将所有就绪进程按时间先后排成队列,进程调度选择第一个进程执行,并
规定一个时间(时间片),当一进程执行完规定的时间,即使没有执行结束,
也把它送到队尾,轮流进行,直到所有进程都执行结束。
时间片的大小系统响应时间(进程数目一定,时间片大小与系统响应时间成正比)
决定因素:
就绪队列中的进程数目(响应时间一定,时间片大小与进程数目成反比)
系统的处理能力(速度越快,时间片越短)
高响应比优先调度:
综合了先来先服务和短作业优先(每次进行作业调度时,先计算就绪队列中的每
个作业的响应比)
响应比=作业响应时间=作业等待时间+估计运行时间
估计运行时间估计运行时间
多级队列调度:
根据进程的性质或类型,将就绪队列划分为若干个独立的队列,每个进程固定地分属
于一个队列。
每个队列采用一种调度算法,不同的队列可以采用不同的调度算法。
例:
为交互型任务设置一个就绪队列,该队列采用时间片轮转调度算法;
为批处理任务另外设置一个就绪队列,该队列采用先来先服务调度算法。
多级反馈队列调度:
综合了时间片轮转调度算法和优先级调度算法。
(通过调整进程优先级和时间片的
大小,可以兼顾多方面的系统目标。
)
算法示意图:
完成优先级逐渐降低
时间片逐渐增大
完成
完成
(11)进程与线程的比较:
线程
进程
调度
独立调度的基本单位。
同一进程中线程的切换不会引起进程的切换。
拥有资源的基本单位。
不同的进程中进行线程的切换将会引起进程的切换。
拥有资源
不拥有系统资源,但是线程可以访问其隶属进程的系统资源。
拥有资源的基本单位。
并发性
同一进程内的多个线程之间可以并发,大大提高了系统的吞吐量。
多个进程可以并发执行。
系统开销
开销小
开销大
第四章进程同步与通信
1.进程间的联系:
资源共享关系
共享CPU和I/O设备。
进程同步的主要任务是保证进程能互斥的访问临界资源,为此,资源不允许用户进程直接使用,而由系统一一分配。
相互合作关系
进程同步的主要任务是保证相互合作的诸进程在执行次序上的协调,不会出现时间与空间有关的差错。
2.临界资源定义:
临界资源是指每次仅允许一个进程访问的资源。
属于临界资源的硬件有打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。
3.临界区定义:
不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。
每个进程中访问临界资源的那段代码称为临界区。
3.生产者—消费者问题:
(1个生产者1个消费者)
描述:
一组生产者向一组消费者提供产品,他们共享一个有界缓冲区,生产者向其中投入产品,消费者从中取走产品。
解决方法:
设一个数组来表示n个缓冲区的缓冲池。
一个输入指针in表示下一个可投放产品的缓冲区。
一个输出指针out指示下一个可获取产品的缓冲区。
一个整型变量counter,初始值为0。
生产者和消费者共享下面的变量:
Typedef...Item;
intn;
itembuffer[n];
intin,out,counter;
指针in和out初始化为1,在生产者进程使用一个局部变量nextp,用于暂存每次刚生产出来的产品。
在消费者进程中使用一个局部变量nextc用于暂存每次要消费的产品。
voidproducer()//生产者进程
{
while
(1)//当为真时
{
porduceaniteminnextp;
while(counter==n)//当counter的值为n的时候,执行一条空操作,否则把nextp
no-op;这个局部变量赋值给指针in
buffer[in]=nextp;//把nextp看成一个篮子,把篮子头的东西放进去
in=(in+1)moden;//当生产者投放一个产品后,指针in向后移动一位
counter++;//counter的值+1
}
}
voidconsumer()//消费者进程
{
while
(1)//当为真时
{
while(counter==0)//当counter的值为0的时候,执行一条空操作
no-op;
nextc=buffer[out];//把缓冲池上的东西放到篮子头去,再拿去消费
out=(out+1)moden;//消费者取走一个产品后,输入指针out向后移动一位
counter--;//ounter的值-1
consumetheiteminnextc;
}
}
问题:
关键在于counter的值失去了可再现性,如果两个进程并发执行时,就会使counter的值不同。
4.同步机制应该遵循的准则:
空闲让进
当临界资源处于空闲状态时,可以允许一个要求进入临界区的进程进入自己的临界区,有效地利用临界资源。
忙则等待
当已经有进程处于自己的临界区时,其他所有想要进入临界区的进程都必须等待,以保证
进程互斥。
有限等待
对要求访问临界资源的进程,应保证该进程能在有效地时间内进入自己的临界区,以免陷入“死等”的状态。
让权等待
当进程不能进入自己的临界资源,应立即释放处理机,以免陷入“忙等”状态。
(处理机本身是临界资源)
5.软件方法解决互斥问题:
算法1:
(强行轮流法)
设置一个公用变量turn,用于指被允许进入临界区的进程的编号。
进程p1和p2,p3访问临界资源,turn==1表示p1可以访问,访问完之后trun变成2,p2可以访问。
问题:
如果p2暂时不想访问,p3想访问,就必须等到p2访问完之后才能访问。
算法2:
(查看标志法)
设置一个数组,p1的flag[0]==1表示p1正在访问,p2的flag[1]==1表示p2正在访问,p3的flag[2]==1表示p3正在访问。
问题:
如果3个进程都要访问,都发现对方的flag为0,所以3个进程都进入临界区,违背了要互斥访问临界资源的原则了。
算法3:
(先标记,再看别人)
设置一个数组,flag[0]==1表示p1希望进入临界区,然后去查看p2的flag[1]==1,表示p2也想进入或者p2已经进入了临界区,那么p1等待。
问题:
当3个进程都要进入临界区,当检查到对方的flag为1,每个进程都等待,结果每个人没有访问到临界资源。
算法4:
(君子裁判法模式,算法1+算法3)
设置一个数组和一个turn变量。
Flag[0]==1表示p1要求进入临界区或者正在临界区中执行。
While
(1)
{
Flag[0]=1;turn=2;//p1想进入临界区,就先把flag[0]==1,然后将turn变成2,去
While(flag[1]==1&&turn==2)试探进程p2。
flag[1]==1&&turn==2的反义词就是flag[1]==0
No-op;orturn==1
Criticalsection;
Flag[0]=0;
}
6.用硬件方法解决进程互斥:
P102
(1)利用Test-and-set指令实现互斥
(2)利用Swap指令实现进程互斥
主要思想:
用一条指令完成标志的检查和修改两个操作,因而保证了检查操作与修改操作不被打断;或者通过中断屏蔽的方法来保证检查和修改作为一个整体执行。
优点:
适用范围广;简单;支持多个临界区。
缺点:
不能实现让权等待(需要软件配合进行判断)。
7.信号量机制:
(1)基本思想:
在多个相互合作的进程之间使用简单的信号来同步。
(2)PV操作:
信号量是一个确定的二元组(s,q),其中s是一个具有非负初值的整型变量,设s为一个信号量;q是一个初始状态为空的队列。
P(s)完成以下动作:
先执行s=s-1,若执行后的s>=0,则进程继续执行;若执行后的s<0,则阻塞该进程,并插入到信号量的等待队列中。
(申请资源wait)
V(s)完成以下动作:
先执行s=s+1,若执行后的s>0,则进程继续执行;若执行后的s<=0,则从该信号量等待队列中移除第一个进程,并插入到信号量的等待队列中。
(释放资源signal)
(3)记录型信号量机制:
有一个用于代表资源数目的整型变量vlaue和一个进程链表L,用于链接所有等待该信号量代表资源的进程。
描述如下:
typedefstruct
{
intvalue;//代表资源数目
listofprocess*L;//进程链表L(记录所有需要资源的进程)
}semaphore
(4)利用信号量实现进程互斥
为临界资源设置一个信号量mutex,并且初值为1,然后将个进程的临界区放在wait(mutex)和signal(mutex)之间。
(5)利用信号量描述程序或者语句的前趋关系(P105)
8.信号量集机制
(1)And信号量集机制p105
基本思想:
将进程在整个运行过程中所需要的所有临界资源一次性全部分配给进程,使用完之后再一起释放。
对若干个临界资源的分配采取原子操作,要么全部分配到进程,要么一个也得不到。
(2)一般信号量集机制p106
基本思想:
当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 整合 复习题