首页 > 知识点讲解
       进程间的通信
知识路径: > 计算机系统基础知识 > 软件基础知识 > 操作系统基础知识 > 处理机管理 > 进程管理 > 
被考次数:28次     被考频率:高频率     总体答错率:40%     知识难度系数:     
相关知识点:17个      
               同步与互斥
               在操作系统中,多个进程并发执行,因此进程间必然存在资源共享和相互合作的问题。
               1)进程间的同步
               一般情况下,一个进程相对于另一个进程的速度是不可预测的,也就是说,进程之间是异步运行的。为了成功地协同工作,有关进程在某些确定的点上应当保持同步:一个进程到达了这些点后,除非另一进程已经完成了某个活动,否则就停下来,等待该活动结束。
               同步是指进程之间的一种协同工作关系,使这些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。同步机制应满足的基本要求是:有描述能力、可以实现、效率高、使用方便。
               2)进程间的互斥
               在多道系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用。这种资源称为临界资源,如打印机、公共变量、表格等。互斥是要保证临界资源在某一时刻只被一个进程访问。
               3)临界区管理的原则
               临界区是进程中对临界资源实施操作的那段程序。对互斥临界区管理的原则是:有空即进、无空则等、有限等待、让权等待。
               信号量机制
               信号量机制是一种有效的进程同步与互斥工具。目前主要有:整型信号量、记录型信号量、信号量集机制。
               1)整型信号量与P操作和V操作
               信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为两类:公用信号量,实现进程间的互斥,初值为1或资源的数目;私用信号量,实现进程间的同步,初值为0或某个正整数。
               信号量S的物理意义:S≥0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
               除了设置初值外,对信号量只能进行特殊的操作:P操作和V操作。P操作和V操作都是不可分割的原子动作,也称为原语,其中P操作表示申请一个资源,V操作表示释放一个资源。
               P操作和V操作都是原语。利用信号量S的取值表示共享资源的使用情况。在使用时,把信号量S放在进程运行的环境中,赋予其不同的初值,并在其上实施P操作和V操作,以实现进程间的同步与互斥。
               P操作和V操作的定义如下。
               P(S):①S=S-1;②若S<0,则该进程进入S信号量的队列中等待。
               V(S):①S=S+1; ②若S≤0,则释放S信号量队列上的一个等待进程,使之进入就绪队列。
               当S>0时,表示还有资源可以分配;当S<0时,其绝对值表示信号量等待队列中进程的数目。每执行一次P操作,意味着要求分配一个资源;每执行一次V操作,就意味着释放一个资源。
               2)利用P操作和V操作实现进程的互斥
               令信号量mutex的初值为1,进入临界区时执行P操作,退出临界区时执行V操作,于是临界区就改写成下列形式的代码段:
               
               由于mutex初值为1, P、V是原子操作,可以实现互斥。
               高级通信原语
               P操作和V操作是用来协调进程间关系的,编程较困难、效率低,而且没有信息交换,故常称为低级通信原语。交换的信息量多时要引入高级通信原语,进程高级通信的类型主要有如下几种。
               (1)共享存储系统:相互通信的进程共享某些数据结构或存储区,以实现进程之间的通信。
               (2)消息传递系统:进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信,如Send(A)、Receive(A)。
               (3)管道通信:所谓管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件(pipe文件)。向管道(共享文件)提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道接收大量的数据。由于通信是采用管道的方式,所以叫管道通信。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2020年下半年
   程序员
   上午试卷 综合知识
第26题
选择题
假设有6个进程共享一个互斥段N,如果最多允许3个进程同时访问互斥段N,那么利用PV操作时,所用信号量S的变化范围为(25);若信号量S的当前值为-1,则表示系统中有个(26)正在等待该资源的进程。

35%
   2020年下半年
   程序员
   上午试卷 综合知识
第25题
选择题
假设有6个进程共享一个互斥段N,如果最多允许3个进程同时访问互斥段N,那么利用PV操作时,所用信号量S的变化范围为(25);若信号量S的当前值为-1,则表示系统中有个(26)正在等待该资源的进程。

23%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有