进程的共享存储区通信--带答案版

合集下载

操作系统题库+答案

操作系统题库+答案

操作系统题库+答案第⼀部分引⾔⼀、选择题1、下列选择中,哪些不是操作系统关⼼的主要问题。

(浙⼤2003)( 4)(1)管理计算机裸机(2)设计提供⽤户与计算机硬件系统间的界⾯;(3)管理计算机系统资源(4)⾼级程序设计语⾔的编译器。

2、从⽤户⾓度看,操作系统是(C )。

A、计算机资源的管理者;B、计算机⼯作流程的组织者;C、⽤户与计算机之间的接⼝;D、由按层次结构组成的软件模块的集合。

3、引⼊多道程序技术的前提条件之⼀是系统具有(3)(西电00)(1)多个cpu;(2)多个终端;(3)中断功能;(4)分时功能4、操作系统是⼀种A。

A.系统软件B.系统硬件C.应⽤软件D.⽀援软件5、B操作系统允许⼀台主机上同时连接多台终端,多个⽤户可以通过各⾃的终端同时交互地使⽤计算机。

A.实时B.分时C.分布式D.单⽤户6、如果操作系统具有很强的交互性,可同时供多个⽤户使⽤,但时间响应不太及时,则属于分时系统类型;如果操作系统可靠,时间响应及时但仅有简单的交互能⼒则属于实时系统类型。

⼆、判断题1、所谓多道程序设计,即指每⼀时刻有若⼲个进程在执⾏。

(×)(南京⼤学00)2、采⽤多道程序设计的系统中,系统的程序道数越多,系统效率越⾼。

(×)(西电01)3、由于采⽤了分时技术,⽤户可以独占计算机的资源。

(×)4、多道程序设计是利⽤了CPU和通道的并⾏⼯作来提⾼系统利⽤率的。

(×)5、多道程序设计可以缩短系统中作业的执⾏时间。

(×)6、在⼀个兼顾分时操作系统和批处理系统中,通常把终端作业称为前台作业,⽽把批处理型作业称为后台作业。

(√)7、批处理系统不允许⽤户随时⼲预⾃⼰程序的运⾏。

(√)8、Windows操作系统完全继承了分时系统的特点。

(√)9、并发是并⾏的不同表述,其原理相同。

(×)(清华1998)10、在单处理机系统中实现并发技术后,判断:(1)各进程在某⼀时刻并⾏运⾏,cpu与外设间并⾏⼯作;(×)(2)各进程在⼀个时间段内并⾏运⾏,cpu与外设间串⾏⼯作;(×)(3)各进程在⼀个时间段内并⾏运⾏,cpu与外设间并⾏⼯作。

操作系统_复习_选择225题(有答案)

操作系统_复习_选择225题(有答案)
A.进程的动态性B.进程的并发性
C.进程的调度性D.进程的异步性
A.文件系统B.光盘系统
C.磁盘系统D.存储系统
A
4.(__)是将作业不需要或暂时不需要的部分移到外存,让出内存空间以调入其他所需程序或数据。
A.覆盖技术B.交换技术
C.虚拟技术D.物理扩充
B
5.(__)是解决进程间同步和互斥的一对低级通信原语。
A.lock和unlockB.P原语和V原语
C.W原语和S原语D.Send和Receive
B.在最近的过去用得多的页面在最近的将来也用得多
C.在最近的过去很久未使用的页面在最近的将来会使用
D.在最近的过去很久未使用的页面在最近的将来也不会使用
D
26.MS-DOS采用了(__)存储管理方案。
A.段式B.页式
C.单用户连续D.固定分区
C
27.SPOOLing技术的主要作用是(__)。
A.提高独占设备的利用率B.提高主机效率
D
19.10个并发进程使用同一个共享变量,如果最多允许6个进程同时进入其临界区,则互斥信号量的变化范围应是(__)。
A.6,5,…,1,0B.6,5,…,1,0,-1,…,-4
C.6,5,…,1,0,-1,…,-5D.6,5,…,1,0,-1,…,-3
B
20.CPU输出数据的速度远高于打印机的打印速度,可采用(__)解决这一矛盾。
B
53.操作系统是对(__)进行管理的软件
A.计算机软件B.计算机硬件
C.计算机资源D.应用程序
C
54.操作系统是管理计算机系统的处理机、内存、设备和文件等资源的(__)。
A.控制软件B.工具软件
C.应用软件D.系统软件

操作系统实验报告(进程间的共享存贮区和信号量通信)

操作系统实验报告(进程间的共享存贮区和信号量通信)

case -1:perror("fork()");exit(0);case 0:do_child_loop(sem_set_id,FILE_NAME);exit(0);default:break;}}for(i = 0;i<10;i++){int child_status;wait(&child_status);}printf("main is done");fflush(stdout);return 0;}运行结果:二、共享主存段机制共享主存段为进程提供了直接通过主存进行通信的有效手段,不像消息缓存机制那样需要系统提供缓存,也不像pipe机制那样需要事先建立一个特殊文件,而是有通信双方直接访问某些共享虚拟存储器空间。

在系统V中,系统管理一组共享主存段控制块。

通信进程在使用共享主存段以前,首先提出申请,系统为止分配存储空间并返回共享主存段标识号。

一个共享段建立后,进程把它被附加到自己的虚拟存储空间中。

一个进程可以附加多个共享主存段。

一个主存段一旦被附加到进程的虚拟机空间后,对它的访问以其他虚拟机的访问完全相同。

但为了保证共享主存段数据完整性,通信的进程之间要互斥的进行访问。

当通信进程不再需要该共享主存段时,可使用命令将其与进程分离,从而使其进程的虚空间删除。

为了理解进程通过共享主存段的通信过程,下面举例,一个是进程向共享段写信息的例子:一个是进行从共享段读信息的例子。

代码如下:四、实验过程与分析一、信号量机制在第一个例子的程序中创建了5个并发子进程,互斥地对文件进行写操作,将自己的进程号写到文件中去,信号量的初值为1,当地一个进程执行update_file函数时首先将信号量值-1,(相当于P操作)致使其它进程等待无法操作文件,直到其结束后,将其值变为1后(相当于V操作),其它进程并发竞争对文件的写操作,并将自己的pid 写入文件中。

在linux中信号量机制的执行既步骤如下所示:(1)信号量的定义:struct semaphore {spinlock_t lock;unsigned int count;struct list_head wait_list;};在linux中,信号量用上述结构体表示,我们可以通过该结构体定义一个信号量。

计算机操作系统习题及答案(4)

计算机操作系统习题及答案(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__。

第2章 进程管理课后习题解答

第2章 进程管理课后习题解答

第题中,如果修改问题中的同步算法,要求 对写进程优先,即一旦写进程到达,后续的读者进程必须等待, 而无论是否有读者进程在读文件。写出相应进程的程序段。 semaphore fmutex=1, rmutex=1, wmutex=1;que=1;
int rcount=0, wcount=0; void main() { parbegin(reader, writer); }
12
void reader { while(1) { wait(que); wait(rmutex); if(0==readcount) wait(fmutex); readcount++; signal(rmutex); signal(que); …. begin to read wait(rmutex); readcount--; if(readcount==0) signal (fmutex); signal(rmutex); } }
读者—写者问题(读优先) 读者 写者问题(读优先) 写者问题 semaphore rmutex=1,wmutex=1; int readcount=0; = void main() { parbegin(reader,writer); }
读者进程: 读者进程: void reader() { while(1) { wait(rmutex); if (readcount==0) wait(wmutex); readcount++; signal(rmutex); … 读操作 wait(rmutex); readcount--; if (readcount==0) signal(wmutex); signal(rmutex); } }
18
chopstick[ ={1 semaphore chopstick[5]={1,1,1,1,1}; viod main() { parbegin(P0(),P1(),P2(),P3(),P4()); parbegin(P0(),P1(),P2(),P3(),P4()); } Pi() /*i=0,1,2,3,4*/ { while(1) { wait(chopstick[i]); [ ] wait(chopstick[(i+1)%5]); [ ] eating; … signal(chopstick[i]); [ ] signal(chopstick[(i+1) %5]); [ ] thinking; } }

第二章 进程管理-答案

第二章 进程管理-答案

第二章进程管理一、单项选择题1、顺序程序和并发程序的执行相比,()。

A.基本相同B. 有点不同C.并发程序执行总体上执行时间快D.顺序程序执行总体上执行时间快2、在单一处理机上,将执行时间有重叠的几个程序称为()。

A.顺序程序B. 多道程序C.并发程序D. 并行程序3、进程和程序的本质区别是()。

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. CPUD. 磁盘空间9、一个进程被唤醒意味着()。

A.该进程重新占有了CPUB.进程状态变为就绪C.它的优先权变为最大D.其PCB移至就绪队列的队首10、进程从运行状态变为阻塞状态的原因是()。

A.输入或输出事件发生B.时间片到C.输入或输出事件完成D.某个进程被唤醒11、为了描述进程的动态变化过程,采用了一个与进程相联系的(),根据它而感知进程的存在。

A.进程状态字B. 进程优先数C.进程控制块D. 进程起始地址12、操作系统中有一组常称为特殊系统调用的程序,它不能被系统中断,在操作系统中称为()。

A.初始化程序B. 原语C.子程序D. 控制模块13、进程间的基本关系为()。

A.相互独立与相互制约B.同步与互斥C.并行执行与资源共享D. 信息传递与信息缓冲14、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的()关系。

操作系统实验---进程通信——共享存储区和信号量

操作系统实验---进程通信——共享存储区和信号量

实验报告实验题目姓名:学号:课程名称:操作系统实验所在学院:信息科学与工程学院专业班级:计算机任课教师:实验项目名称进程通信——共享存储区和信号量一、实验目的与要求:1、了解和熟悉共享存储机制2、了解和熟悉信号量机制3、熟悉信号量机制中使用的数据结构和信号量机制的操作以及控制。

4、了解共享主存段机制,学会对共享主存段的系统调用。

二、实验设备及软件:1、PC机一台2、Linux操作系统三、实验方法(原理、流程图)一、共享存储区1、共享存储区机制的概念共享存储区(Share Memory)是 UNIX 系统中通信速度最高的一种通信机制。

该机制可使若干进程共享主存中的某一个区域,且使该区域出现(映射)在多个进程的虚地址空间中。

另一方面,一个进程的虚地址空间中又可连接多个共享存储区,每个共享存储区都有自己的名字。

当进程间欲利用共享存储区进行通信时,必须先在主存中建立一共享存储区,然后将它附接到自己的虚地址空间上。

此后,进程对该区的访问操作,与对其虚地址空间的其它部分的操作完全相同。

进程之间便可通过对共享存储区中数据的读、写来进行直接通信。

图示列出二个进程通过共享一个共享存储区来进行通信的例子。

其中,进程 A 将建立的共享存储区附接到自己的 AA’区域,进程 B 将它附接到自己的 BB’区域。

应当指出,共享存储区机制只为进程提供了用于实现通信的共享存储区和对共享存储区进行操作的手段,然而并未提供对该区进行互斥访问及进程同步的措施。

因而当用户需要使用该机制时,必须自己设置同步和互斥措施才能保证实现正确的通信。

二、涉及的系统调用1、shmget( )创建、获得一个共享存储区。

系统调用格式: shmid=shmget(key,size,flag)参数定义: int shmget(key,size,flag);key_t key;int size,flag;其中,key是共享存储区的名字;size是其大小(以字节计);flag是用户设置的标志,如IPC_CREAT。

计算机操作系统(第3版)课后习题答案(完整版)

计算机操作系统(第3版)课后习题答案(完整版)
深入学习中国共产党地方委员会工作条例中国共产党党组工作条例试行党政领导干部选拔任用工作条例等法规制度学习市委加强领导班子思想政治建设的实施意见等制度文件学习中纪委机关中央组织部关于加强换届风气监督的通知和中央省委市委有关严肃换届纪律的精神和要求特别是九个严禁止九个一律纪律要求重点掌握四个廉洁四个自觉深入贯彻落Biblioteka 中央和省市委关于从严治党的重大决策部署
4
1 1.试说明引起进程创建的主要事件。 答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。 1 2.试说明引起进程被撤销的主要事件。 答:引起进程被撤销的主要事件有:正常结束、异常结束(越界错误、保护错、非法指令、 特权指令错、运行超时、等待超时、算术运算错、I/O 故障)、外界干预(操作员或操作 系 统干预、父进程请求、父进程终止)。 1 3.在创建一个进程时所要完成的主要工作是什么? 答: (1)OS 发现请求创建新进程事件后,调用进程创建原语Creat(); (2)申请空白PCB; (3)为新进程分配资源; (4)初始化进程控制块; (5)将新进程插入就绪队列. 1 4.在撤销一个进程时所要完成的主要工作是什么? 答: (1)根据被终止进程标识符,从PCB 集中检索出进程PCB,读出该进程状态。 (2)若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,指示该进程被 终止后重新调度。 (3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。 (4)将被终止进程拥有的全部资源,归还给父进程,或归还给系统。 (5)将被终止进程PCB 从所在队列或列表中移出,等待其它程序搜集信息。 1 5.试说明引起进程阻塞或被唤醒的主要事件是什么? 答:a. 请求系统服务;b. 启动某种操作;c. 新数据尚未到达;d. 无新工作可做. 1 6.进程在运行时存在哪两种形式的制约?并举例说明之。 答: (1)间接相互制约关系。举例:有两进程A 和B,如果A 提出打印请求,系统已把唯一的 一台打印机分配给了进程B,则进程A 只能阻塞;一旦B 释放打印机,A 才由阻塞改为就 绪。 (2)直接相互制约关系。举例:有输入进程A 通过单缓冲向进程B 提供数据。当缓冲空时, 计算进程因不能获得所需数据而阻塞,当进程A 把数据输入缓冲区后,便唤醒进程B;反 之,当缓冲区已满时,进程A 因没有缓冲区放数据而阻塞,进程B 将缓冲区数据取走后便 唤醒A。 1 7.为什么进程在进入临界区之前应先执行 “进入区”代码?而在退出前又要执行 “退出 区”代码? 答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问 的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问, 并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为" 进入区"代码;在退出临界区后,必须执行" 退出区"代码,用于恢复未被访问标志,使其它 进程能再访问此临界资源。 18. 同步机构应遵循哪些基本准则?为什么? 答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待 原因:为实现进程互斥进入自己的临界区。 19. 试从物理概念上说明记录型信号量wait 和signal。

操作系统第二章习题

操作系统第二章习题

1.正在等待他人释放临界资源的进程处于___阻塞______状态;已分配到CPU外的所有资源的进程处_______状态;已获得CPU的进程处于____执行___状态;正在执行的进程由于时间片用完时转为____就绪__状态;因发生某种事件而暂时不能继续执行时转为___阻塞______状态;应终端用户请求而暂停执行时转为______状态。

2.不会发生的状态转换有_________,为什么?就绪-执行;执行-就绪;就绪—阻塞;阻塞-就绪;阻塞—执行;执行-阻塞;3.对于记录型信号量,在执行一次wait操作时,信号量的count值应当_______;当count 值为_______时,应唤醒阻塞队列中的进程。

在记录型信号量机制中,S. count>0时的值表示_______;每次用wait操作意味着_______,因此应将S. count_______;当S. count_______时,进程应阻塞;每次signal操作意味着_______,因此应将S. count_______;当S. count<=0时,表示_______,此时应_______。

4.在每个进程中访问_______的那段代码称为临界区;为实现对它的共享,应保证进程_______地进入自己的临界区;为此,在每个进程的临界区前应设置_______;临界区后应设置_______。

5.在利用信号量实现进程互斥时,应将_______置于_______和_______之间。

6.用信号量S实现对系统中4打印机的互斥使用,S.value的初值应设置为—1—。

7.若S.value当前值为-1,则表示S.L队列中有____1___个等待进程。

8.设有10个进程共享一个互斥段,如果最多允许一个进程进入互斥段,则所采用的互斥信号量应设置为___1____,而该信号量的取值范围为_1~(n-1)______;9.如果最多允许3个进程同时进入互斥段,则所采用的互斥信号量初值应设置为—3—。

第3章进程并发控制作业题参考答案

第3章进程并发控制作业题参考答案

第3章进程并发控制作业题参考答案作业题题1进程间的互斥与同步表示了各进程间的______。

A.竞争与协作B. 相互独立与相互制约C .临界区调度原则 D. 动态性与并发性题2 若执行信号量S操作的进程数为3,信号量S初值为2,当前值为-1,表示有____个等待相关临界资源的进程。

A 0B 1C 2D 3题 3 由于并发进程执行的随机性,一个进程对另一个进程的影响是不可预测的,甚至造成结果的不正确,_________。

A.造成不正确的因素与时间有关B. 造成不正确的因素只与进程占用的处理机有关C.造成不正确的因素与执行速度无关D. 造成不正确的因素只与外界的影响有关题4 下列机构中不能用于进程间数据通信的是____________。

A.消息B.共享存储区C. 信号量D.管道题5 下面有关管程的说法,不正确的是________A.管程是种进程同步机制B. 管程是一种编程语言成分C. 管程是一种系统调用D.管程比信号量更容易保证并行编程的正确性题6 什么是临界资源和临界区?一个进程进人临界区的调度原则是什么?题7 进程之间存在哪几种制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?(1)图书馆借书。

属于互斥关系。

(2)两队举行篮球赛。

既有互斥关系,又有同步关系。

(3)流水生产线。

属于同步关系。

(4)乐队演奏。

属于同步关系。

(5)购买火车票。

属于互斥关系。

题8 在生产者消费者问题中,如果将两个P操作即生产者程序流程中的P(buffers)和P(mutex)互换位置.结果会如何? 形成死锁。

题9 试用P、V操作描述下列理发师和顾客之间的同步问题。

某个理发师当没有顾客时,去睡觉;当有顾客来理发,若理发师正在睡觉时,这个顾客会叫醒他,理发师给该顾客理发,理发期间若还有顾客到达则等待理发师依次理发,直到没有顾客到来,理发师又去睡觉。

wakeup,wait,mutex:semaphore;wakeup:=0;wait:=0;mutex:=1;cobegin顾客进程:{p(mutex);rc=rc+1;if(rc==1) v(wakeup);else p(wait);v(mutex);理发;}理发师进程:{P(wakeup);While(rc!=0){理发;p(mutex);rc=rc-1;if(rc!=0)v(wait);v(mutex);}}coend自测题一、选择题1.并发性是指若干事件在______发生。

2012-2013-2 OS试卷A(带答案)

2012-2013-2 OS试卷A(带答案)
答:a) ABCD P0 0000 P1 0750 P2 1002
第2页
共3页
座位号:
P3 0020 P4 0642 b)P0->P2/P3->*,所以安全。 c)安全,可以分配。
2.(8 分)某磁盘大小为 1MB,磁盘上的磁盘块大小为 1KB,从 0 开始编号。某文件顺序存储在 4
个磁盘块上:20,500,10 和 900,且该文件的目录项位于 51 号块上,已知最后一次磁盘访问的是
23.下面关于 i 节点描述错误的是(A)。
A.i 节点和文件的目录项是一一对应的。
B.i 节点能描述文件占用的块数。
C.i 节点描述了文件大小和指向数据块的指针。
D.通过 i 节点实现文件的逻辑结构和物理结构的转换。 24.位示图法用于(D)。
A.文件目录的查找 B.主存空间的管理 C.文件的共享与保护
Maximum Need ABCD 0012 1750 2356 0652 0656
Available
ABCD 1520
a) What is the content of the matric "Need"?
b) Is the system in safe state? Prove it!
c) If a request from process P1 arrives for (0,4,2,0), can the request be immediately granted?
A.前者分时使用 CPU,后者独占 CPU。
B.前者为动态的,后者为静态的。
C.前者在一个文件中,后者在多个文件中。 D.前者存储在内存,后者存储在外存。
12.进程从执行态转变为阻塞态可能是由于(C)。

全国自考操作系统(进程通信)模拟试卷3(题后含答案及解析)

全国自考操作系统(进程通信)模拟试卷3(题后含答案及解析)

全国自考操作系统(进程通信)模拟试卷3(题后含答案及解析) 题型有:1. 单项选择题 3. 填空题 4. 简答题 5. 综合题 6. 判断题单项选择题1.临界区是指并发进程中_______。

A.用于实现进程互斥的程序段B.用于实现进程同步的程序段C.用于实现进程通信的程序段D.与互斥的共享资源有关的程序段正确答案:D 涉及知识点:进程通信2.解决进程间同步与互斥问题的常用方法是使用_______。

A.锁操作B.存储管理C.信号机构D.信号量正确答案:D解析:锁操作只能解决进程间的互斥而不能解决进程间的同步问题。

知识模块:进程通信3.在进程之间要传递大量的数据,效率高而且互斥与同步控制方便的方法是采用_______。

A.管道B.共享存储C.全局变量D.信号量正确答案:A解析:信号量只能传递少量的(控制)信息;采用共享存储区的方法,一般还需要信号量来实现进程间的同步;全局变量只能用于进程内部的信息传递。

知识模块:进程通信4.能支持两台计算机之间的通信机制是_______。

A.SignalB.PipeC.IpcD.Socket正确答案:D 涉及知识点:进程通信5.如果系统只有一个临界资源,同时有很多进程要竞争该资源,那么系统_______发生死锁。

A.一定会B.一定不会C.不一定会D.由进程数量决定正确答案:B解析:由于系统只有一个临界资源,各个进程只能竞争和轮流占用该资源,不会形成循环等待的死锁条件,那么系统就一定不会发生死锁。

知识模块:进程通信6.在多进程的并发系统中,肯定不会因竞争_______而产生死锁。

A.打印机B.磁带机C.光刻机D.处理机正确答案:D 涉及知识点:进程通信7.系统有11台磁带机供5个进程使用,如每个进程最多同时分配_______台磁带机,就没有死锁的危险。

A.2B.3C.4D.5正确答案:B解析:在最坏的情况下,每一个进程都已平均分配了2台磁带机,系统还剩下1台磁带机。

这台磁带机就可以分配给某个进程使用,使该进程得到了全部的资源后,就能运行到底,从而可释放它所占用的3台磁带机,这样其他进程又能获得磁带机,就没有死锁的危险。

计算机操作系统习题及答案4

计算机操作系统习题及答案4

计算机操作系统习题及答案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__。

计算机操作系统练习题库(含答案)

计算机操作系统练习题库(含答案)

计算机操作系统练习题库一填空:2.主存储器与外围设备之间的数据传送控制方式有程序直接控制、中断驱动方式、DMA 方式和通道控制方式。

3.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短的作业将得到优先调度;当各个作业要求运行的时间相同时,等待时间长的作业得到优先调度。

4.当一个进程独占处理器顺序执行时,具有两个特性:封闭性和可再现性。

5.程序经编译或汇编以后形成目标程序,其指令的顺序都是以零作为参考地址,这些地址称为逻辑地址。

6.文件的逻辑结构分流式文件和记录式文件二种。

7.进程由程度、数据和PCB组成。

8.对信号量S的操作只能通过原语操作进行,对应每一个信号量设置了一个等待队列。

9.操作系统是运行在计算机裸机系统上的最基本的系统软件。

10.虚拟设备是指采用SPOOLING技术,将某个独享设备改进为供多个用户使用的的共享设备。

11.文件系统中,用于文件的描述和控制并与文件一一对应的是文件控制块。

12.段式管理中,以段为单位,每段分配一个连续区。

由于各段长度不同,所以这些存储区的大小不一,而且同一进程的各段之间不要求连续。

13.逻辑设备表(LUT)的主要功能是实现设备独立性。

14在采用请求分页式存储管理的系统中,地址变换过程可能会因为缺页和越界等原因而产生中断。

16. 段的共享是通过共享段表实现的。

17.文件的物理结构分为顺序文件、索引文件和索引顺序文件。

18.所谓设备控制器,是一块能控制一台或多台外围设备与CPU并行工作的硬件。

19. UNIX的文件系统空闲空间的管理是采用成组链接法。

20分页管理储管理方式能使存储碎片尽可能少,而且使内存利用率较高,管理开销小。

20.计算机操作系统是方便用户、管理和控制计算机软硬件资源的系统软件。

21.操作系统目前有五大类型:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。

22.按文件的逻辑存储结构分,文件分为有结构文件,又称为记录式文件和无结构文件,又称流式文件。

操作系统随堂练习答案

操作系统随堂练习答案

1.实时操作系统必须在内处理完来自外部的事件;A.响应时间B.周转时间C.被控对象规定时间 D.调度时间答题: A. B. C. D. 已提交参考答案:C问题解析:2.操作系统是对进行管理的软件;A.软件B.硬件C.计算机资源 D.应用程序答题: A. B. C. D. 已提交参考答案:C问题解析:3.配置了操作系统的计算机是一台比原来的物理计算机功能更强的计算机,这样的一台计算机只是一台逻辑上的计算机,称为计算机;A. 并行B. 真实C. 虚拟 D. 共享答题: A. B. C. D. 已提交参考答案:C问题解析:4.操作系统中采用多道程序设计技术提高了CPU和外部设备的A. 利用率B. 可靠性C. 稳定性 D. 兼容性答题: A. B. C. D. 已提交参考答案:A问题解析:5.在操作系统中,并发性是指若干事件____发生A. 在同一时刻B. 在不同时刻C. 在某一时间间隔内D. 依次在不同时间间隔内答题: A. B. C. D. 已提交参考答案:CA. B. C.A. B. C. ......1.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入互斥段,则信号量的初值应设置为A. 3B. 2C. 1D. 0答题: A. B. C. D. 已提交参考答案:B问题解析:2.若信号量S的初值为2,当前值为-1,则表示有____个等待进程A. 0B. 1C. 2D. 3答题: A. B. C. D. 已提交参考答案:B问题解析:3.临界区是A. 一个缓冲区B.一段共享数据区C.一段程序 D. 一个互斥资源答题: A. B. C. D. 已提交参考答案:C问题解析:4.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入互斥段,则信号量的初值应设置为A. 3B. 2C. 1D. 0答题: A. B. C. D. 已提交参考答案:B问题解析:5.操作系统通过管理进程;A. JCBB. PCBC. DCTD. CHCT答题: A. B. C. D. 已提交参考答案:B问题解析:6.一个进程被唤醒意味着;A. 该进程重新占有了CPUB. 它的优先权变为最大C. 其PCB移至等待队列队首D. 进程变为就绪状态答题: A. B. C. D. 已提交参考答案:D问题解析:7.新创建的进程处于状态A. 就绪B.执行C.完成 D.阻塞答题: A. B. C. D. 已提交参考答案:A问题解析:8.进程映像不包括A.PCB B;进程程序C;进程数据D;进程通信答题: A. B. C. D. 已提交参考答案:D问题解析:9.进程的三种基本状态是就绪、运行、阻塞状态. . . . . . ..1.设有四个作业同时到达,每个作业的执行时间均为2小时,它们在一台处理机上按单道方式运行,则平均周转时间为A. 1小时B. 5小时C. 2.5小时 D. 8小时答题: A. B. C. D. 已提交参考答案:B问题解析:2.设四道作业J1、J2、J3和J4同时到达,运行时间分别为T1,T2,T3,T4,满足T1>T2>T3>T4;若在单道方式下采用最长作业优先算法,平均周转时间为A. T1+T2+T3+T4B. T1+T2+T3+T4/4C. T1+T2/4+T32/4+T43/4D. T1+T23/4+T32/4+T4/4答题: A. B. C. D. 已提交参考答案:D问题解析:3.在下列解决死锁的方法中,属于死锁预防策略的是A. 银行家算法B. 有序资源分配法C. 死锁检测法D. 资源分配图化简法答题: A. B. C. D. 已提交参考答案:C问题解析:4.某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是A. 9B. 10C. 11D. 12A. B. C.A. B. C. .....1.页式虚拟存储管理的主要特点是A. 不要求将作业装入到主存的连续区域B. 不要求将作业同时全部装入到主存的连续区域C. 不要求进行缺页中断处理D. 不要求进行页面置换答题: A. B. C. D. 已提交参考答案:B问题解析:2.在可变式分配方案中,最佳适应算法是将空白区在空白区表中按次序排列;A. 地址递增B. 地址递减C. 容量递增D. 容量递减答题: A. B. C. D. 已提交参考答案:C问题解析:3.下列哪项不是段式存储器管理的优点A. 便于内存保护B. 可以方便实现内存共享C. 与用户编程结构一致D. 可以减少访问内存次数答题: A. B. C. D. 已提交参考答案:D问题解析:4.操作系统中采用了以空间换时间的技术A. SPOOLING技术B. 覆盖技术C. 通道技术 D. 虚拟存储技术答题: A. B. C. D. 已提交参考答案:B问题解析:5.联想存储器在计算机系统中是用于A. 存储文件信息B. 与主存交换信息C. 内存地址变换D. 内存管理信息答题: A. B. C. D. 已提交参考答案:C问题解析:6.设主存的容量为8MB,辅存的容量为50MB,计算机地址总线宽度为24位,则虚存的最大容量为A. 8MBB. 50MB+8MBC. 50MB+224MBD. 224MBE. 以上答案均不对答题: A. B. C. D. 已提交参考答案:B问题解析:7.页式内存管理是一种不连续的内存分配方法答题:对. 错. 已提交参考答案:√问题解析:8.循环首次适应算法往往造成系统缺少大的空闭分区答题:对. 错. 已提交参考答案:√问题解析:9.页式比段式内存管理方便程序共享答题:对. 错. 已提交参考答案:×问题解析:10.虚拟存储器是根据程序的局总性原理实现的答题:对. 错. 已提交参考答案:√问题解析:11.对换性是虚拟存储器的一个特点答题:对. 错. 已提交参考答案:√问题解析:1.从资源分配角度看,外设可分为若干种,其中不包括A. 虚拟设备B. 物理设备C. 独占设备 D. 共享设备答题: A. B. C. D. 已提交参考答案:B问题解析:2.关于SPOOLING的叙述中, 的描述是不正确的;A. SPOOLING系统中不需要独占设备B. SPOOLING系统加快了作业执行的速度C. SPOOLING系统使独占设备变成共享设备D. SPOOLING利用了处理器与通道并行工作的能力答题: A. B. C. D. 已提交参考答案:A问题解析:3.从资源分配角度看,外设可分为若干种,其中不包括A. 虚拟设备B. 物理设备C. 独占设备 D. 共享设备答题: A. B. C. D. 已提交参考答案:B问题解析:4.大多低速设备都属于A. 独享设备B.共享设备C.虚拟设备D.SPOOLING 设备答题: A. B. C. D. 已提交参考答案:A问题解析:5.按分类可将设备分为块设备和字符设备;A. B. C.A. B. C. ........1.下列文件中属于逻辑结构的文件是A. 连续文件B. 系统文件C. 散列文件 D. 流式文件答题: A. B. C. D. 已提交参考答案:D问题解析:2.位示图法主要用于A. 页面置换B. 磁盘空间管理C. 文件目录查找D. 磁盘驱动调度答题: A. B. C. D. 已提交参考答案:B问题解析:3.为了解决不同用户文件的“命名冲突”问题,通常在文件系统中采用A. 对换B. 多级目录C. 路径D. 索引答题: A. B. C. D. 已提交参考答案:B问题解析:4.文件系统的主要目的是A. 实现对文件的按名存取B. 实现虚拟存储C. 提高外存的读写速度D. 用于存储系统文件答题: A. B. C. D. 已提交参考答案:A问题解析:5.一个文件的相对路径是从开始,逐步沿着各级子目录追溯,最后到指定文件的整个通路上所有子目录名组成的一个字符串;A. 当前目录B. 根目录C. 多级目录 D. 二级目录答题: A. B. C. D. 已提交参考答案:A问题解析:6.文件系统的主要目的是A. 实现对文件的按名存取B. 实现虚拟存储C. 提高外存的读写速度D. 用于存储系统文件答题: A. B. C. D. 已提交参考答案:A问题解析:7.用磁带作为文件存储介质时,文件只能组织成A. 顺序文件B. 链接文件C. 索引文件 D. 目录文件A. B. C. .......1. OSI七层模型中负责在通信实体间建立可靠、透明的端对端数据传输通道;A、物理层B、数据链路层C、网络层D、传输层答题: A. B. C. D. 已提交参考答案:D问题解析:2.网络管理的功能不包括A、配置管理B、故障管理C、安全管理D、计费管理答题: A. B. C. D. 已提交参考答案:D问题解析:3.下列哪个不是NOS的基本功能A、控制流量B、选择路由C、多路复用D、数据迁移答题: A. B. C. D. 已提交参考答案:D问题解析:4.常用的网络拓扑结构有星形、树形、总线形、环形等答题:对. 错. 已提交参考答案:√问题解析:5.学校的校园网是一种广域网答题:对. 错. 已提交参考答案:×.。

操作系统原理试题题库含答案 4

操作系统原理试题题库含答案 4

操作系统原理试题题库含答案(4)1、消息缓冲队列通信机制,属于什么通信方式?A、消息传递系统B、共享存储器系统C、管道通信系统正确答案: A2、资源的预先分配策略可以实现死锁的_____________。

A、预防B、避免C、检测D、恢复正确答案: A3、下面关于进程创建原语的叙述中,错误的是___。

A、原语是一条指令,该指令完成一个指定的功能B、原语是一组机器指令组成的程序段C、原语在执行过程中要屏蔽中断D、原语工作在系统核心态正确答案: A4、最近最少使用(LRU)的缺页率会随着缓存增加而___。

A、增加B、减少C、无关D、不变正确答案: B5、下列进程状态的转换中,哪一个是不正确的( )。

A、就绪→运行B、阻塞→运行C、运行→就绪D、运行→阻塞正确答案: B6、同一进程的多线程,同时在多核上都能运行。

这种性质称作线程的____________。

A、异步性B、并行性C、并发性D、动态性正确答案: B7、银行家算法是一种()算法。

A、死锁预防B、死锁避免C、死锁检测D、死锁解除正确答案: B8、下列算法中用于磁盘移臂调度的是____________。

A、电梯算法B、 LRU算法C、时间片轮转法D、优先级高者优先算法正确答案: A9、系统为某进程分配了 4 个页框,该进程已访问的页号序列为2,0,2,9,3,4,2,8,2,3,8,4,5,若进程要访问的下一页的页号为 7,依据 LRU 算法,应淘汰页的页号是( )。

A、 2B、 3C、 4D、 8正确答案: B10、设与某资源关联的信号量(K)初值为3,当前值为1。

若M表示该资源的可用个数,N表示等待该资源的进程数,则M,N分别是( )。

A、 0,1B、 1,0C、 1,2D、 2,0正确答案: B11、等待当前磁道上的某指定扇区旋转到磁头下所需的时间称为( )。

A、寻找时间B、启动时间C、旋转延迟时间D、传送时间正确答案: C12、在采用多级目录结构的系统中,经常采用____方法来提高检索文件的速度。

操作系统第一-三章自测题及解答

操作系统第一-三章自测题及解答
{
a=55;
pid=fork();
if (pid==0){
sleep(5);
a=99;
sleep(5);
printf(“child leaving\n”);
exit(0);
}
else
{ sleep(7);
printf(“a=%d\n”,a);
wait(0);
printf(“parent child exited\n”);
a.在顺序环境下,CPU的利用率是多少? b.在多道程序环境下,CPU的利用率是多少? 2、若程序Pa和Pb单独执行时分别用Ta和Tb,Ta=1小时,Tb=1.5小时,其中CPU工作时间分别 为ta=18分钟,tb=27分钟,如果采用多道程序设计方法,让Pa和Pb并行工作,假定CPU利用率 达到50%,另外15分钟系统开销,请问系统效率提高多少? 3、下列程序执行时,系统的输出可能是什么?
统采用银行家算法实施死锁避免策略。
T0时刻系统状态表
最大资源需求量 已分配资源数量
ABC
ABC
P1 5 5 9
212
P2 5 3 6
402
P3 4 0 11
405
P4 4 2 5
204
P5 4 2 4
314
注:本自测题仅供自测用,不代表期末考试观点,如无雷同,敬请谅解!
第 5 页 共 13 页
《操作系统》第一-三章)自测题(时间: 3:00 小时)
状态。
19. 用户为阻止进程继续运行,应利用( )原语;若进程正在执行,应转变为( )状态。
不久,若用户要恢复其运行,应利用( )原语,此时进程应转变为( )状态。
20. 每执行一次 V 操作,表示( );若 S.value <= 0,则表示( ),此时应( )。

共享存储区进程通信代码示例

共享存储区进程通信代码示例

1. /*server.c:向共享内存中写入People*/2. #include <stdio.h>3. #include <sys/types.h>4. #include <sys/ipc.h>5. #include <sys/sem.h>6.7. int main()8. {9. struct People{10. char name[10];11. int age;12. };13.14. int semid;15. int shmid;16. key_t semkey;17. key_t shmkey;18. semkey=ftok("server.c",0);//把文件读入共享存储区里,需要用key_t key=ftok();19. shmkey=ftok("client.c",0);20.21. /*创建共享内存和信号量的IPC*/22. semid=semget(semkey,1,0666|IPC_CREAT);23. if(semid==-1)24. printf("creat sem is fail/n");25. shmid=shmget(shmkey,1024,0666|IPC_CREAT);26. if(shmid==-1)27. printf("creat shm is fail/n");28.29. /*设置信号量的初始值,就是资源个数*/30. union semun{31. int val;32. struct semid_ds *buf;33. ushort *array;34. }sem_u;35.36. sem_u.val=1;37. semctl(semid,0,SETVAL,sem_u);38.39. /*将共享内存映射到当前进程的地址中,之后直接对进程中的地址addr操作就是对共享内存操作*/40.41. struct People * addr;42. addr=(struct People*)shmat(shmid,0,0);43. if(addr==(struct People*)-1)44. printf("shm shmat is fail/n");45.46. /*信号量的P操作*/47. void p()48. {49. struct sembuf sem_p;50. sem_p.sem_num=0;51. sem_p.sem_op=-1;52. if(semop(semid,&sem_p,1)==-1)53. printf("p operation is fail/n");54. }55.56. /*信号量的V操作*/57. void v()58. {59. struct sembuf sem_v;60. sem_v.sem_num=0;61. sem_v.sem_op=1;62. if(semop(semid,&sem_v,1)==-1)63. printf("v operation is fail/n");64. }65.66. /*向共享内存写入数据*/67. p();68. strcpy((*addr).name,"xiaoming");69. /*注意:①此处只能给指针指向的地址直接赋值,不能在定义一个 struct People people_1;addr=&people_1;因为addr在addr=(struct People*)shmat(shmid,0,0);时,已经由系统自动分配了一个地址,这个地址与共享内存相关联,所以不能改变这个指针的指向,否则他将不指向共享内存,无法完成通信了。

操作系统练习题及答案

操作系统练习题及答案

9.一般虚拟内存的管理方式有 : 一般虚拟内存的管理方式有 [ ] ,[ 段页式管理 ]三种 三种. 三种 页式管理 ] ,[ 段式管理
三.选择题
1.设主存的容量为8MB,辅存的容量为 .设主存的容量为 ,辅存的容量为50MB, , 计算机的地址线32位 计算机的地址线 位,则虚存的最大容量是 A. 50MB B. 8MB+50MB C. 16MB D. 24MB
越界中断 页表寄存器 页表始址 + 4 > 逻辑地址L 页号(0) 1023
页号 0 1 2 3
块号 3
b 页表
3
1023 物理地址
3*1024+1023=4095
3.在一个只允许单向行驶的十字路口,分别有 在一个只允许单向行驶的十字路口, 在一个只允许单向行驶的十字路口 若干由东向西, 若干由东向西 , 由南向北的车辆在等待通过 十字路口. 为了安全, 每次只允许一辆车通 十字路口 . 为了安全 , 东向西或南向北) 过 , ( 东向西或南向北 ) . 当有车辆通过时 其他车辆等待, 其他车辆等待 , 当无车辆在路口时则允许一 辆车进入(东向西或南向北) 试用PV操作 辆车进入 ( 东向西或南向北) , 试用 操作 实现能保证安全行驶的自动管理系统.
3. 在进程对应的程序代码中使用P, 操作后 操作后, ×在进程对应的程序代码中使用 ,V操作后,可以 防止系统发生死锁. 防止系统发生死锁. 4.银行家算法是一种检测死锁的算法. . × 银行家算法是一种检测死锁的算法.
5. 控制器的控制之下, 控制器的控制之下 ×在DMA控制器的控制之下,可以一次完成多个 不连续数据块的数据传送. 不连续数据块的数据传送.

2.对文件空闲空间的管理,UNIX中采用的是 .对文件空闲空间的管理, 中采用的是 A.空闲表 B.文件分配表 C.位示图 D.成组链接法 空闲表 文件分配表 位示图 成组链接法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二进程管理
2.4 进程的共享存储区通信
1.实验目的
(1) 通过编写共享存储区的通信程序,理解Linux共享存储区机制。

(2) 掌握进程共享存储区通信相关系统调用。

(3) 理解系统调用和用户命令的区别。

2.实验类型:验证型
3.实验学时:2
4.实验原理和知识点
(1) 实验原理:并发运行的进程之间,可以通过共享存储机制进行通信。

(2) 知识点:共享存储的创建、附接和断接
5.实验环境(硬件环境、软件环境):
(1)硬件环境:Intel Pentium III 以上CPU,128MB以上内存,2GB以上硬盘
(2)软件环境:linux操作系统。

6. 预备知识
(1) 共享存储区
共享存储区机制直接通过共享虚拟存储空间进行通信。

通信时,进程首先提出申请,系统为之分配存储空间并返回共享区标示符。

这时,进程把它附加到自己的虚拟存储空间中。

通信的进程对共享区的访问要互斥地进行。

(2) shmget()系统调用:
头文件#include <sys/shm.h>
函数原型int shmget(key_t key, int size, int flag);
功能:申请一个共享存储区。

成功返回共享内存标识符,失败则返回-1。

参数:key是共享存储区关键字。

size是存储区大小。

flag访问权限和控制标志。

(3) shmat()系统调用:
头文件#include <sys/shm.h>
函数原型int shmat(int id, char *addr, int flag);
功能:将一个共享存储区附接到进程的虚地址空间。

成功返回起始地址,失败则返回-1。

数:id是共享存储区标识符。

addr是附接的虚地址。

flag访问权限和控制标志。

(4) shmdt()系统调用:
头文件#include <sys/shm.h>
函数原型int shmdt(char *addr);
功能:一个共享存储区与指定进程的断开。

(5) shmctl()系统调用:
头文件#include <sys/shm.h>
函数原型int shmctl(int id, int cmd, struct_ds* buf;
功能:共享存储区的控制操作。

成功返回0,失败则返回-1。

参数:id是共享存储区标识符。

cmd为IPC_STAT共享存储的区的控制信息块读入buf。

cmd为IPC_SET则共享存储区的控制信息块读入buf。

cmd 为IPC_RMID则删除shmid 指示的共享内存。

7.实验内容及步骤:
【任务】
使用系统调用shmget()、shmat()、shmdt()、shmctl(),编写两进程通过共享存储区进行通信的程序。

(1)程序设计
约定共享区关键字75。

创建两个子进程client和server。

Client发送10条消息。

Server接收消息,完毕后删除共享区。

//share.c
#include <sys/types.h>
#include <sys/msg.h>
#include <sys/ipc.h>
#include <stdio.h>
#define SHMKEY 75 /* 定义共享存储区关键词*/
int shmid,i;
int *addr;
void Client()
{ int i;
shmid=shmget(SHMKEY,1024,0777); /* 获取共享区, 长度1024,关键词为SHMKEY */ addr=(int*)shmat(shmid,0,0); /* 共享区的起始地址为addr */
for(i=9;i>=0;i--)
{ while(*addr!=-1); /* 在这里做一个标号A */
printf("(client %d)sent\n",i); /* 打印(client) sent */
*addr=i; /* 把i赋给addr所指向的区域*/
}
exit(0);
}
void Server()
{ shmid=shmget(SHMKEY,1024,0777|IPC_CREAT); /* 创建共享区*/ addr=(int*)shmat(shmid,0,0); /* 共享区的起始地址为addr */
do
{ *addr=-1;
while(*addr==-1); /* 等待发来信息, 转到上面的标号A; */
printf("(server %d)received!\n",*addr); /* 服务进程使用共享区*/ }while(*addr);
shmctl(shmid,IPC_RMID,0);
exit(0);。

}
int main()
{ int i;
while((i=fork())==-1);
if(!i) Server();
else {
while((i=fork())==-1);
if(!i) Client();
}
wait(0);
wait(0);
return 1;
}
(2)上机操作
键入vi share.c
键入i并输入源代码。

按Esc键
存盘:wq
编译gcc –o share share.c。

运行 ./share
观察屏幕,记录结果。

THANKS !!!
致力为企业和个人提供合同协议,策划案计划书,学习课件等

打造全网一站式需求
欢迎您的下载,资料仅供参考。

相关文档
最新文档