1、第二章 进程管理2. 1 学习指导本章是操作系统中最重要的一章,它涉及的内容和概念较多,而且有一部分概念具有一定的难度。程序在顺序执行时,具有顺序性、封闭性和可再现性。但为了提高计算机资源的利用率和增强系统的处理能力而引入了硬件并行操作,这可使某些程序并发执行,所谓并发是指在同一时间间隔内有若干事件发生。程序的并发执行不仅能提高系统的吞吐量,而且可显著地改善资源的利用率,所以并发已成为现代操作系统的一个基本特征。但是,程序的并发执行,使之失去了顺序程序的封闭性和可再现性,程序与计算不再一一对应,并产生了相互制约。为了描述程序的并发执行而引入了进程的概念。所谓进程可理解为“可与其他程序并发执行的
2、程序的一次执行” 。为了描述和控制进程的运行,系统为每个进程定义了一个数据结构,该数据结构被称为 PCB,PCB 是进程存在的帷一标志。进程具有五个基本特征:动态性、并发性、独立性、异步性和结构特征。由于进程运行的间断性,决定了进程至少有三种基本状态:就绪、执行和阻塞(等待) ,三种基本状态可经一定的触发条件而转换。进程是资源分配的基本单位,同时进程也可作为独立运行的基本单位,用户可以从进程的观点来研究操作系统。但由于系统资源数量的有限,必然导致诸进程间竞争资源。用户进程和系统进程之间、同一用户作业的内部进程之间、不同用户各作业的进程之间、各系统进程之间都存在资源竞争问题。竞争资源的进程间存在
3、着两种关系:(1)资源共享。虽然诸进程可以共享资源,但有些资源仅允许一个进程使用,我们把这种资源称为“临界资源” ,每个进程访问临界资源的那段代码称为“临界区” ,应保证诸进程互斥地进入临界区,即进程互斥;(2) 资源共享。两个或多个相关进程相互合作,完成一共同任务,此时,它们在执行时序上必须协调,即进程同步。为实现进程的互斥与同步,系统中必须设置相应的同步机构,该机构应遵循的准则是:空闲让进、忙则等待、有限等待和让权等待。常用的同步机构有锁和信号量等。信号量是管理临界区的公有资源,它代表可用资源实体。信号量仅能由 P、V 原语来对其进行修改。利用信号量可实现进程的互斥与同步,经典的进程同步问
4、题有:生产者和消费者问题、读者和写者问题、哲学家进餐问题等。所谓进程通信是指进程之间交换信息,通信可分为低级通信和高级通信。P、V 操作属于低级通信方式,该方式以控制进程并发执行为主要目的,而利用通信原语进行高级通信则是以通信为主要目的。一个作业从提交到完成一般要经历三个阶段:(1)高级调度。它决定了将哪些处于后备状态的作业调入内存准备执行;(2)低级调度。它决定了就绪队列中的哪一个进程将获得处理机,并使之执行;(3)中级调度。它实现内外存进程的对换。进程调度有两种方式:剥夺调度( 抢占式调度)和非剥夺调度( 非抢占式调度) 方式。在批处理系统中常用的进程调度算法有:先来先服务 FCFS、最短
5、 CPU 运行期优先、高优先数优先、响应比高者优先等,在分时系统中常用的进程调度算法有:时间片轮转、多级反馈队列等调度算法。进程间的关系非常复杂。如果对竞争失控,产生的后果是要么资源在使用过程中遭到破坏,要么各进程为争夺资源而形成僵持局面(死锁) 。产生死锁的原因可归结为诸进程对共享资源的竞争和进程推进顺序不当。产生死锁的必要条件有:互斥条件、请求和保持条件、不剥夺条件和环路等待条件。解决死锁的办法也有四种:预防死锁、避免死锁、检测死锁和解除死锁。在预防死锁中我们可以通过破坏产生死锁的四个必要条件的后三个来实现,如静态资源分配法和有序资源分配法,但它们都加了较强的限制条件。避免死锁是在资源分配
6、过程中防止系统进入不安全态,我们可以用银行家算法。检测死锁是在系统中设置一死锁检测机构,能及时地检测出发生的死锁。解除死锁是当检测到发生死锁后,将进程从死锁状态中解脱出来,常采用剥夺资源和撤消进程两种方法。本章的重点内容是:进程的基本概念(包括进程的定义、进程的特征、进程的状态及其变迁、进程的组成、进程控制块的内容及作用);进程的控制 (包括进程的建立、进程的撤消、进程的阻塞、进程唤醒等) ;原语的含义、作用及内容;临界资源、临界区的基本概念;进程互斥与同步的基本概念;P、V 操作的控制机理;进程间的通信;常用进程调度算法;死锁的基本概念;产生死锁的原因和预防死锁产生的具体措施等。2. 2 学
7、习自评一、 选择题1关于对进程概念的叙述,下列说法错误的是 。A. 进程是一个程序与数据的集合 B. 进程是程序的一次执行C. 进程是内存中一组指令序列的执行过程 D. 进程是一个计算过程2对进程的描述中,下列说法错误的是 。A. 一个进程可以包含若干个程序 B. 一个程序可以对应多个进程C. 进程必须由程序作为其组成部分 D. 一个程序仅对应一个进程3下列关于进程的叙述中,正确的是 。A. 进程申请 CPU 得不到满足时,其状态变为等待状态B. 在单 CPU 系统中,任一时刻可有多个进程处于运行状态C. 优先级是进行进程调度的重要依据,一旦确定,不能改变D. 进程获得处理机而运行是通过调度而
8、得到的4进程是 。A. 一个程序段 B. 一个程序单位C. 一个程序与数据的集合 D. 一个程序的一次执行5 ,不是引入进程的直接目的。A. 多道程序同时在主存中运行 B. 主存中各程序之间存在着相互依赖、相互制约的关系C. 程序的状态不断地发生变化D. 程序需要从头至尾的执行6下列有关进程和程序的主要区别中,叙述是错误的是 。A. 进程是程序的执行过程,程序是代码的集合B. 进程是动态的,程序静态的C. 进程可为多个程序服务,而程序不能为多个进程服务D. 一个进程是一个独立的运行单位,一个程序段不能作为一个独立的运行单位7 不是组成进程的元素。A. 数据 B. 程序段 C. 进程控制块 D.
9、 变量8 不是进程的特征。A. 动态性 B. 并发性 C. 共享性 D. 同步性9已经获得除 CPU 以外的所有所需资源的进程处于( )状态。A. 运行状态 B. 就绪状态 C. 自由状态 D. 等待状态10如果一个进程获得了除 CPU 以外的所有所需运行资源,经调度分配 CPU 给它后,该进程进入( ) 。A. 执行状态 B. 停止状态 C. 等待状态 D. 静止状态11某进程等待的一次打印输出结束,该进程的状态将从( ) 。A. 运行状态到等待状态 B. 就绪状态到运行状态C. 等待状态到就绪状态 D. 运行状态到就绪状态12下列进程状态转换中,哪一个是不正确的( ) 。A. 就绪到运行
10、B. 运行到就绪 C. 就绪到等待 D. 等待到就绪13CPU 的状态分为目态和管态两种,从目态转换到管态的唯一途径是( ) 。A. 运行中进程修改程序状态字 B. 中断屏蔽C. 中断 D. 进程调度程序14对进程的管理和控制使用( ) 。A. 原语 B. 指令 C. 信号量 D. 信箱通信15操作系统通过( )对进程进行管理。A. JCB B. PCB C. JCL D. FCB16CPU 响应中断的时间是( ) 。A. 一条指令执行结束 B. 外设提出中断C. 取指周期结束 D. 控制信号开始17如果发现定点操作数溢出、除数为 0、地址越界等错误而发生的中断称为( ) 。A. 外部中断 B
11、. 程序中断 C. 输入/输出中断 D. 访管中断18用户要求分配一台外围设备、要求分配一些主存区域、要求启动外围设备读一批数据等而发生的中断称为( ) 。A. 外部中断 B. 程序中断 C. 输入/输出中断 D. 访管中断19在中断处理中,输入/输出中断是指( ) 。设备出错;数据传输结束。A. B. C. 和 D. 都不是20在进程管理中,一旦出现比执行进程有更高优先数的进程进入就绪状态时,就停止正在执行的进程,把 CPU 分配给优先数更高的就绪进程,这种进程调度方法称为( ) 。A. 静态优先权法 B. 动态优先权法C. 抢占式优先权法 D. 非抢占式优先权法21在分时系统中,进程调度经
12、常使采用的算法是( ) 。A. 先来先服务 B. 最高优先权 C. 时间片轮转 D. 随机22在( )调度算法中,按照进程进入就绪队列的先后次序来分配处理机。A. 先来先服务 B. 最高优先权 C. 时间片轮转 D. 随机23在采用时间片轮转调度算法的分时系统中,如果时间片一定,那么( ) ,则响应时间越长。A. 用户进程数越少 B. 用户进程数越多 C. 内存越少 D. 内存越多24下面所述步骤中,不是创建进程所必需的步骤是( ) 。A由 CPU 调度程序为进程调度 CPU B建立一个过程控制块C为进程分配内存 D将进程控制块链人就绪队列25下列关于状态转换的条件及发生状态的转换叙述中,说法
13、错误的是 。A. 由进程调度,使就绪状态的进程转到执行状态B. 因时间片用完,使正在执行的进程转到就绪状态C. 因时间片用完,使正在执行的进程转到阻塞状态D. 因输入、输出完成事件的发生,处于阻塞状态的进程进入就绪状态26下列关于进程控制块的叙述中,说法错误的是 。A. 进程控制块对每个进程仅有一个 B. 进程控制块记录进程的状态及名称等C. 进程控制块位于主存储区内 D. 进程控制块的内容、格式及大小均相同27 不是进程控制块包含的内容。A. 进程的标识,如名称等 B. 当前进程所处的状态及转换条件C. CPU 的现场信息 D. 进程占用的资源及相关程序的起始地址28下列关于 PCB 的叙述
14、中,说法错误的是 。A. PCB 还记录进程的优先级及调度信息 B. PCB 是进程存在的唯一标识C. PCB 是在建立进程之后建立的 D. PCB 随进程的撤消而撤消29在进程的调度算法中, 是动态优先数的确定算法。A. 按进程使用资源进行调度 B. 按进程在队列中等待的时间进行调度C. 按时间片轮换调度 D. 非剥夺式优先数调度30在下列进程调度算法中,可能引起进程长时间得不到运算的算法是 。A. 不可抢占式动态优先数法 B. 可抢占式静态优先数法C. 不可抢占式静态优先数法 D. 时间片轮转法31进程调度有两种方式,一是剥夺方式,另一是非剥夺方式, 是非剥夺方式。A. 将处理机上正在运行
15、的进程暂停,分配给更紧急的进程B. 将队列中的紧急进程调入,使之处于运行状态C. 紧急进程在队列中照样等待D. 一旦正在运行的进程被阻塞或完成,紧急进程立即占用 CPU32在下列叙述中,正确的一条是 。A. 分时系统中,时间片越小,响应时间越短B. 多道程序的引入,主要是为了提高 CPU 的利用率C. 飞机票订票系统是分时系统D. PCB 是进程存在的唯一标志,而程序是系统感知进程存在的唯一实体33进程的共行性是指 。A. 不同进程的动作可以在时间上重叠 B. 几个进程可以同时使用 CPUC. 进程之间可以相互依从地并发执行 D. 进程之间不能各自独立地前进34下列关于进程控制原语的叙述,说法
16、错误的是 。A. 原语是一条指令,该指令完成一个指定功能B. 原语是一组机器指令组成的程序段C. 原语在执行期间不能被中断D. 原语不同于广义指令35下列关于创建原语的叙述中,说法错误的是 。A. 创建原语的作用于是自行建立一个进程B. 创建原语的工作是为被创建进程形成一个进程控制块C. 创建原语都是由进程调用执行D. 创建原语不能自己单独执行36下列关于进程撤消原语的叙述中,说法错误的是 。A. 撤消原语只能撤消一个处于挂起状态的进程B. 撤消原语只能撤消一个正在运行的进程C. 撤消原语可以撤消一个具有指定标识的进程D. 撤消原语可以撤消某进程下属的一个子进程及其所属的子孙进程37下列关于进
17、程阻塞原语的叙述中,说法错误的是 。A. 阻塞原语的作用是将进程由执行状态变到阻塞状态B. 进程的阻塞状态是由进程自身调用阻塞原语实现的C. 阻塞原语的第一个操作是中断 CPU,并保存 CPU 的现场信息到 PCB 中D. 进程由阻塞状态变为就绪状态也是由进程自身调用原语来实现的38进程的管理由进程原语实现, 不是进程管理的内容。A. 进程的建立 B. 进程的撤消 C. 进程的保持 D. 进程的阻塞39在一段时间内只允许一个进程访问的资源,称为( ) 。A共享资源 B临界区 C临界资源 D共享区40若 S 是 P、V 操作的信号量,当 S0,则进程继续进行;若 S0,则 。A. 将进程阻塞,插
18、入等待队列B. 将队列中的一个进程移出,使之处于运行状态C. 将进程变为挂起状态D. 将队列中的一个进程移出,使之处于就绪状态50利用 P、V 操作可实现进程之间的 。A. 同步 B. 互斥 C. 同步与互斥 D. 进程状态的变换51关于进程通信的叙述中, 是高级通信。A. P、V 操作 B. 生产者和消费者问题C. 直接通信和间接通信 D. 同步与互斥52在非剥夺调度方式下,运行进程执行 V 原语之后,其状态 。A. 不变 B. 要变 C. 可能要变 D. 可能不变53对于两个并发进程,设互斥信号量为 mutex,若 mutex=0,则( )A. 表示没有进程进入临界区B. 表示有一个进程进
19、入临界区C. 表示有一个进程进入临界区,另一个进程等待进入D. 表示有两个进程进入临界区54两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的( ) 。A. 同步 B. 互斥 C. 调度 D. 执行55为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为( ) 。A. 进程互斥 B. 进程同步 C. 进程制约 D. 进程通信56死锁产生是有一定条件的,下列不是死锁产生的必要条件是 。A. 永久资源一次只能被一个进程独占B. 进程独占某种资源时,在其未使用完之前不能
20、被其他进程夺走C. 一个进程占用两个或两个以上资源D. A 进程占有资源 P,B 进程占有资源 Q,同时 A 又要求 Q,B 又要求 P57预防死锁的有效措施是 。A. 破坏对独占资源的互斥条件B. 破坏进程对资源独占后的不可剥夺性C. 采用预先静态分配算法,将全部资源一次性分配给各个作业D. 采用有序资源使用法58资源的有序分配策略可以破坏( )条件。. 互斥使用资源 . 占有且等待资源(请求和保持资源). 非抢夺资源 . 循环等待资源59死 锁 一 旦 发 生 , 只 能 设 法 将 死 锁 解 除 , 常 采 用 两 种 方 法 , 一 是 资 源 剥 夺 , 二 是 。A. 挂起运行中
21、的进程,将其资源分配给死锁进程 B. 停机重新启动系统C. 撤消系统中的一个或几个死锁进程 D. 更换系统60在下列解决死锁的方法中,属于死锁预防策略的是 。A. 银行家算法 B. 资源有序分配法C. 死锁检测算法 D. 资源分配图化简法二、填空题61. 并发是现代操作系统的最基本特征之一,为了更好地描述这一特征而引入了这一概念。62. 进程被创建后,最初处于 状态,然后经 选中后进入 状态。63. 进程的同步和互斥反映了进程间 和 的关系。64. 死锁产生的原因是 和 。65. 进程调度的方式通常有 和 方式两种66. 在操作系统中,信号量表示 的物理实体,它是一个与 有关的整型变量,其值仅
22、能由原语改变。67. 现代计算机中,CPU 工作方式有目态和管态两种。目态是指运行 程序,管态是指运行 程序。执行编译程序时,CPU 处理 。68. 进程的静态描述由 、 和 三部分组成。69. 产生死锁的四个必要条件是 、 、 和 。70. 一个进程的 可以划分为一组状态,一个进程至少应有 基本状态: 、 、 。71. 每执行一次 P 原语,信号量的数值 S 减 1。如果 S =0,该进程 ;若S0,则 该进程,并把它插入该 对应的 队列中,重新进行进程调度。72. 每执行一次 V 原语,信号量的数值 S 加 1。如果 ,则 q 进程继续执行;如果 S=0,则从对应的 队列中移出 进程并将
23、状态赋予该进程。73. 利用信号量实现进程的 ,应为临界区设置一个信号量 mutex。其初值为 ,表示该资源尚未使用,临界区应置于 和 原语之间。 74. 进程创建工作主要完成的是创建进程控制块(PCB) ,并把它挂到 队列中。75. 如果系统中有 n 个过程,则在就绪队列中进程的个数最多为 。76. 进程之间的联系称之为进程通信, 是进程的通信工具。三、自评参考答案1.A 2.D 3.D 4.D 5.D 6.C 7.D 8.D 9.B 10.A 11.C 12.C 13.C 14.A 15.B 16.A 17.B 18.D 19.C 20.C 21.C 22.A 23.B 24.A 25.C
24、 26.D27.B 28.C 29.B 30.B 31.D 32.B 33.A 34.A 35.A 36.B 37.D 38.C39.C 40.A 41.C 42.B 43.B 44.D 45.C 46.B 47.C 48.B 49.D 50.C51.C 52.A 53.B 54.A 55.D 56.C 57.D 58.D 59.C 60.B 61. 进程62.就绪、进程调度、运行 63.直接制约、间接制约 64.竞争资源、进程推进顺序不当 65.剥夺调度(可抢占式) 、非剥夺调度(不可抢占式) 66.可用资源、队列 67.用户、操作系统、目态 68.PCB、程序部分、相关的数据结构集 69.互斥条件、不剥夺条件、部分分配条件、环路条件 70. 资源队列、PV 71.生命期、三种、运行状态、就绪状态、等待状态 72. 继续执行、阻塞(等待) 、信号量、阻塞(等待) 73. S0、等待、一个、就绪 73. 互斥、1、P(mutex) 、V(mutex) 74. 就绪 75. n1 76. 通信原语