您的当前位置:首页操作系统期末考点概要

操作系统期末考点概要

2024-09-16 来源:六九路网
名词解释:

时间片:将主机CPU的时间划分割成若干个片段,每个时间片段称为时间片(time slice),时间片就是分时系统的时间单位。

并发:并发(Concurrence)是指两个或多个事件在同一时间间隔内发生 系统调用:系统调用就是指用户在程序中调用操作系统提供的一些子功能,是用户在程序级请求操作系统服务的一种手段。

进程:进程是正在执行的程序, 即在并发环境下一个程序在一个数据集合上的一次执行过程。

进程控制块:进程控制块是由操作系统维护,用来记录进程相关信息的数据结构。进程的组成中,程序段和数据段是进程存在的物质基础,是进程的实体,进程控制块是进程存在的唯一标志。 上下文切换:在多进程并发执行中,将CPU切换到另一个进程需要保存原来进程的关联状态并装入新进程的关联状态。这一任务称为上下文切换(context switch)。

临界资源:临界资源是指在一段时间内仅允许一个进程使用资源。如打印机、输入机、磁带机和指针等,临界资源可以互斥共享。 进程的互斥:多个进程访问临界资源时在操作时间上相互排斥,这种相互排斥关系叫做进程的互斥

逻辑地址:逻辑地址就是指令在程序中的地址,源程序经编译(或解释)后编排的地址。逻辑地址也叫虚拟地址 物理地址:物理地址就是进程中的指令和数据在内存中的地址,即指令和数据存放在内存中的内存单元地址。物理地址也叫实地址。

重定位:为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时内存中的物理地址的技术就叫重定位。重定位技术包括静态重定位和动态重定位。 碎片:碎片一般可分为内碎片和外碎片。前者是指分区内不可利用的内存空间,后者是指分区之间难以利用的小空闲分区。

简答题:

1.叙述操作系统在计算机系统中的地位和作用?

(1)操作系统的地位:操作系统是软件系统中最重要的.最基础的系统。它是配置在裸机上的第一层软件,是对硬件系统的第一次扩充。它在计算机系统中占有特殊地位,其他所有软件都将依赖与操作系统的支持,取得它的服务。操作系统是支撑各种应用软件的平台,操作系统为用户提供良好的工作环境。

(2)操作系统的作用:从一般用户的观点,可把操作系统作为用户与计算机系统之间的接口;从资源管理观点,则可把操作系统作为计算机系统资源的管理者和竞争资源的仲裁者;操作系统必须提高计算机资源的利用率;操作系统是计算机系统的调度指挥中心;操作系统是计算机系统功能的扩充。

2操作系统有哪些特征?其特征之间的关系是什么?

(1)操作系统具有并发性.共享性.虚拟性.不确定性四大特征。

(2)操作系统四大特征之间的关系。这四大特征之中,最为重要的是并发性,其他三个特征都是以并发为前提的。并发和共享是操作系统两个最基本的特征,这两者之间又是互为条件的。资源共享是以进程并发执行为前提条件,若系统不允许进程并发执行,自然不存在资源共享问题。若系统不能对资源共享实施有效的管理,也必将影响进程的并发执行,甚至根本无法并发执行。

3.什么是系统调用?如何实现系统调用?

(1)系统调用就是指用户在程序中调用操作系统提供的一些子功能,是用户在程序级请求

操作系统服务的一种手段。(2)实现系统调用需要完成以下三个工作:1)执行访管指令(或陷入指令),引起访管中断,使处理机从目态进入管态,并向操作系统提出任务请求。2)在管态下由操作系统完成用户程序提出的请求。3)操作系统完成所做请求后,应返回到用户程序,即从管态又回到原来目态。

4.多道程序设计与分时技术的区别与联系?

(1)多道程序设计是指在计算机内存中可以同时装入多道程序运行,多道程序交替运行,合理搭配,共享系统中的各种硬件和软件资源,从而使系统资源得到充分的利用。

(2)分时系统是基于主从式多终端的计算机体系结构。分时系统是将计算机CPU的运行时间分割成一个个微小的时间片,把这些时间片依次轮流地分配给各个终端用户的程序执行,每个用户程序仅仅在它获得的CPU时间片内执行。当时间片用完,用户又处于等待状态,此时CPU又为另一个用户服务。

多道程序设计技术不是基于时间片,而是基于程序的I/O中断。当正在执行的程序A因I/O而暂定执行时,CPU立即转去执行另一道程序B;当第二道程序B又因I/O而暂定执行时,CPU又转去执行第三道程序C。显然,多道程序设计技术提高了CPU的利用率,同时也显著改善了内存和I/O设备的利用率,从而也使系统的吞吐量获得大幅度提高。 联系:多道程序设计和分时技术都是为了提高资源的利用率和系统吞吐量,共享系统资源。多道程序设计和分时技术都是微观上串行的,宏观上并行。

5.何谓用户接口?通常在操作系统和用户之间提供哪几种类型的接口? 由操作系统提供的方便用户使用计算机的接口。操作系统的用户接口有三类:命令行接口、图形用户接口和程序接口。

6.试说明进程和程序的区别与联系?

⑴程序是有序代码的集合,是一个静态的概念。进程是程序的一次执行过程,是一个动态概念。进程不可以在计算机之间迁移,而程序通常对应着文件,可以复制。

⑵进程是一个状态变化的过程,是有生命期的。而程序是永久的,可以长久保存。

⑶进程与程序的组成不同。进程由程序段、数据段和进程控制块组成,而程序仅是代码的有序集合。⑷进程与程序是密切相关的。通过多次执行,一个程序可对应多个进程。但进程与它本身所执行的程序只能是一对一的关系。⑸进程更能真实地描述并发,而程序不能。 ⑹进程可创建其他进程,而程序并不能形成新的程序。 7.为什么PCB是进程存在的唯一标志?

PCB是由操作系统维护,用来记录进程相关信息的数据结构。它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。

进程块随着进程的创建而创建,即创建一个进程,就是为进程配备一个PCB;操作系统是根据进程控制块来对并发执行的进程进行控制和管理的;PCB随着进程的撤消而撤消,即撤消一个进程,就是撤消进程的PCB,。在进程的生命期中操作系统是通过PCB对进程进行管理和控制,系统使根据进程的进程控制块而不是任何别的什么来感知到该进程的存在的,所以说进程控制块PCB是进程存在的唯一标志。

8.在单机系统中,如果系统中有N个进程,运行状态的进程最多几个?最少几个?就绪状态的进程最多几个?最少几个?等待状态的进程最多几个?最少几个?

运行状态的进程最多有1个,最少0个。就绪状态的进程最多有N个,最少0个,等待状态的进程最多N个,最少0个。

9.进程的状态有没有这样的状态转换,等待状态→运行状态,就绪状态→等待状态。为什

么?

没有这样的状态转换。等待状态的进程是在运行过程中,因等待某一事件而暂时无法执行,或者说进程的运行受到了阻塞。当进程等待的事件发生时,进程只能从等待状态转变为就绪状态。在就绪状态下,通过处理机调度。进程才有可能进入运行状态。

在运行过程中,因等待某一事件而暂时无法执行,进程才有可能进入等待状态。

10.在生产者和消费者过程中,为什么说signal操作的顺序无关紧要,而wait操作的顺序不可颠倒?

每个程序中的多个wait操作顺序不能颠倒,应先执行对资源信号量的wait操作,然后再执行对互斥信号量的wait操作,否则可能引起死锁。

11.因修路使A地到B地的多路并行车道变为单车道,请问在此问题中,什么是临界资源?什么是临界区?

临界资源是单行道,从A地到B地的行车过程为临界区。

12.在公共汽车上,司机的活动:启动汽车、行车、到站停车。售票员的活动:关车门、售票、开车门。请写出司机与售票员之间的同步算法。

为了安全起见,显然要求:罐车门后才能启动车辆;到站停车后才能开车门。所以司机和售票员在到站、开门、关门、启动车辆这几个活动之间存在着同步关系。用两个信号量S1、S2分别表示可以开车和可以开门,S1的初值为1,S2的初值为0。用PV操作实现司机进程和售票员进程同步的算法描述如下: semaphore s1=1,s2=0;

void main(){parbegin(driver(),conductor());}

void driver(){do{wait(s1);Starts the automobile;Driving;Parking;signal(s2); }while(true);}

void conductor(){do{Sell ticket;wait(s2);Opening the door;Closing the door; signal(s1);}while(true);}

13.有一阅览室,读者进入时必须先在一张登记表中进行登记,该表为每一座位列一表目,包括座号和读者姓名,读者离开时要消掉登记信息,阅览室中共有100个座位,试问: ⑴为了描述读者的动作,应设置几个进程?

⑵试用C语言,利用wait操作和signal操作写出这些进程间的同步算法。

为了描述读者的动作,应设置2个同步进程,一个是登记信息进程,一个是消掉登记信息进程。

设三个信号量:座位信号量s1=100,读者数量s2=0, 登记表是临界资源,互斥信号量mutex=1。

semaphore s1=100,s2=0, mutex=1;

void main(){parbegin(register(),register_off());}

void register(){do{wait(s1);wait(mutex);register;signal(mutex);signal(s2); enter into the reading room;}while(true);}

void register_off(){do{wait(s2);wait(mutex);register off;signal(mutex);signal(s1); leave the reading room;}while(true);}

14.进程通信类型有几种方式?写出用于进程通信的原语格式?那种方式适合计算机网络通信?

①共享存储器方式。②管道通信方式。③消息传递的通信方式。

消息传递的通信方式适合计算机网络通信。通信方式通信原语一般应用格式如下: 客户机端:send(server-socket,&m1)receive(client-port,&m2)

服务器端:receive(server-port,&m1)send(m1.source-socket,&m2)

其中:&m1、&m2:请求包和应答包的地址;server-socket:服务器的套接字; server-port: 服务器的端口;client-port:客户机的端口; m1.source-socket客户机的套接字。

15线程有几种类型?请说明每种类型的优缺点? 操作系统通过两种不同方法支持线程,这两类线程就是用户层的用户线程和内核层的内核线程。①在多机系统中,内核线程是CPU调度的基本单位。调度可以为一个进程中的多个内核线程分配多个CPU,使多个内核线程达到并行,提高了程序的执行速度和系统效率;一个多用户线程的应用程序不能充分利用多CPU技术。内核一次只把一个进程分配给一个CPU,因此一个进程中只有一个用户线程可以执行,无法享用多CPU带来的好处。 ②如果进程中的一个内核线程被阻塞,内核可以调度同一个进程中的另一个内核线程;如果进程中的一个用户线程阻塞,则整个进程都必须等待,即使还有其他用户线程可以在应用程序内运行。③系统调用。在用户线程调用一个系统调用时,由于内核把系统调用看作是整个进程的行为,于是使该进程等待,而调度另一个进程执行,同样是在内核完成系统调用返回时,进程才能继续执行;如果系统中设置的是内核线程,则CPU调度是以线程为单位的。当一个内核线程调用一个系统调用时,内核把系统调用只看作是该内核线程的行为,当该内核线程阻塞时,CPU调度便调度同一进程中的其他内核线程执行。这样就提高了执行效率。 ④如果采用轮转调度算法,每个进程轮流执行一个时间片。进程P1中包含了10个用户线程,另一个进程P2中含有1个用户线程。这样一来,进程P2中线程的执行时间将是进程P1中各线程执行时间的10倍;如果系统中设置的是内核线程,情况就不一样了,它的调度是以内核线程为单位进行的,这样,进程P1可以获得的CPU时间是进程P2的10倍。 16.多级队列算法的基本思想是什么? 多级队列算法(Multiple—level Queue,MLQ)是先来先服务算法、时间片轮转算法和优先级算法的综合。其基本思想是将就绪队列分成多个独立队列,根据进程的某些属性确定进程的优先级,如系统进程、用户交互进程、I/O进程、计算进程等。相同优先级的进程按FIFO原则排成一个队列,按时间片轮转算法分派CPU。不同队列可有不同的优先级、不同的时间片长度。在多级队列算法中,优先调度优先级高的队列,当优先级高的队列为空时. 17.请解释什么是先来先服务算法、时间片轮转法和优先级算法?有什么用途?

(1)先来先服务调度算法,总是把处理机分配给最先进入就绪队列的进程或线程。该算法适合于进程调度、线程调度、任务调度、作业调度和其它资源调度等。

(2)时间片轮转法调度算法是专门为分时系统而设计的,时间片轮转算法主要用于微观调度。时间片轮转法属于抢占方式算法,该算法适合于线程调度、进程调度或任务调度。 (3)优先级算法(Highest Priority First---HPF)总是把处理机分配给就绪队列中具有最高优先级的进程,优先级算法即人们经常讲的“急事先办”,需要考虑,以下因素,如进程时间极限、内存要求、打开文件的数量等。该算法是常用调度算法,适合于进程调度、线程调度、任务调度、作用调度和资源调度等。

18.常用的调度算法有那些?在抢占调度方式中,抢占的原则是什么? 先来先服务调度算法、最高响应比优先算法、时间片轮转法、优先级算法、多级队列算法等。 优先级原则和时间片原则。

19.何谓静态优先级和动态优先级?确定优先级的依据是什么?

(1)静态优先级是指在创建进程时确定进程优先级,并一直保持到进程结束,即“终生”不变。影响进程的静态优先级的主要因素包括进程的资源需要和用户要求。

(2)动态优先级是指在创建进程时赋予进程的优先级,在进程的生命内优先级可以动态的变化,在进程运行过程中可以自动改变优先级,以便获得更好的调动性能,影响进程动态优先权变化的因素包括进程等待时间和占用处理机时间等,一个进程在就绪队列中等待的时间

越长,它的优先级会越高。

20.何谓死锁?产生死锁的原因是什么? 在多个进程并发执行中,某进程申请的资源被其他等待进程占有,如果该等待进程永远无法改变其等待状态,这种情况称之为死锁。

产生死锁的原因是:①资源不足,引起资源竞争;②进程推进顺序不合理。 21.什么是产生死锁的必要条件? ⑴互斥条件。进程要求对所分配的资源进行排他性使用,即在一段时间内某资源仅为一个进程所占用。⑵不剥夺条件。进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放。⑶请求和保持条件。进程每次申请所需要的一部分资源,在等待新资源的同时,进程继续占有已分配到的资源。

⑷循环等待条件。存在进程资源的循环等待链,链中的每一个进程已获得资源,同时被链中的下一个进程所请求。

22.在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法使资源利用率最高? 在解决死锁问题的四种方法中,死锁预防最容易实现,而死锁的检测和解除方法可使系统的资源利用率最高。

23.银行家算法主要思路是什么?它能够用来解决实际中的死锁问题吗?为什么? 银行家算法是指银行家在向顾客贷款时如何保证资金的安全。假设一个银行家把他的流动资金贷给若干顾客时,只要存在顾客使用资金的安全序列,银行家的资金就是安全的,银行家需要一个算法保证借出去的资金可在有限时间内收回。

银行家算法具有较好的理论意义,但在实际系统中难以实施,实施代价太大。其原因是难以预见获得进程申请的最大资源数,进程运行过程的个数是不断变化的。所以银行家算法难以用来解决实际中的死锁问题。

24.为什么要引入动态重定位?如何实现?

动态重定位技术不同于静态重定位,进程在装入内存时不进行地址绑定,在指令执行期间CPU每次访问内存时进行地址重定位,这种重定位方法需要硬件的支持,系统中需设置一个地址变换机构。进程的指令和数据在内存中的物理地址在执行时通过地址变换机构确定,该技术在进程运行时允许移动和附加存储空间。

25.在多任务操作系统中,为什么必须采用动态重定位?

在多任务操作系统中,多个进程在内存中并发执行,进程的创建与撤消,多个进程之间频繁的上下文切换,其内存分配呈现离散性,动态性和随机性。而静态重定位仅适应于连续分配,不能满足多任务操作系统对内存需求的离散性,动态性和随机性等要求,因此多任务操作系统存储管理必须采用动态重定位。

26.伙伴系统有什么技术特点?伙伴系统如何对内存进行管理的?

伙伴系统是一种限制外碎片的产生的一种存储管理技术。该技术克服了固定分区和动态分区存储管理技术的缺陷,对半分裂或合并内存空间,选择合适的两个伙伴中的任何一个伙伴分配给进程。

U

在一个伙伴系统中,内存的用户可用空间为2。进程申请存储空间时,系统总是为其分

ISIUS

配大小为2的一个空闲分区,其中2≤2≤2,2是系统允许的最小分区尺寸。 27较详细地说明引入分段存储管理是为了满足用户哪几方面的需要。

①方便编程。通常,一个作业由若干个自然段构成。为此,用户希望能把自己的作业按照逻辑关系划分为若干个段,每个段都由自己的名字和长度。因而,规定每个段都从0开始编址,则访问的逻辑地址可由段名(段号)和段内偏移量(段内地址)决定。这样,用户程序在执行中便可用段名和段内地址进行访问。②分段共享。通常,在实现程序和数据的共享时,都是以信息的逻辑单位为基础的。为了实现段的共享,应使内存管理功能与用户程

序分段的组织方式相适应。③分段保护。在多道程序环境下,为了防止其它程序对某程序在内存中的数据有意无意的破坏,必须采取保护措施。对内存中信息的保护,同样时对信息的逻辑单位进行保护。因此,采用分段的组织和管理方式,对于实现保护功能,将是更有效和方便的。④动态链接。动态链接也要求以信息的逻辑单位即分段作为管理的单位。

⑤动态增长。实际使用中,往往有些段特别是数据段会不断地增长,而事先又无法确切地知道数据段会增长到多大。这种动态增长的情况是其它存储管理方式都难于应付的,但分段存储管理方式却能较好地解决这一问题。

28.在具有快表的分页存储管理方式中,如何实现地址变换?

⑴CPU给出有效地址后,由地址变换机构自动将页号送入快表,并将此页号与快表中的所有关键字(页号)进行比较,而且这种比较是同时进行的。若其中有与此页号相匹配的关键字,表示要访问页描述子在快表中。于是可直接读出该页所对应的帧号,则快速形成物理地址。这样就无需访问内存中的页表,由于快表的访问速度比内存的访问速度快得多,这样就可以大大减少访问内存的时间⑵如果快表中没有记录,即TLB脱靶,从页表中查找所需的页描述子中的帧号,形成物理地址,同时更新快表,把该页描述子及相邻的页描述子写入快表。页号在快表(TLB)中被查找到的百分比称为命中率(h)。 29.试说明分段系统和分页系统的区别与联系?

⑴页帧是信息的物理单位,分页是系统管理的需要,以解决内存的外碎片问题;段是信息的逻辑单位,分段的目的是为了更好地满足用户的需要,但分段存储管理存在外碎片问题。 ⑵页的大小是固定的,由系统硬件决定;段的长度是不固定的,大小由用户决定。 ⑶分页系统进程的地址空间是一维的,即该地址空间是单一的线性地址空间,程序员只需利用一个标识符,即可表示一个地址;分段系统进程的地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内偏移。

⑷分页对于用户是透明,它仅仅用于对内存的管理;分段则对用户是可见的。

⑸分段存储管理可以利用段的共享来实现内存共享;分页存储管理较难实现内存共享。 30.虚拟存储器有哪些特征?其中最本质的特征是什么?

⑴离散性,即采用离散分配方式;⑵多次性,指进程被分成多次调入内存运行; ⑶对换性,指允许进程的段或页,在进程运行过程中换进和换出; ⑷虚拟性,指能够从逻辑上扩充内存容量。

因篇幅问题不能全部显示,请点此查看更多更全内容