现代操作系统作业题整理文档格式.doc
《现代操作系统作业题整理文档格式.doc》由会员分享,可在线阅读,更多相关《现代操作系统作业题整理文档格式.doc(14页珍藏版)》请在冰豆网上搜索。
从卡片在磁盘,这样当当前执行的进程完成时,将等候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以各种各样的不同的属性包括速度和能力消耗来产生PentiumI,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有两个线程(超线程)。
假设有三个线程P0,P1,P2,分别以运行时间5ms,10ms,20ms开始。
运行这些程序需要多少时间?
假设这三个程序都是100%限于CPU,在运行时无阻塞,并且一旦设定就不改变CPU。
这些程序的运行时间因程序的组合的不同而不同,一共有以下4种情况:
1)(P0,P1)andP2=>
(5ms+10ms)and20ms=>
20ms
2)(P0,P2)andP1=>
(5ms+20ms)and10ms=>
25ms
3)(P1,P2)andP0=>
(10ms+20ms)and50ms=>
30ms
4)(P0,P1,P2)=>
(5ms+10ms+20ms)=>
35ms
9、一台计算机有一个四级流水线,每一级都花费相同的时间执行其工作,即1ns。
这台机器每秒可执行多少条指令?
从管道中每纳秒出现一条指令。
意味着该机器每秒执行十亿条指令。
它对于管道有多少个阶段不予理睬,即使是10-阶段管道,每阶段1nsec,也将执行对每秒十亿条指令。
因为无论哪种情况,管道末端输出的指令数都是一样的。
10、假设一个计算机系统有高速缓存、内存(RAM)以及磁盘,操作系统用虚拟内存。
读取缓存中的一个词需要2ns,RAM需要10ns,硬盘需要10ms。
如果缓存的命中率是95%,内存的是(缓存失效时)99%,读取一个词的平均时间是多少?
平均访问时间=2ns*0.95+10ns*0.99*(1-0.95)+10ms*(1-0.99)*(1-0.95)=5002.395ns.
14、陷阱和中断的主要差别是什么?
陷阱是由程序造成的,并且与它同步。
如果程序一而再地被运行,陷阱将总在指令流中相同的位置的精确发生。
而中断则是由外部事件和其他时钟造成的,不具有重复性。
20、有一个文件,其文件描述符是fd,内含下列字节序列:
3,1,4,1,5,9,2,6,5,3,5。
有如下系统调用:
lseek(fd,3,SEEK_SET);
read(fd,&
buffer,4);
其中lseek调用寻找文件中的字节3。
在读取操作完成之后,buffer中的内容是什么?
包含字节:
1,5,9,2.(操作系统第二版中文答案)
22、块特殊文件和字符特殊文件的基本差别是什么?
块特殊文件包含被编号的块,每一块都可以独立地读写或者写入。
而且可以定位于任何块,并且开始读入或写入。
这些对于字符特殊文件是不可能的。
25、对程序员而言,系统调用就像对其他库过程的调用一样。
有无必要让程序员了解哪一个库过程导致了系统调用?
在什么情形下,为什么?
就程序逻辑而言,库例程调用哪个系统调用是没有关系的。
但是,如果需要考虑性能问题,无需系统调用就可以完成的任务将使进程运行更快。
所有的系统调用都会导致用户环境和内核环境的切换开销。
更进一步,在多用户系统中,在系统调用完成之前,操作系统可能调度到其他的进程,这将使得调用过程的处理更加迟缓。
1、于操作系统,下列叙述不正确的是( )。
A、管理系统资源 B、控制程序执行
C、改善人机界面 D、提高用户软件运行速度
2、以下哪个系统不是基本的操作系统( ).
A、分时操作系统 B、实时操作系统
C、分布式操作系统 D、多道批处理系统
3、计算机系统由__________和__________组成。
4、分时操作系统具有的四个主要特点是同时性、_________、__________和_________。
5、多道程序设计的根本目标是()。
6、多项选择:
操作系统设计目标是( )。
A、管理系统资源 B、提高安全性
C、方便用户使用系统 D、使系统能高效工作
7、在( )的控制下,计算机系统能及时处理由过程控制反馈的数据,并作出响应。
A、批处理操作系统 B、实时操作系统
C、分时操作系统 D、多处理机操作系统
8、多项选择:
引入多道程序设计的主要目的在于( )。
A、提高实时响应速度 B、充分利用处理机,减少机空闲时间
C、有利于代码共享 D、充分利用外围设备
E、减少存储器碎片
9、计算机发展到第三代,操作系统已成为软件的一个重要分支,最早的操作系统是()。
10、设计实时操作时( )不是主要的追求目标。
A、安全可靠 B、资源利用率 C、及时响应 D、快速处理
答案:
1、D 2、C 3、硬件子系统 软件子系统 4、独立性 及时性 交互性
5、提高计算机系统的工作效率
6、C D
7、B
8、BD
9、批处理操作系统
10、B
第二章:
进程与线程(P95)
2、假设要设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换。
CPU需要哪些信息?
请描述用硬件完成进程切换的过程。
应该有一个寄存器包含当前进程表项的指针。
当I/O结束时,CPU讲当前的机器状态存入当前进程表项中,然后,将转到中断设备的中断向量,读取另一个过程表项的指针(服务例程)。
然后,就可以启动这个进程了。
3、在所有当代计算机中,至少有部分中断处理程序是用汇编语言编写的。
为什么?
通常高级语言不允许CPU硬件,而这种访问是必须的。
中断处理程序可能需要禁用和启动某个特定的设备服务,或者处理进程堆栈区的数据。
另外,中断服务例程需要尽快地执行。
4、当中断或系统调用把控制转给操作系统时,通常将内核堆栈和被中断进程的运行堆栈分离。
内核使用单独的堆栈有若干的原因。
其中两个原因如下:
首先,不希望操作系统崩溃,由于某些用户进程不允许足够的堆栈空间。
第二,如果内核将数据保留在用户空间,然后从操作系统调用返回,那么恶意的用户可能使用这些数据找出某些关于它进程的信息。
5、多个作业能够并行运行,比它们顺序执行完成的要快。
假设有两个作业同时开始执行,每个需要10分钟的CPU时间。
如果顺序执行,那么最后一个作业需要多少时间可以完成?
如果并行执行又需要多少时间?
假设I/O等待占50%。
CPU利用率计算公式:
CPU利用率=1-p^n.设运行作业所需要的时间为T
顺序执行:
T=(10+10)/0.5=40(分钟);
并行执行:
p=0.5,n=2,CPU利用率=1-0.5^2=0.75,则T=(10+10)/0.75=26.7(分钟).
7、如果创建一个多线程进程,若子进程得到全部父进程线程的副本,会出现问题。
假如原有线程之一正在等待键盘输入,现在则成为两个线程在等待键盘输入,每个进程有一个。
在单线程进程中也会发生这种问题吗?
不会。
如果单线程进程在键盘上阻塞,就不能创建子进程。
9、在本章中,我们介绍了多线程的web服务器,说明它比单线程服务器和有限状态机服务器更好的原因。
存在单线程服务器更好一些的情形吗?
请给出一个例子。
是的。
如果服务器是完全CPU绑定的,则不需要多线程。
这只会增加不必要的复杂性。
假设某个百万人口区域的电话查号系统(类似于114),如果每个(姓名,电话号码)记录为64个字符,整个的数据库则为64MB,这就是很容易全部读入服务器内存中以提高快速的查询。
11、为什么线程要通过调用thread_yield自愿放弃CPU?
毕竟,由于没有周期性的时钟中断,线程可以不交回CPU。
进程中线程是相互协作的,而不是相互独立的。
如果放弃了是为了应用程序,那么线程将放弃CPU。
毕竟,通常是同一个程序员写的代码。
12、线程可以被时钟中断抢占吗?
如果可以,在什么情形下可以?
如果不可以,为什么不可以?
用户级线程不能被时中断抢占,除非整个进程的时间片用完。
内核级线程可以单独地被剥夺。
在后一种情况下,如果线程运行过久,时钟将的中断当前的进程,因而当前线程也被中断。
内核可以自由地从同一个进程中选取其他线程运行。
20、在2.3.4节中,描述了一种有高级优先级进程H和低级优先级进程L的情况,导致了H陷入死循环。
若采用轮换调度算法而不是优先级调度算法,会发生同样的问题吗?
请给予讨论。
对于时间片轮转调度,该方法不会出现问题。
L迟早会运行,而且最终将离开其临界区。
对于优先级调度,L永远得不到运行;
而对于时间片轮转,它将周期性地得到一时间片,因此就有机会离开其临界区。
23、两个进程在一个共享存储器多处理器(即两个CPU)当它们要共享一个公共内存时,图2-23所示的采