操作系统——精髓与设计原理 第三章复习题&习题(更新中)

复习题

3.1 什么是指令跟踪?

列出为进程执行的指令序列,描述单个进程的行为,这样的序列称为进程轨迹。

3.2通常有什么事件会导致创建一个进程?

(1)新的批处理作业(批处理就是对一批任务进行处理,一般没有太多的用户交互)。(磁带或硬盘中的批处理作业控制流通常会提供给操作系统。当操作系统准备接收新工作时,将读取下一个作业控制命令。)
(2)交互登录(终端用户登录到系统)
(3)未提供服务而由操作系统创建。(操作系统可以创建一个进程,代表用户程序执行一个功能,使用户无须等待。)
(4)由现有进程派生。(基于模快化的考虑或开发并行性,用户程序可以指示创建多个进程)

3.3定义进程模型中的每一种状态

运行态:进程正在运行。
就绪态:进程做好了准备,只要有机会就开始运行(长程调度)
阻塞态/等待态:进程在某些事件发生前不能执行,如I/O操作完成
新建态:刚刚创建的进程,操作系统还未给它加入可执行进程组中,它通常是进程控制块已经创建但是还未加载到内存中的新进程。
退出态:操作系统从可执行进程组中释放出的进程,要么是它自身已停止,要么它因某种原因被取消。

3.4 抢占一个进程是什么意思?

一般说,抢占定义为回收一个进程正在使用的资源。假设进程A以一个给定的优先级运行,而具有更高的优先级的进程B正处于阻塞态。如果操作系统知道进程B等待的事件已发生,则将进程B转换到就绪态,然后因为优先级的原因中断进程A的执行,将处理器分派给进程B,此时说操作系统抢占了进程A。此时资源就是处理器本身。进程正在执行并且可以继续执行,但是由于其他进程需要执行而被剥夺资源。

3.5什么是交换,其目的是什么?

即把内存中某些进程的一部分或全部移到磁盘中,目的是操作系统需要释放足够的内存空间,以调入并执行处于就绪态的进程。

3.6为何图3.9(b)中有两个阻塞态?

若没有就绪进程,则至少换出一个阻塞进程,以便为另一个未阻塞进程腾出空间。即使有可用的就绪态进程,也能完成这种转换。
若操作系统需要确定当前正运行的进程,或就绪进程为了维护基本的性能而需要更多的内存空间,则会挂起一个阻塞的进程。

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

(1)该进程不能立即执行。
(2)该进程可能在也可能不在等待一个事件。若在等待一个事件,那么阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即执行。
(3)为阻止该进程执行,可通过代理使其置于挂起态,代理可以是进程本身,也可以是父进程或操作系统。
(4)除非代理显示地命令系统进行状态转换,否则该进程无法从这一状态转移。

3.8操作系统会为哪类实体维护信息表?

操作系统构建并维护其管理的每一个实体的信息表,即内存、I/O、文件和进程表。

3.9列出进程控制块中的三类信息

进程标识信息,处理器状态信息,进程控制信息。

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

保护操作系统和重要的操作系统表(如进程控制块)不受用户程序的干扰。、

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

(1)为新进程分配一个唯一的进程标识符。主进程表会添加一个新表项,每个进程一个表项。
(2)为进程分配空间。这包括进程映像中的所有元素。因此,操作系统必须知道私有用户地址空间(程序和数据)和用户栈需要多少空间。默认情况下会根据进程的类型分配这些值,但也可在作业创建时基于用户请求设置这些值。若一个进程由另一个进程生成,则父进程可把所需要的值作为进程创建请求的一部分传递给操作系统。若任何已有的地址空间将被这个新进程共享,则需要建立正确的链接。最后,必须为进程控制块分配空间。
(3)初始化进程控制块。
进程标识部分包括进程ID和其他相关的ID,如父进程的ID等;
处理器状态信息部分的多数项目通常初始化为0,但是程序计数器(置为程序入口点)和系统栈指针(定义进程栈边界)除外。
进程控制信息部分根据标准的默认值和该进程请求的特性来初始化。例如进程状态通常初始化为就绪或就绪/挂起。优先级默认情况下可设置为最低,除非显示请求了更高的优点级。进程最初不拥有任何资源(I/O设备、文件),除非显式地请求这些资源,或继承了父进程的资源。
(4)设置正确的链接。例如,操作系统将每个调度队列都维护为一个链表,则新进程必须放在就绪或就绪/挂起链表中。
(5)创建或扩充其他数据结构。例如,操作系统可因编制账单和或评价性能,为每一个进程维护一个记账文件(类似于日志)。

3.12中断和陷阱有何区别?

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

3.13举出中断的三个例子

时钟中断:操作系统确定当前正运行进程的执行时间是否已超过最大允许时间段(时间片)。若超过,进程就切换到就绪态,并调入另一个进程。
I/O中断:操作系统确定是否已发生I/O活动。若I/O活动是一个或多个进程正在等待的事件,则操作系统就把所有处于阻塞态的进程转换为就绪态(阻塞/挂起态进程转化为就绪/挂起态)。操作系统必须决定是继续执行当前处于运行态的进程,还是让具有高优先级的就绪态进程抢占这个进程
内存中断:处理器遇到一个引用不在内存中的子的虚存地址时,操作系统就必须从外存中把包含这一引用的内存块(页或段)调入内存。发出调入内存块的I/O请求后,内存失效进程将进入阻塞态;操作系统然后切换进程,恢复另一个进程的执行。期望的块调入内存后,该进程置为就绪态。

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

模式切换可在不改变运行态进程的状态下出现,所以开销比较小。
进程切换,一定要改变运行态进程的状态。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bufanjun001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值