进程通信【操作系统学习笔记】

编程入门 行业动态 更新时间:2024-10-23 20:22:02

进程通信【操作系统<a href=https://www.elefans.com/category/jswz/34/1770117.html style=学习笔记】"/>

进程通信【操作系统学习笔记】

10.进程通信

进程通信就是指进程之间的信息交换

各进程拥有的内存地址空间相互独立,故而需要通信

但为了安全,一个进程不能直接访问另一个进程的地址空间,但这种信息交换有是必须的,故操作系统提供了下面三种方式来通信

🍅共享存储

  • 设置一个共享空间
  • 互斥地访问共享空间(两个进程不能同时访问同一个共享空间)
  • 两种方式
    • 基于数据结构(低级)
      • 比如共享空间里只放了一个长度为10的数组,速度慢,限制多
    • 基于存储区的共享(高级)
      • 在内存中画出一块共享存储区。数据形式,存放位置都由进程控制,更自由速度更快

🍅管道通信

  • 这种做法的原理是设置一个特殊的共享文件(管道),所谓"管道"其实就是一个缓冲区
  • 一个管道只能实现半双工通信
    • 在某一时间段内只能实现单向的传输(管道并不是单向的,只是不能同时用),如果要实现双向同时通信,则需要设置两个管道。这就是半双工通信
    • (这个概念在计网中有待学习)
  • 各进程要互斥访问管道
  • 写满时,不能再写。读空时,不能再读
    • 管道写满时,写进程的write()系统调用将被阻塞,必须要等读进程将数据全部取走完后才能再写。当数据被全部取走后,管道变空,此时读进程的read()系统调用将被阻塞
  • 如果没写满,就不允许读,如果没读空,就不允许写

🍅消息传递

  • 传递结构化的消息(消息头/消息体)
  • 系统提供"发送/接受原语"
  • 两种方式
    • 直接通信方式
      • 消息直接挂到接收方的消息队列里
    • 间接(信箱)通信方式
      • 消息先发到中间体(信箱)

更多推荐

进程通信【操作系统学习笔记】

本文发布于:2024-02-12 22:22:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1689632.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   进程   操作系统   通信

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!