当前位置:
文档之家› 第二章-课后习题解答学习资料
第二章-课后习题解答学习资料
end
end
7
第2章 进程管理
12.在生产者—消费者问题中,如果缺少了 signal(full)或signal(empty),对执行结果将 会有何影响?
【解答】若缺少释放资源的原语操作,则会导致生产者或
消费者进程不能再继续工作。 如缺少了signal(full),则消费者进程可能得不到所需的临 界资源如缓冲区,不能取一件产品;同样,如果缺少signal (empty),则生产者进程又可能得不到所需的资源,不 能存放一件产品。
第二章-课后习题解答
第2章 进程管理
3.程序并发执行,为什么会失去封闭性和可再现性? 【解答】在程序并发执行的环境下,多个进程共享系统中 的资源,这些资源是否被使用,及每一时刻由哪个进程使 用,将由多个进程的相互作用而决定。这样,程序的执行 就失去了封闭性。某个进程的执行必然受到其它进程的影 响。 由于进程在并发执行的过程中失去了封闭性,当下一次再 运行该程序时,系统中存在的进程及各进程的状态都可能 发生变化,导致进程的执行失去可再现性。 4.什么叫进程的并发性?试举一个进程并发执行的例子。 【解答】多个进程在同一时间间隔内同时发生,叫做进程 的并发性。 例如:我们在Linux系统下使用编辑器vi进行编辑,而此 时系统正在后台运行一个编译程序,此时,两个进程并发 执行。
2
第2章 进程管理
5.举一个例子,说明一个程序可能同时属于多个进程。 【解答】例如:超市的收银系统。在每个终端上,收银员在运 行收款程序,因此每个收银员都在执行一个进程。超市里同时 有很多收款终端,同一个程序被并发执行多次,造成了多个进 程并发执行。 6.试说明PCB的作用,为什么说PCB是进程存在的惟一标志? 【解答】PCB的作用是:在一个在多道程序环境下,集中反映 了一个进程的动态特征。在进程并发执行时,由于资源共享, 带来各进程之间的相互制约。显然,为了反映这些制约关系和 资源共享关系,必须使用PCB中的信息,才能对进程实施有效 的管理和控制。
9
第2章 进程管理
15.什么是线程?说明它与进程的主要区别。 【解答】线程是进程中执行运算的最小单位,亦即执行处 理机调府的基本单位。 线程与进程的主要区别如下: (1)调度性方面。进程是资源分配的基本单位,线程是分 配处理机的基本单位,它与资源分配无关,即真正在处理 机上运行的是线程。 (2)拥有资源方面。进程是拥有资源的独立单位,线程基 本是不拥有资源的。同一进程的线程共用该进程的资源。 (3)并发性方面。进程和线程都可以并发执行。但同一个 进程的线程在并发执行时,状态转换速度较快。 (4)系统开销方面。进程在创建、状态转换、撤销时开销 较大,对于同样的工作,线程的开销较小。
5
10.在创建一个进程时,所要做的工作有 哪些?
【解答】操作系统通过进程创建原语来创 建一个进程。创建原语通过下述步骤创建 一个进程:
(1)申请空白PCB。 (2)为新进程分配资源。 (3)初始化进程控制块。 (4)将新建进程插入就绪态队列。
第2章 进程管理
11.从概念上说明记录型信号量的构成,描述wait原语和
var S: semaphore; 可描述为:
begin
procedure signal(S)
s: =s-1;
var S: semaphore;
if s≥0 th
将本进程放入阻塞态队列; if s≤0 then 唤醒指针L所
转进程调度
指的阻塞态进程;;
4
第2章 进程管理
9.试说明进程的基本状态及转换的原因。 【解答】在操作系统中,进程通常至少有三种基本状态:就 绪状态、执行状态和阻塞状态。 进程状态转换的原因是:系统中的进程是并发执行的。在系 统中, CPU在不同的时间,按一定的算法为不同的进程服 务;系统中的资源是有限的;各进程之间存在相互作用。因 此,进程并非固定处于某个状态,它将随着自身的推进和 外界条件的变化而发生变化。对于一个系统,处于就绪状 态的进程,在调度程序为之分配了处理机之后,该进程便 由就绪态转变为执行状态。当前进程如果因分配给它的时 间片己用完而被暂停执行时,该进程便由执行状态又回到 就绪状态;一个处于执行状态的进程,因为等待某外部事件 发生而使该进程状态转变为阻塞状态。一个处于阻塞状态 的进程,当它所需的外部事件满足,它应由阻塞状态变为 就绪状态。
PCB是进程实体的一部分,是操作系统中非常重要的数据 结构,存放着进程所需的运行信息和控制信息,系统在创建进 程时,首先创建PCB,然后通过PCB感知进程的存在,进程 在被撤消时,PCB也随之被撤消。因此,PCB是进程存在的 惟一标志。
3
第2章 进程管理
7.说明进程由哪几部分构成? 【解答】进程实体通常就是由程序、数据集合和 PCB这三部分构成,也称为“进程映像”。 8.什么叫临界区?为什么进程在进入临界区之前, 要先执行申请操作,离开临界区,要做释放操作? 【解答】将每个进程中访问临界资源的那段代码称 为临界区,因此也可以说:不能被多个进程同时进 入的程序或数据区域叫做临界区。 因为临界区不能由多个进程同时进入,因此,在进 入临界区之前,要先执行申请操作,确保在没有其 它进程进入的情况下,该进程才能进入该临界区; 在离开临界区之前,要做释放操作,以便其它进程 可以进入该临界区。
signal 原语所进行的操作。
【解答】记录型信号量的数据结构由两部分构成,即:数值
分量和指针分量。数值表示系统中可用的该类临界资源的数
量,而指针分量为进程链表指针,指向等待该类资源的PCB
队列。
申请临界资源的原语wait操作可描述为:
procedure wait(S) 释放临界资源的原语signal操作
13.在生产者—消费者问题中,如果两个wait操 作即wait(mutex)和wait(empty)位置互换, 会产生什么后果? 【解答】如果两个wait操作即wait(mutex)和 wait(empty)位置互换,则有可能产生死锁。
8
第2章 进程管理
14.进程的高级通信方式有哪几种? 【解答】高级通信方式可分为三大类:共享存储器 系统、消息传递系统和管道通信系统。 在共享存储器系统中,相互通信的进程共享某些数 据结构或共享存储区;消息传递系统中,进程间的 数据交换以消息为单位,用户直接利用系统提供的 一组通信原语来实现通信,消息传递系统可分为消 息缓冲通信和信箱通信;管道通信通信的方法是, 向管道提供输入的发送进程以字符流形式将大量的 数据送入管道,而接受管道输出的接收进程可从管 道中接收数据。