首页 > 系统相关 >操作系统(7)---进程通信、进程互斥

操作系统(7)---进程通信、进程互斥

时间:2023-10-08 23:14:24浏览次数:36  
标签:存储 通信 --- 互斥 临界 进程 共享

一、进程通信

进程通信是进程之间的信息交换。主要有三种方式:

  • 管道通信

  e.g ps -aux | grep exp (左边只能写,右边只能读,半双工管道,管道在内核

  管道的实质是一个用于连接读写进程的一个共享文件,固定大小的缓冲区。数据一旦被读出,则从管道中丢弃。没写满不读,没读空不写。

  • 消息传递(可以实现多进程通信
    • 直接通信方式

      消息直接挂到接收进程的消息缓冲队列上

      消息=消息头(发送进程ID、接受进程ID、消息类型、消息长度等)+消息体

    • 间接通信方式

      消息先发送至中间实体(信箱)

  • 共享存储(共享空间互斥访问,也叫做临界区,内容称为临界资源)
    • 基于数据结构的共享

      通信时指定数据结构,低级通信方式

    • 基于存储区的共享

      指定内存中的一块存储区域直接进行读写,高级通信方式

二、进程互斥

涉及共享存储的时候,进程互斥可以解决并发进程对临界区的使用问题。当某一进程在访问临界区的时候,其他进程不可读出或者修改该存储区域的内容。

                                                                 

一般通过锁机制来实现。通过设置标识来表明临界区是否可用。可以实现多个进程互斥访问

                                         

 

标签:存储,通信,---,互斥,临界,进程,共享
From: https://www.cnblogs.com/mylight/p/17750304.html

相关文章

  • Linux------微内核和宏内核以及混合型内核
    宏内核(MonolithicKernel)单一内核,宏内核将大多数操作系统功能集成在一个单一的内核中。性能:由于所有的功能都在内核空间运行,所以宏内核通常具有较高的性能,因为它可以直接访问内核数据结构和函数复杂性:宏内核的复杂性较高,容易导致内核变的庞大和难以维护。Linux......
  • 无涯教程-Meteor - 模板(Template)
    Meteor模板正在使用三个顶级标签。前两个是head和body。这些标签执行与常规HTML相同的功能,第三个标签是template。这是无涯教程将HTML连接到JavaScript的地方。简单模板以下示例显示了它是如何工作的。无涯教程正在创建一个name=“myParagraph”属性的模板,无涯教程可以......
  • css - 脱离文档流
    CSSposition定位&z-index层级1.定位position:(1).相对定位relative:元素相对定位:a.相对于元素在文档流中原本的位置定位的b.不脱离文档流c.如果不设置偏移量,元素不会发生任何变化不改变元素性质(块级/内联元素)(2).绝对定位absolute:绝对定位的元素:a.相对于最近开启......
  • docker - 多个docker通过非IP方式连接方式
    二、多个docker通过非IP方式连接方式:有一个web容器、一个mysql容器,web服务器需要访问mysql容器,从上面的方式,可以知道使用IP来访问.局限:①.每次部署或启动,相同容器的IP会发生变化②.需要先知道ip才能进行通信1.link(官方已经废弃,原理可参考):采用link来为mysql容器起个na......
  • es - 更新文档
    5.更新文档:(1).整个文档相同的key覆盖:curl-XPUT"localhost:9200/lib/user/1?pretty"-H'Content-Type:application/json'-d'{"name":"David","age":30,"interests":["music",&quo......
  • openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw
    openGauss学习笔记-93openGauss数据库管理-访问外部数据库-oracle_fdwopenGauss的fdw实现的功能是各个openGauss数据库及远程服务器(包括数据库、文件系统)之间的跨库操作。目前支持的远程服务器类型包括Oracle、MySQL(MariaDB)、openGauss(postgres_fdw)、file_fdw、dblink。oracle......
  • 数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖
    原文链接:http://tecdat.cn/?p=23518最近我们被客户要求撰写关于银行拉新活动的研究报告,包括一些图形和统计输出。项目背景:银行的主要盈利业务靠的是贷款,这些客户中的大多数是存款大小不等的责任客户(存款人)。银行拥有不断增长的客户该银行希望增加借款人(资产客户),开展更多的贷款......
  • fildder工具--过滤展示指定的host包
    fildder过滤指定的host选中Filters->第二个下拉框选中showonlethefollowinghosts->输入指定的host地址如:*.baidu.com(如果有多个地址时,每个地址后用;分割)->点击Actions->选择RunFiltersetnow->Ctrl+x清空fildder抓取到的包->重新请求地址(比如设置的百度,在浏览器中访......
  • m基带信号的软同步接收系统matlab性能仿真,对比统计同步,BTDT,CZT,ZOOM-FFT以及频谱细
    1.算法仿真效果matlab2022a仿真结果如下:统计同步BTDTCZTZOOM-FFT频谱细化法2.算法涉及理论知识概要基带信号的软同步接收系统是通信系统中非常重要的一部分。在多种通信系统中,如无线通信、光纤通信等,接收到的信号一般都是基带信号。为了有效地处理这些信号,需要对其进......
  • 2023-2024-1 20231407陈原《计算机基础与程序设计》第2周学习总结
    作业信息这个作业属于哪个课程<2023-2024-1-计算机基础与程序设计>这个作业要求在哪里<2023-2024-1计算机基础与程序设计第二周作业>这个作业的目标<熟练掌握《计算机科学概论》第一章,熟悉《C语言程序设计》第一章>作业正文https://www.cnblogs.com/CCCY12345/p/......