现代操作系统第四版第二章答案

现代操作系统第四版第二章答案
现代操作系统第四版第二章答案

现代操作系统第二章进程与线程习题

1. 图2-2中给出了三个进程状态,在理论上,三个状态可以有六种转换,每个状态两个。但是,图中只给出了四种转换。有没有可能发生其他两种转换中的一个或两个?

A:从阻塞到运行的转换是可以想象的。假设某个进程在I/O上阻塞,而且I/O 结束,如果此时CPU空闲,该进程就可以从阻塞态直接转到运行态。而另外一种转换(从阻塞态到就绪态)是不可能的。一个就绪进程是不可能做任何会产生阻塞的I/O或者别的什么事情。只有运行的进程才能被阻塞。

2.假设要设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换。CPU需要哪些信息?请描述用硬件完成进程切换的工作过程。

A:应该有一个寄存器包含当前进程表项的指针。当I/O结束时,CPU将把当前的机器状态存入到当前进程表项中。然后,将转到中断设备的中断向量,读取另一个过程表项的指针(服务例程),然后,就可以启动这个进程了。

3.当代计算机中,为什么中断处理程序至少有一部分是用汇编语言编写的?A:通常,高级语言不允许访问CPU硬件,而这种访问是必需的。例如,中断处理程序可能需要禁用和启用某个特定设备的中断服务,或者处理进程堆栈区的数据。另外,中断服务例程需要尽快地执行。(补充)主要是出于效率方面的考量。中断处理程序需要在尽量短的时间内完成所需的必要处理,尽量减少对线程/程序流造成的影响,因此大部分情况下用汇编直接编写,跳过了通用编译过程中冗余的适配部分。

4.中断或系统调用把控制转给操作系统时,为什么通常会用到与被中断进程的栈分离的内核栈?

A:内核使用单独的堆栈有若干的原因。其中两个原因如下:首先,不希望操作系统崩溃,由于某些用户程序不允许足够的堆栈空间。第二,如果内核将数据保留在用户空间,然后从系统调用返回,那么恶意的用户可能使用这些数据找出某些关于其它进程的信息。

5.一个计算机系统的内存有足够的空间容纳5个程序。这些程序有一半的时间处于等待I/O的空闲状态。请问CPU时间浪费的比例是多少?

A:^5 =%

6.一个计算机的RAM有4GB,其中操作系统占512MB。所有进程都占256MB(为了简化计算)并且特征相同。要是CPU利用率达到99%,最大I/O等待是多少?A:内存中最多可放(4GB-512MB)/256MB=14个进程,设每个进程的I/O等待占总运行时间的比例为p,则CPU利用率=1-p^14>99%====>p<%

7.多个作业能够并行运行,比它们顺序执行完成的要快。假设有两个作业同时开始执行,每个需要20分钟的CPU时间。如果顺序执行,那么最后一个作业需要多长时间可以完成?如果并行执行又需要多长时间?假设I/O等待占50%。

A: 每个进程的时间为40min。顺序执行时,最后一个作业需要80min才能完成。并行执行时,cpu利用率为1-p^n = 75%, cpu计算时间为40min,故总时间

t=40/75%=

8.考虑一个6级多道程序系统(内存中可同时容纳6个程序)。假设每个进程的I/O等待占40%,那么CPU利用率是多少?

A:利用率=1-p^n=1-^6 = =%

9.假设要从互联网上下载一个2GB大小的文件,文件内容可以从一组镜像服务器获得,每个服务器可以传输文件的一部分。假设每个传输请求给定起始字节和结束字节。如何用多线程优化下载时间?

A:客户端进程可以创建单独的线程; 每个线程都可以从其中一个镜像服务器获取文件的不同部分。这有助于减少停机时间。当然,所有线程都共享一个网络链接。这个链接可以成为一个瓶颈,因为线程的数量变得非常大。

10.为什么图2-11a的模式不适合用于在内存使用高速缓存的文件服务器?每个进程可以有自己的高速缓存吗?

A:即使是有可能实现,也是很难保持文件系统的一致性。假设某个客户进程给服务器进程1发送请求要更新文件。该进程更新其内存的cache项。然后,另一个客户进程给服务器进程2发送请求读取该文件。不幸的是,如果该文件还在 cache中,服务器进程2对此毫不知情,将返回过时的数据。如果第一个进程在缓冲后将文件写到磁盘中,而服务器进程2每次读取时检查磁盘其缓存的备份是否是最新的,系统还可以工作,但是需要避免磁盘访问的所有缓存系统。(个人认为,高速缓存应该每个进程共享,因为不是每个进程都需要频繁读写数据,如果每个进程都分配cache会造成资源浪费。)

11.当一个多线程进程创建子进程时,如果子进程复制父进程的所有线程,就会出现问题:假如夫进程中有一个线程正在等待键盘输入,现在就有两个线程在等待键盘输入,父进程和子进程各有一个。这种问题在单线程进程中也会发生吗?

A:不会。如果单线程进程在键盘上阻塞,就不能创建子进程。(而多线程进程在一个线程阻塞时可以运行另一个线程,整个进程不会因此被阻塞。)

12.在图2-8中,给出了一个多线程Web服务器。如果读取文件的惟一途径是正常的阻塞read系统调用,那么Web服务器应该使用用户级线程还是内核级线程?为什么?

A:当工作者线程从磁盘读取Web页时,它就会被阻塞。如果使用用户级线程,该动作将阻塞整个进程,而破坏多线程的价值。这就是使用内核线程的原因:某些线程的阻塞不会影响到其他线程。

13.在本章中,我们介绍了多线程Web服务器,说明它比单线程服务器和有限状态机服务器更好的原因。存在单线程服务器更好一些的情形吗?请举例。

A:在多线程Web服务器中,由分派程序从网络中读入工作请求,在检查请求后,分派线程挑选一个空转的(即被阻塞的)工作线程,提交该请求。在工作线程被唤醒后,他检查有关的请求是否在Web页面高速缓存中,这个高速缓存是所有线程否可以访问的。如果没有,该线程开始一个从磁盘调入页面的read操作,并且阻塞知道该磁盘操作完成。在上述线程被阻塞在磁盘操作上时,分派线程可能挑选另一个线程运行,可以有效利用CPU资源。而在单线程服务器上,只能等第一个线程完成后,才能开始第二个线程。也存在单线程服务器更好的情形。如果服务器是完全CPU绑定的,则不需要多线程。这只会增加不必要的复杂性。假设某个百万人口区域的电话查号系统(类似于114),如果每个(姓名,电话号码)记录为64个字符,整个的数据库则为64MB,这就很容易全部读入服务器内存中以提供快速的查询。

14。既然计算机中只有一套寄存器,为什么在图2-12中的寄存器集合是按每个线程中列出而不是按每个进程列出。

A:当一个线程停止时,它在寄存器中有值。它们必须被保存,就像进程停止时,必须保存寄存器。多线程和多进程没有什么不同,所以每个线程需要自己的寄存器保存区。

15.在没有时钟中断的系统中,一个线程放弃CPU后可能再也不会获得CPU资源,那么为什么线程还要通过调用thread_yield自愿放弃CPU?

A:进程中的线程合作。它们彼此不敌对。如果应用程序需要阻塞以运行得更好,那么一个线程可以调用thread_yield自愿放弃CPU。毕竟,同一个进程中的线程的全部代码通常是一个程序员写的。

16.线程可以被时钟中断抢占吗?如果可以,在什么情形下可以?如果不可以,为什么不可以?

A:用户级线程不能被时钟剥夺,除非整个进程的时间片用完。内核级线程可以单独地被剥夺。在后一种情况下,如果线程运行过久,时钟将中断该当前进程,因而当前线程也被中断。内核可以自由地从同一个进程中选取其他线程运行。

17.请对使用单线程文件服务器和多线程文件服务器读取文件进行比较。假设所需要的数据都在块高速缓存中,获得工作请求,分派工作,并处理其余必要工作需要花费12ms。如果在时间过去1/3时,需要一个磁盘操作,额外花费75ms,此时该线程进入睡眠。单线程服务器每秒钟可以处理多少个请求?多线程服务器呢?

A:在单线程情况下,cache命中需要12ms,cache未命中需要87ms,其加权平均为2/3·12+1/3·87 = 37 ms,一秒钟可以完成1s/37ms = 27个. 在多线程情况下,所有磁盘等待都是重叠的,因此每个请求耗时12ms,一秒钟可以完成1s/12ms = 个(个人认为这样算不太准确,因为最后的几个线程如果cache未命中的话,就需要87ms,可能是完不成的,不过这个题意翻译的不是很清楚,什么叫做“时间过去1/3时”,估计原意应该是”有1/3的时间需要额外的磁盘操作“。这样平均算下来也可以忽略cache未命中发生的分布情况。)

18.在用户态实现线程的最大的优点是什么?最大的缺点是什么?

A:最大的优势就是效率。不需要陷入内核来切换线程。最大的缺点是,如果一个线程阻塞,整个进程都会阻塞。

19.在图2-15中创建线程和线程打印消息是随机交织在一起的。有没有方法可以严格按照以下次序运行:创建线程1,线程1打印消息,线程1结束,创建线程2,线程2打印消息,线程2结束,以此类推;如果有,是什么方法,如果没有请解释原因。

A:是的,这是可以做到的。每次执行pthread-create后,主程序可以调用pthread_join等待刚刚创建的线程退出后再创建下一个线程。

20.在讨论线程中的全局变量时,曾使用过程create_global将存储分配给指向变量的指针,而不是变量自身。这是必需的吗?还是直接使用变量自身也可行?A:将存储分配给指针是确实必要的,因为全局变量的大小是未知的。它可能是从字符到浮点数数组的任何类型。如果保存其值,就不得不把其大小传递给create_global,这都没有问题,但是必须将其类型作为set_global的第二个参数,那么read_global返回值的类型是不确定的。

21.考虑一个线程全部在用户态实现的系统,该运行时系统每秒钟获得一个时钟中断。当某个线程正在运行时系统中执行时发生一个时钟中断,此时会出现什么问题?你有什么解决该问题的建议吗?

A:runtime系统可以正好在这一时刻阻塞或者解除阻塞某个线程,并且忙于处理调度队列。此时并不适合于时钟中断处理程序开始检查该队列是否应该进行线程切换,因为它们可能处于不一致的状态。解决方法可以是:当进入runtime 系统后,设置一个标志。时钟处理程序将看到该标志,并且设置其自己的标志,然后返回。当runtime系统完成时,它将检测时钟标志,看是否有时钟中断发生,并且现在运行时钟处理程序。

22.假设一个操作系统中不存在类似于select的系统调用来提前了解在从文件、管道或设备中读取时是否安全,不过该操作系统确实允许设置报警时钟,以便中断阻塞的系统调用。在上述条件下,是否有可能在用户态中实现一个线程包?请讨论。

A:这是可能的,不过效率很低。线程想要做一个系统调用,首先设定警报定时器,然后才执行调用。如果线程阻塞,定时器将控制归还给线程包。当然,大多数调用是不阻塞的,而定时器必须被清除。每个可能被阻塞的系统调用都必须作为3个系统调用来执行。如果定时器过早失效,各种问题都可能发生。用这种方法建立线程包并不好。

23.两个进程在一个共享内存的多处理器(两个CPU)上运行,当他们要共享一块内存时,图2-23中使用turn变量的忙等待解决方案还有效吗?

A:仍然有效,但也仍旧是忙等待。

24.在抢占式进程调度的条件下,图2-24中互斥问题的Peterson解法可行吗?如果是非抢占式调度呢?

A:对抢占式调度可行。事实上,这种解法就是为它设计的。而对于非抢占式调度,可能会失败。考虑这种情况:turn被初始化为0,但进程1先开始运行了,它就会一直循环,但不释放CPU,具有忙等待的缺点。

节中所讨论的优先级反转问题在用户级线程中是否可能发生?为什么?

A:当低优先级进程位于其临界区,而高优先级进程就绪并且被调度时,将发生优先级倒置问题。如果使用忙等待,高优先级进程将一直运行。对于用户级线程,不可能发生低优先级线程突然被剥夺而允许高优先级线程运行,因为是不可剥夺的。而内核级线程,就会出现这个问题。

节中描述了一种有高优先级进程H和低优先级进程L的情况,导致了H陷入死循环。若采用轮转调度算法而不是优先级调度算法,还会发生这样问题吗?请讨论。

A:不会发生这样的问题。在轮转调度算法下。L迟早会运行,最终它将会离开临界区。关键是,在优先级调度算法下,L永远不会运行;在轮转循环下,它定期得到一个正常的时间片,所以有机会离开其临界区。

27.在使用线程的系统中,若使用用户级线程,是每个线程一个栈还是每个进程一个栈?如果使用内核级线程呢?请解释。

A:每个线程都是自己调用例程,因此它必须有其自己的堆栈以保存局部变量、返回地址等等。这一点用户级线程和内核级线程是一样的。

28.在开发计算机时,通常首先用一个程序模拟执行,一次运行一条指令,多处理器也严格按此模拟。在这种没有同时事件发生的情形下,会出现竞争条件吗?A:(竞争条件指多个线程或者进程在读写一个共享数据时结果依赖于它们执行的相对时间的情形。竞争条件发生在当多个进程或者线程在读写数据时,其最终的的结果依赖于多个进程的指令执行顺序。)是的。模拟计算机也可以是多道程序设计的。例如,在进程A运行时,它读取一些共享变量。然后发生了一个模拟时钟周期和进程B运行。它也读取相同的变量,然后对变量进行了加1

操作。当进程A运行时,如果它也对变量进行了加1操作,就发生了竞争条件。

29. 将生产者-消费者问题扩展成一个多生产者-多消费者的问题,生产(消费)者都写(读)一个共享的缓冲区,每个生产者和消费者都在自己的线程中执行。图2-28中使用信号量的解法在这个系统中还可行吗?

A:可行。在给定的某个时刻,只有一个生产者(消费者)可以向(从)缓冲区添加(取出)项目。

30.考虑对于两个进程P0和P1的互斥问题的解决方案。假设变量初始值为0。P0的代码如下:

?

p1的代码是将上述代码中的0替换为1。该方法是否能处理互斥问题中所有可能的情形?

A:该解决方案满足互斥,因为两个流程不可能同时处于Critical Section。也就是说,当turn为0时,P0可以执行其临界区,但P1不能执行。当turn为1也有相似的情况。但是,这假设P0必须先运行。如果P1产生某些东西并将其放入缓冲区,那么当P0可以进入其临界区时,它会发现缓冲区为空并阻塞。而且,该解决方案需要严格交替两个过程,这是不希望发生的。

31.一个可以屏蔽中断的操作系统如何实现信号量?

A:执行信号量操作,操作系统首先要禁用中断。然后,它读取信号量的值。如果执行down操作,而信号量等于0,就将调用进程放入与信号量有关的阻塞进程列表中。如果执行up操作,必须检测看是否有任何进程在信号量上被阻塞。如果有一个或多个进程被阻塞,从阻塞进程的列表中移出一个,使之就绪。当所有这些操作都完成后,就可以开启中断了。书中的原话是:

操作系统只需在执行以下操作时暂时屏蔽全部中断:测试信号量、更新信号量以及在需要时是某个进程睡眠。

::32.请说明如何仅通过二元信号量和普通机器指令实现计数信号量(即可以保持一个任意值的信号量)。::

A:用两个二值信号量和一个计数器counter实现一个计数信号量:M用于互斥,B用于阻塞,counter用于记录up减去down的次数,再用一个链表来记录阻塞在这个计数信号量上的进程。 down的实现:进程先对M进行down来获得counter、链表的独占访问权,并把counter减1。如果counter大于等于0,

直接对M进行up即可;否则,记录在链表再up,然后对B进行down从而阻塞这个进程。up的实现:进程同样先对M进行down,counter加1,若其大于0,直接对M进行up即可;否则counter小于等于0,把链表中一个进程移出,然后对B、M依次up。

33.如果一个系统只有两个进程,可以使用一个屏障来同步这两个进程吗?为什么?

A:如果程序操作按阶段执行,直到两个进程都完成当前阶段才能进入下一阶段,这时就应该使用屏障。(这个答案也有点奇怪,我认为只要这两个进程不是生产者-消费者模式就可以使用屏障。)

34.如果线程在内核态实现,可以使用内核信号量对同一个进程中的两个线程进行同步吗?如果线程在用户态实现呢?假设在其他进程中没有线程必须访问该信号量。请解释你的答案。

A:对于内核线程,线程可以在信号量上阻塞,而内核可以运行该进程中的其它线程。因而,使用信号量没有问题。而对于用户级线程,当某个线程在信号量上阻塞时,内核将认为整个进程都被阻塞,而且不再执行它。因此,在用户态线程的同步失败。

35.管程内的同步机制使用条件变量和两个特殊操作wait和signal。一种更通用的同步形式是只用一条原语waituntil,它以任意的布尔谓词作为参数。例如waituntil x < 0 or y + z < n

这样就不再需要signal原语。很显然这种方法比Hoare或Brinch Hansen方案更通用,但它从未被采用过。为什么?(提示:请考虑其实现。)

A:其实现的代价很高。每次在某些等待变化的进程的谓词中出现的任何变量,runtime系统都必须重新计算该谓词,以判断该进程是否能够被解锁。而对于Hoare和Brinch Hansen管程,则只需signal原语即可唤醒进程。

36.一个快餐店有四类雇员:(1) 领班,接收顿客点的菜单;(2)厨师,准备饭菜;(3)打包工,将饭菜装在袋子里;(4) 收银员,将食品袋交给顾客并收钱。每个雇员可被看作一个进行通信的顺序进程。它们采用的进程间通信方式是什么?请将这个模型与UNIX中进程联系起来。

A:雇员之间通过消息传递进行通信:在该例中,消息为订单、食物和袋子。在UNIX中,该4个进程通过管道连接。

37.假设有一个使用信箱的消息传递系统,当向满信箱发消息或从空信箱收消息时,进程都不会阻塞,相反,会得到一个错误代码。进程响应错误代码的处理方式为一遍一遍地重试,直到成功为止。这种方式会导致竞争条件吗?

A:不会导致竞争条件(不会丢失任何东西),不过它是完全的忙等待。

6600计算机使用一种称作处理器共享的有趣的轮转调度算法,它可以同时处理多达10个I/O进程。每条指令结束后都进行进程切换,这样进程1执行指令1,进程2执行指令2,以此类推。进程切换由特殊硬件完成,所以没有开销。如果在没有竞争的条件下一个进程需要T秒钟完成,那么当有n个进程共享处理器时完成一个进程需要多长时间?

A:nT seconds。

39.考虑以下C代码:

1.?void main(){

2.fork();

3.fork();

4.exit();

5.}

程序执行时创建了多少子进程?

A:3个。

调度算法一般需要维护一个继续进程列表,每个进程在列表中只出现一次。如果某个进程在列表中出现两次会发生什么情况?什么情况下可以允许多次出现?

A:如果一个进程多次出现在列表中,在每个周期,它将得到多个时间片。这种方法可以用来为更重要的进程提供更大的CPU份额。但是,当进程阻塞时,所有条目最好从可运行进程列表中删除。

41.是否可以通过分析源代码来确定进程是CPU密集型的还是I/O密集型的?运行时如何确定?

A:在简单的情况下是有可能通过看源代码来判断是否为 I/O 绑定的。例如,程序开始时,将其所有输入文件读入到缓冲器中,这种程序通常不是 I/O 绑定

的;但是,对不同文件进行增量地读写(诸如编译程序)的问题很有可能是I/O 绑定的。如果操作系统提供诸如 UNIX ps的命令,就可以得知被程序使用的CPU 时间的量,你能把这个时间量与整个的时间比较以判断。当然,这在你是系统中唯一的用户时最有意义。

42.请说明在Round-robin调度算法中时间片长度和上下文切换时间时怎样相互影响的。

A:如果上下文切换时间较大,则时间时间片必须成比例大。否则,上下文切换的开销可能相当高。如果典型的CPU突发时间小于时间片,则选择大的时间片会导致系统效率低下。如果上下文切换非常小或是可以忽略的,那么可以用更多的自由选择时间片。

43.对某系统进行监测后发现,在阻塞I/O之前,平均每个进程运行时间为T。一次进程切换需要的时间为S,这里S实际上就是开销。对于采用时间片长度为Q的轮转调度,请给出以下各种情况中CPU利用率的计算公式:

(a) Q = ∞

(b) Q > T

(c) S < Q

(d) Q = S

(e) Q趋近于0

A: (a) T/(T+S) ; (b) T/(T+S) ; (c) Q/(Q+S) ; (d) 1/2; (e)—>0;

44. 有5个待运行作业,估计它们的运行时N分别是9, 6, 3, 5和X。采用哪种次序运行这些作业将得到最短的平均响应时间?(答案将依赖于X)

A:最短作业优先可以使得平均响应时间最短。 0 < X ≤ 3: X, 3, 5, 6, 9. 3 < X ≤ 5: 3, X, 5, 6, 9. 5 < X ≤ 6: 3, 5, X, 6, 9. 6 < X ≤ 9: 3, 5, 6, X, 9. X > 9: 3, 5,6, 9, X.

45.有5个批处理作业A到E,它们几乎同时到达一个计算中心。估计它们的运行时间分别为10,6,2,4和8分钟。其优先级(由外部设定)分别为3,5,2,1和4,其中5为最高优先级。对于下列每种调度算法,计算其平均进程周转时间,可忽略进程切换的开销。

(a) 轮转法。

(b) 优先级调度。

(c) 先来先服务(按照10,6,2,4,8次序运行)。

(d) 最短作业优先。

对(a),假设系统具有多道程序处理能力,每个作业均公平共享CPU时间;对(b)到(d) ,假设任一时刻只有一个作业运行,直到结束。所有的作业都完全是CPU 密集型作业。

A:对于时间片轮转,在头10分钟里,每个作业获得1/5的CPU时间。在第10 分钟时,C结束。在接下来的8分钟里,每个作业获得 1/4 的CPU时间,然后D 完成,然后,在接下来的6分钟内,余下的3个作业各获得1/3的CPU时间,直到B结束,以此类推。因此,5个作业的完成时间分别为是10, 18, 24, 28和30, 平均为22分钟。对于优先级调度,5最先运行,6分钟完成。其它作业分别在第14, 24, 26和30分钟完成,平均为分钟。如果作业按A->E的次序执行,则分别在第10,16, 18, 22和30分钟完成,因此,平均为分钟。最后,最短作业优先调度的完成时间分别为第2, 6, 12, 20和30分钟,平均为14分钟。

46.运行在CTSS上的一个进程需要30个时间片完成。该进程必须被调入多少次,包括第一次(在该进程运行之前)?

A:CTSS(兼容分时系统)设立优先级类:属于最高优先级类的进程运行一个时间片,漱玉词高优先级类的进程运行两个时间片,再一级运行4个时间片,以此类推。当一个进程用完分配的时间片后,它被移到下一类。第一次得到 1 个时间片。随后获得 2, 4, 8 和 15 个时间片,因此必须经过 5 次交换。

47.一个实时系统有2个周期为5ms的电话任务,每次任务的CPU时间是1ms;还有1个周期为33ms的视频流,每次任务的CPU时间是11ms。这个系统是可靠的吗?

A:判断一个实时系统是否可调度的依据是:如果有m个周期事件,事件i以周

期Pi发生,并需要Ci秒CPU时间处理一个事件,需要满足:??此题中,2·1/5+11/33=11/15<1,故是可调度的,即可靠的。

48.在上一道题中,如果再加入一个视频流,系统还是可调度的吗?

A:2·1/5+2·11/33=16/15>1,故此时系统已经不可调度了。

49.用a=1/2的老化算法来预测运行时间。先前的四次运行,从最老的到最近一个,其运行时间分别是40ms、20ms、40ms和15ms。那么下一次的预测时间是多少?

A:((401/2+201/2)1/2+401/2)1/2+151/2 = 25ms

50.一个软实时系统有4个周期时间,其周期分别为50ms,100ms,200ms和250ms。假设这4个事件分别需要35ms,20ms,10ms和x ms的CPU时间。保持系统可调度的最大x值是多少?

A:35/50+20/100+10/200+x/250<=1 ==> x<=

51. 在哲学家就餐问题中使用如下规则:编号为偶数的哲学家先拿他左边的叉子再拿他右边的叉子;编号为技术的哲学家先拿他右边的叉子再拿他左边的叉子。这条规则是否能避免死锁?

A:能。

52.一个实时系统需要处理两个语音通信,每个通信都是6ms运行一次,每次占1ms CPU时间,加上25帧/秒的一个视频,每一帧需要20ms的CPU时间。这个系统是可调度的吗?

A:1/6+25*20/1000=2/3<1,故是可调度的。

53.考虑一个系统,希望以策略和机制分离的方式实现内核线程调度。请提出一个解决方案。

A:内核可以通过任何方式调度进程,但对于每个进程,严格按照进程的优先级顺序执行。通过让用户进程设置自己的优先级,让用户控制策略,而内核处理机制。

54.在哲学家就餐问题的解法(图2-47)中,为什么在过程 take_forks中将状态变量置为HUNGRY?

A:如果某个哲学家阻塞,其邻居稍后能够在test中检测其状态,发现他已经饥饿,当叉子可用时,就可以唤醒他了。

55. 考虑图2-47中的过程put_forks,假设变量state[i]在对test的两次调用之后而不是之前被置为THINKING,这个改动会对解法有什么影响?

A:该变化将意味着在哲学家停止进餐后,他的邻居都不能接着被选择。事实上,他们永远不会被选择。假设哲学家2完成了进餐,他将为哲学家1和3运行test,而两者都不会被启动,即使他们两个都饿了而且两个叉子都是可用的。类似的,如果哲学家4完成进餐,哲学家3也不会被启动。他将无法启动。

56. 按照哪一类进程何时开始,读者-写者问题可以有几种方式求解。请详细描述该问题的三种变体,每一种变体偏好(或不偏好)某一类进程。对每种变体,请指出当一个读者或写者访问数据库时会发生什么,以及当一个进程结束对数据库的访问后又会发生什么?

A:变种1:读者优先。当读者活跃时,写者都无法启动。当一个新的读者出现时,它可以立即开始除非当前有写者是活跃的。当写者完成时,如果有读者在等待,他们全都启动,无论是否有写者存在。变种2:写者优先。当有写者等待时,读者都不会开始。当最后活跃的进程结束,如果有写者,就启动它;否则,所有读者(如果有)全部开始。变种3:平衡的版本。当有读者是活跃的,新的读者可以立即开始。当写者完成时,如果有写者等待的话,新的写者优先。也就是说,一旦开始读,就一直读到没有读者为止。同样地,一旦开始写,所有挂起的写者都被允许运行。

57.请编写一个shell脚本,通过读取文件的最后一个数字,对之加1,然后再将该数字附在该文件上,从而生成顺序数文件。在后台和前台分别运行该脚本的一个实例,每个实例访问相同的文件。需要多长时间才出现竞争条件?临界区是什么?请修改该脚本以避免竞争(提示:使用In file 锁住数据文件。)

A:(复制粘贴结果。。。目前还不会脚本。)

1.?if [ ! –f numbers ]; then echo 0 > numbers; fi

2.count=0

3.while (test $count != 200 )

4.do

5.count=‘expr $count + 1’

6.n=‘tail –1 numbers’

7. expr $n + 1 >>numbers

8.done

?

《现代操作系统第四版》第三章答案

第三章内存管理习题 1.IBM360有一个设计,为了对2KB大小的块进行加锁,会对每个块分配一个4bit的密钥,这个密钥存在PSW(程序状态字)中,每次内存引用时,CPU都会进行密钥比较。但该设计有诸多缺陷,除了描述中所言,请另外提出至少两条缺点。 A:密钥只有四位,故内存只能同时容纳最多十六个进程;需要用特殊硬件进行比较,同时保证操作迅速。 2.在图3-3中基址和界限寄存器含有相同的值16384,这是巧合,还是它们总是相等?如果这只是巧合,为什么在这个例子里它们是相等的? A:巧合。基地址寄存器的值是进程在内存上加载的地址;界限寄存器指示存储区的长度。 3.交换系统通过紧缩来消除空闲区。假设有很多空闲区和数据段随机分布,并且读或写32位长的字需要10ns的时间,紧缩128MB大概需要多长时间?为了简单起见,假设空闲区中含有字0,内存中最高地址处含有有效数据。 A:32bit=4Byte===>每字节10/4=2.5ns 128MB=1282^20=2^27Byte 对每个字节既要读又要写,22.5*2^27=671ms 4.在一个交换系统中,按内存地址排列的空闲区大小是10MB,4MB,20MB,18MB,7MB,9MB,12MB,和15MB。对于连续的段请求: (a) 12MB (b) 10MB (c) 9MB

使用首次适配算法,将找出哪个空闲区?使用最佳适配、最差适配、下次适配算法呢? A:首次适配算法:20MB,10MB,18MB;最佳适配算法:12MB,10MB,9MB;最差适配算法:20MB;18MB;15MB;下次适配算法:20MB;18MB;9MB; 5.物理地址和虚拟地址有什么区别? A:实际内存使用物理地址。这些是存储器芯片在总线上反应的数字。虚拟地址是指一个进程的地址空间的逻辑地址。因此,具有32位字的机器可以生成高达4GB的虚拟地址,而不管机器的内存是否多于或少于4GB。 6.对下面的每个十进制虚拟地址,分別使用4KB页面和8KB页面计算虚拟页号和偏移量:20000,32768,60000。 A:转换为二进制分别为:0100111000100000 虚拟地址应该是16位1000000000000000 1110101001100000 4KB页面偏移量范围0~4027,需要12位来存储偏移量,剩下4位作为页号;同理8KB页面需要13位来存储偏移量,剩下3位作为页号;所以,4KB | 8KB 页号| 偏移量| 页号| 偏移量20000 | 0100 111000100000 | 010 0111000100000 32768 | 1000 000000000000 | 100 0000000000000 60000 | 1110 101001100000 | 111 0101001100000 7. 使用图3-9的页表,给出下面每个虚拟地址对应的物理地址:

现代操作系统(第三版)答案

MODERN OPERATING SYSTEMS SECOND EDITION PROBLEM SOLUTIONS ANDREW S.TANENBAUM Vrije Universiteit Amsterdam,The Netherlands PRENTICE HALL UPPER SADDLE RIVER,NJ 07458课后答案网 w w w .k h d a w .c o m

SOLUTIONS TO CHAPTER 1PROBLEMS 1.An operating system must provide the users with an extended (i.e.,virtual)machine,and it must manage the I/O devices and other system resources. 2.Multiprogramming is the rapid switching of the CPU between multiple processes in memory.It is commonly used to keep the CPU busy while one or more processes are doing I/O. 3.Input spooling is the technique of reading in jobs,for example,from cards,onto the disk,so that when the currently executing processes are ?nished,there will be work waiting for the CPU.Output spooling consists of ?rst copying printable ?les to disk before printing them,rather than printing directly as the output is generated.Input spooling on a personal computer is not very likely,but output spooling is. 4.The prime reason for multiprogramming is to give the CPU something to do while waiting for I/O to complete.If there is no DMA,the CPU is fully occu-pied doing I/O,so there is nothing to be gained (at least in terms of CPU utili-zation)by multiprogramming.No matter how much I/O a program does,the CPU will be 100percent busy.This of course assumes the major delay is the wait while data are copied.A CPU could do other work if the I/O were slow for other reasons (arriving on a serial line,for instance). 5.Second generation computers did not have the necessary hardware to protect the operating system from malicious user programs. 6.It is still alive.For example,Intel makes Pentium I,II,and III,and 4CPUs with a variety of different properties including speed and power consumption.All of these machines are architecturally compatible.They differ only in price and performance,which is the essence of the family idea. 7.A 25×80character monochrome text screen requires a 2000-byte buffer.The 1024×768pixel 24-bit color bitmap requires 2,359,296bytes.In 1980these two options would have cost $10and $11,520,respectively.For current prices,check on how much RAM currently costs,probably less than $1/MB. 8.Choices (a),(c),and (d)should be restricted to kernel mode. 9.Personal computer systems are always interactive,often with only a single user.Mainframe systems nearly always emphasize batch or timesharing with many users.Protection is much more of an issue on mainframe systems,as is ef?cient use of all resources. 10.Every nanosecond one instruction emerges from the pipeline.This means the machine is executing 1billion instructions per second.It does not matter at all how many stages the pipeline has.A 10-stage pipeline with 1nsec per 课后答案网 w w w .k h d a w .c o m

操作系统作业

操作系统作业 第一章 1. 设计现代OS的主要目标是什么?(P1) ?方便性---方便用户 ?有效性---系统管理效率 ?扩展性---体系结构:软硬件结构发展 ?开放性---体系结构:软硬件结构兼容性 3. 为什么说OS实现了对计算机资源的抽象?(p4) OS是铺设在计算机硬件上的多层系统软件,它们不仅增强了系统的功能,而且隐藏了对硬件操作的细节,有他们实现了对计算机硬件操作的多个层次的抽象。 6. 是说明推动分时系统的形成和发展的主要动力是什么?(p9) 推动分时系统形成和发展的主要动力,是用户的需求。用户的需求具体表现在以下几个方面: (1) 人—机交互。 (2) 共享主机。 (3) 便于用户上机。 9.什么是硬实时任务和软实时任务?是举例说明(p12) 实时系统(Real-Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。 (1) 硬实时任务(hard real-time task)。系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。如打印机,交换机等 (2) 软实时任务(Soft real-time task)。它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。如PDA系统 16. 设备管理有哪些功能?其主要任务是什么?(p21) 主要任务: 完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。 设备管理应具有缓冲管理、设备分配和设备处理,以及虚拟设备等功能。 补充1. 操作系统设计采用微内核技术有哪些优点? 微内核技术的优点: ?系统可扩充性- 新增服务会加到用户空间,内核不需要修改或改动极小。 ?移植性- 小内核便于移植到不同的硬件平台。 ?安全性和可靠性- 大多数服务是用户进程而不是系统进程。即使某个服务失败,不会影响操作系统其他部分。 2.简述研究操作系统有哪几种主要观点? ?资源管理的观点 ?进程的观点 ?虚机器观点 ?服务提供者观点

《现代操作系统第四版》 第六章 答案

第四章文件系统习题 Q1: 给出文件/etc/passwd的五种不同的路径名。(提示:考虑目录项”.”和”…”。) A: /etc/passwd /./etc/passwd /././etc/passwd /./././etc/passwd /etc/…/etc/passwd /etc/…/etc/…/etc/passwd /etc/…/etc/…/etc/…/etc/passwd /etc/…/etc/…/etc/…/etc/…/etc/passwd Q2:在Windows中,当用户双击资源管理器中列出的一个文件时,就会运行一个程序,并以这个文件作为参数。操作系统要知道运行的是哪个程序,请给出两种不同的方法。 A:Windows使用文件扩展名。每种文件扩展名对应一种文件类型和某些能处理这种类型的程序。另一种方式时记住哪个程序创建了该文件,并运行那个程序。Macintosh以这种方式工作。

Q3:在早期的UNIX系统中,可执行文件(a.out)以一个非常特別的魔数开始,这个数不是随机选择的。这些文件都有文件头,后面是正文段和数据段。为什么要为可执行文件挑选一个非常特别的魔数,而其他类型文件的第一个字反而有一个或多或少是随机选择的魔数? A:这些系统直接把程序载入内存,并且从word0(魔数)开始执行。为了避免将header作为代码执行,魔数是一条branch指令,其目标地址正好在header之上。按这种方法,就可能把二进制文件直接读取到新的进程地址空间,并且从0 开始运行。 Q4: 在UNIX中open系统调用绝对需要吗?如果没有会产生什么结果? A: open调用的目的是:把文件属性和磁盘地址表装入内存,便与后续调用的快速访问。 首先,如果没有open系统调用,每次读取文件都需要指定要打开的文件的名称。系统将必须获取其i节点,虽然可以缓存它,但面临一个问题是何时将i节点写回磁盘。可以在超时后写回磁盘,虽然这有点笨拙,但它可能起作用。 Q5:在支持顺序文件的系统中总有一个文件回绕操作,支持随机存取

操作系统复习提纲

第一章导论 作者:李静伟,武琳,梁龙,杨松,李川排版:大雄 操作系统的功能作用:1、作用:操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件,使用户与计算机之间的接口。2、功能:处理机管理、存储管理、设备管理、文件管理、用户接口。 操作系统的发展过程:1、手工操作时期:人工干涉,用户独占。2、早期批处理时期:出现了完成作业自动转换工作的程序叫监督程序,包括早期联机批处理、早期脱机批处理。3、多道批处理系统:在内存中同时存放多道程序在管理程序的控制下交替执行,用户独占。分时系统:用户与主机交互。实时系统:具有专用性及时性。4、现代操作系统(网络操作系统和分布式操作系统):有网络地址,提供网络服务,实现资源共享。 第二章计算机系统结构 计算机系统在硬件方面的保护:1、双重模式操作:用户模式、监督程序模式,双重模式操作为人们提供了保护操作系统和用户程序不受错误用户程序影响的手段。2、I/O保护:定义所有I/O指令为特权指令,所以用户不能直接发出I/O指令,必须通过操作系统来进行3、内存保护:对中断向量和中断服务程序进行保护,使用基址寄存器和界限寄存器4、CPU保护:使用定时器防止用户程序运行时间过长,操作系统在将控制权交给用户之前,应确保设置好定时器,以便产生中断。 第三章操作系统结构 操作系统的基本组成:进程管理、内存管理、文件管理、输入/输出系统管理、二级存储管理、联网、保护系统、命令解释系统。 系统调用的含义:系统调用提供了进程与操作系统之间的接口。分为五类:进程控制、文件管理、设备管理、信息维护、通信。 操作系统设计所采用的结构:1、简单结构:以较小、简单且功能有限的系统形式启动,但后来渐渐超过了其原来的范围,由于运行所用的硬件有限,它被编写成利用最小的空间提供最多的功能2、分层方法:优点:模块化,简化了调试和系统验证;缺点:涉及对层的仔细认真的定义的困难,效率较差3、微内核:优点:便与操作系统扩充,便于移植;缺点:关于哪些服务应保留在内核内,而哪些服务应在用户空间内实现,并没有定论。 第四章进程 进程的含义:进程是由数据结构以及在其上执行的程序组成,是程序在这个数据集合上的运行过程,也是操作系统进行资源分配和保护的基本单位。进程包含的内容:程序代码、程序计数器、堆栈段、数据段。进程和程序的联系和区别:1、程序是静态的,进程是动态的,程序是代码的集合,进程是程序的执行。2、程序是永久的,进程是短暂的。3、程序的组成是代码,进程的组成包括程序、数据、进程控制块。3、一个程序可对应多个进程,通过调用关系,一个进程也可包括多个程序。4、进程可生成其他进程,程序不能生成新的程序 并发与并行的区别:并行指两个或多个事件在同一时刻发生;并发指两个或多个事件在同一时间间隔内发生。在单处理机系统中,每一时刻仅能执行一个程序,所以从微观角度来看程序的并发执行时,它们是交替执行,即串行。程序间真正的并行只有在多处理机系统中才会出现。 进程的状态及转换条件:状态:新的,运行,等待,就绪,终止。转换条件:1、新建--〉就绪:就绪队列能够容纳新的进程2、就绪—〉运行:处于就绪状态的进程被调度程序选中,分配到CPU。 3、运行—〉阻塞:正在运行的进程因某种条件为满足而放弃对CPU的占用。 4、阻塞—〉就绪:处于阻塞状态的进程所等待的事情发生了。 5、运行—〉就绪:正在运行的进程用完了本次分配给它的CPU时间 6、运行—〉终止:正在运行的进程完成自己的工作或者由于发生某些事件而被异常中止。 进程控制块的作用及内容:(1)内容:进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、I/O状态信息。(2)作用:①PCB是进程组成中最关键的部分,每个进程都有惟一的PCB,操作系统对每个进程实施控制和管理,②系统创建一个进程时,为它创建一个PCB,当进程终止时,系统收回其PCB,该进程在系统中就不存在了,所以PCB是进程存在的惟一

现代操作系统第四版 第二章 答案

现代操作系统第二章进程与线程习题 1. 图2-2中给出了三个进程状态,在理论上,三个状态可以有六种转换,每个状态两个。但是,图中只给出了四种转换。有没有可能发生其他两种转换中的一个或两个 A:从阻塞到运行的转换是可以想象的。假设某个进程在I/O上阻塞,而且I/O结束,如果此时CPU空闲,该进程就可以从阻塞态直接转到运行态。而另外一种转换(从阻塞态到就绪态)是不可能的。一个就绪进程是不可能做任何会产生阻塞的I/O或者别的什么事情。只有运行的进程才能被阻塞。 2.假设要设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换。CPU需要哪些信息请描述用硬件完成进程切换的工作过程。 A:应该有一个寄存器包含当前进程表项的指针。当I/O结束时,CPU将把当前的机器状态存入到当前进程表项中。然后,将转到中断设备的中断向量,读取另一个过程表项的指针(服务例程),然后,就可以启动这个进程了。 3.当代计算机中,为什么中断处理程序至少有一部分是用汇编语言编写的 A:通常,高级语言不允许访问CPU硬件,而这种访问是必需的。例如,中断处理程序可能需要禁用和启用某个特定设备的中断服务,或者处理进程堆栈区的数据。另外,中断服务例程需要尽快地执行。(补充)主要是出于效率方面的考量。中断处理程序需要在尽量短的时间内完成所需的必要处理,尽量减少对线程/程序流造成的影响,因此大部分情况下用汇编直接编写,跳过了通用编译过程中冗余的适配部分。 4.中断或系统调用把控制转给操作系统时,为什么通常会用到与被中断进程的栈分离的内核栈 A:内核使用单独的堆栈有若干的原因。其中两个原因如下:首先,不希望操作系统崩溃,由于某些用户程序不允许足够的堆栈空间。第二,如果内核将数据保留在用户空间,然后从系统调用返回,那么恶意的用户可能使用这些数据找出某些关于其它进程的信息。 5.一个计算机系统的内存有足够的空间容纳5个程序。这些程序有一半的时间处于等待I/O的空闲状态。请问CPU时间浪费的比例是多少 A:^5 =%

现代操作系统--作业题整理演示教学

注:标有“操作系统第二版中文版答案”的答案是从操作系统第二版中文答案的电子书上摘抄的,剩下的是非标准答案(可以忽略~~)。有几道题没有写。以下的相关文档仅供参考!祝各位同学考试愉快! 第一章:引论(P44) 1、什么是多道程序设计? 答:多道程序就是CPU在内存中多个进程之间迅速切换。它一般被用来使CPU 保持忙碌,当有一个或多个进程进行I/O时。(操作系统第二版中文答案) 2、什么是SPOOLing?读者是否认为将来的高级个人计算机会把SPOOLing作为标准功能? 答:SPOOLing是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。(回答:什么是SPOOLing?百度的~~~)输入SPOOLing是作业中的读入技术,例如:从卡片在磁盘,这样当当前执行的进程完成时,将等候CPU。输出SPOOLing在打印之前首先复制打印文件,而非直接打印。在个人计算机上的输入SPOOLing很少,但输出SPOOLing非常普通。(操作系统第二版中文答案) 3、在早期的计算机中,每个字节的读写直接由CPU处理(既没有DMA)。对于多道程序而言这种组织方式有什么含义? 答:多道程序的主要原因是当等候I/O完成时CPU有事可做。如果没有DMA,I/O 操作时CPU被完全占有,因此,多道程序无利可图(至少在CPU利用方面)。无论程序操作多少I/O操作,CPU都是100%的忙碌。当然,这里是假定主要的延迟是数据复制时的等待。如果I/O很慢的话,CPU可以做其他工作。(操作系统第二版中文答案) 4、系列计算机的思想在20世纪60年代由IBM引入System/360大型机。现在这种思想已经消亡了还是继续活跃着? 答:它依然存在。例如:Interl以各种各样的不同的属性包括速度和能力消耗来产生Pentium I,II,III和4。所有这些机器的体系结构都是兼容的,仅仅是价格上的不同,这些都是家族思想的本质。(操作系统第二版中文答案) 5、缓慢采用GUI的一个原因是支持它的硬件的成本(高昂)。为了支持25行80列字符的单色文本屏幕应该需要多少视频RAM?对于1024*768像素24位色彩位图需要多少视频RAM?在1980年($5/KB)这些RAM的成本是多少?现在它的成本是多少? 答:25*80字符的单色文本屏幕需要2000字节的缓冲器。1024*768像素24位颜色的位图需要2359296字节。1980年代这两种选择将分别地耗费$10和$11520。而对于当前的价格。将少于$1/MB。(操作系统第二版中文答案) 8、考虑一个有两个CPU的系统,并且每个CPU有两个线程(超线程)。假设有三

现代操作系统试卷及其答案

1.一般用户更喜欢使用的系统是()。 A.手工操作 B.单道批处理 C.多道批处理 D.多用户分时系统 2. 与计算机硬件关系最密切的软件是()。 A.编译程序 B.数据库管理系统 C.游戏程序 D.OS 3. 现代OS具有并发性和共享性,是()的引入导致的。 A.单道程序 B. 磁盘 C. 对象 D.多道程序 4. 早期的OS主要追求的是()。 A.系统的效率 B.用户的方便性 C.可移植 D.可扩充性 5.()不是多道程序系统 A.单用户单任务 B.多道批处理系统 C.单用户多任务 D.多用户分时系统 6.()是多道操作系统不可缺少的硬件支持。 A.打印机 B.中断机构 C.软盘 D.鼠标 7. 特权指令可以在()执行。 A.目态 B.浏览器中 C.任意的时间 D.进程调度中 8. 没有了()计算机系统就启动不起来。 A.编译器 B.DBMS C.OS D.浏览器 9. 通道能够完成()之间的数据传输。 A.CPU与外设 B.内存与外设 C.CPU与主存 D.外设与外设 10. 操作系统的主要功能有()。 A.进程管理、存储器管理、设备管理、处理机管理 B.虚拟存储管理、处理机管理、进程调度、文件系统 C.处理机管理、存储器管理、设备管理、文件系统 D.进程管理、中断管理、设备管理、文件系统 11. 单处理机计算机系统中,()是并行操作的。 A.处理机的操作与通道的操作是并行的 B.程序与程序 C.主程序与子程序 D.用户程序与操作系统程序 12. 处理机的所有指令可以在()执行。 A.目态 B.浏览器中

C.任意的时间 D.系统态 13.()功能不是操作系统直接完成的功能。 A.管理计算机硬盘 B.对程序进行编译 C.实现虚拟存储器 D.删除文件 14. 要求在规定的时间内对外界的请求必须给予及时响应的OS是()。 A.多用户分时系统 B.实时系统 C.批处理系统时间 D.网络操作系统 15. 操作系统是对()进行管理的软件。 A.硬件 B.软件 C.计算机资源 D.应用程序 16.()对多用户分时系统最重要。 A.实时性 B.交互性 C.共享性 D.运行效率 17.()对多道批处理系统最重要。 A.实时性 B.交互性 C.共享性 D.运行效率 18. ( )对实时系统最重要。 A.及时性 B.交互性 C.共享性 D.运行效率 19. Windows98是()操作系统。 A.多用户分时 B.批处理系统 C.单用户多任务 D.单用单任务 20. 分布式系统与网络系统的主要区别是() A.并行性 B.透明性 C.共享性 D.复杂性 21. ( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A.网络 B.分布式 C.分时 D.实时 22. 如果分时操作系统的时间片一定,那么(),则响应时间越长。 A.用户数越少 B.用户数越多 C.内存越小 D.内存越大 23. 下面6个系统中,必须是实时操作系统的有()个。 ·航空订票系统 ·过程控制系统 ·机器口语翻译系统 ·计算机辅助系统

第二章-进程管理习题及答案

第二章进程管理习题及答案 一、填空题 1.进程的静态描述由三部分组成:① 、② 和③ 。 【答案】①PCB、②程序部分、③相关的数据结构集 【解析】PCB是系统感知进程的唯一实体。进程的程序部分描述了进程所要 完成的功能,而数据结构集是程序在执行时必不可少的工作区和操作对象。后两 部分是进程完成所需功能的物质基础。 2.进程存在的标志是。 【答案】进程控制块PCB 【解析】系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。 3.① 是现代操作系统的基本特征之一,为了更好地描述这一特征而 引入了 ② 这一概念。 【答案】①程序的并发执行,②进程 【解析】程序的并发执行和资源共享是现代操行系统的基本特征。程序的并 发执行使程序失去了程序顺序执行时所具有的封闭性和可再现性。在程序并发执 行时,程序这个概念不能反映程序并发执行所具有的特性,所以引入进程概念来 描述程序并发执行所具有的特点。 4.给出用于进程控制的四种常见的原语① 、② 、③ 和④ 。【答案】①创建原语、②撤消原语、③阻塞原语、④唤醒原语 【解析】进程控制是系统使用一些具有特定功能的程序段来创建、撤消进程 以及完成进程各状态间的转换,从而达到多个过程高效率地并行执行和协调,实 现资源共享的目的。把那些在管态下执行的具有特定功能的程序段称为原语。 5.进程被创建后,最初处于① 状态,然后经② 选中后进入③ 状态。 【答案】①就绪,②进程调度程序,③运行 【解析】进程的从无到有,从存在到消亡是由进程创建原语和撤消原语完成的。被创建的进程最初处于就绪状态,即该进程获得了除处理机以外的所有资源,处于准备执行的状态;从就绪状态到运行状态的转换是由进程调度程序来完成的。 6.进程调度的方式通常有① 和② 方式两种。 【答案】①可剥夺、②非剥夺 【解析】所谓可剥夺方式,是指就绪队列中一旦有优先级高于当前运行进程 的优先级的进程存在时,便立即发生进程调度,转让处理机。而非剥夺方式则是指:即使在就绪队列中存在有优先级高于当前运行进程的进程,当前进程仍将继 续占有处理机,直到该进程完成或某种事件发生(如I/O事件)让出处理机。 7.轮转法主要是用于① 的调度算法,它具有较好的② 时间, 且对每个进程来说都具有较好的③ 性。

对现代计算机操作系统的发展趋势 精

现代计算机操作系统的发展趋势一、什么是操作系统操作系统(Operating System,简称OS是管理计算机硬件的软件。作为介于计算机用户和计算机硬件之间的中间层,操作系统为应用程序提供了基础,同时也是计算机系统的核心与基石。操作系统通常是最靠近硬件的一层系统软件,它把硬件裸机改造成为功能完善的一台虚拟机,使得计算机系统的使用和管理更加方便,计算机资源的利用效率更高,上层的应用程序可以获得比硬件提供的功能更多的支持。使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows2000、Netware等。二、操作系统的发展 1、大型机时代早期的操作系统非常多样化,生产商生产出针对各自硬件的系统。每一个操作系统都有不同的命令模式、操作过程和调试工具,即使它们来自同一个生产商。最能反映这一情况的是,厂家每生产一台新的机器都会配备一套操作系统。尽管这些机器在性能上有明显差异,但它们有统一的操作系统—— OS/360。 2、小型机和UNIX的崛起 UNIX操作系统是由AT&T公司开发出来的,后来成为开发小型操作系统的起点,并成为操作系统的典范。早期的操作系统是可以被用户所利用的功能的集合。60年代末70年代初,几种硬件支持相似的或提供端口的软件可在多种系统上运行早期的系统已经利用微程序来在它们的系统上实现功能。 3、个人计算机时代微型处理器的发展使计算机的应用普及至中小企业和个人爱好者。而计算机的普及又推动了硬件组件公共接口的发展,并逐渐地要求有一种“标准”的操作系统去控制它们。在早期,主要的操作系统是8080 CPU用的 CP/M-80,它建立在数家公司针对PDP-11架构的操作系统的基础上;在此基础上又产生了MS-DOS。这些计算机在ROM都有个小小的启动程序,可以把操作系统从磁盘装载到内存;IBM-PC系列的BIOS是这一思想的延伸。随着显示设备和处理器成本的降低,很多操作系统都开始提供图形用户界面。如:UNIX提供的 X Window系统、微软的Windows系统、苹果的Mac系统等。三、现代操作系统的发展(一)微内核操作系统对于一个操作系统而言,内核通常是系统中最核心的

浅谈计算机操作系统现状与发展

浅谈计算机操作系统现状与发展 摘要:操作系统(Operating System,简称OS)是计算机系统的重要组成部分,是一个重要的系统软件,它负责管理计算机系统的硬、软件资源和整个计算机的工作流程,协调系统部件之间,系统与用户之间、用户与用户之间的关系。随着操作系统的新技术的不断出现,功能不断增加。操作系统作为一个标准的套装软件必须满足尽可能多用户的需要,于是系统不断膨胀,功能不断增加,并逐渐形成从开发工具到系统工具再到应用软件的一个平台环境。更能满足用户需求。本文主要针对操作系统在计算机发展中的核心地位和技术变革作出了分析,同时对计算机操作系统的功能,发展和分类做了简单的分析和阐述,以及对计算机未来发展趋势做了一个预测。 关键词:计算机操作系统,发展历程,新技术,发展趋势 Talking about the Present Situation and Development of Computer Operating System Abstract: Operating system (OS) is an important part of the computer system, is an important system software, which is responsible for managing the computer system hardware and software resources and the entire computer workflow, coordination between system components, systems and users Between the user and the user relationship. With the continuous emergence of the new technology of the operating system, the function is increasing. The operating system as a standard suite of software must meet the needs of as many users as possible, so the system is constantly expanding, the function is increasing, and gradually formed from the development tools to the system tools to the application software to a platform environment. More able to meet user needs. This paper mainly analyzes the core position and technological change of the computer in the development of the computer system, and makes a simple analysis and elaboration of the function, development and classification of the computer operating system, and makes a prediction of the future development trend of the computer.

江西理工大学-现代操作系统考试复习题

第一章:引论 1.系统调用与中断的概念。 作业题解 第一章引论 PE1-14. 陷阱和中断的主要差别是什么? 答:陷阱是由程序造成的,并且与它同步。如果程序一而再地被运行,陷阱将总在指令流中相同的位置的精确发生。而中断则是由外部事件和其他时钟造成的,不具有重复性。 PE1-20. 有一个文件,其文件描述符是fd,内含下列字节序列:3,1,4,1,5,9,2,6,5,3,5.有如下系统调用: lseek (fd, 3, SEEK_SET); // 从文件开头偏移量为3,此时将读写位置移到文件1,5,9,2的1处 Read(fd, &buffer, 4); 其中lseek调用寻找文件中的字节3.在读操作完成之后,buffer中的内容是什么? 答:包含字节:1,5,9,2。 PE1-22. 块特殊文件和字符特殊文件的基本差别是什么? 答:块特殊文件包含被编号的块,每一块都可以独立地读取或者写入。而且可以定位于任何块,并且开始读出或写入。这些对于字符特殊文件是不可能的。 PE1-29. 下面是单位转换练习: (a)一微年是多少秒? (b)微米常称micron.那么gigamicron是多长? (c)1TB存储器中有多少字节? (d)地球的质量是6000 yottagram,换算成kilogram是多少? 答:这些都可以直接转换: (a) micro year = 10-6X 365 X 24 X 3600 = 31.536 sec。 (b) 1km或者1000。 (c)有240字节,也就是1,099,511,627,776 字节。 (d)它是6 X 1024公斤。 第二章:进程与线程 1.进程的概念。 答:进程是对正在运行的程序的一个抽象。是容纳运行一个程序所需要的所有信息的容器。也可以说一个进程就是就是一个正在运行的实例。 2.进程的三种基本状态。 运行态(该时刻进程实际占用CPU)。 就绪态(可运行,但因为其他进程正在运行而暂时停止)。 阻塞态(除非某种外部事件发生,否则进程不能运行)。

现代操作系统(原书第3版)部分课后答案-第4章

1. 这些系统直接把程序载入内存,并且从word0(魔数)开始执行。为了避免将header作为代码执行,魔数是一条branch指令,其目标地址正好在header之上。按这种方法,就可能把二进制文件直接读取到新的进程地址空间,并且从0开始运行。 5. rename 调用不会改变文件的创建时间和最后的修改时间,但是创建一个新的文件,其创建时间和最后的修改时间都会改为当前的系统时间。另外,如果磁盘满,复制可能会失败。 10. 由于这些被浪费的空间在分配单元(文件)之间,而不是在它们内部,因此,这是外部碎片。这类似于交换系统或者纯分段系统中出现的外部碎片。 11. 传输前的延迟是9ms,传输速率是2^23Bytes/s,文件大小是2^13Bytes,故从内存读取或写回磁盘的时间都是9+2^13/2^23=9.977ms,总共复制一个文件需要9.977*2=19.954ms。为了压缩8G磁盘,也就是2^20个文件,每个需要19.954ms,总共就需要20,923 秒。因此,在每个文件删除后都压缩磁盘不是一个好办法。 12. 因为在系统删除的所有文件都会以碎片的形式存在磁盘中,当碎

片到达一定量磁盘就不能再装文件了,必须进行外部清理,所以紧缩磁盘会释放更多的存储空间,但在每个文件删除后都压缩磁盘不是一个好办法。 15. 由于1024KB = 2^20B, 所以可以容纳的磁盘地址个数是2^20/4 = 2^18个磁盘地址,间接块可以保存2^18个磁盘地址。与 10 个直接的磁盘地址一道,最大文件有 262154 块。由于每块为 1 MB,最大的文件是262154 MB。 19. 每个磁盘地址需要D位,且有F个空闲块,故需要空闲表为DF位,采用位图法则需要B位,当DF

对现代计算机操作系统的发展趋势精

对现代计算机操作系统的 发展趋势精 Newly compiled on November 23, 2020

现代计算机操作系统的发展趋势一、什么是操作系统操作系统(Operating System,简称OS是管理计算机硬件的软件。作为介于计算机用户和计算机硬件之间的中间层,操作系统为应用程序提供了基础,同时也是计算机系统的核心与基石。操作系统通常是最靠近硬件的一层系统软件,它把硬件裸机改造成为功能完善的一台虚拟机,使得计算机系统的使用和管理更加方便,计算机资源的利用效率更高,上层的应用程序可以获得比硬件提供的功能更多的支持。使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows2000、Netware等。二、操作系统的发展 1、大型机时代早期的操作系统非常多样化,生产商生产出针对各自硬件的系统。每一个操作系统都有不同的命令模式、操作过程和调试工具,即使它们来自同一个生产商。最能反映这一情况的是,厂家每生产一台新的机器都会配备一套操作系统。尽管这些机器在性能上有明显差异,但它们有统一的操作系统—— OS/360。 2、小型机和UNIX的崛起 UNIX操作系统是由AT&T公司开发出来的,后来成为开发小型操作系统的起点,并成为操作系统的典范。早期的操作系统是可以被用户所利用的功能的集合。60年代末70年代初,几种硬件支持相似的或提供端口的软件可在多种系统上运行早期的系统已经利用微程序来在它们的系统上实现功能。 3、个人计算机时代微型处理器的发展使计算机的应用普及至中小企业和个人爱好者。而计算机的普及又推动了硬件组件公共接口的发展,并逐渐地要求有一种“标准”的操作系统去控制它们。在早期,主要的操作系统是8080 CPU用的 CP/M-80,它建立在数家公司针对PDP-11架构的操作系统的基础上;在此基础上又产生了MS-DOS。这些计算机在ROM都有个小小的启动程序,可以把操作系统从磁盘装载到内存;IBM-PC系列的BIOS是这一思想的延伸。随着显示设备和处理器成本的降低,很多操作系统都开始提供图形用户界面。如:UNIX提供的 X Window系统、微软的Windows系统、苹果的Mac系统等。三、现代操作系统的发展(一)微内核操作系统对于一个操作系统而言,内核通常是系统中最核心的

(完整版)操作系统期末试卷(含答案)

一、选择题 1、在现代操作系统中引入了(),从而使并发和共享成为可能。 A.单道程序 B. 磁盘 C. 对象 D.多道程序 2、( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A.网络 B.分布式 C.分时 D.实时 3、从用户的观点看,操作系统是()。 A. 用户与计算机硬件之间的接口 B.控制和管理计算机资源的软件 C. 合理组织计算机工作流程的软件 D.计算机资源的的管理者 4、当CPU处于管态时,它可以执行的指令是()。 A. 计算机系统中的全部指令 B. 仅限于非特权指令 C. 仅限于访管指令 D. 仅限于特权指令 5、用户在程序中试图读取某文件的第100个逻辑块时,使用操作系统提供的()接口。 A. 系统调用 B.图形用户接口 C.原语 D.键盘命令 6、下列几种关于进程的叙述,()最不符合操作系统对进程的理解? A.进程是在多程序并行环境中的完整的程序。 B.进程可以由程序、数据和进程控制块描述。 C.线程是一种特殊的进程。 D.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 7、当一个进程处于()状态时,称其为等待(或阻塞)状态。 A. 它正等待中央处理机 B. 它正等待合作进程的一个消息 C. 它正等待分给它一个时间片 D. 它正等待进入内存 8、一个进程释放一种资源将有可能导致一个或几个进程()。 A.由就绪变运行 B.由运行变就绪 C.由阻塞变运行 D.由阻塞变就绪 9、下面关于线程的叙述中,正确的是()。 A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持。 B.线程是资源的分配单位,进程是调度和分配的单位。 C.不管系统中是否有线程,进程都是拥有资源的独立单位。 D.在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。 10、设有3个作业,它们同时到达,运行时间分别为T1、T2和T3,且T1≤T2≤T3,若它们在单处理机系统中按单道运行,采用短作业优先调度算法,则平均周转时间为()。 A. T1+T2+T3 B. (T1+T2+T3)/3 C. T1+T2/3+2*T3/3 D.T3/3+2*T2/3+T1 11、在下面的I/O控制方式中,需要CPU干预最少的方式是()。 A.程序I/O方式B.中断驱动I/O控制方式C.直接存储器访问DMA控制方式D.I/O通道控制方式 12、有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则

相关文档
最新文档