• 进程间通信概述


    一、顺序程序与并发程序特征

    顺序程序特征

    顺序性
    封闭性:(运行环境的封闭性)
    确定性
    可再现性

    并发程序特征

    共享性
    并发性
    随机性


    二、进程互斥

    1、由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥
    2、系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源。
    3、在进程中涉及到互斥资源的程序段叫临界区

    举例如下图:


    假设x = 1; 当A进程已经判断完毕x>0,此时时间片轮转到了B,B也判断x>0,然后执行x--,即x=0,然后过后又轮转到继续执行A,此时再执行x-- 就明显系统逻辑出现了错误。


    三、进程同步

    进程同步指的是多个进程需要相互配合共同完成一项任务。举例如下图:


    P1和P2进程是互相配合的,只有当P2关门后,P1才能启动车辆;P1正常运行了,P2开始售票;当P1到站停车后,P2才能开门;

    即需要互相等待对方完成某个操作,自身才能继续运行下去。


    四、进程间通信的目的

    1、数据传输:一个进程需要将它的数据发送给另一个进程
    2、资源共享:多个进程之间共享同样的资源。
    3、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。
    4、进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。


    五、进程间通信的分类

    文件
    文件锁
    管道(pipe)和命名管道(FIFO)
    信号(signal)
    消息队列
    共享内存
    信号量
    互斥量
    条件变量
    读写锁
    套接字(socket)

    需要注意的是,消息队列、共享内存和信号量在System V 和 POSIX 标准中都有定义,而互斥量、条件变量和读写锁只在POSIX标准才有定义。


    六、进程间共享信息的三种方式


    1、随进程持续:一直存在直到打开的最后一个进程结束。(如pipe和FIFO)
    2、随内核持续( kernel persistence):一直存在直到内核自举或显式删除(如System V消息队列、共享内存、信号量)
    3、随文件系统持续:一直存在直到显式删除,即使内核自举还存在。(POSIX消息队列、共享内存、信号量使用文件系统tmpfs 来实现)


    参考:

    《TCP/IP详解 卷一》

    《UNP》

  • 相关阅读:
    ImageLightbox.js – 响应式的图片 Lightbox 插件
    精美素材:10套最新出炉的免费扁平图标下载
    盘点2013年那些最优秀的网页设计作品【系列三】
    12个带给你惊喜用户体验的手机界面设计
    一款效果精致的 jQuery 多层滑出菜单插件
    创意无限:20幅惊人的霓虹灯摄影照片欣赏
    『设计前沿』14款精致的国外 iOS7 图标设计示例
    2013年值得我们学习的网页设计作品【系列二】
    Summernote – 基于 Bootstrap 的文本编辑器
    『摄影欣赏』2013年微软必应搜索十大首页美图
  • 原文地址:https://www.cnblogs.com/alantu2018/p/8473039.html
Copyright © 2020-2023  润新知