《操作系统--精髓与设计原理》第三章复习题

第三章    进程描述与控制

1、什么是指令跟踪

进程执行的指令序列,可描述单个进程的行为。

2、哪些常见事件会触发进程的创建

新的批处理作业:磁带或磁盘中的批处理作业控制流通常会提供给操作系统。当操作系统准备接收新工作时,将读取下一个作业控制命令。

交互登录:终端用户登录到系统

为提供服务而由操作系统创建:操作系统可以创建一个进程,代表用户程序执行一个功能,使用户无需等待(如控制打印的进程)

由现有进程派生:基于模块化的考虑开发并行性,用户程序可以指示创建多个进程

3、简单定义五状态进程模型中的每种状态

运行态:进程正在执行。

就绪态:进程做好了准备,只要有机会就开始执行。

阻塞/等待态:进程在某些事件发生前不能执行,如I/O操作完成。

新建态:刚刚创建的进程,操作系统还未把它加入可执行进程组,它通常是进程控制块已经创建但还未加载到内存中的新进程

退出态:操作系统从可执行进程组中释放出的进程,要么它自身已停止,要么因某种原因被取消。

4、抢占一个进程是什么意思

处理器为了执行另外的进程而终止当前正在执行的进程

5、什么是交换,其目的是什么

交换是指把主存中某个进程的部分或者全部内容转移到磁盘。当主存中没有处于就绪态的进程时,操作系统就把一个阻塞的进程换出到磁盘中的挂起队列,从而使另一个进程可以进入主存执行

6、阻塞态和阻塞/挂起态概念上有什么不同

进程是否在等待一个事件(阻塞与否)以及进程是否已经被换出主存(挂起与否)

7、列出挂起态进程的4个特点

  1. 进程不能立即执行
  2. 进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。
  3. 为了阻止进程执行,可以通过代理把这个进程置于挂起态,代理可以是进程自己,也可以是父进程或操作系统
  4. 除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移

8、操作系统会为哪类实体维护信息表

内存、I/O、文件和进程

9、列出进程控制块的三类信息

进程标识符(process identification): 每个进程都分配了一个唯一的数字标识符。进程标识符可以简单地表示为主进程表中的一个索引;否则,就必须有一个映射,以便操作系统可以根据进程标识符定位相应的表。该标识符可用在很多地方,且操作系统控制的其他许多表可以使用进程标识符来交叉引用进程表。例如,内存表可以组织起来提供一个内存映射,以说明每个区域分配给了哪个进程。I/O表和文件表中也存在类似的引用。进程相互之间进行通信时,进程标识符可用于通知操作系统某一特定通信的目标;允许进程创建其他进程时,标识符可用于指明每个进程的父进程和后代进程。

处理器状态信息(processor state information): 由处理器寄存器的内容组成。运行一个进程时,进程的信息一定会出现在寄存器中。中断进程时,必须保存该寄存器的所有信息,以便进程恢复执行时可以恢复所有这些信息。所涉寄存器的性质和数量取决于处理器的设计。典型情况下,寄存器组包括用户可见寄存器、控制和状态寄存器(程序计数器、条件码、状态信息)及栈指针。

进程控制信息(process control information): 操作系统控制和协调各种活动进程所需的额外信息。包括调度和状态信息(典型的信息项包括进程状态、优先级、调度相关信息、事件)、数据结构、进程间通信、进程特权、存储管理、资源所有权和使用情况。

10、为什么需要两种模式(用户模式和内核模式)?

使用两种模式的原因是保护操作系统和重要的操作系统表(如进程控制块)不受用户程序的干扰。在内核模式下,软件会完全控制处理器及其所有指令、寄存器和内存。为安全起见,这种级别的控制对用户程序而言没有必要。

11、操作系统创建一个新进程的步骤是什么?

操作系统基于某种原因决定创建一个新进程时,会按如下步骤操作:

  1. 为新进程分配一个唯一的进程标识符
  2. 为进程分配空间
  3. 初始化进程控制块
  4. 设置正确的链接。例如,若操作系统将每个调度队列都维护为一个链表,则新进程必须放在就绪或就绪/挂起链表中。
  5. 创建或扩充其他数据结构。例如,操作系统可因编制账单和/或评估性能,为每个进程维护一个记账文件。

12、中断和陷阱有何区别?

中断与当前正在运行的进程无关的某种外部事件相关,如完成一次I/O操作;陷阱与当前正运行进程产生的错误或异常条件相关,如非法的文件访问。

对于普通中断(interrupt),控制权首先转给中断处理器,中断处理器完成一些基本的辅助工作后,再将控制权转给与已发生的特定中断相关的操作系统例程。

对于陷阱(trap),操作系统则确定错误或异常条件是否致命。致命时,当前正运行进程置为退出态,并切换进程;不致命时,操作系统的动作将取决于错误的性质和操作系统的设计,操作系统可能会尝试恢复程序,或简单地通知用户。操作系统可能会切换进程,或者继续当前运行的进程。

13、举出中断的三个例子

时钟中断:操作系统确定当前正运行进程的执行时间是否已超过最大允许时间段【时间片(time slice),即进程中断前可以执行的最大时间段】。若超过,进程就切换到就绪态,调入另一个进程。

I/O中断:操作系统确定是否已经发生I/O活动。若I/O活动是一个或多个进程正在等待的事件,则操作系统就把所有处于阻塞态的进程转换为就绪态(阻塞/挂起态进程转换为就绪/挂起态)。操作系统必须决定是继续执行当前处于运行态的进程,还是让具有高优先级的就绪态进程抢占这个进程。

内存失效:处理器遇到一个引用不在内存中的字的虚拟地址时,操作系统就必须从外存中把包含这一引用的内存块(页或段)调入内存。发出调入内存块的I/O请求后,内存失效进程将进入阻塞态;操作系统然后切换进程,恢复另一个进程的执行。期望执的块调入内存后,该进程置为就绪态。

14、模式切换和进程切换有何区别?

模式切换可在不改变运行态进程的状态的情况下出现。此时保存上下文并在以后恢复上下文仅需很少的开销。但是,若当前正运行进程将转换为另一状态(就绪、阻塞等),则操作系统必须使环境产生实质性的变化。

涉及状态变化的进程切换与模式切换相比,要做的工作更多。

猜你喜欢

转载自blog.csdn.net/qq_36414798/article/details/80588518
今日推荐