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

合集下载

现代操作系统课后习题答案之欧阳索引创编

现代操作系统课后习题答案之欧阳索引创编

第二章进程管理欧阳家百(2021.03.07)第一部分教材习题(P81)3、为什么程序并发执行会产生间断性特征?(P36)4、程序并发执行,为何会失去封闭性和可再现性?(P37)【解】程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。

同时由于失去了封闭性,也将导致其再失去可再现性。

程序在并发执行时,由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。

5、在操作系统中为什么要引入进程概念?(P37)它会产生什么样的影响?【解】在操作系统中引入进程的概念,是为了实现多个程序的并发执行。

传统的程序不能与其他程序并发执行,只有在为之创建进程后,才能与其他程序(进程)并发执行。

这是因为并发执行的程序(即进程)是“停停走走”地执行,只有在为它创建进程后,在它停下时,方能将其现场信息保存在它的PCB中,待下次被调度执行是,再从PCB中恢复CPU现场并继续执行,而传统的程序却无法满足上述要求。

建立进程所带来的好处是使多个程序能并发执行,这极大地提高了资源利用率和系统吞吐量。

但管理进程也需付出一定的代价,包括进程控制块及协调各运行机构所占用的内存空间开销,以及为进行进程间的切换、同步及通信等所付出的时间开销。

6、试从动态性、并发性和独立性上比较进程和程序?(P37)【解】(1)动态性:进程既然是进程实体的执行过程,因此,动态性是进程最基本的特性。

动态性还表现为:“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡”。

可见,进程有一定的生命期。

而程序只是一组有序指令的集合,并存放在某种介质上,本身并无运动的含义,因此,程序是个静态实体。

(2)并发性:所谓进程的并发,指的是多个进程实体,同存于内存中,能在一段时间内同时运行。

并发性是进程的重要特征,同时也成为OS的重要特征。

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

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

现代操作系统第二章进程与线程习题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的空闲状态。

操作系统第四版作业参考答案

操作系统第四版作业参考答案

操作系统作业参考答案第一章操作系统引论1、设计现代OS的主要目标是什么?(1)有效性:提高系统资源利用率和呑吐量。

(2)方便性:使计算机系统更容易使用。

(3)可扩充性:便于增加新的功能和模块。

(4)开放性:遵循标准规范,便于实现互连。

2、OS的作用可表现为哪几个方面?(1)OS作为用户与计算机硬件系统之间的接口;(2)OS作为计算机系统资源的管理者;(3)OS实现了对计算机资源的抽象.3、为什么说OS实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。

OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。

5、何谓脱机I/O和联机I/O?答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。

该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。

而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。

7、实现分时系统的关键问题是什么?答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。

解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。

针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。

8、为什么要引入实时OS?答:实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

引入实时OS 是为了满足应用的需求,更好地满足实时控制领域和实时信息处理领域的需要。

现代操作系统课后答案

现代操作系统课后答案

现代操作系统第一章答案1.操作系统必须向用户提供一台扩展(即,实际上)的机器,和它必须管理I/O设备和其它系统资源。

2.多道程序就是CPU在内存中多个进程之间迅速切换。

它一般被用来使CPU保持忙碌,当有一个或多个进程进行I/O时。

3.输入spooling是作业中的读入技术,例如,从卡片在磁盘,这样当当前执行的进程完成时,将等候CPU。

输出spooling在打印之前首先复制打印文件,而非直接打印。

在个人计算机上的输入spooling很少,但是输出spooling非常普遍。

4.多道程序的主要原因是当等候I/O完成时CPU有事可做。

如果没有DMA,I/O操作时CPU 被完全占有,因此,多道程序无利可图(至少在CPU利用方面)。

无论程序作多少I/O操作,CPU 都是100%的忙碌。

当然,这里假定主要的延迟是数据复制时的等待。

如果I/O很慢的话,CPU 可以做其它工作。

5.第二代计算机没有必要的硬件保护操作系统免受恶意的用户程序的侵害。

6.它依然存在。

例如,Intel以各种各样的不同的属性包括速度和能力消耗来生产Pentium I, II, III 和4。

所有这些机器的体系结构都是兼容的,仅仅是价格上的不同,这些都是家族思想的本质。

7. 25 X 80字符的单色文本屏幕需要2000字节的缓冲器。

1024 X 768象素24位颜色的位图需要2359296字节。

1980年代这两种选择将分别地耗费$10和$11520。

而对于当前的价格,将少于$1/MB。

8.选择(a),(c),(d)应该被限制在内核模式。

9.个人的计算机系统总是交互式的,而且经常只有一个用户。

而大型机系统几乎总有许多用户强调批处理或者分时。

除了对所有资源的有效使用,大型机系统上的保护更加重要。

10.从管道中每纳秒出现一条指令。

意味着该机器每秒执行十亿条指令。

它对于管道有多少个阶段全然不予理睬。

即使是10-阶段管道,每阶段1 nsec,也将执行对每秒十亿条指令。

现代操作系统第二章习题

现代操作系统第二章习题

现代操作系统第二章习题14、在用户空间实现线程,其最大的优点是什么,最大的缺点是什么, 答:在用户空间实现线程,其最大的优点是线程切换至少比陷入内核要快一个数量级;最大的缺点是程序员通常在经常发生线程阻塞的应用中才希望使用多个线程。

21、在使用线程的系统中,若使用用户级线程,是每个线程一个堆栈还是每个进程一个堆栈,如果使用内核级线程情况又如何呢,请给予解释。

答:在使用线程的系统中,无论使用用户级线程还是使用内核级线程,都有专用的线程表来管理线程,专用的进程表管理进程;而且,进程表总是存放在内核空间中。

不同的是用户级线程中线程表存放在用户空间中,内核对其一无所知;内核级线程中线程表存放在内核空间中,所有能够阻塞线程的调用都已系统调用的形式实现。

37、有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,平均公平CPU时间为(10+6+2+4+8)/5=6,如下表所示,平均进程周转时间为(28+12+14+18+30)/5=20.4作业运行时间段周转时间 A(10) 0-6 24-28 28B(6) 6-12 12C(2) 12-14 14D(4) 14-18 18E(8) 18-24 28-30 30对于B,如下表所示,平均进程周转时间为(24+6+26+30+14)/5=20作业优先级运行时间段周转时间 A(10) 3 14-24 24 B(6) 5 0-6 6 C(2) 2 24-26 26 D(4) 1 26-30 30 E(8) 4 6-14 14 对于C,如下表所示,平均进程周转时间为(10+16+18+22+30)/5=19.2 作业运行时间段周转时间 A(10) 0-10 10 B(6) 10-16 16C(2) 16-18 18D(4) 18-22 22E(8) 22-30 30对于D,如下表所示,平均进程周转时间为(30+12+2+6+20)/5=14作业运行时间段周转时间 A(10) 20-30 30B(6) 6-12 12C(2) 0-2 2D(4) 2-6 6E(8) 12-20 2041、一个软实时系统有4个周期时间,其周期分别为50ms,100ms,200ms和250ms。

计算机操作系统(第四版)课后习题答案第二章,精品资料

计算机操作系统(第四版)课后习题答案第二章,精品资料

第二章1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。

2. 画出下面四条诧句的前趋图:S1=a:=x+y;S2=b:=z+1;S3=c:=a-b;S4=w:=c+1;答:其前趋图为:3. 为什么程序并发执行会产生间断性特征?程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。

4. 程序并发执行时为什么会失去封闭性和可再现性?因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。

而程序一旦失去了封闭性也会导致其再失去可再现性。

5. 在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。

影响: 使程序的并发执行得以实行。

6. 试从动态性,并发性和独立性上比较进程和程序?a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。

b. 并发性是进程的重要特征,同时也是OS的重要特征。

引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。

c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。

而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。

7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标志?a. PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。

PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。

计算机操作系统(第四版)课后习题答案第二章

计算机操作系统(第四版)课后习题答案第二章

计算机操作系统(第四版)课后习题答案第二章第二章1. 什么是前趨圖?為什么要引入前趨圖?答:前趨圖(Precedence Graph)是一個有向無循環圖,記為DAG(Directed Acyclic Graph),用于描述進程之間執行的前后關系。

2. 畫出下面四條詫句的前趨圖:S1=a:=x+y;S2=b:=z+1;S3=c:=a-b;S4=w:=c+1;答:其前趨圖為:3. 為什么程序并發執行會產生間斷性特征?程序在并發執行時,由于它們共享系統資源,以及為完成同一項任務而相互合作,致使在這些并發執行的進程之間,形成了相互制約的關系,從而也就使得進程在執行期間出現間斷性。

4. 程序并發執行時為什么會失去封閉性和可再現性?因為程序并發執行時,是多個程序共享系統中的各種資源,因而這些資源的狀態是由多個程序來改變,致使程序的運行失去了封閉性。

而程序一旦失去了封閉性也會導致其再失去可再現性。

GAGGAGAGGAFFFFAFAF5. 在操作系統中為什么要引入進程概念?它會產生什么樣的影響?為了使程序在多道程序環境下能并發執行,并能對并發執行的程序加以控制和描述,從而在操作系統中引入了進程概念。

影響: 使程序的并發執行得以實行。

6. 試從動態性,并發性和獨立性上比較進程和程序?a. 動態性是進程最基本的特性,可表現為由創建而產生,由調度而執行,因得不到資源而暫停執行,以及由撤銷而消亡,因而進程由一定的生命期;而程序只是一組有序指令的集合,是靜態實體。

b. 并發性是進程的重要特征,同時也是OS的重要特征。

引入進程的目的正是為了使其程序能和其它建立了進程的程序并發執行,而程序本身是不能并發執行的。

c. 獨立性是指進程實體是一個能獨立運行的基本單位,同時也是系統中獨立獲得資源和獨立調度的基本單位。

而對于未建立任何進程的程序,都不能作為一個獨立的單位來運行。

7. 試說明PCB的作用?為什么說PCB是進程存在的唯一標志?a. PCB是進程實體的一部分,是操作系統中最重要的記錄型數據結構。

现代操作系统课后习题答案之欧阳与创编

现代操作系统课后习题答案之欧阳与创编

第二章进程管理第一部分教材习题(P81)3、为什么程序并发执行会产生间断性特征?(P36)4、程序并发执行,为何会失去封闭性和可再现性?(P37)【解】程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。

同时由于失去了封闭性,也将导致其再失去可再现性。

程序在并发执行时,由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。

5、在操作系统中为什么要引入进程概念?(P37)它会产生什么样的影响?【解】在操作系统中引入进程的概念,是为了实现多个程序的并发执行。

传统的程序不能与其他程序并发执行,只有在为之创建进程后,才能与其他程序(进程)并发执行。

这是因为并发执行的程序(即进程)是“停停走走”地执行,只有在为它创建进程后,在它停下时,方能将其现场信息保存在它的PCB中,待下次被调度执行是,再从PCB中恢复CPU现场并继续执行,而传统的程序却无法满足上述要求。

建立进程所带来的好处是使多个程序能并发执行,这极大地提高了资源利用率和系统吞吐量。

但管理进程也需付出一定的代价,包括进程控制块及协调各运行机构所占用的内存空间开销,以及为进行进程间的切换、同步及通信等所付出的时间开销。

6、试从动态性、并发性和独立性上比较进程和程序?(P37)【解】(1)动态性:进程既然是进程实体的执行过程,因此,动态性是进程最基本的特性。

动态性还表现为:“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡”。

可见,进程有一定的生命期。

而程序只是一组有序指令的集合,并存放在某种介质上,本身并无运动的含义,因此,程序是个静态实体。

(2)并发性:所谓进程的并发,指的是多个进程实体,同存于内存中,能在一段时间内同时运行。

并发性是进程的重要特征,同时也成为OS的重要特征。

引入进程的目的也正是为了使其程序能和其它进程的程序并发执行,而程序是无法并发执行的。

计算机操作系统(第四版)---第二章进程的描述与控制课后习题答案

计算机操作系统(第四版)---第二章进程的描述与控制课后习题答案

计算机操作系统(第四版)---第⼆章进程的描述与控制课后习题答案1.什么是前趋图?为什么要引⼊前趋图?答:前趋图(Precedence Graph)是⼀个有向⽆循环图,记为DAG(DirectedAcyclicGraph),⽤于描述进程之间执⾏的前后关系。

2.画出下⾯四条语句的前趋图:S1:a=x+y; S2:b=z+1; S3:c=a – b;S4:w=c+1;3. 什么程序并发执⾏会产⽣间断性特征?答:程序在并发执⾏时,由于它们共享系统资源,为完成同⼀项任务需要相互合作,致使这些并发执⾏的进程之间,形成了相互制约关系,从⽽使得进程在执⾏期间出现间断性。

4.程序并发执⾏时为什么会失去封闭性和可再现性?答:程序并发执⾏时,多个程序共享系统中的各种资源,因⽽这些资源的状态由多个程序改变,致使程序运⾏失去了封闭性,也会导致其失去可再现性。

5.在操作系统中为什么要引⼊进程概念?它会产⽣什么样的影响?答:为了使程序在多道程序环境下能并发执⾏,并对并发执⾏的程序加以控制和描述,在操作系统中引⼊了进程概念。

影响: 使程序的并发执⾏得以实⾏。

6.试从动态性,并发性和独⽴性上⽐较进程和程序?答:(1)动态性是进程最基本的特性,表现为由创建⽽产⽣,由调度⽽执⾏,因得不到资源⽽暂停执⾏,由撤销⽽消亡。

进程有⼀定的⽣命期,⽽程序只是⼀组有序的指令集合,是静态实体。

(2)并发性是进程的重要特征,同时也是OS 的重要特征。

引⼊进程的⽬的正是为了使其程序能和其它进程的程序并发执⾏,⽽程序是不能并发执⾏的。

(3)独⽴性是指进程实体是⼀个能独⽴运⾏的基本单位,也是系统中独⽴获得资源和独⽴调度的基本单位。

对于未建⽴任何进程的程序,不能作为独⽴单位参加运⾏。

7.试说明PCB 的作⽤,为什么说PCB 是进程存在的惟⼀标志?答:PCB 是进程实体的⼀部分,是操作系统中最重要的记录型数据结构。

作⽤是使⼀个在多道程序环境下不能独⽴运⾏的程序,成为⼀个能独⽴运⾏的基本单位,成为能与其它进程并发执⾏的进程。

现代操作系统课后习题答案之欧阳理创编

现代操作系统课后习题答案之欧阳理创编

第二章进程管理第一部分教材习题(P81)3、为什么程序并发执行会产生间断性特征?(P36)4、程序并发执行,为何会失去封闭性和可再现性?(P37)【解】程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。

同时由于失去了封闭性,也将导致其再失去可再现性。

程序在并发执行时,由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。

5、在操作系统中为什么要引入进程概念?(P37)它会产生什么样的影响?【解】在操作系统中引入进程的概念,是为了实现多个程序的并发执行。

传统的程序不能与其他程序并发执行,只有在为之创建进程后,才能与其他程序(进程)并发执行。

这是因为并发执行的程序(即进程)是“停停走走”地执行,只有在为它创建进程后,在它停下时,方能将其现场信息保存在它的PCB中,待下次被调度执行是,再从PCB中恢复CPU现场并继续执行,而传统的程序却无法满足上述要求。

建立进程所带来的好处是使多个程序能并发执行,这极大地提高了资源利用率和系统吞吐量。

但管理进程也需付出一定的代价,包括进程控制块及协调各运行机构所占用的内存空间开销,以及为进行进程间的切换、同步及通信等所付出的时间开销。

6、试从动态性、并发性和独立性上比较进程和程序?(P37)【解】(1)动态性:进程既然是进程实体的执行过程,因此,动态性是进程最基本的特性。

动态性还表现为:“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡”。

可见,进程有一定的生命期。

而程序只是一组有序指令的集合,并存放在某种介质上,本身并无运动的含义,因此,程序是个静态实体。

(2)并发性:所谓进程的并发,指的是多个进程实体,同存于内存中,能在一段时间内同时运行。

并发性是进程的重要特征,同时也成为OS的重要特征。

引入进程的目的也正是为了使其程序能和其它进程的程序并发执行,而程序是无法并发执行的。

操作系统_第四版_答案_孙钟秀主编-第二章

操作系统_第四版_答案_孙钟秀主编-第二章

第二章1. 下列指令中哪些只能在核心态运行?(l )读时钟日期;(2 )访管指令;(3 )设时钟日期;(4 )加载PSW; (5)置特殊寄存器:(6 )改变存储器映象图;(7 )启动I/O 指令。

答:( 3 ) , ( 4 ) , ( 5 ) , ( 6 ) , ( 7 ) .2 假设有一种低级调度算法是让“最近使用处理器较少的进程” 运行,试解释这种算法对“I/O 繁重”型作业有利,但并不是永远不受理“处理器繁重”型作业。

答:因为I/O 繁忙型作业忙于I/O ,所以它CPU 用得少,按调度策略能优先执行。

同样原因一个进程等待CPU 足够久时,由于它是“最近使用处理器较少的进程” ,就能被优先调度,故不会饥饿。

3 并发进程之间有什么样的相互制约关系?下列日常生活中的活动是属哪种制约关系:(1 )踢足球,(2 )吃自助餐,(3 )图书馆借书,(4 )电视机生产流水线工序。

答:并发进程之间的基本相互制约关系有互斥和同步两种。

其中( 1)、(3)为互斥问题.(2 )、(4 )为同步问题。

4 在按动态优先数调度进程的系统中,每个进程的优先数需定时重新计算。

在处理器不断地在进程之间交替的情况下,重新计算进程优先数的时间从何而来?答:许多操作系统重新计算进程的优先数在时钟中断处理例程中进行,由于中断是随机碰到哪个进程,就插入哪个进程中运行处理程序,并把处理时间记在这个进程的账上。

5 若后备作业队列中等待运行的同时有三个作业J1 、J2 、J3 ,已知它们各自的运行时间为 a 、b 、c,且满足 a < b <c,试证明采用短作业优先算法调度能获得最小平均作业周转时间。

答:采用短作业优先算法调度时,三个作业的总周转时间为:Tl = = a + ( a +b ) + ( a + b + c ) = 3a + 2b + c ① 若不按短作业优先算法调度,不失一般性,设调度次序为:J2 、J1 、J3 。

计算机操作系统(第四版) 课后答案完整版

计算机操作系统(第四版) 课后答案完整版

第一章1.设计现代ﻩOS得主要目标就是什么?答:( 1)有效性( 2)方便性ﻩ( 3)可扩充性ﻩ( 4)开放性2.OS 得作用可表现在哪几个方面?答:( 1) OS 作为用户与计算机硬件系统之间得接口(2)) OS 作为计算机系统资源得管理者(3)) OS 实现了对计算机资源得抽象3.为什么说ﻩOS 实现了对计算机资源得抽象?答: OS 首先在裸机上覆盖一层I/O 设备管理软件,实现了对计算机硬件操作得第一层次抽象;在第一层软件上再覆盖文件管理软件, 实现了对硬件资源操作得第二层次抽象、OS通过在计算机硬件上安装多层系统软件, 增强了系统功能, 隐藏了对硬件操作得细节, 由它们共同实现了对计算机资源得抽象。

4。

试说明推动多道批处理系统形成与发展得主要动力就是什么?答:主要动力来源于四个方面得社会需求与技术发展:(1 )不断提高计算机资源得利用率;(2)方便用户;(3 )器件得不断更新换代;(4)计算机体系结构得不断发展。

5.何谓脱机ﻩI/O与联机I/O?答:脱机ﻩI/O就是指事先将装有用户程序与数据得纸带或卡片装入纸带输入机或卡片机,在外围机得控制下, 把纸带或卡片上得数据或程序输入到磁带上。

该方式下得输入输出由外围机控制完成,就是在脱离主机得情况下进行得、而联机I/O方式就是指程序与数据得输入输出都就是在主机得直接控制下进行得。

6.试说明推动分时系统形成与发展得主要动力就是什么?答:推动分时系统形成与发展得主要动力就是更好地满足用户得需要、主要表现在: CPUﻩ得分时使用缩短了作业得平均周转时间; 人机交互能力使用户能直接控制自己得作业; ﻩ主机得共享使多用户能同时使用同一台计算机,独立地处理自己得作业。

7.实现分时系统得关键问题就是什么?应如何解决?答:关键问题就是当用户在自己得终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受得时延内将结果返回给用户。

解决方法: 针对及时接收问题,ﻩ可以在系统中设置多路卡, 使主机能同时接收用户从各个终端上输入得数据; 为每个终端配置缓冲区,ﻩ暂存用户键入得命令或数据。

操作系统_第四版_答案_孙钟秀主编 -第二章

操作系统_第四版_答案_孙钟秀主编 -第二章

第二章1.下列指令中哪些只能在核心态运行?(l)读时钟日期;(2)访管指令;(3)设时钟日期;(4)加载PSW; (5)置特殊寄存器:(6)改变存储器映象图;(7)启动I/O指令。

答:( 3 ) , ( 4 ) , ( 5 ) , ( 6 ) , ( 7 ) .2 假设有一种低级调度算法是让“最近使用处理器较少的进程”运行,试解释这种算法对“I/O 繁重”型作业有利,但并不是永远不受理“处理器繁重”型作业。

答:因为I/O繁忙型作业忙于I/O,所以它CPU 用得少,按调度策略能优先执行。

同样原因一个进程等待CPU 足够久时,由于它是“最近使用处理器较少的进程”,就能被优先调度,故不会饥饿。

3 并发进程之间有什么样的相互制约关系?下列日常生活中的活动是属哪种制约关系:(1)踢足球,(2)吃自助餐,(3)图书馆借书,(4)电视机生产流水线工序。

答:并发进程之间的基本相互制约关系有互斥和同步两种。

其中(1)、(3)为互斥问题.(2)、(4)为同步问题。

4 在按动态优先数调度进程的系统中,每个进程的优先数需定时重新计算。

在处理器不断地在进程之间交替的情况下,重新计算进程优先数的时间从何而来?答:许多操作系统重新计算进程的优先数在时钟中断处理例程中进行,由于中断是随机碰到哪个进程,就插入哪个进程中运行处理程序,并把处理时间记在这个进程的账上。

5 若后备作业队列中等待运行的同时有三个作业J1 、J2、J3 ,已知它们各自的运行时间为a 、b 、c,且满足a < b <c,试证明采用短作业优先算法调度能获得最小平均作业周转时间。

答:采用短作业优先算法调度时,三个作业的总周转时间为: 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. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无轮回图,记为DAG(Directed Acyclic Graph),用于描写过程之间履行的前后关系.2. 画出下面四条诧句的前趋图:S1=a:=x+y;S2=b:=z+1;S3=c:=a-b;S4=w:=c+1;答:其前趋图为:3. 为什么程序并发履行会产生间断性特点?程序在并发履行时,因为它们共享体系资本,以及为完成统一项义务而互相合作,致使在这些并发履行的过程之间,形成了互相制约的关系,从而也就使得过程在履行时代消失间断性. 4. 程序并发履行时为什么会掉去关闭性和可再现性?因为程序并发履行时,是多个程序共享体系中的各类资本,因而这些资本的状况是由多个程序来转变,致使程序的运行掉去了关闭性.而程序一旦掉去了关闭性也会导致其再掉去可再现性.5. 在操纵体系中为什么要引入过程概念?它会产生什么样的影响?为了使程序在多道程序情形下能并发履行,并能对并发履行的程序加以掌握和描写,从而在操纵体系中引入了过程概念. 影响: 使程序的并发履行得以实施.6. 试从动态性,并发性和自力性上比较过程和程序?a. 动态性是过程最根本的特点,可表示为由创建而产生,由调剂而履行,因得不到资本而暂停履行,以及由撤消而灭亡,因而过程由必定的性命期;而程序只是一组有序指令的聚集,是静态实体.b. 并发性是过程的重要特点,同时也是OS的重要特点.引入过程的目标恰是为了使其程序能和其它树立了过程的程序并发履行,而程序本身是不克不及并发履行的. c. 自力性是指过程实体是一个能自力运行的根本单位,同时也是体系中自力获得资本和自力调剂的根本单位.而对于未树立任何过程的程序,都不克不及作为一个自力的单位来运行.7. 试解释PCB的感化?为什么说PCB是过程消失的独一标记?a. PCB是过程实体的一部分,是操纵体系中最重要的记载型数据构造.PCB中记载了操纵体系所需的用于描写过程情形及掌握过程运行所需的全体信息.因而它的感化是使一个在多道程序情形下不克不及自力运行的程序(含数据),成为一个能自力运行的根本单位,一个能和其它过程并发履行的过程.b. 在过程的全部性命周期中,体系老是经由过程其PCB对过程进行掌握,体系是依据过程的PCB而不是任何此外什么而感知到该过程的消失的,所以说,PCB是过程消失的独一标记. 11.试解释过程在三个根本状况之间转换的典范原因. 答:(1)停当状况→履行状况:过程分派到CPU资本(2)履行状况→停当状况:时光片用完(3)履行状况→壅塞状况:I/O要求(4)壅塞状况→停当状况:I/O完成12.为什么要引入挂起状况?该状况有哪些性质?答:引入挂起状况处于五种不合的须要: 终端用户须要,父过程须要,操纵体系须要,对调须要和负荷调节须要.处于挂起状况的过程不克不及吸收处理机调剂. 10.在进行过程切换时,所要保管的处理机状况信息有哪些?答:进行过程切换时,所要保管的处理机状况信息有:(1)过程当前暂存信息(2)下一指令地址信息(3)过程状况信息(4)过程和体系挪用参数及挪用地址信息.13.在进行过程切换时,所要保管的处理机状况信息有哪些?答:进行过程切换时,所要保管的处理机状况信息有:(1)过程当前暂存信息(2)下一指令地址信息(3)过程状况信息(4)过程和体系挪用参数及挪用地址信息.14.试解释引起过程创建的重要事宜. 答:引起过程创建的重要事宜有:用户登录.功课调剂.供给办事.运用要求. 15.试解释引起过程被撤消的重要事宜. 答:引起过程被撤消的重要事宜有:正常停止.平常停止(越界错误.呵护错.不法指令.特权指令错.运行超时.等待超时.算术运算错.I/O 故障).外界干涉(操纵员或操纵体系干涉.父过程要求.父过程终止).16.在创建一个过程时所要完成的重要工作是什么?答:(1)OS 发明要求创建新过程事宜后,挪用过程创建原语Creat(); (2)申请空白PCB; (3)为新过程分派资本; (4)初始化过程掌握块; (5)将新过程拔出停当队列.17.在撤消一个过程时所要完成的重要工作是什么?答:(1)依据被终止过程标识符,从PCB 分散检索出过程PCB,读出该过程状况. (2)若被终止过程处于履行状况,立刻终止该过程的履行,臵调剂标记真,指导该过程被终止后从新调剂. (3)若该过程还有子过程,应将所有子孙过程终止,以防它们成为不成控过程. (4)将被终止过程失去的全体资本,清偿给父过程,或清偿给体系. (5)将被终止过程PCB 从地点队列或列表中移出,等待其它程序汇集信息.18.试解释引起过程壅塞或被叫醒的重要事宜是什么?答:a. 要求体系办事;b. 启动某种操纵;c. 新数据尚未到达;d. 无新工作可做.19. 为什么要在OS中引入线程?在OS中引入过程的目标,是为了使多个程序能并发履行,以进步资本运用率和系统吞吐量.在OS中再引入线程,则是为了削减程序在并发履行时所支付的时空开销,使OS具有更好的并发性.20.试解释线程具有哪些属性?答:(1)轻型实体(2)自力调剂和分派的根本单位(3)可并发履行(4)共享过程资本.21. 试从调剂性,并发性,失去资本及体系开销方面临过程和线程进行比较. a. 调剂性.在传统的操纵体系中,失去资本的根本单位和自力调剂.分派的根本单位都是过程,在引入线程的OS中,则把线程作为调剂和分派的根本单位,而把过程作为资本失去的根本单位; b. 并发性.在引入线程的OS中,不但过程之间可以并发履行,并且在一个过程中的多个线程之间,亦可并发履行,因而使OS具有更好的并发性;c. 失去资本.无论是传统的操纵体系,照样引入了线程的操纵体系,过程始终是失去资本的一个根本单位,而线程除了失去一点在运行时必不成少的资本外,本身根本不失去体系资本,但它可以拜访其附属过程的资本;d. 开销.因为创建或撤消过程时,体系都要为之分派和收受接管资本,如内存空间等,过程切换时所要保管和设置的现场信息也要明显地多于线程,是以,操纵体系在创建.裁撤和切换过程时所支付的开销将明显地大于线程.。

计算机操作系统(第四版) 课后答案完整版

计算机操作系统(第四版) 课后答案完整版

第一章1.设计现代ﻩOS得主要目标就是什么?答:( 1)有效性( 2)方便性ﻩ( 3)可扩充性ﻩ( 4)开放性2.OS 得作用可表现在哪几个方面?答:( 1) OS 作为用户与计算机硬件系统之间得接口(2)) OS 作为计算机系统资源得管理者(3)) OS 实现了对计算机资源得抽象3.为什么说ﻩOS 实现了对计算机资源得抽象?答: OS 首先在裸机上覆盖一层I/O 设备管理软件,实现了对计算机硬件操作得第一层次抽象;在第一层软件上再覆盖文件管理软件, 实现了对硬件资源操作得第二层次抽象、OS通过在计算机硬件上安装多层系统软件, 增强了系统功能, 隐藏了对硬件操作得细节, 由它们共同实现了对计算机资源得抽象。

4。

试说明推动多道批处理系统形成与发展得主要动力就是什么?答:主要动力来源于四个方面得社会需求与技术发展:(1 )不断提高计算机资源得利用率;(2)方便用户;(3 )器件得不断更新换代;(4)计算机体系结构得不断发展。

5.何谓脱机ﻩI/O与联机I/O?答:脱机ﻩI/O就是指事先将装有用户程序与数据得纸带或卡片装入纸带输入机或卡片机,在外围机得控制下, 把纸带或卡片上得数据或程序输入到磁带上。

该方式下得输入输出由外围机控制完成,就是在脱离主机得情况下进行得、而联机I/O方式就是指程序与数据得输入输出都就是在主机得直接控制下进行得。

6.试说明推动分时系统形成与发展得主要动力就是什么?答:推动分时系统形成与发展得主要动力就是更好地满足用户得需要、主要表现在: CPUﻩ得分时使用缩短了作业得平均周转时间; 人机交互能力使用户能直接控制自己得作业; ﻩ主机得共享使多用户能同时使用同一台计算机,独立地处理自己得作业。

7.实现分时系统得关键问题就是什么?应如何解决?答:关键问题就是当用户在自己得终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受得时延内将结果返回给用户。

解决方法: 针对及时接收问题,ﻩ可以在系统中设置多路卡, 使主机能同时接收用户从各个终端上输入得数据; 为每个终端配置缓冲区,ﻩ暂存用户键入得命令或数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现代操作系统第二章进程与线程习题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:这是可能的,不过效率很低。

线程想要做一个系统调用,首先设定警报定时器,然后才执行调用。

如果线程阻塞,定时器将控制归还给线程包。

相关文档
最新文档