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

    操作系统--精髓与设计原理(第八版)第四章复习题答案

    4.1 表3.5列出了在一个没有线程的操作系统中进程控制块的基本元素。对于多线程系统,这些元素中哪些可能属于线程控制块,哪些可能属于进程控制块?

    ​ 这对于不同的系统来说通常是不同的,但一般来说,进程是资源的所有者,而每个线程都有它自己的执行状态。关于表3.5中的每一项的一些结论如下:

    • 进程控制信息:调度和状态信息主要处于线程级;数据结构在两级都可出现;进程间通信和线程间通信都可以得到支持;特权在两级都可以存在;存储管理通常在进程级;资源信息通常也在进程级;
    • 进程标识:进程必须被标识,而进程中的每一个线程也必须有自己的ID。
    • 处理器状态信息:这些信息通常只与进程有关。

    4.2 请列出线程间的模式切换比进程间的模式切换开销更低的原因。

    ​ 包含的状态信息更少。

    4.3 在进程概念中体现出的两个独立且无关的特点是什么?

    • 资源所有权: 进程包括存放进程映像的虚拟地址空间;回顾第3章的内容可知,进程映像是程序、数据、栈和进程控制块中定义的属性集。进程总具有对资源的控制权或所有权,这些资源包括内存、I/O通道、I/O设备和文件等。操作系统提供预防进程间发生不必要资源冲突的保护功能。
    • 调度/执行:进程执行时采用一个或多程序(见图1.5)的执行路径(轨迹),不同进程的执行过程会交替进行。因此,进程具有执行态(运行、就绪等)和分配给其的优先级,是可被操作系统调度和分派的实体。

    4.4 给出在单用户多处理系统中使用线程的四个例子。

    • 前台和后台操作
    • 异步处理
    • 加速执行
    • 模块化程序结构。

    4.5 哪些资源通常被一个进程中的所有线程共享?

    ​ 进程中的所有线程共享该进程的状态和资源,例如地址空间,文件资源,执行特权等。

    4.6 列出用户级线程由于内核级线程的三个优点。

    • 由于所有线程管理数据结构都在一个进程的用户地址空间中,线程切换不需要内核级模式的特权,因此,进程不需要为了线程管理而切换到内核模式,这节省了在两种模式间进行切换(从用户模式到内核模式;从内核模式返回用户模式)的开销。
    • 调用可以是应用程序专用的。一个应用程序可能倾向于就按单的轮询调度算法,而另一个应用程序可能倾向于基于优先级的调度算法。调度算法可以去适应应用程序,而不会扰乱底层的操作系统调度器。
    • 用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改以支持用户级线程。线程库是一组供所有应用程序共享的应用级软件包。

    4.7 列出用户级线程相对于内核级线程的两个缺点。

    • 在典型的操作系统中,许多系统调用都会引起阻塞。因此,当用户级线程执行一个系统调用时,不仅这个线程会被阻塞,进程中的所有线程都会被阻塞。
    • 在纯粹的用户级进程策略中,一个多线程应用程序不能利用多处理器技术。内核一次只把一个进程分配给一个处理器,因此一次进程中只能有一个线程可以执行。

    4.8 定义”套管“jacketing.
    Jacketing通过调用一个应用级的I/O例程来检查I/O设备的状态,从而将一个产生阻塞的系统调用转化为一个不产生阻塞的系统调用。

  • 相关阅读:
    android switch控件的使用
    触摸屏校准tslib的配置文件
    matlab 函数的编写与调用
    penmount串口触摸屏加载
    FPGA保留信号的语句
    ioctl和unlock_ioctl的区别
    内核目录中增加自己的目录
    linux内核打印"BUG: scheduling while atomic
    28335外部中断
    编译QT时出现lib/libQtGui.so: undefined reference to `ts_read_raw'的解决办法
  • 原文地址:https://www.cnblogs.com/honernan/p/14252180.html
Copyright © 2011-2022 走看看