操作系统大题答案 联系客服

发布时间 : 星期一 文章操作系统大题答案更新完毕开始阅读690dcd0d6bd97f192279e91e

操作系统原理复 习题一

1、 试对分时系统和实时系统进行比较。

可以从多路性、独立性、及时性、交互性和可靠性5个方面对分时系统和实时系统进行比

较。

(1)多路性。系统按分时原则为多个终端用户服务;而对实时控制系统,其多路性则

主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。(2)独立性。都有独立性。每个终端用户在向实时系统提出服务请求时,是彼此独立的操作,互不干扰;而在实时控制系统中信息的采集和对对象的控制,也彼此互不干扰。(3)及时性。实时信息系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的(4)交互性。实时信息处理系统具有交互性,而分时系统能向终端用户提供数据处理服务、资源共享等服务。(5)可靠性。分时系统要求系统可靠,相比之下,实时系统则要求系统高度可靠。 2、有一个仓库,可以存放A和B两种产品,但要求:

(1)、每次只能存放一种产品(A或B); (2)、-N < A产品数量- B产品数量< M。

其中,N和M是正整数。试用P、V操作描述产品A与产品B的入库过程。

解:在本题中,我们可以设置两个信号量来控制A、B产品的存放数量,sa表示当前允许A产品比B产品多入库的数量,即在当前库存量和B产品不入库的情况下,还可以允许sa个A产品人库;sb表示当前允许B产品比A产品多入库的数量,即在当前库存量和A产品不入库的情况下,还可以允许sb个B产品入库。初始时,sa为M-1,sb为N-1。当往库中存放入一个A产品时,则允许存入B产品的数量也增加1:当往库中存放入一个B产品时,则允许存入A产品的数量也增加1。 产品A、B的入库过程描述如下: mutex=1; /* 互斥信号量 */

sa=M-1; sb=N-1; Process_A() Process_B() { { while(1) while(1) { { 取一个产品; p(sb); p(sa); p(mutex); p(mutex); B产品入库; A产品入库; v(mutex); v(mutex); v(sa); v(sb); } } } }

3、有一页式系统,其页表存放在内存中。

(1)、如果对内存的一次存取需要1.5微秒,问实现一次页面访问的存取时间是多少? (2)、如果系统增加有快表,平均命中率为85%,当页表项在快表中时,其查找时间忽略为0,问此时的存取时间为多少?

答:a.在分页存储管理中,当访问一条指令或数据时需要访问内存至少两次。一次是访问存

放在内存中的页表PMT,实现地址变换; 另一次是访问所需的数据,3微妙。 b.若快表的命中率是85%,则有效存取时间为:0.85×1.5+(1-0.85)×3=1.725μs

4、在一个请求分页系统中,假定系统分配给一个作业的物理块数为3,并且此作业的页面走向为2、3、2、1、5、2、4、5、3、2、5、2。试用FIFO和LRU两种算法分别计算出程序访问过程中所发生的缺页率。

5、I/O控制可用哪几种方式实现?各有何优缺点?

I/O控制过程可用三种方式实现:作为请求I/O操作的进程实现;作为当前进程的一部分

实现;由专门的系统进程——I/O进程完成。第一种方式请求对应I/O操作的进程能很快占据处理机但要求系统和I/O操作的进程应具有良好的实时性。第二种方式不要求系统具有高的实时性,但I/O控制过程要由当前进程负责。第三种方式增加了一个额外的进程开销,但用户不用关心I/O控制过程。

7、使用文件系统时,通常要显式地进行OPEN和CLOSE进行操作。试问 (1) 这样做的目的是什么?

答:显式的OPEN操作完成文件的打开功能。它将待访问文件的目录信息读入内存活动文件表中,建立起用户进程与文件的联系。显式的CLOSE操作完成文件的关闭操作。该命令撤消主存中有关文件的目录信息,切断用户与该文件的联系;或在文件打开期间,该文件作过某种修改,还应将其写顺回辅存。

(2) 若取消显式的OPEN,CLOSE操作,应如何做?

答:可以取消显式的OPEN与CLOSE操作。如果取消了显式OPEN与CLOSE操作,系统在进行文件操作之前需判断文件是否已打开,则应自动完成文件的打开功能,以建立用户与文件间的联系。同时,在系统结束时,还应自动关闭所有打开文件。 (3) 取消显示的OPEN,CLOES有什么不利?

答:取消显式的OPEN与CLOSE操作得文件的读写的系统开销增加。因为在每次读写前都需要判断文件是否已被打开。系统在结束时也要做一些额外的工作,以完成CLOSE命令

的功能。当用户进程已使用完一个文件但尚未执行完成时,因无显式的CLOSE命令也无法关闭文件,从而不利于系统资源的回收。 四、证明题

1、 考虑由n个进程共享的具有m个同类资源的系统,证明:如果对i=1,2,…,n,有 0 < Need(i)≤ m而且所有进程最大需求量之和小于m+n,那么该系统是死锁无关的。 证明:令每个进程请求共享资源的最大量相等,且为x,(0

此刻,系统剩余的可用资源数为:m - n*(x-1)。当m – n*(x-1)≥1时,即x ≤ (m+n-1)/n时,系统不会出现死锁的。因此得出,系统中所有进程的最大需求量之和n×x ≤ (m+n-1) 时,系统是不会发生死锁的。所以,n个进程的最大需求量之和小于m+n时,系统与死锁无关。

2、 若系统中有作业1、2、3几乎同时到达,已知它们的运行时间依次为a、b、c,且满足关系式a

证明:采用短作业优先算法调度时,三个作业的总周转时间为:Tl = = a + ( a +b ) + ( a + b + c ) = 3a + 2b + c 若不按短作业优先算法调度,不失一般性,设调度次序为:J2 、J1 、J3 。则三个作业的总周转时间为:T2=b+(b+a ) +(b+a + c ) = 3b + 2a + c 则令②-① 式得到:T2 - Tl = b- a> 0 可见,采用短作业优先算法调度才能获得最小平均作业周转时间。

操作系统原理复 习题二

三、综合题

1、什么是操作系统?它有什么基本特征? 答:操作系统(Operating System,简称OS)是一个管理计算机系统资源,控制程序运行的系统软件,它为用户提供了一个方便、安全、可靠的工作环境和界面。它有4个基本特征。 并发性:指两个或多个事件在同一时间间隔内发生; 共享性:指系统中的资源可供内存中多个并发执行的进程共同使用; 虚拟性:指通过某种技术把一个物理实体变成若干个逻辑上的对应物; 异步性:即不确定性。在多道程序设计中,各个程序之间存在着直接或间接的联系,程序的推进速度受它的运行环境的影响。这时同一程序和数据的多次运行可能得到不同的结果;程序的运行时间、运行顺序也具有不确定性;外部输入的请求、运行故障发生的时间难以预测。这些都是不确定性的表现。 2、进程与线程的主要区别是什么?

答:进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程。例如对于IE浏览器程序,每打开一个IE浏览器窗口,就启动了一个新的进程。同样,每次执行JDK的java.exe程序,就启动了一个独立的Java虚拟机进程,该进程的任务是解析并执行Java程序代码。

线程是指进程中的一个执行流程,有时也称为执行情景。一个进程可以由多个线程组成,即在一个进程中可以同时运行多个不同的线程,它们分别执行不同的任务。当进程内的多个线程同时运行时,这种运行方式称为并发运行。许多服务器程序,如数据库服务器和Web服务器,都支持并发运行,这些服务器能同时响应来自不同客户的请求。

进程和线程的主要区别在于:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源,比如共享一个对象或者共享已经打开的一个文件。

3、用P、V操作实现下述问题的解。桌上有一个盘子,可以存放一个水果。父亲总是放苹果到盘子中,而母亲总是放香蕉到盘子中;一个儿子专等吃盘子中的香蕉,而一个女儿专

等吃盘中的苹果。

定义信号量:dish:表明盘子中是否为空,初值为1; Apple:表明盘子中是否有苹果,初值为0; Orange:表明盘子中是否有桔子,初值为0; main () ? {cobegin V(orange); father (); } mother (); son () son (); { P(orange); daughter (); ? coend 取香蕉 } ? father () V(dish); { P(dish); } ? daughter() 放苹果 { P(apple); ? ?

V(apple);

} 取苹果 mother() ? { P(dish); V(dish); ? }放香蕉

4、设公共汽车上,司机和售票员的活动分别是:司机的活动:启动车辆;正常行车;到站停车。

售票员的活动:关车门;售票;开车门。在汽车不断地到站、停站、行驶过程中,这两个活动有什么同步关系?用信号量和P、V操作实现它们的同步。

第一步:确定进程间的关系。售票员关车门后,要向司机发开车信号,司机接到开车信号后才能启动车辆。在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门,让乘客上下车。因此司机启动车辆的动作必须与售票员的动作取得同步;售票员开车门的动作也必须同司机停车取得同步。第二步:确定信号量及其值。由于司机与售票员之间要互通消息,司机进程设置一个私有信号量run,用于判断是否关车门,司机能否启动车辆,初值为1。售票员进程设置一个私有信号量stop,用于判断是否停车,售票员是否能够开车门,初值为0 第三步: 确定P(wait)、V(signal)操作的位置司机操作中,是否关门?没关则等待,这是一个P操作,P(run);司机操作中,设立停车标志,这是一个V操作,V(stop);售票员操作中,是否停车?没停则等待,这是一个P操作,P(stop);售票员操作中,设立关门标志,这是一个V 操作,V(run)

lstop ,run:semaphore L1: P(run); run:=1; //是否关车门 启动车辆; stop:=0; //是否停车 正常行车; Driver:begin cobegin 到站停车; driver: begin V(stop);