第2章辅导与自测.docx

上传人:b****6 文档编号:4714218 上传时间:2022-12-07 格式:DOCX 页数:12 大小:76.22KB
下载 相关 举报
第2章辅导与自测.docx_第1页
第1页 / 共12页
第2章辅导与自测.docx_第2页
第2页 / 共12页
第2章辅导与自测.docx_第3页
第3页 / 共12页
第2章辅导与自测.docx_第4页
第4页 / 共12页
第2章辅导与自测.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

第2章辅导与自测.docx

《第2章辅导与自测.docx》由会员分享,可在线阅读,更多相关《第2章辅导与自测.docx(12页珍藏版)》请在冰豆网上搜索。

第2章辅导与自测.docx

第2章辅导与自测

第2章进程管理辅导与自测

2.1本章知识点

进程是操作系统中最基本、最重要的概念之一,在计算机系统中,进程不仅是最基本的并发执行的单位,而且也是分配资源的基本单位。

引入进程这个概念,对于我们理解、描述和设计操作系统具有重要意义。

本章的主要知识点为:

(1)进程的概念

进程是程序在并发环境中的执行过程。

进程最根本的属性是动态性和并发性。

要注意进程与程序的区别。

进程的五个基本特征是:

动态性、并发性、独立性、制约性、结构性。

一个进程实体通常由程序、数据、栈和进程控制块(PCB)这四部分组成。

进程控制块是进程组成中最关键的部分。

每个进程有唯一的进程控制块。

操作系统根据PCB对进程实施控制和管理。

进程的动态、并发等特征是利用PCB表现出来的。

为了对所有进程进行有效地管理,常将各进程的PCB用适当的方式组织起来。

一般说来,进程队列有以下几种方式:

线性方式、链接方式和索引方式。

进程有三个基本状态:

运行态、就绪态和阻塞态。

在一定的条件下,进程的状态将发生转换。

下图所示为进程的状态及其转换。

图进程状态及其转换

(2)进程管理

就如同人类的族系一样,系统中众多的进程也存在族系关系:

由父进程创建子进程,子进程再创建子进程,从而构成一棵树形的进程族系图。

进程作为有“生命期”的动态过程,对它们的实施管理主要包括:

创建进程、撤消进程、挂起进程、恢复进程、改变进程优先级、封锁进程、唤醒进程、调度进程等。

在Linux系统中,进程有5种状态。

进程分为系统进程和用户进程。

其中,系统进程只运行在内核模式下;用户进程既可以在用户模式下运行,也可以通过系统调用等运行在内核模式下。

Linux的task_struct结构相当于其进程控制块。

Linux系统对进程的操作常用命令有:

ps、kill、sleep等。

常用的系统调用有:

fork,exec,wait,exit,getpid,sleep,nice等。

(3)进程通信

进程通信是指进程间的信息交换。

根据进程间交换信息量的多少,分为高级进程通信和低级进程通信。

进程的同步与互斥是指进程在推进时的相互制约关系,属于低级进程通信。

一般来说同步反映了进程之间的协作关系,往往指有几个进程共同完成一个任务时在时间次序上的某种限制,进程相互之间各自的存在及作用,通过交换信息完成通信。

如接力比赛中一组队员使用接力棒等。

进程互斥体现了进程之间对资源的竞争关系,这时进程相互之间不一定清楚其它进程的情况,往往指多个任务多个进程间的通讯制约,因而使用更广泛。

如打篮球时双方挣抢篮板球等。

我们用信号量(Semaphore)及P,V操作来实现进程的同步和互斥。

生产者-消费者问题是经典的进程同步和互斥问题。

(4)死锁

死锁是指多个进程循环等待他方占有的资源而无限期地僵持下去的局面。

计算机系统产生死锁的根本原因就是资源有限且操作不当。

一种原因是竞争资源引起的死锁,另一种原因是由于进程推进顺序不合适引发的死锁。

产生死锁的四个必要条件是:

互斥条件,不可抢占条件,占有且申请条件,循环等待条件。

如果在计算机系统中同时具备这四个必要条件时,那么会发生死锁。

一般地,解决死锁的方法分为死锁的预防、避免、检测与恢复三种。

2.2典型例题解析

【例1】判断题:

并发是并行的不同表述,其原理相同。

()

答案×。

分析并发是指多道程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。

但对单CPU系统而言,每一时刻只有一个程序在CPU上运行(有可能此时其他的程序在进行输入、输出)。

也就是说,占有CPU的只能有一个程序。

因此,并发实际上是“在宏观上并行执行,在微观上串行执行”。

而并行是真正意义上的并行执行,因此两者的含义是不同的。

【例2】在操作系统中引入“进程”概念的主要目的是()。

A.改善用户编程环境B.提高程序的运行速度

C.描述程序动态执行过程的性质D.使程序与计算过程一一对应

答案C

分析操作系统中多道程序的引入,使得它们在并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各道程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。

这些都是在程序的动态过程中发生的。

而程序本身是机器能够翻译或执行的一组动作或指令,它或者写在纸面上,或者存放在磁盘等介质上,是静止的。

很显然,直接从程序的字面上无法看出它什么时候运行、什么时候停顿,也看不出它是否影响其它程序或者一定受其它程序的影响。

因此,用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。

为此,人们引入进程的概念来描述程序动态执行过程的性质,这是引入“进程”概念的主要目的。

【例3】下列进程状态的转换中,不正确的是()。

A.就绪阻塞B.运行就绪

C.就绪运行D.阻塞就绪

答案A

分析回答这道题要知道进程的3种基本状态,以及它们之间的转换关系。

通过下图可以看到,凡是图中有箭头指向的转换都是可行的,而没有箭头指向的则不可能。

因此A是不正确的。

图进程状态及其转换

如果有的同学记不住这张图,那就从理解的角度进行思考。

首先要理解3种状态的含义,然后再理解它们之间的转换。

例如:

运行的进程能变成就绪吗?

可以,如果运行进程的时间片到了,就必修让出CPU,转换为就绪态。

就绪的进程能变成阻塞吗?

不可以,就绪态的进程已经具备了运行条件,只在等待CPU,怎么可能还退回到还不具备运行条件的阻塞态呢?

因此,如果理解了,这张图就可以自己画出来,并不需要死记硬背。

【例4】进程控制块是描述进程状态和特性的数据结构,一个进程()。

A.可以有多个进程控制块B.可以和其他进程共用一个进程控制块

C.可以没有进程控制块D.只能有唯一的进程控制块

答案D

分析进程控制块(PCB)是一个用于描述进程动态性质的数据结构。

操作系统根据PCB对进程实施控制和管理。

进程的动态、并发等特征也是通过PCB表现出来的。

进程由程序、数据、栈和PCB构成。

构成进程的有关程序和数据集合是进程得以存在的物质基础,它们是进程的实体;PCB用于标识和刻画实体的存在和变化,是进程存在的唯一标志。

当系统创建一个新进程时,就为它建立一个PCB;当进程终止后,系统回收为其分配的PCB,该进程在系统中就不存在了。

【例5】在执行V操作时,当信号量的值(),应释放一个等待该信号量的进程。

A.小于0B.大于0C.小于等于0D.大于等于0

答案C

分析P,V操作能够实现对临界区的管理要求。

它由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:

P(S):

①将信号量S的值减1,即S=S1;

②如果S0,则该进程继续执行;否则该进程置为阻塞状态,排入阻塞队列。

V(S):

①将信号量S的值加1,即S=S+1;

②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。

信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。

信号量的值与相应资源的使用情况有关。

当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。

注意,信号量的值仅能由P,V操作来改变。

一般来说,信号量S0时,S表示可用资源的数量。

执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。

而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

【例6】有9个生产者,6个消费者,共享容量为8的缓冲区。

在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为()。

A.1B.6C.8D.9

答案A

分析进程的互斥是指当有若干个进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其它要使用该资源的进程必须等待,直到占用资源者释放了该资源。

进程的互斥体现了并发进程之间访问共享资源时存在的竞争关系。

在计算机系统中必须互斥使用的资源很多,如读卡机、磁带机、打印机等硬件资源和一些公共变量、表格、队列、数据等软件资源。

利用信号量和P,V操作实现进程互斥的一般模型是:

进程P1进程P2……进程Pn

………………

P(mutex);P(mutex);P(mutex);

临界区;临界区;临界区;

V(mutex);V(mutex);V(mutex);

……………………

其中信号量mutex用于互斥,初值为1。

使用P,V操作实现进程互斥时应该注意的是:

(1)每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。

若有多个分支,要认真检查其成对性。

(2)互斥信号量的初值一般为1。

此外,P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。

在本题中,既然是问互斥信号量,其初值应为1,选项中的6,8,9都是迷惑答题者的,如果对同步和互斥不能很好地理解,就很难选择。

【例7】两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的()关系。

A.同步B.互斥C.竞争D.合作

答案A

分析进程的同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。

同步是进程间共同完成一项任务时直接发生相互作用的关系。

这样的例子在日常生活中不胜枚举,比如接力比赛中运动员的默契配合,工业生产中流水作业的每道工序的先后执行,以及计算机系统中对一个缓冲区的读和写等等。

当并发进程存在协作的关系时,必须互通消息,完成进程的同步。

能实现进程同步的机制称为同步机制,该机制能把其他进程需要的消息发送出去,也能测试自己需要的消息是否到达。

P,V操作是典型的同步机制之一。

用一个信号量与一个消息联系起来,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值非0时,表示期望的消息已经存在。

用P,V操作实现进程同步时,调用P操作测试消息是否到达,调用V操作发送消息。

使用PV操作实现进程同步时应该注意的是:

(1)分析进程间的制约关系,确定信号量种类。

在保持进程间有正确的同步关系情况下,哪个进程先执行,哪些进程后执行,彼此间通过什么资源(信号量)进行协调,从而明确要设置哪些信号量。

(2)信号量的初值与相应资源的数量有关,也与P、V操作在程序代码中出现的位置有关。

(3)同一信号量的P、V操作要成对出现,但它们分别在不同的进程代码中。

本题中进程的同步体现的是合作关系,但答案不能选D,要使用操作系统的术语“同步”。

【例8】设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。

卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印结果。

问:

①系统要设几个进程来完成这个任务?

各自的工作是什么?

②这些进程间有什么样的相互制约关系?

③用P、V操作写出这些进程的同步算法。

分析我们画一个草图来帮助我们理解这道题:

 

从图中可以看出,从“卡片机”到“打印机”共需要3个操作,即输入、处理、输出。

这3个动作就是完成任务的3个进程。

下面我们看看这些进程之间有什么样的制约关系。

可以看出,这3个进程之间是同步关系,合作完成从输入到输出的工作任务。

对其中任何一个进程,要处理好与其关联的两端设备的协调工作。

以“输入进程”为例,它与卡片机和缓冲区B1关联,将卡片机的卡片输入到缓冲区B1,在不考虑卡片机的情况下,就要考虑缓冲区的情况,即是满还是空,是空缓冲区,输入进程就可以输入信息,如果缓冲区满,则要等待“处理进程”将B1中的信息取走,使之为空,输入进程才能继续工作。

依此类推,可以找出另外2个进程的制约关系。

一般来说,处理进程同步需要2个信号量,“输入进程”和“处理进程”同步,需要2个信号量,解决缓冲区B1的协调操作问题;而“处理进程”和“输出进程”同步,还需要2个信号量,解决缓冲区B2的协调操作问题。

因此,共需要4个信号量。

本题中“处理进程”的算法有一些难度,因为它需要协调两个缓冲区的工作,考虑的因素比较多,算法复杂些。

答案

①系统可设三个进程来完成这个任务:

R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。

②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:

B1中信息放满后C进程才可从中取出它们,且B2被取空后,C进程才可将加工结果送入其中;P进程受C进程的约束:

B2中信息放满后P进程才可从中取出它们,进行打印。

③信号量含义及初值:

B1full——缓冲区B1满,初值为0;

B1empty——缓冲区B1空,初值为0;

B2full——缓冲区B2满,初值为0;

B2empty——缓冲区B2空,初值为0;

说明

前面我们说过:

信号量的初值与相应资源的数量有关,也与P、V操作在程序代码中出现的位置有关。

以本题为例,如果R进程的算法如下:

则信号量B1empty初值应为1。

表示B1缓冲区初始为空闲状态。

如果C进程的算法如下:

则信号量B2empty初值应为1。

表示B2缓冲区初始为空闲状态。

【例9】死锁的四个必要条件中,无法破坏的是()。

A.互斥条件B.不可抢占条件

C.占有且申请条件D.循环等待条件

答案A

分析互斥条件、不可抢占条件、占有且申请条件和循环等待条件是死锁发生时的4个必要条件,我们知道,只要破坏这4个必要条件中的任意一个条件,死锁就不会发生。

打破互斥条件,就是允许进程同时访问某些资源。

但是,有的资源是不允许被同时访问的,如打印机等,这是由资源本身的属性所决定的,因此这种方法并无实用价值。

而其他三个条件是完全可以破坏的。

2.3练习题

一、选择题(选择一个正确答案的代码填入括号中)

1.顺序程序和并发程序的执行相比,()。

A.基本相同B.有点不同

C.并发程序执行总体上执行时间快

D.顺序程序执行总体上执行时间快

2.在单一处理机上,将执行时间有重叠的几个程序称为()。

A.顺序程序B.多道程序

C.并发程序D.并行程序

3.在单CPU的系统中,若干程序的并发执行是由()实现的。

A.用户B.程序自身

C.进程D.编译程序

4.进程与程序之间有密切联系,但又是不同的概念。

二者的一个本质区别是()。

A.程序是静态概念,进程是动态概念

B.程序是动态概念,进程是静态概念

C.程序保存在文件中,进程存放在内存中

D.程序顺序执行,进程并发执行

5.在操作系统中,进程的最基本的特征是()。

A.动态性和并发性B.顺序性和可再现性

C.与程序的对应性D.执行过程的封闭性

6.多个进程的实体能存在于同一内存中,在一段时间内都得到运行。

这种性质称作进程的()。

A.动态性B.并发性

C.调度性D.异步性

7.进程是程序的执行过程,可以处于不同的状态。

这种性质称作进程的()。

A.动态性B.并发性

C.调度性D.异步性

8.在下列特性中,不是进程的特性的是()。

A.异步性B.调度性

C.操作性D.动态性

9.某进程由于需要从磁盘上读入数据而处于阻塞状态。

当系统完成了所需的读盘操作后,此时该进程的状态将()。

A.从就绪变为运行B.从运行变为就绪

C.从运行变为阻塞D.从阻塞变为就绪

10.一个进程被唤醒意味着()。

A.该进程重新占有了CPUB.进程状态变为就绪

C.它的优先权变为最大D.其PCB移至就绪队列的队首

11.在单处理机系统中,处于运行状态的进程()。

A.只有一个B.可以有多个

C.不能被挂起D.必须在执行完后才能被撤下

12.已经获得除()以外的所有运行所需资源的进程处于就绪状态。

A.存储器B.打印机C.CPUD.磁盘空间

13.进程从运行状态变为阻塞状态的原因是()。

A.输入或输出事件发生B.时间片到

C.输入或输出事件完成D.某个进程被唤醒

14.为了描述进程的动态变化过程,采用了一个与进程相联系的(),根据它而感知进程的存在。

A.进程状态字B.进程优先数

C.进程控制块D.进程起始地址

15.进程在系统中存在的唯一标志是()。

A.所运行的程序B.所运行的程序和数据

C.进程队列D.进程控制块

16.进程的动态、并发等特征是利用()表现出来的。

A.程序B.数据

C.程序和数据D.进程控制块

17.进程间的基本关系为()。

A.相互独立与相互制约B.同步与互斥

C.并行执行与资源共享D.信息传递与信息缓冲

18.在一段时间内,只允许一个进程访问的资源称为()。

A.共享资源B.临界区

C.临界资源D.共享区

19.操作系统中有一组常称为特殊系统调用的程序,其操作具有不可分割性,在操作系统中称为()。

A.初始化程序B.原语

C.子程序D.控制模块

20.操作系统中利用信号量和P、V操作,()。

A.只能实现进程的互斥B.只能实现进程的同步

C.可实现进程的互斥和同步D.可完成进程调度

21.如果进程Pa对信号量S执行P操作,则信号量S的值应()。

A.加1B.减1C.等于0D.小于0

22.如果信号量S的值是0,此时进程A执行P(S)操作,那么,进程A会()。

A.继续运行

B.进入阻塞态,让出CPU

C.进入就绪态,让出CPU

D.继续运行,并唤醒S队列头上的等待进程

23.在操作系统中,对信号量S的P操作原语的定义中,使进程进入相应阻塞队列等待的条件是()。

A.S>0B.S=0C.S<0D.S0

24.信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为()。

A.10B.8C.6D.4

25.若P、V操作的信号量S初值为2,当前值为1,则表示有()个等待进程。

A.0B.lC.2D.3

26.在进程通信中,使用信箱方式交换信息的是()。

A.低级进程通信B.高级进程通信

C.共享内存方式D.管道文件方式

27.系统出现死锁的原因是()。

A.计算机系统发生了重大故障

B.有多个封锁的进程同时存在

C.若干进程因竞争资源而无休止地循环等待着,而且都不释放已占有的资源

D.资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数

28.两个进程争夺同一个资源()。

A.一定死锁B.不一定死锁

C.不会死锁D.以上说法都不对

二、判断题(正确的划√,错误的划×。

1.简单地说,进程是程序的执行过程。

因而,进程和程序是一一对应的。

()

2.进程和程序是两个截然不同的概念。

()

3.程序在运行时需要很多系统资源,如内存、文件、设备等,因此操作系统以程序为单位分配系统资源。

()

4.进程控制块(PCB)是专为用户进程设置的私有数据结构,每个进程仅有一个PCB。

()

5.进程执行的相对速度不能由进程自己来控制。

()

6.进程之间的互斥,主要源于进程之间的资源竞争,从而实现多个相关进程在执行次序上的协调。

()

7.信号量机制是一种有效的实现进程同步与互斥的工具。

信号量只能由P、V操作来改变。

()

8.V操作是对信号量执行加1操作,意味着释放一个单位资源,如果加1后信号量的值小于等于零,则从等待队列中唤醒一个进程,现进程变为阻塞状态,否则现进程继续进行。

()

9.利用信号量的P,V操作,进程之间可以交换大量信息。

()

10.系统产生死锁的根本原因是资源有限且操作不当。

因此,当系统提供的资源少于并发进程的需求时,系统就产生死锁。

()

三、简答题

四、应用题

请同学们解答参考教材68页的课后习题。

参考答案:

一、CCCAABDCDBACACDDBCBCBBCDBBCB

二、2,5,7是正确的。

1.(×)。

进程和程序不是一一对应的。

3.(×)。

操作系统以进程为单位分配系统资源。

4.(×)。

进程控制块(PCB)是为系统中各个进程设置的私有数据结构。

6.(×)。

这里把进程的同步和互斥混在一起说了。

8.(×)。

不管信号量的值如何,现进程都继续执行。

9.(×)。

P,V操作只能交换少量的信息,属于低级进程通信。

10.(×)。

仅有系统提供的资源少于并发进程的需求这一个条件时,系统不一定产生死锁。

三和四、见本章教材习题解答。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1