初时---虚拟内存和管道,区别

管道:

        1.不是文件(不属于任何文件系统),但为了便于理解管道通信,可被看作是一个 特殊的 文件。

        2.只存在于内存中。

        3.只适合 父子进程 通信。

        4.只适合 单向通信(半双工)。

        5.发送接收机制:通过 read、write流

        6.缺点:数据没有边界,需要应用程序自己解释。而一般消息 由 一个固定长 的 消息头,和一个变长的 消息体,子进程从管道read到消息头后,消息体可能被别的子进程接收到。

命名管道:

        1.是文件,有路径名,以一种特殊的 设备文件 形式 存在于文件系统中。

        2.可在无关进程间 交换数据。

消息队列:

        1.是个链表,每个消息体是固定大小的存储块,如果进程从 消息队列中 读取了消息体,内核会把这个消息体删除

        2.如果没有释放消息队列,或没有关闭操作系统,消息队列会一直存在

共享内存:

        1.最快的 通信方式

        2.本质: 内存开辟一块 物理内存,而非pcb的虚拟内存。

        3.多个进程 可以将 自己的虚拟地址 映射到这块内存上面,从而实现通信

        4.相较于其他方式,这种方式会降低 输入 输出数据的 拷贝次数,从而降低效率

        5映射方式如图: 两边是不同的进程 通过页表 映射

        6.共享内存 的 操作流程

                1.创建共享内存,在内存上开辟空间

                2.映射,进程将自己的共享内存 映射到 自己的 虚拟地址空间

                3.进行基本的IO操作

                4.操作完毕,结束映射关系

                5.释放内存空间

        7. 共享内存没有同步互斥,因此需要用户手动去添加,否则多进程访问时会出现安全问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值