zoukankan      html  css  js  c++  java
  • 操作系统--精髓与设计原理(第八版)第二章复习题答案

    2.1 操作系统设计的三个目标是什么?

          方便、有效、易于拓展

    2.2 什么是操作系统的内核?

          内核是OS最常使用的部分,存在于主存中并在特权模式下运行,响应进程调度和设备中断。

    2.3 什么是多道程序设计?

          一种处理操作,在两个或多个程序间交错处理每个进程。

    2.4 什么是进程?

          运行中的程序,被OS控制和选择

    2.5 OS是怎样使用进程上下文的?

          执行上下文又称进程状态,是OS用来管理和控制所需的内部数据。这种内部信息和进程是分开的,因为OS信息不允许被进程直接访问。上下文包括OS管理进程以及处理器正确执行进程所需要的所有信息,包括各种处理器寄存器的内存,如程序计数器和数据寄存器。它还包括OS使用的信息,如进程优先级以及进程是否在等待特定I/O事件的发生。

    2.6 列出并简要介绍OS的5种典型存储管理职责。

          进程隔离:操作系统必须保护独立的进程,防止互相干扰各自的存储空间。

          自动分配和管理:程序应该根据需要在存储层次间动态的分配,分配对程序员是透明的。因此,程序员无须关心与存储限制有关的问题,操作系统会有效的实现分配问题,可仅在需要时才给作业分配存储空间。

          支持模块化程序设计:程序员应该能够定义程序模块,并动态的创建、销毁模块,动态的改变模块的大小。

          保护和访问机制:操作系统必须允许一部分内存可以由各种用户以各种方式进行访问。

          长期存储:许多应用程序需要在计算机关机后长时间的保存信息。

    2.7 实地址和虚地址的区别是什么?

          虚地址:存在于虚拟内存中的地址,有时候在磁盘有时候在主存中

          实地址:主存中的地址

    2.8 描述时间片轮转调度技术。

          时间片轮转调度是一种调度算法,所有的进程存放在一个环形队列中并按固定顺序依次激活。因为等待一些事件的发生而不能被处理的进程将控制权交给调度器。

    2.9 解释单体内核和微内核的区别。

          单体内核:提供操作系统应提供功能的大内核,包括调度、文件系统、网络、设备驱动器、存储管理等。典型情况下,大内核作为一个进程实现,所有元素共享相同的地址空间。

          微内核体系结构:只给内核分配一些最基本的功能,包括地址空间、进程间通信和基本的调度。其他操作系统服务由运行在用户模式且与其他应用程序类似的进程提供,这些进程可根据特定的应用和环境需求定制(或称为服务器)

    2.10 什么是多线程。

          多线程:把执行一个应用程序的进程划分为可以同时运行的多个线程。

    2.11 列出对称多处理操作系统设计时要考虑的关键问题。

          SMP操作系统管理处理器资源和其他计算机资源,以使用户能以与多道单处理器系统相同的方式看待SMP系统。用户可能会使用多进程和多线程的方式来构建应用,而不关心计算机使用的是单处理器还是多处理器。因此,多处理操作系统不仅要提供多道系统的所有功能,而且必须提供适应多处理器需要的额外功能。关键设计问题如下:

          并发进程和线程:内核程序应可重入,以使多个处理器能同时执行同一段内核代码。当多个处理器执行内核的相同或不同部分时,为避免数据损坏和无效操作,需要稳妥管理内核表和数据结构

          调度:任何一个处理器都可以执行调度,这既增加了执行调度策略的复杂度,也增加了保证调度相关数据结构不被损坏的复杂度。如果使用的是内核级多线程方式,就存在将同一进程的多个线程同时调度在多个处理器上的可能性。

          同步:因为可能会存在多个活跃进程访问共享地址空间或共享I/O资源的情况,因此必须认真考虑如何提高有效的同步机制这一问题。同步用来实现互斥及事件排序。在多处理操作系统中,锁是一种通用的同步机制。

          内存管理:多处理器上的内存管理要处理单处理器上内存管理涉及的所有问题,还要充分利用硬件提供的并行性来实现最优性能。不同处理器上的分页机制必须进行调整,以实现多处理器共享页或段时的数据一致性,执行页面置换。物理页的重用是我们关注的最大问题,即必须保证物理页在重新使用前不能访问到它以前的内容。

          可靠性和容错性:出现处理器故障时,操作系统应能妥善地降低故障的影响。调度器和操作系统的其他部分必须能识别出发生故障的处理器,并重新组织管理表。

  • 相关阅读:
    CentOS6 破解登录密码
    CentOS 添加硬盘创建并挂载分区
    CentOS 安装开发工具包
    CentOS vim的使用
    CentOS tcpdump的使用实例
    CentOS7没有ifconfig/route/arp/netstat等命令的解决方案
    CentOS 查看系统 CPU 个数、核心数、线程数
    Linux系统中的load average
    Python基础-shelve模块
    Python基础-configparser和hashlib模块
  • 原文地址:https://www.cnblogs.com/QRain/p/10763666.html
Copyright © 2011-2022 走看看