首页 > 知识点讲解
       进程间的通信
知识路径: > 计算机系统基础知识 > 计算机软件基础知识 > 操作系统基础知识 > 处理机管理 > 进程管理 > 
被考次数:10次     被考频率:高频率     总体答错率:48%     知识难度系数:     
相关知识点:25个      
        在多道程序环境的系统中存在多个可以并发执行的进程,使得进程之间会存在资源共享和相互合作的问题。进程通信是指各个进程交换信息的过程。
               同步与互斥
               同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。
                      进程间的同步
                      在计算机系统中,多个进程可以并发执行,每个进程都以各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作。例如,进程A向缓冲区送数据,进程B从缓冲区取数据加工,当进程B要取数据加工时,必须是进程A完成了向缓冲区送数据的操作,否则进程B必须停下来等待进程A的操作结束。
                      可见,所谓进程间的同步是指在系统中一些需要相互合作,协同工作的进程,这样的相互联系称为进程的同步。
                      进程间的互斥
                      进程的互斥是指系统中多个进程因争用临界资源而互斥执行。在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(Critical Resource,CR),如打印机、共享变量和表格等。
                      临界区管理的原则
                      临界区(Critical Section,CS)是进程中对临界资源实施操作的那段程序。对互斥临界区管理的4条原则如下:
                      (1)有空即进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。
                      (2)无空则等。当有一个进程在临界区时,其他欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
                      (3)有限等待。对于要求访问临界资源的进程,应保证进程能在有限的时间进入临界区,以免陷入“饥饿”状态。
                      (4)让权等待。当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等状态。
               信号量机制
               荷兰学者Dijkstra于1965年提出的信号量机制是一种有效的进程同步与互斥工具。目前,信号量机制有了很大的发展,主要有整型信号量、记录型信号量和信号量集机制。
                      整型信号量与PV操作
                      信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为如下两类:
                      (1)公用信号量。实现进程间的互斥,初值为1或资源的数目。
                      (2)私用信号量。实现进程间的同步,初值为0或某个正整数。
                      信号量S的物理意义:S≥0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
                      对于系统中的每个进程,其工作的正确与否不仅取决于它自身的正确性,而且与它在执行中能否与其他相关进程正确地实施同步互斥有关。PV操作是实现进程同步与互斥的常用方法。P操作和V操作是低级通信原语,在执行期间不可分割。其中,P操作表示申请一个资源,V操作表示释放一个资源。
                      P操作的定义:S:=S-1。若S≥0,则执行P操作的进程继续执行;若S<0,则将该进程置为阻塞状态(因为无可用资源),并将其插入阻塞队列。
                      P操作可用如下过程表示,其中,Semaphore表示所定义的变量是信号量。
                      
                      V操作定义:S:=S+1。若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
                      V操作可用如下过程表示:
                      
                      利用PV操作实现进程的互斥
                      令信号量mutex的初值为1,当进入临界区时执行P操作,退出临界区时执行V操作。这样,利用PV操作实现进程互斥的代码段如下:
                      
                      利用PV操作实现进程的同步
                      进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来,当信号量的值为0时表示等待的消息未产生,当信号量的值为非0时表示等待的消息已经存在。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否到达,调用V操作通知消息已准备好。最典型的同步问题是单缓冲区的生产者和消费者的同步问题。
               高级通信原语
               进程间通信是指进程之间的信息交换,少则一个信息,多则成千上万个信息。根据交换信息量的多少和效率的高低,进程通信的方式分为低级方式和高级方式。PV操作属于低级通信方式,若用PV操作实现进程间通信,则存在如下问题:
               (1)编程难度大,通信对用户不透明,即要用户利用低级通信工具实现进程间的同步与互斥。而且,PV操作使用不当容易引起死锁。
               (2)效率低,生产者每次只能向缓冲区放一个消息,消费者只能从缓冲区取一个消息。
               为了提高信号通信的效率,传递大量数据,减轻程序编制的复杂度,系统引入了高级通信方式。高级通信方式主要分为共享存储模式、消息传递模式和管道通信。
               (1)共享存储模式。相互通信的进程共享某些数据结构(或存储区)实现进程之间的通信。
               (2)消息传递模式。进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信,如Send(A)、Receive(A)。
               (3)管道通信。管道是用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件(pipe文件)。向管道(共享文件)提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道接收大量的数据。由于它们通信时采用管道,所以称为管道通信。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2018年上半年
   数据库系统工程..
   上午试卷 综合知识
第19题
选择题
假设铁路自动售票系统有n个售票终端,该系统为每个售票终端创建一个进程Pi(i=1,2,…,n)管理车票销售过程。假设Tj(j=1,2,…,m)単元存放某日某趟车的车票剩余票数,Temp为Pi进程的临时工作单元,x为某用户的购票张数。Pi进程的工作流程如下图所示,用P操作和V操作实现进程间的同步与互斥。初始化时系统应将信号量S赋值为(18)。图中(a)、(b)和(c)处应分别填..

51%
   2018年上半年
   数据库系统工程..
   上午试卷 综合知识
第18题
选择题
假设铁路自动售票系统有n个售票终端,该系统为每个售票终端创建一个进程Pi(i=1,2,…,n)管理车票销售过程。假设Tj(j=1,2,…,m)単元存放某日某趟车的车票剩余票数,Temp为Pi进程的临..

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

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


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

客服

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

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


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