操作系统进程通信练习及答案
操作系统 进程习题及答案

例1:十字路口问题
在一个只允许单向行驶的十字路口,分别有 若干由东向西,由南向北的车辆在等待通过十字 路口。为了安全,每次只允许一辆车通过。当有 车辆通过时其它车辆必须等候,当无车辆在路口 行驶时则允许一辆车通过。
Var mutex:semaphore:=1
process 1: process 2: begin repeat wait(mutex); 由南向北通过十字路口; signal(mutex); until false; end
begin
repeat wait(mutex); 由东向西通过十字路口; signal(mutex);
16.若信号量的初值为2,当前值为-3,则表示等待进 程有( )。 A.1个 B.2个 C.3个 D.5个 )。
17.P操作可能导致(
A.进程就绪 B.进程结束
C.进程阻塞 D.新进程创建
18.进程和程序的本质区别是( )。 A.内存和外存 B.动态和静态特征
C.共享和独占使用计算机资源 D.顺序和非顺序执行机器指令 19.进程从运行状态到等待状态可能是( )。
14.下面关于进程的叙述中正确的是( )。 A.进程获得CPU运行是通过调度得到的
B.优先级是进程调度的重要依据,一旦确定就不能改变
C.进程申请CPU得不到满足时,其状态变为阻塞
D.在单CPU的系统中,任何时刻都有一个进程处于运 行状态。
15.能转变到其他3种状态的是( )。 A.就绪 B.阻塞 C.完成 D.执行
第二章 习题
1.进程是( )。 A.与程序等效的概念 B.并发环境中程序的执行过程 C.一个系统软件 D.存放在内存中的程序 2.在下列特性中,不是进程特性的是( A.异步性 B.并发性 C.静态性 D.动态性 )。
(完整版)第三章进程同步与通信作业习题与答案

第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。
A.管道B.管程C.通道D.DMA2.以下_B__不是操作系统的进程通信手段。
A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。
A.3B.2C.1D.04.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V 操作管理时信号量S的可能取值是_C__。
A.3,2,1,0,-1B.2,1,0,-1,-2C. 1,0,-1,-2,-3D.4,3,2,1,05.下面有关进程的描述,是正确的__A__。
A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__。
A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B_ _。
A.没有进程进入临界区B.有1个进程进入了临界区C. 有2个进程进入了临界区D. 有1个进程进入了临界区并且另一个进程正等待进入8. 信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__。
A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C. 信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10. 并发是指_C__。
A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11. 临界区是_C__。
A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__。
计算机操作系统习题及答案(5)

计算机操作系统习题及答案(5)
计算机操作系统习题及答案(5)
1:进程管理
1.1 进程与线程的区别是什么?
答案:进程是操作系统中执行的一个程序,它包含了程序代码、数据以及其运行状态的描述信息。
线程是进程中的一个执行单元,
它可以与同一进程中的其他线程共享资源。
1.2 进程调度算法有哪些?
答案:常见的进程调度算法有先来先服务(FCFS)、最短作业
优先(SJF)、优先级调度、轮转调度等。
2:存储管理
2.1 什么是虚拟内存?
答案:虚拟内存是一种将物理内存和磁盘空间组合起来使用的
技术。
它允许进程访问超过物理内存大小的地址空间,将不常用的
数据存储在磁盘上,并且能够在需要时将其换入内存。
2.2 页面置换算法有哪些?
答案:常见的页面置换算法有先进先出(FIFO)、最近未使用(LRU)、时钟置换算法等。
3:文件系统
3.1 什么是文件系统?
答案:文件系统是操作系统中用于管理存储设备上文件的一种
机制。
它定义了文件和目录的层次结构以及文件的访问方式。
3.2 文件系统的常见组织方式有哪些?
答案:常见的文件系统组织方式有单层目录结构、多层目录结
构和索引节点结构。
附件:无
法律名词及注释:
1:版权法:保护创造者对其作品的独立性和权益的法律制度。
2:著作权:在法律上规定的对创作原创性个人和集体作品的
特殊权利。
3:商标法:保护商标所有人对其商标的专有权的法律制度。
linux进程间通信试题

linux进程间通信试题进程间通信是操作系统中的重要概念,用于实现不同进程之间的数据传递和协作。
在Linux系统中,有多种方式可以实现进程间通信,包括管道、信号量、共享内存、消息队列和套接字等。
下面我将从多个角度来回答关于Linux进程间通信的试题。
1. 请简要介绍Linux进程间通信的常用方式。
在Linux系统中,常用的进程间通信方式有以下几种:管道(Pipe),管道是一种半双工的通信方式,用于在具有亲缘关系的进程之间传递数据。
信号量(Semaphore),信号量是一种计数器,用于实现进程之间的同步和互斥。
共享内存(Shared Memory),共享内存是一种高效的通信方式,允许多个进程直接访问同一块内存区域。
消息队列(Message Queue),消息队列是一种按照消息的方式进行通信的机制,可以实现进程之间的异步通信。
套接字(Socket),套接字是一种网络通信机制,可以在不同主机上的进程之间进行通信。
2. 请比较管道和套接字的异同。
相同点,管道和套接字都可以用于进程间通信,都是通过文件描述符来进行操作。
不同点,管道是一种用于具有亲缘关系的进程之间的通信方式,只能在同一台主机上的进程之间进行通信;而套接字是一种网络通信机制,可以在不同主机上的进程之间进行通信。
3. 请解释共享内存的工作原理。
共享内存是一种高效的进程间通信方式,它允许多个进程直接访问同一块内存区域,避免了数据的复制。
其工作原理如下:创建共享内存,一个进程通过调用系统调用shmget()来创建一个共享内存区域,并指定其大小和权限。
连接共享内存,其他进程可以通过调用shmat()来连接到已创建的共享内存区域,得到该内存区域的地址。
访问共享内存,连接到共享内存区域的进程可以直接读写该内存区域,实现数据的共享。
分离共享内存,进程使用完共享内存后,可以通过调用shmdt()将其与共享内存区域断开连接。
删除共享内存,当不再需要使用共享内存时,可以通过调用shmctl()来删除共享内存区域。
进程同步与通信作业习题与答案

第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。
A.管道B.管程C.通道2.以下_B__不是操作系统的进程通信手段。
A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。
4.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V操作管理时信号量S的可能取值是_C__。
,2,1,0,-1 ,1,0,-1,-2 C. 1,0,-1,-2,-3 ,3,2,1,05.下面有关进程的描述,是正确的__A__。
A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__。
A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B__。
A.没有进程进入临界区B.有1个进程进入了临界区C. 有2个进程进入了临界区D. 有1个进程进入了临界区并且另一个进程正等待进入8. 信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__。
A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C. 信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10. 并发是指_C__。
A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11. 临界区是_C__。
A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__。
A.进程之间无关,系统是封闭的B.进程之间相互依赖相互制约C.进程之间可能有关,也可能无关D.以上都不对13. 在消息缓冲通信中,消息队列是一种__A__资源。
操作系统实验二_进程和进程通信答案

实验二进程和进程通信一、实验目的1、通过使用进程和进程通信方面的系统调用的,加深理解有关进程方面的基本概念。
通过实验对进程有进一步的感性认识,掌握系统V的IPC机制。
二、实验内容1、设计一个程序,创建一个子进程,使父子进程合作,协调地完成某一功能。
要求在该程序中还要使用进程的睡眠、进程图象改换、父进程等待子进程终止、信号的设置与传送(包括信号处理程序)、子进程的终止等有关进程的系统调用。
2、分别利用UNIX的消息通信机制、共享内存机制(用信号灯实施进程间的同步和互斥)实现两个进程间的数据通信。
具体的通信数据可从一个文件读出,接收方进程可将收到的数据写入一个新文件,以便能判断数据传送的正确性(对文件操不熟悉的同学可不必通过读写文件,只要键盘输入和输出至屏幕进行比较即可)。
3、编写一个程序,生成若干个线程,通过这些并发线程的合作,完成较复杂的任务。
通过测试程序的运行结果,比较进程和进程、线程和线程之间对外部变量、静态变量和动态变量的共享方式的相同和不同之处。
三、实验代码父子进程通信#include <sys/types.h>#include <signal.h>main(){int pid,status = 1;void func();signal(SIGUSR1,func); /* 预置信号处理程序,将SIGUSR1设置为func函数的功能*/while ((pid=fork( ))==-1);if (pid) { /* 父进程*/printf("It is the parent process.\n");printf("Parent: will send signal.\n");kill(pid,SIGUSR1); /* 发送信号,即发送执行func函数的信息*/ pid = wait(&status); /* 父进程等待子进程终止*/printf("Child process %d,status=%d \n",pid,status);}else { /* 子进程*/sleep (2); /* 等待接受信号*/printf("It is the child process.\n");printf("Child:signal is received.\n");execvp ("pwd",(char*)0); /* 映像改换,显示当前工作区,exevcp不用给出具体路径,(char*)0指向pwd命令*/printf("execl error.\n"); /* 映像改换失败*/exit(2);}printf ("Parent process finish. \n");}void func (){system("date");}3.2 消息通信/* msgcom.h */#include <errno.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#define MSGKEY 5678struct msgtype{long mtype;int text;};#include "msgcom.h"main(){ /* 请求进程*/struct msgtype buf;int qid,pid;qid=msgget(MSGKEY,IPC_CREA T|0666); /* MSGKEY为约定的消息队列关键字,访问控制权限为0666 */buf.mtype=1; /* 请求进程发送消息标识为1 */buf.text=pid=getpid(); /* 请求进程发送消息内容为进程标识*/msgsnd(qid,&buf,sizeof(buf.text), IPC_NOWAIT|04000); /* 发送消息正文长度为buf的大小*/msgrcv(qid,&buf,512,pid,MSG_NOERROR); /* 指定接收mtype=pid的信息,即请求进程发送给服务器处理后的信息*/printf("Request received a massags from server, type is: %d\n",buf.mtype);}#include "msgcom.h"main(){ /* 服务器进程*/struct msgtype buf;int qid;if((qid=msgget(MSGKEY,IPC_CREA T|0666))== -1)return(-1); /* 出错处理*/while(1){msgrcv(qid,&buf,512,1,MSG_NOERROR); /* 接收所有请求进程发送的消息*/printf("Server receive a request from process %d\n",buf.text);buf.mtype=buf.text; /* 将请求进程的标识数作为mtype的值,以便于请求进程识别*/msgsnd(qid,&buf,sizeof(int),IPC_NOWAIT|04000); /* 将消息发送给请求进程*/ }}3.3 共享内存#include <sys/types.h>#include <sys/ipc.h>#include <sys/sem.h>#include <sys/shm.h>#include <stdio.h>#define SHMKEY 18001 /* 共享内存关键字*/#define SHMKEY2 18002#define SIZE 1024 /* 共享内存长度*/#define SEMKEY1 19001 /* 信号灯组1关键字*/#define SEMKEY2 19002 /* 信号灯组2关键字*/#define SEMKEY3 19003 /* 信号灯组3关键字*/static void semcall(sid,op)int sid,op;{struct sembuf sb;sb.sem_num = 0; /* 信号灯编号0 */sb.sem_op = op; /* 信号灯操作数加1或减1 */sb.sem_flg = 0; /* 操作标志*/if(semop(sid,&sb,1) == -1)perror("semop"); /* 出错处理*/};int creatsem(key) /* 信号灯组创建及初始化程序*/key_t key;{int sid;union semun { /* 如sem.h中已定义,则省略*/int val;struct semid_ds *buf;ushort *array;} arg;if((sid=semget(key,1,0666|IPC_CREA T))==-1) /* 创建1个关键字为1的信号灯组,访问控制权限为0666 */perror("semget"); /* 出错处理*/arg.val=1; /* 初值为1 */if(semctl(sid,0,SETV AL,arg)==-1) /* 将信号灯组的第一个信号灯的初值置1 */perror("semctl"); /* 出错处理*/return(sid);}void P(sid)int sid;{semcall(sid,-1); /*对关键字为sid信号灯组值减1,相当于wait */}void V(sid)int sid;{semcall(sid,1); /*对关键字为sid信号灯组值加1,相当于signal */}main(){char *segaddr,*segaddr2;int segid,segid2,sid1,sid2,sid3;if((segid=shmget(SHMKEY,SIZE,IPC_CREA T|0666))==-1) /* 创建共享内存段*/perror("shmget"); /* 出错处理*/if((segid2=shmget(SHMKEY2,SIZE,IPC_CREA T|0666))==-1) /* 创建共享内存段2 */perror("shmget"); /* 出错处理*/segaddr=shmat(segid,0,0); /* 将共享内存映射到进程数据空间*/segaddr2=shmat(segid2,0,0); /* 将共享内存2映射到进程数据空间*/sid1=creatsem(SEMKEY1); /* 创建三个信号灯,初值为1 */sid2=creatsem(SEMKEY2);sid3=creatsem(SEMKEY3);P(sid2); /* 置信号灯2值为0,表示缓冲区1空*/P(sid3); /* 置信号灯3值为0,表示缓冲区2空*/if(!fork()){if(!fork()){while(1){ /* 子进程的子进程,接收和输出*/P(sid3);printf("Received from Parent: %s\n",segaddr2);printf("Received from Grandparent: %s\n",segaddr);V(sid1);}}while(1){ /* 子进程,输入和存储*/P(sid2);scanf("%s",segaddr2);V(sid3);}}while(1) { /* 父进程,输入和存储*/P(sid1);scanf("%s",segaddr);V(sid2);}}3.4 线程#include <pthread.h>#include <stdio.h>#include <stdlib.h>int nthreads = 1; /* 线程执行函数,传入参数为线程序号,传出参数为项: (序号+1) */ void *dowork (void *params){int j = *(int *)params;int term = j+1;*(int *)params = term;printf ("the thread [%d]: term =%d\n",j,term);}void main(int argc,char **argv){int i;pthread_t threads[100];int pthread_data[100];float mean = 0; /* 平均数*/float variance = 0; /* 方差*/if(argc==2)nthreads = atoi (argv[1]); /* 将命令行字符串参数转换为整数*/for (i=0; i<nthreads; i++) {pthread_data [i] = i ;pthread_create (&threads[i], NULL, dowork, &pthread_data[i]); /* 创建线程*/}for (i=0; i<nthreads; i++) {pthread_join (threads [i], NULL); /* 等待子线程结束,汇合结果*/mean += (float)pthread_data[i];}mean = mean / nthreads;for(i=0; i<nthreads; i++) {variance += (float)(pthread_data[i]-mean)*(pthread_data[i]-mean);}variance = variance / nthreads;printf("The total threads is %d\n",nthreads);printf("The mean = %f\n", mean);printf("The variance = %f\n",variance);}四、运行结果3.1 父子进程通信父进程向子进程发送的消息为函数system(“date”)即显示日期时间。
计算机操作系统习题及答案(4)

第4章进程同步与通信1)选择题(1)在操作系统中,P、V操作是一种_D__。
A. 机器指令B. 系统调用命令C. 作业控制命令D. 低级进程通信原语(2)若信号量S的初值为2,当前值为-1,则表示有_B__等待进程。
A. 0个B. l个C. 2个D. 3个(3)在直接通信方式中,系统提供两条通信原语进行发送和接收,其中Send原语中参数应是_C_。
A. sender,messageB. sender,mailboxC. receiver,messageD. receiver,mailbox(4)下述那个选项不是管程的组成部分_A__。
A. 管程外过程调用管程内数据结构的说明B. 管程内对数据结构进行操作的一组过程C. 局部于管程的共享数据说明D. 对局部于管程的数据结构设置初值的语句(5)某通信方式通过共享存储区来实现,其属于_D__。
A. 消息通信B. 低级通信C. 管道通信D. 高级通信(6)用P、V操作管理临界区时,信号量的初值应定义为__C__。
A. -1B. 0C. 1D. 任意值(7)临界区是_B__。
A. 一个缓冲区B. 一段程序C. 一段共享数据区D. 一个互斥资源(8)信箱通信是一种_D__通信方式。
A. 直接通信B. 信号量C. 低级通信D. 间接通信(9)对于两个并发进程,设互斥信号量为mutex,若mutex=0则__A_。
A. 表示有一个进程进入临界区B. 表示没有进程进入临界区C. 表示有一个进程进入临界区,另一个进程等待进入D. 表示有两个进程进入临界区(10)对信号量S执行V操作后,下述选项正确的是_C__。
A. 当S小于等于0时唤醒一个阻塞进程B. 当S小于0时唤醒一个阻塞进程C. 当S小于等于0时唤醒一个就绪进程D. 当S小于0时唤醒一个就绪进程(11)在消息缓冲通信中,消息队列属于_A__资源。
A. 临界B. 共享C. 永久D. 可剥夺(12)在消息缓冲通信机制中,使用的临界资源是_D__。
操作系统课后习题答案 3 进程同步与通信

习题 3 进程同步与通信一、选择题题号1 2 3 4 5 6 7 8 9 10答案A D D C B C A B A A题号11 12答案D C二、综合题1、答:临界资源也称独占资源、互斥资源,它是指某段时间内只充许一个进程使用的资源。
比如打印机等硬件资源,以及只能互斥使用的变量、表格、队列等软件资源。
各个进程中访问临界资源的、必须互斥执行的程序代码段称为临界区,各进程中访问同一临界资源的程序代码段必须互斥执行。
为防止两个进程同时进入临界区,可采用软件解决方法或同步机构来协调它们。
但是,不论是软件算法还是同步机构都应遵循下述准则:①空闲让进。
②忙则等待。
③有限等待。
④让权等待。
2、答:忙等待意味着一个进程正在等待满足一个没有闲置处理器的严格循环的条件。
因为只有一个CPU 为多个进程服务,因此这种等待浪费了CPU 的时钟。
其他类型的等待:与忙等待需要占用处理器不同,另外一种等待则允许放弃处理器。
如进程阻塞自己并且等待在合适的时间被唤醒。
忙等可以采用更为有效的办法来避免。
例如:执行请求(类似于中断)机制以及PV 信号量机制,均可避免“忙等待”现象的发生。
3、答:在生产者—消费者问题中,Producer 进程中P(empty)和P(mutex)互换先后次序。
先执行P(mutex),假设成功,生产者进程获得对缓冲区的访问权,但如果此时缓冲池已满,没有空缓冲区可供其使用,后续的P(empty)原语没有通过,Producer 阻塞在信号量empty 上,而此时mutex 已被改为0,没有恢复成初值1。
切换到消费者进程后,Consumer 进程执行P(full)成功,但其执行P(mutex)时由于Producer 正在访问缓冲区,所以不成功,阻塞在信号量mutex 上。
生产者进程和消费者进程两者均无法继续执行,相互等待对方释放资源,会产生死锁。
在生产者和消费者进程中,V 操作的次序无关紧要,不会出现死锁现象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程同步与通信练习题(一)单项选择题1•临界区是指()。
A•并发进程中用于实现进程互斥的程序段 B •并发进程中用于实现进程同步的程序段C•并发进程中用户实现进程通信的程序段D•并发进程中与共享变量有关的程序段2•相关临界区是指()°A. —个独占资源B •并发进程中与共享变量有关的程序段 c •一个共享资源 D •并发进程中涉及相同变量的那些程序段3•管理若干进程共享某一资源的相关临界区应满足三个要求,其中()不考虑。
A 一个进程可以抢占己分配给另一进程的资源B•任何进程不应该无限地逗留在它的临界区中 c • 一次最多让一个进程在临界区执行 D .不能强迫一个进程无限地等待进入它的临界区4、()是只能由P和v操作所改变的整型变量。
A共享变量B •锁c整型信号量 D •记录型信号量5.对于整型信号量,在执行一次P操作时,信号量的值应()。
A .不变B.加1 C减I D .减指定数值6・在执行v操作时,当信号量的值()时,应释放一个等待该信号量的进程。
A>0 B.<0 c.>=0 D.<=0操作必须在屏蔽中断下执行,这种不可变中断的过程称为()。
A初始化程序B •原语c •子程序 D 控制模块&进程间的互斥与同步分别表示了各进程间的()。
A •竞争与协作 B .相互独立与相互制约 c .不同状态 D .动态性与并发性9并发进程在访问共享资源时的基本关系为()。
A •相互独立与有交往的 B •互斥与同步c 并行执行与资源共享 D 信息传递与信息缓冲10在进程通信中,()常用信件交换信息。
A 低级通信 B 高级通信 c 消息通信 D 管道通信II•在间接通信时,用send(N , M)原语发送信件,其中N表示()。
A.发送信件的进程名 B 接收信件的进程名 C 信箱名 D 信件内容12•下列对线程的描述中,()是错误的。
A不同的线程可执行相同的程序 B •线程是资源分配单位 c 线程是调度和执行单位 D 同一进程中的线程可共享该进程的主存空间13•实现进程互斥时,用()对应,对同一个信号量调用Pv操作实现互斥。
A • 一个信号量与一个临界区 B 一个信号量与—个相关临界区 c 一个信号量与一组相关临界区 D 一个信号量与一个消息14实现进程同步时,每一个消息与一个信号量对应,进程()可把不同的消息发送出去。
A.在同一信号量上调用P操作B在不同信号量上调用P操作c •在同一信号量上调用v 操作D •在不同信号量上调用v操作(二)填空题1 目前使用的计算机的基本特点是处理器___________ 执行指令。
2进程的______ 是指进程在顺序处理器上的执行是按顺序进行的。
3 当一个进程独占处理器顺序执行时,具有_______________ 和_____ 两个特性。
4 进程的封闭性是指进程的执行结果只取决于___________ ,不受外界影响。
5进程的可再现性是指当进程再次重复执行时,必定获得__________ 的结果。
6 一个进程的工作在没有全部完成之前,另一个进程就可以开始工作,则称这些进程为________ . 7 若系统中存在一组可同时执行的进程,则就说该组进程具有 _________ 。
8 如果—个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,则说这些并发进程相互之间是______ 的。
9如果一个进程的执行依赖其他进程的进展情况,则说这些并发进程相互之间是 __________ 10 有交往的并发进程一定_________ 某些资源。
11 有交往的进程执行时可能产生与时间有关的错误,造成不正确的因素与进程 _________ 、 _____ 和外界的影响有关。
12 .对 _______ 的使用不受限制,这是使有交往的并发进程执行时出现与时间有关的错误的根本原因。
13 .临界区是指并发进程中与 _____________ 有关的程序段。
14 ._______ 是指并发进程中涉及到相同变量的那些程序段。
15 .只要涉及相同变量的若干进程的相关临界区___________ ,就不会造成与时间有关的错误。
16 .进程的________ 是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用。
17. Pv操作是在一个信号量上进行的 _________ 的过程,这种过程也称为______ 18•利用Pv操作管理相关临界区时,必须成对出现,在进入临界区之前要调用______ ,在完成临界区操作后要调用________ o 19.若信号量的初值为1,用Pv操作能限制一次_____ 进程进入临界区操作。
20 进程的______ 是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息。
21 ________ 能把它进程需要的消息发送出去,也能测试自己需要的消息是否到达。
22 . Pv操作不仅是实现 ________ 的有效工具,而且也是一种简单而方便的_____ 工具。
23 .用Pv操作实现进程同步时,调用 ________ 测试消息是否到达,调用______ 发送消息。
24 .用Pv操作实现生产者消费者之间的同步时,在访问共享缓冲区的_____ 和______ 分别调动P操作和v操作。
25 •进程的互斥实际上是进程_____________ 的一种持殊情况。
26 •进程的互斥是进程间__________ 共享资源的使用权,其结果没有_________ ,而进程的同步则在共享资源的并发进程之间有一种 _________ 依赖关系。
27 . Pv操作也可看作为进程间的一种通信方式,由于只交换了少量的信息,故称为___________ 28 .通过专门的通信机制实现进程间交换大量信息的通信方式称为 ________ o 29 .采用高级通信方式时, 进程间用来交换信息。
30 .最基本的通信原语有两条,它们是原语和原语。
31 .进程通信方式有两种:和o 32 .直接通信是固定在进程之间通信,而间接通信以信箱为媒体实现通信。
33 .一个信息可以由_________ 和_______ 两部分组成。
34.进程间通过信件交换信息,可实现 ______ 。
35 _____ 是进程中可以独立执行的子任务。
36 .线程是处理器的独立 ______ 单位,多个线程可以_______ 执行。
37 .线程与进程有许多相似之处,所以线程又称为 _______ 。
38 .线程在生命周期内会经历______ 、______ 和_____ 之间各种状态变化。
39 .采用多线程技术可把生产者消费者两个进程作为一个进程和进程中的两个线程来处理,这两个线程仍具有 ___________________ ,但不在需要额外的________ 。
40 .在使Pv 操作实现进程互斥时,调用 ______ 相当于申请一个共享资源,调用 ______ 相当于归还共享资源的使用权。
41 .在多线程操作系统中,线程与进程的根本区别在于进程作为___________ 单位,而线程是_____ 单位。
(二)简答题1.什么是进程的顺序性和并发性2为什么并发进程执行时可能会产生与时间有关的错误如何避免3 .简述临界区的相关临界区的概念。
4 .管理相关临界区有些什么要求5 .假设PV操作用信号量s管理某个共享资源,请问当s> 0, S= 0和S v 0时,它们的物理意义是什么6 .请给出Pv操作的定义。
7 .用Pv操作实现进程间同步与互斥应注意些什么8 .何谓进程通信最基本的通信原语有哪些9直接通信与间接通信有何区别10 .线程与进程的根本区别是什么(四)应用题1.有一南北向的单行车道,在车道A、B两端以外一段距离处有减速标志和自动计数系统,A、B两处设有信号灯,信号灯的管理要求如下:绿灯行,红灯停,A、B两端红绿灯同时变换,一方红变绿时另一方绿变红。
绿灯保持到同一方向进入的车辆全部驶入AB段,当AB之间无车辆行驶时,允许到达A端(或B端)的车辆驶入AB段,但只准某一方的车辆进入;一方最后一辆车进入AB段后,双向亮红灯让车辆全部通过(假设2分钟),然后让已在等待的任何一方车辆驶入。
试用Pv操作管理AB路段车辆的行驶。
2在测温系统中要完成采样、转换和显示等任务。
采样过程把从传感器上得到的整型微电压值存入一个缓冲区,转换过程把微电压值从缓冲区中取出,计算转换成温度值再存入该缓冲区,显示过程把缓冲区中的温度值取出并显示。
试用Pv 操作实现三个过程共享缓冲区的同步问题。
3,现有三个进程,Reader 进程把键盘输入的一个整数读入缓冲区B1,Executor 进程把B1中的数据取出进行处理,处理完后存到输出缓冲区B2中,最后由Pin ter进程将B2中的数据打印出来。
假设B1和n2都只能存放一个整数,请用Pv操作管理这三个并发进程的执行•4.用进程通信的方法解决生产者消费者问题。
要求生产者能告诉消费者产品的说明、规格、价格等。
而消费者能反馈对物品的评价和处理情况。
第八章进程同步与通信练习题参考答案(一) 单项选择题1.D 2.D 3.A 4.c 5.c 6.D 7.B 8.A 9 B 10 B 11 .C 12.B 13.C 14.D(二) 填空题1 .顺序2 .顺序性3 封闭性,可再现件4 .进程本身5 .相同6 .可同时执行的7 并发性8 .无关9 .有交往的10.共享11 .占用处理器的时间,执行的速度 1 2 .共享资源 1 3共享变量14•相关临界区15互斥执行16.互斥17 •不可被中断,原语18 . P操作,v操作19 •只有一个20 .同步21 .同步机制22 .进程互斥,同步23 .P 操作,v 操作24 .前,后25 .同步26 .竞争,固定的必然关系,必然的27 .低级通信方式28 .进程通信29 .信件30 .send,receive 31 .直接通信,间接通信32 .一对33 .信箱说明,信箱体34 .进程同步35 .线程36 .调度,并发37 .轻型进程38 .等待态,就绪态,运行态39 并发性,公共缓冲区40 .P 操作,v 操作41. 资源分配,调度和执行(三)简答题1.进程的顺序性是指进程在顺序的处理器上严格地按顺序执行。
若系统中存在一组可同时执行的过程,则该组程序具有并发性。
可同时执行的进程是指这些进程执行时在时间上是重叠的,即一个进程的工作没有全部完成之前,另一个进程就可以开始工作。
2.有交往的并发进程可能会同时使用共享资源,如果对这种情况不加控制,由于进程占用处理器的时间、执行的速度和外界的影响等,就会引起与时间有关的错误。
只要使若干并发进程的相关临界区互斥执行,就可避免造成这类错误。