• 199.89 KB
  • 2022-04-22 11:41:23 发布

操作系统设计与实现 上册 (Andrew S.Tanenbaum 著) 电子工业出版社 课后答案

  • 8页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'课后答案网:www.hackshp.cn课后答案网您最真诚的朋友www.hackshp.cn网团队竭诚为学生服务,免费提供各门课后答案,不用积分,甚至不用注册,旨在为广大学生提供自主学习的平台!课后答案网:www.hackshp.cn视频教程网:www.efanjy.comPPT课件网:www.ppthouse.com课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn第一章引言1.操作系统的两个主要功能是什么?答:底层硬件的扩展机和硬件资源管理器2.内核态和用户态的区别是什么?对于一个操作系统来说,这种区别为什么很重要?答:核心态下进程可以执行特权指令,而用户态下不行。内核态下运行的程序,收到硬件保护,用户不能随便去篡改它的内容,一般是操作系统的组成部分。用户态程序,因为不是操作系统的组成部分,是操作系统上独立的程序,可以很容易被其它程序代替。因为这种区别可以很好的保护操作系统,防止用户修改,所以对操作系统很重要。3.什么是多道程序?答:多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制下,相互穿插运行。它将内存划分为几个分区,每个分区存放不同的作业。当一个作业正在等待I/O操作完成时,另一个作业就可以去使用CPU。按照这个思路,如果在内存中存放足够多的作业,那么CPU的利用率就可以接近100%。多道程序运行的特征是:1多道:即计算机内存中同时存放几道相互独立的程序。2宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。3微观上串行:从微观上看,内存中的多道程序轮流地或分时地占有处理机。4.什么是假脱机?你认为将来的高档个人计算机会将假脱机作为标准特性吗?答:当一张卡片被拿到机房后,能够很快把其中的作业读入磁盘。这样,当一个作业运行结束后,操作系统就能将一个新作业从磁盘中读出,并装入刚刚空出来的内存分区去运行。这种技术称为假脱机技术。将来的高档个人计算机中也需要这种特性,因为计算机的CPU和内存,内存和硬盘,硬盘和数据录入之间数据读取速度都差几个数量级,如用户录入数据时,可以通过扫描,将数据很快读入磁盘。或者通过人工录入数据,这种方法是效率是很低的。这样会严重浪费计算机的内存和CPU资源,如果利用假脱机技术,能够弥补这方面的缺陷。5.在早期的计算机中,每一个字节数据的读写都是由CPU直接进行处理的(那时候没有DMA,即直接存储器访问)。这种组织结构对多道程序技术有什么影响?答:多道程序计数目的在于当一个作业在等待I/O操作时,另一个作业能够使用CPU。如果每个字节数据的读写都由CPU直接进行处理,那么在作业进行I/O操作时,CPU不是空闲的,无法被另一个作业使用。因此达不到多道程序并行运行的效果。6.为什么分时系统未被第二代计算机广泛采用?答:第一代:真空管和插接板;第二代:晶体管和批处理系统;第三代:集成电路和多道程序;第四代:课后答案网:www.hackshp.cn个人计算机因为第二代计算机的设计没有采用所需要的硬件保护机制,不能很好的保护内存中的各个作业,使它们不会相互妨碍攻击。7.下列哪种指令只能在内核态下执行?(1)屏蔽所有中断(2)读时钟日期若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn(3)设置时钟日期(4)改变内存映像图答:(4)因为内存映像图用户态程序是无法发出请求改变的,所以只会有内核态程序自动进行调整。8.请指出个人计算机操作系统与大型主机操作系统的不同之处答:个人计算机是面对那些对计算机一无所知且不想学习的用户。因此它必须要有友好的用户接口,用户接口在操作系统中占有很重要的地位,他们主要是图形的用户接口。而大型主机操作系统所面对的用户是专业的计算机人员,对用户接口要求不是很高,主要是通过命令行的方式进行交互。9.给出一个理由,说明为什么源代码不公开的商业操作系统(如Windows)要比一个开放源代码的操作系统(如Linux)具有更好的品质。然后再给出一个理由,说明为什么开放源代码的操作系统(如Linux)要比一个源代码不公开的商业操作系统(如Windows)具有更好的品质。答:不开源的操作系统,有利于保护公司的知识产权,公司能够投入大量的资金和技术进行研发和维护,并且同时有利于标准化。开源的操作系统,能够吸收全世界优秀的程序员为它进行修改和维护,它是免费的。因为开源,所以操作系统的漏洞很容易被发现,并能得到及时的修正,因此发展更快。10.一个MINIX文件的所有者UID=12,GID=1,该文件的权限模式码为rwxr-x---。另一个用户的UID=6,GID=1,如果他试图去执行该文件,结果会如何?答:可以正常执行,权限码分为三部分,第一部分是UID的权限,第二部分是GID的权限,第三部分是所有用户都有的权限,所以可以正常执行。11.既然超级用户的存在将导致许多安全问题,为什么还要使用这个概念?答:超级用户是系统中的一个特殊的用户,超级用户拥有系统的最高权限,许多保护规则对它无效。可以管理系统所有的权限,管理系统非常方便。12.UNIX的所有版本都支持文件的两种命名方式,即绝对路径名(相对于根目录)和相对路径名(相对于当前工作目录)。能否去掉其中的一种,只使用一种统一的命名方式?如果要这样做,你建议保留哪一种。答:可以去掉其中的一种,但是使用起来就没有两种方式混合用那么方便。如果要去掉一种,建议去掉第二种,因为第一种可以进行全局定位,不需要知道当前目录是哪里。13.在分时系统中为什么需要进程表?假设在一个PC机系统中,只有一个进程存在,该进程占有整个的系统资源,直至它运行结束。在这种情形下,是否还需要进程表?答:在分时系统中,每隔一定的周期,操作系统就会暂停当前进程的执行,转而启动另一个进程。进程被暂时挂起,那么后来当它需要重新运行的时候,就要求此刻的状态与先前暂停时的状态完全相同。这就意味着当我们挂起一个进程时,必须把它所有信息都要保存在某个地方。因此,就需要进程表来存放进程的所有信息。如果系统只有一个进程,占有整个系统资源,那么就不需要进程表。课后答案网:www.hackshp.cn14.块设备文件和字符设备文件的本质区别是什么?答:块设备文件描述的是以随机访问的数据块为单元的设备,如磁盘。在打开一个块设备文件后,可以直接去访问它的某一个数据块,如第4个数据块,而不用考虑其文件系统的内部结构。类似地,字符设备文件指那些以字符流方式进行操作的设备,如打印机、调制解调器等。他们的本质区别是操作的对象不一样和访问数据的方式不一样,归根到底是设备特性引起的。若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn第二章.线程1.现代操作系统为何都是多进程的?答:当一个正在运行的程序,需要等待输入的数据时,CPU是空闲的。而在这个时候有另外一个进程需要使用CPU。为了提高CPU的资源利用率,操作系统就必须设计为多道程序的形式,即多进程的形式。2.进程的三种状态各是什么?分别简要描述。答:运行态:在该时刻实际占用处理机就绪态:可运行,因为其它进程正在运行而暂时被挂起,这种状态是没有足够的CPU,不能使每个进程都有一台私有的处理器阻塞态:除非某种外部事件发生,否则不能运行,外部事件,典型的例子是所等待的输入的完成,3.假设你正在设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换,则CPU需要哪些信息?请描述用硬件完成进程切换的工作过程。答:1.硬件压栈程序计数器等。2.硬件按中断向量下载新的程序计数器。3.硬件存储寄存器值。4.硬件设置新的栈。5.c语言中断服务例程运行。6.消息传递代码对等待的就绪任务进行标识。7.调度器决定哪个进程是下一个将运行的进程。8.通过硬件启动当前进程。4.目前的计算机上,中断处理程序至少有一小部分用汇编语言编写,为什么?答:因为有些操作,如保存寄存器值和设置栈指针等无法用C语言描述,所以要由汇编语言例程来完成。当该例程结束后,调用C过程来完成特定中断类型剩下的工作。5.重画图2.2,添加两个状态:新建和终结。进程创建时被初始化为“新建”状态,退出时为“终结”状态。答:略,上传不了6.书中认为图2.6(a)的模型不适用于在内存中进行高速缓存的文件服务器,为什么?可否是每个进程拥有自己的高速缓存?答:因为每个在进程切换时,所有的高速缓存会清空。不是每个进程拥有自己的高速缓存,是所有进程共享的,在进程切换时,即上下文切换,为了保护进程的安全性,所以进程的缓存会清空。图2.6(a)的模型,每个文件读取都需要进行链接和进程切换,所以书中认为图2.6(a)的模型不适用于在内存中进行高课后答案网:www.hackshp.cn速缓存的文件服务器。7.进程与线程的本质区别是什么?答:进程为一组相关资源的集合。进程有一个存放程序正文和数据以及其他资源的地址空间。这些资源包括打开的文件、子进程、未处理的定时器、信号处理器和审计信息。通过以进程的形式把它们放在一起,方便进行管理。若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn线程,是进程的一个执行流。线程有一个程序计数器,用来跟踪下一条将要执行的指令。它有寄存器,存储当前使用的变量。它有堆栈,它存储着执行的历史,其中每一栈帧保存了没有返回的过程调用。尽管线程必须在进程中执行,但线程和它的进程是可以分别对待处理的两个不同的概念。进程用来集合资源,而线程是CPU中调度的实体。8.在使用线程的系统中,是每个线程有一个堆栈还是每个进程有一个堆栈?说明原因。答:每个线程都有一个堆栈,需要存储执行流执行的历史。9.什么是竞争条件?答:两个或多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序,就称为竞争条件。10.举一个一起出行的两人买飞机票时可能发生的竞争条件的例子。答:两个人去售票处买飞机票,他们所需要的票是一样,现在售票处只剩下一张票,按照售票处的规则,先到的人将买到票,后到得人将买不到票。这就产生一个竞争条件,谁先到谁将买到这仅剩的一张飞机票。第三章.输入输出系统1.一台1倍速的DVD读取器能够以1.32MB/s的速度传送数据。如果DVD驱动器使用USB2.0连接,保证不丢失数据的前提下,DVD驱动器的最高传输速度为多少?答:因为USB2.0的最高传输速率可以达到60MB/s,所以DVD最高传输速度和DVD读取器的数据传送速度是一样的,即为1.32MB/s。2.许多磁盘在每个扇区结束时有一个ECC,如果ECC错误,将会发生什么动作?这个动作是由什么硬件或者软件来完成的?答:如果校验和是错误的,将发出一个错误的信号并且不传送到内存。这个动作磁盘控制器来完成。3.什么是存储器映射I/O?为什么在一些情况下要使用它?答:I/O寄存器是内存地址空间的一部分,这种称为存储器映射I/O。减少硬件电路的复杂性,把空出来课后答案网:www.hackshp.cn的面积用来去实现其它功能。4.尝试解释什么是DMA。为什么要使用它?答:DirectMemoryAccess(存储器直接访问)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。5.虽然DMA不使用CPU,但是最大传输速率仍然受限。考虑从磁盘读取数据块,举出三个终会限制传输速率的扇区。答:(1)磁盘的读取速度(2)总线繁忙程度(3)控制器需要缓存数据6.CD质量的音乐要求每秒对声音信号进行44100次采样。假如存在一个定时器以这样的速度产生中断,在主频为1GHz的CPU上要耗费1us的时间来处理一个中断。在保证不丢失数据的前提下,最低需要多快的时钟频率?在此假定对于一个中断需要执行的指令数目是恒定的,即如果始终频率降低一半,则中断处理时间会增加一倍。答:44.1MHz7.中断的一种替代方法是轮询。是否存在一种情况,轮询比中断更加有效?如果有,尝试举出一个例子。答:存在,如在不是针对多进程的很小的专用系统中。8.为什么磁盘控制器都有内部缓存且型号越新缓存的容量越大?答:如果控制器内部有缓存,在执行读取操作时,只要磁头臂到达了正确的柱面,控制器就开始读取并存储数据,即使磁头臂还未达到正确的扇区。这种缓存的数据对于满足后续请求时相当便利的。此外,即使获得了请求的数据,控制器也可以继续缓存来自后续扇区的数据,因为这些数据以后可能需要。因此,磁盘控制器都有内部缓存。型号越新,磁盘容量越大,单位面积的存储密度也越大,因此所需要的缓存的容量也就越大。9.每一个设备驱动程序与操作系统之间都有两个不同的接口。一个接口是供操作系统调用的驱动程序的一组函数,另一个接口是驱动程序调用操作系统的函数集合。针对每一种接口举出一个合适的例子。答:供操作系统调用:read磁盘操作驱动程序调用:块设备的标准接口课后答案网:www.hackshp.cn10.为什么操作系统设计者都尽可能地提供设备无关的输入/输出。答:所谓设备无关性,其含义就是应该能够写出可以访问任意I/O而不需要事先指定设备的驱动程序。设备有很多种,而且都是各种各样,如果用户编程涉及到硬件特性,调用设备控制器提供的接口,编程将会变得异常复杂。所以操作系统设计者都尽可能地提供设备无关性的输入/输出。11.以下的工作各在4个I/O软件层的哪一层完成?(a)为一个磁盘读操作计算磁道、扇区、磁头。(b)维护一个最近使用的块的缓冲。若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn(c)向设备寄存器写命令。(d)检查用户是否有权使用设备。(e)将二进制整数转换成ASCII码以便打印。答:设备无关操作系统软件:(b)(d)设备驱动程序:(a)中断处理器:(c)硬件:(e)12.为什么打印机的输出文件在打印前通常都假脱机输出在磁盘上?答:假脱机是多道程序系统中处理专用I/O设备的一种方法。它创建一个特殊的进程,称为守护进程,以及一个特殊目录,称为假脱机目录。为了打印一个文件,一个进程首先要生成需要打印的整个文件并把它放在假脱机目录里。由守护进程打印该目录下的文件,该进程是允许使用打印机设备文件的唯一进程。通过保护设备文件来防止用户直接使用,可以解决某些进程不必要地长期空占打印机的问题。13.举出一个现实生活中死锁的例子。答:两个人从相反的方向通过同一个独木桥,假设不能在桥上改变方向回退,独木桥如果有一个人在桥上,对岸方向的人就不能上桥,否则出现死锁。14.考虑图3.10。假设在步骤(o)中C需要S而不是R这将会导致死锁吗?如果既需要S又需要R呢?答:不会导致死锁,进程A得到了进程运行所需要的所有资源,进程A运行结束后将会释放资源。A结束后C就可以获得足够的资源。15.仔细观察图3.13(b)。如果D再多请求一个单位,将会导致一个安全的状态还是不安全的状态?如果请求来自C而不是D呢?答:如果D最多请求一个单位,将会导致不安全状态。如果请求来自于C而不是D,则状态时安全的。16.图3.14中的所有轨迹都是垂直的或是水平的。你能想象出可能出现的对角线轨迹的情形吗?课后答案网:www.hackshp.cn答:能,当每个进程运行的时间片相等,且时间片的长度是足够小的情况下,就可能出现对角线轨迹的情况。17.假设图3.15中的进程A请求最后一台磁带驱动器。这会导致死锁吗?答:不会导致死锁若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn18.一台计算机有6台磁带机被n个进程竞争,每个进程可能需要两台磁带机。那么n为多少时,系统没有死锁的危险?答:n为5时,系统没有死锁的危险课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn'

您可能关注的文档