设计多道系统时,为实现对并发进程的控制和管理应解决哪些方面的问题?简要说明之。

题目

设计多道系统时,为实现对并发进程的控制和管理应解决哪些方面的问题?简要说明之。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

在并发系统设计中,通过对信号量S的P、V操作实现进程的同步与互斥控制。

P(S):S:=S-1,若S≥0,则执行P操作的进程继续执行:若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。

V(S):S:=S+1,若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞队列唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。

在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S1和S2。发送进程不断地产生消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N时,如何使用P、V操作才能保证系统的正常工作。发送进程A和接收进程B的工作流程如图4-1所示。请在图4-1中的空(1)~(4)处填入正确的内容。


正确答案:(1)P(S1) (2)V(S2) (3)P(S2) (4)V(S1)
(1)P(S1) (2)V(S2) (3)P(S2) (4)V(S1) 解析:本题考查的是并发系统的同步与互斥控制。
  在并发系统中,同时存在的多个进程在执行速度上是相对独立的,它们以各自的运行速度向前推进。但是,由于多个并发进程或者共享系统资源,或者合作完成某项任务,所以它们之间常常存在着相互制约或彼此依赖的关系,进程之间的这种制约和依赖关系可以归结为两种基本形式:同步和互斥。
  一般来说,一个进程相对于另一个进程的运行速度是不确定的,也就是说进程是在异步环境下运行的,每个进程都有各自独立的、不可预知的速度向前推进。但是相互合作的进程需要在某些确定点上协调它们的工作,当一个进程到达了这些点后,除非另一进程已经完成了某些操作,否则就不得不停下来等待这些操作结束。这就是进程间的同步。
  在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(critical resource,CR),如打印机、公共变量、内存工作区、表格等。临界区(critical section,CS)是进程中对临界资源实施操作的那段程序。
  在多道程序系统中,一般都使用P、V操作原语通过信号量实现进程的同步和互斥。信号量是一种特殊的变量,它具有以下特性:
  ▲ 信号量是一个整型变量。
  ▲ 每一个信号量表示一种系统资源的状况,其值表示资源当前可用的数量。
  ▲ 每一个信号量都对应一个空或非空的等待队列,该队列就是信号量所表示的资源的等待队列。
  ▲ 对信号量只能实施P、V操作,只有P、V操作才能改变其值。
  P操作的功能是:当进程执行P操作时,首先将信号量S减一,其结果为:若 S0,则该进程继续运行;若S0,则阻塞该进程,并把它插入道信号量S的等待队列中。
  V操作的功能是:当进程执行V操作时,首先将信号量S加1,其结果是:若S>0,则该进程继续执行;如果S≤o,则释放S信号量等待队列中队首的等待进程,解除其阻塞状态,而调用V操作的当前进程继续执行。
  P、V操作是一对操作,若有对信号量的P操作,必定有对该信号量的V操作,这样才能保证资源被合理地分配和释放。
  问题1:缓冲区BUFFER是临界资源,信号量S1表示缓冲区中空闲单元的数目,初值为N,信号量S2表示缓冲区中消息的数目,初值为0。
  显然,发送进程海产生一条消息,将消耗一个空闲的缓冲区单元,所以将消息送入缓冲区时应先执行一个P(S1),写入消息后执行一个V(S2)。当接收进程执行时,若缓冲区中有消息,则可读取,然后将释放一个空闲单元,所以接收进程进入其临界区后先执行一个P(S2),读取消息后执行一个V(S1)。

第2题:

现代操作系统的基本特征是( )、资源共享和异步性。

A 多道程序设计

B 中断处理

C 实现分时与实时处理

D 程序的并发执行


参考答案D

第3题:

操作系统是根据______来对并发执行的进程进行控制和管理的。

A.进程的基本状态

B.进程控制块

C.多道程序设计

D.进程的优先权


正确答案:B
解析:进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需要的用于描述进程情况及控制进程运行所需要的全部信息。进程控制块的作用,是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。或者说,操作系统是根据PCB来对并发执行的进程进行控制和管理的。例如,当Os要调度某进程执行时,要从该进程的PCB中,查出其现行状态及优先级;在调度到某进程后,要根据其PCB中所保存的处理机状态信息,去设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存地址,找到其程序的数据;进程在执行过程中,当需要和与之合作之进程实现同步、通信或访问文件时,也都需要访问PCB;当进程因某种原因而暂停执行时,又须将其断点的处理机环境保存在PCB中。可见,在进程的整个生命期中,系统总是通过其PCB对进程进行控制的,即系统是根据进程的PCB而不是任何别的什么感知到该进程存在的,所以说,PCB是进程存在的唯一标志。
  当系统创建一个新进程时,就为它建立一个PCB;进程结束时又回收其PCB,进程于是也随之消亡。PCB可以被操作系统中的多个模块读取或修改,如调度程序、资源分配程序、中断处理程序及监督和分析程序读取或修改。因为PCB经常被系统访问,尤其是被运行频率很高的进程调度及分派程序访问,故PCB应常驻内存。系统将所有的PCB组织成若干个链表(或队列),存放在操作系统中专门开辟的PCB区内。

第4题:

多道程序设计可以实现进程并发,那么,多道程序设计环境具有以下哪些特点?

A.独立性

B.随机性

C.共享性

D.确定性

E.封闭性


正确答案:ABC

第5题:

为了解决进程间的同步和互斥问题,通常采用一种称为(39)机制的方法。

A.系统调度

B.系统分派

C.多道程序设计

D.信号量


正确答案:D
解析:由于在系统中,多个进程竞争同一资源可能会发生死锁,若无外力作用,这些进程都将永远不能再向前推进。为此,在操作系统的进程管理中最常用的方法是采用信号量(Semaphore)机制。信号量是表示资源的实体,是一个与队列有关的整型变量,其值仅能由P、V操作改变。“P操作”是检测信号量是否为正值,若不是,则阻塞调用进程;“V操作”是唤醒一个阻塞进程恢复执行。根据用途不同,信号量分为公用信号量和私用信号量。公用信号量用于实现进程间的互斥,初值通常设为1,它所联系的一组并行进程均可对它实施P、V操作;私用信号量用于实现进程间的同步,初始值通常设为0或n。

第6题:

支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享,但其中( )不是引起操作系统选择新进程的直接原因。

A 运行进程的时间片用完

B 运行进程出错

C 运行进程要等待某一时间发生

D 有新进程进入就绪状态


参考答案D

第7题:

阅读下列说明和图表,回答问题1到问题3。

[说明]

在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,这样的话,要想描述这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了进程的概念。

进程是具有独立功能的程序关于某个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。

进程在生命消亡前处于且仅处于三种基本状态之一。运行态(Running):进程占有CPU,并在CPU上运行。就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)。等待态(Blocked):指进程因等待某种事件的发生而暂时不能运行的状态,即使CPU空闲,该进程也不可运行。指出如下进程状态转换图(图4-1)中“状态1”~“状态3”分别是什么状态。

[图4-1]


正确答案:状态1:运行态状态2:就绪态状态3:等待态。
状态1:运行态,状态2:就绪态,状态3:等待态。 解析:根据问题1中对进程3种状态的描述,易于判断状态1:运行态,状态2:就绪态,状态3:等待态。

第8题:

在多道程序系统中,多个进程可对共享设备进行同时访问。因此,在实现时应考虑问题有

Ⅰ.正确性

Ⅱ.系统性能

Ⅲ.合理性

A.Ⅰ和Ⅱ

B.Ⅱ和Ⅲ

C.Ⅰ和Ⅲ

D.都正确


正确答案:D

第9题:

阅读下列说明和程序,回答问题l至问题3.将答案填入答题纸的对应栏内。

【说明】

在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:

【程序1】;实现两个变量的值的互换;

【程序2】:完成某功能的C语言程序;

【程序3】和【程序4】:是P、V操作的形式化定义,设S为信号量。在多道程序系

统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和

互斥两个方面。信号量是解决进程间同步与互斥的有效方法。

【程序1】

【程序3】

P操作的形式化定义

P (S)

{

(1):

If(2) {

阻塞该进程;

将该进程插入信号量S的等待队列

}

}

【程序4】

V操作的形式化定义:

V(S)

{

(3)

if(4) {

从信号量s的等待队列中取出队首进程

将其插入就绪队列:

}

}

【问题1】(6分)

执行【程序1】后,没有能够实现两个变量值的交换,为什么?请修改上述函数

实现两个变量值的交换,要求函数无返回值,形式为:void swap(...)。请将答案填写在

答题纸中对应的栏目。

【问题2】(3分)

请问【程序2】运行结果是什么?

【问题3】(6分)

请简述什么是临界资源?什么是临界区?

请完成【程序3】和【程序4】的形式化定义,将应填入(n)处的内容写在答题纸

的对应栏中。


正确答案:
分析本题考查嵌入式C/C++语言编程基础知识。【问题1】函数swap采用值传递,虽然将形参nl和n2交换了,但是并不影响到实参,所以执行【程序1】后,实参变量并没有完成数据交换。将值传递改成指针传递就可以了。对应的swap函数应修改如下:【问题3】在多道程序系统中,进程是并发执行的,这些进程之间存在着不同的相互制约关系。进程之间的这种制约关系来源于并发进程的合作以及对资源的共享。进程在运行过程中,一般会与其它进程共享资源,而有些资源的使用具有排他性。系统中的多个进程可以共享系统的各种资源,然而其中许多资源一次只能为一个进程所使用,通常把一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如打印机、绘图机等。除物理设备外,还有许多变量、数据等都可由若干进程所共享,它们也属于临界资源。进程中访问临界资源的那段代码称为临界区,也称为临界段。访问临界资源应遵循如下原则:①空闲让进(或有空即进):当没有进程处于临界区时,可以允许一个请求进入临界区的进程立即进入自己的临界区:②忙则等待(或无空则等):当已有进程进入其临界区时,其它试图进入临界区的进程必须等待;③有限等待:对要求访问临界资源的进程,应保证能在有限时间内进入自己的临界区;④让权等待:当进程不能进入自己的临界区时,应释放处理机。信号量是荷兰著名的计算机科学家Dijkstra于1965年提出的一个同步机制,其基本思想是在多个相互合作的进程之间使用简单的信号来同步。在操作系统中,信号量是表示资源的实体,除信号量的初值外,信号量的值仅能由P操作(又称Wait操作)和V操作(又称Signal操作)改变。设S为一个信号量.P(S)执行时主要完成:先执行S=S-I:若S0则进程继续运行;若s<o则阻塞改进程,并将它插入该信号量的等待队列中。v(s)执行时主要完成:先执行S=S+I:若s>o则进程继续执行;若S≤0则从该信号量等待队列中移出第一个进程.使其变为就绪状态并插入就绪队列,然后再返回原进程继续执行。P、V操作的形式化描述如下:P(S){S—IF(S<O){阻塞该进程,将该进程插入信号量s的等待队列;}}V(S){s++;IF(S<=0){从信号量S的等待队列中取出队首进程,将其插入就绪队列;}}试题五参考答案【问题1】两个变量不能交换值的原因:因为函数是传值的,函数形参值的交换,并不影响到实参的值的变化。正确的函数编写如下(下面只是范倒,变量名称不作要求):voidswap(int*pnl.int*pn2){inttmp=*pnl;*pnl=*pn2;*pn2=tmp;}【问题2】第一次输出:fun(5)=5第二次输出:fun(7)=13第三次输出:fun(9)=34【问题3]临界资源:一次只能使一个进程访问的资源称为临界资源临界区:进程中访问临界资源的那段代码称为临界区。(l)S-(2)S<0(3)S++(4)S<=0

第10题:

实现多道程序应解决哪些问题?


正确答案: A.处理机管理问题;
B.内存管理问题;
C.I/O设备管理问题;
D.文件管理问题;
E.作业管理问题.