logo资料库

操作系统设计与实现1-5章全部课后答案.doc

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
第一章 引言 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.为什么分时系统未被第二代计算机广泛采用? 答:第一代:真空管和插接板;第二代:晶体管和批处理系统;第三代:集成电路和多道程序;第四代: 个人计算机 因为第二代计算机的设计没有采用所需要的硬件保护机制,不能很好的保护内存中的各个作业,使它们不 会相互妨碍攻击。 7.下列哪种指令只能在内核态下执行? (1)屏蔽所有中断 (2)读时钟日期
(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 机系统中,只有一个进程存在,该进程占有整个的系 统资源,直至它运行结束。在这种情形下,是否还需要进程表? 答:在分时系统中,每隔一定的周期,操作系统就会暂停当前进程的执行,转而启动另一个进程。进程被 暂时挂起,那么后来当它需要重新运行的时候,就要求此刻的状态与先前暂停时的状态完全相同。这就意 味着当我们挂起一个进程时,必须把它所有信息都要保存在某个地方。因此,就需要进程表来存放进程的 所有信息。如果系统只有一个进程,占有整个系统资源,那么就不需要进程表。 14.块设备文件和字符设备文件的本质区别是什么? 答:块设备文件描述的是以随机访问的数据块为单元的设备,如磁盘。在打开一个块设备文件后,可以直 接去访问它的某一个数据块,如第 4 个数据块,而不用考虑其文件系统的内部结构。类似地,字符设备文 件指那些以字符流方式进行操作的设备,如打印机、调制解调器等。他们的本质区别是操作的对象不一样 和访问数据的方式不一样,归根到底是设备特性引起的。
第二章.线程 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)的模型不适用于在内存中进行高 速缓存的文件服务器。 7. 进程与线程的本质区别是什么? 答:进程为一组相关资源的集合。进程有一个存放程序正文和数据以及其他资源的地址空间。这些资源包 括打开的文件、子进程、未处理的定时器、信号处理器和审计信息。通过以进程的形式把它们放在一起, 方便进行管理。
线程,是进程的一个执行流。线程有一个程序计数器,用来跟踪下一条将要执行的指令。它有寄存器,存 储当前使用的变量。它有堆栈,它存储着执行的历史,其中每一栈帧保存了没有返回的过程调用。尽管线 程必须在进程中执行,但线程和它的进程是可以分别对待处理的两个不同的概念。 进程用来集合资源,而线程是 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。减少硬件电路的复杂性,把空出来 的面积用来去实现其它功能。 4. 尝试解释什么是 DMA。为什么要使用它? 答:Direct Memory Access(存储器直接访问)。这是指一种高速的数据传输操作,允许在外部设备和 存储器之间直接读写数据,既不通过 CPU,也不需要 CPU 干预。整个数据传输操作在一个称为"DMA 控 制器"的控制下进行的。CPU 除了在数据传输开始和结束时做一点处理外,在传输过程中 CPU 可以进行其
他的工作。这样,在大部分时间里,CPU 和输入输出都处于并行操作。因此,使整个计算机系统的效率大 大提高。 5. 虽然 DMA 不使用 CPU,但是最大传输速率仍然受限。考虑从磁盘读取数据块,举出三个终会限制传 输速率的扇区。 答:(1)磁盘的读取速度(2)总线繁忙程度(3)控制器需要缓存数据 6. CD 质量的音乐要求每秒对声音信号进行 44100 次采样。假如存在一个定时器以这样的速度产生中 断,在主频为 1GHz 的 CPU 上要耗费 1us 的时间来处理一个中断。在保证不丢失数据的前提下,最低需 要多快的时钟频率?在此假定对于一个中断需要执行的指令数目是恒定的,即如果始终频率降低一半,则 中断处理时间会增加一倍。 答:44.1MHz 7. 中断的一种替代方法是轮询。是否存在一种情况,轮询比中断更加有效?如果有,尝试举出一个例子。 答:存在,如在不是针对多进程的很小的专用系统中。 8. 为什么磁盘控制器都有内部缓存且型号越新缓存的容量越大? 答:如果控制器内部有缓存,在执行读取操作时,只要磁头臂到达了正确的柱面,控制器就开始读取并存 储数据,即使磁头臂还未达到正确的扇区。这种缓存的数据对于满足后续请求时相当便利的。此外,即使 获得了请求的数据,控制器也可以继续缓存来自后续扇区的数据,因为这些数据以后可能需要。因此,磁 盘控制器都有内部缓存。型号越新,磁盘容量越大,单位面积的存储密度也越大,因此所需要的缓存的容 量也就越大。 9. 每一个设备驱动程序与操作系统之间都有两个不同的接口。一个接口是供操作系统调用的驱动程序的 一组函数,另一个接口是驱动程序调用操作系统的函数集合。针对每一种接口举出一个合适的例子。 答:供操作系统调用:read 磁盘操作 驱动程序调用:块设备的标准接口 10. 为什么操作系统设计者都尽可能地提供设备无关的输入/输出。 答:所谓设备无关性,其含义就是应该能够写出可以访问任意 I/O 而不需要事先指定设备的驱动程序。设 备有很多种,而且都是各种各样,如果用户编程涉及到硬件特性,调用设备控制器提供的接口,编程将会 变得异常复杂。所以操作系统设计者都尽可能地提供设备无关性的输入/输出。 11. 以下的工作各在 4 个 I/O 软件层的哪一层完成? (a) (b) 为一个磁盘读操作计算磁道、扇区、磁头。 维护一个最近使用的块的缓冲。
(c) (d) (e) 向设备寄存器写命令。 检查用户是否有权使用设备。 将二进制整数转换成 ASCII 码以便打印。 答:设备无关操作系统软件:(b)(d) 设备驱动程序:(a) 中断处理器:(c) 硬件:(e) 12. 为什么打印机的输出文件在打印前通常都假脱机输出在磁盘上? 答:假脱机是多道程序系统中处理专用 I/O 设备的一种方法。它创建一个特殊的进程,称为守护进程,以 及一个特殊目录,称为假脱机目录。为了打印一个文件,一个进程首先要生成需要打印的整个文件并把它 放在假脱机目录里。由守护进程打印该目录下的文件,该进程是允许使用打印机设备文件的唯一进程。通 过保护设备文件来防止用户直接使用,可以解决某些进程不必要地长期空占打印机的问题。 13. 举出一个现实生活中死锁的例子。 答:两个人从相反的方向通过同一个独木桥,假设不能在桥上改变方向回退,独木桥如果有一个人在桥上, 对岸方向的人就不能上桥,否则出现死锁。 考虑图 3.10。假设在步骤(o)中 C 需要 S 而不是 R 这将会导致死锁吗?如果既需要 S 又需要 14. R 呢? 答:不会导致死锁,进程 A 得到了进程运行所需要的所有资源,进程 A 运行结束后将会释放资源。A 结束 后 C 就可以获得足够的资源。 仔细观察图 3.13(b)。如果 D 再多请求一个单位,将会导致一个安全的状态还是不安全的状 15. 态?如果请求来自 C 而不是 D 呢? 答:如果 D 最多请求一个单位,将会导致不安全状态。如果请求来自于 C 而不是 D,则状态时安全的。 16. 图 3.14 中的所有轨迹都是垂直的或是水平的。你能想象出可能出现的对角线轨迹的情形吗? 答:能,当每个进程运行的时间片相等,且时间片的长度是足够小的情况下,就可能出现对角线轨迹的情 况。 17. 假设图 3.15 中的进程 A 请求最后一台磁带驱动器。这会导致死锁吗? 答:不会导致死锁
一台计算机有 6 台磁带机被 n 个进程竞争,每个进程可能需要两台磁带机。那么 n 为多少时,系 18. 统没有死锁的危险? 答:n 为 5 时,系统没有死锁的危险
分享到:
收藏