当前位置: 首页 > news >正文

OS问题:什么是进程,进程的通信方式有哪些

我们编写的代码只是一个存储在硬盘的静态文件,通过编译后就会生成二进制可执行文件,当运行这个可自行文件后,它会被装载到内存中,接着CPU会执行程序中的每一条指令,这个运行中的程序,就是进程。进程是资源分配的基本单位。

管道:生命周期随进程的创建而建立,随进程的结束而销毁

命名管道:在文件系统中可见,需手动删除(unlink),任意进程均可通过文件名打开管道通信。

匿名管道:依赖内核缓冲区,无磁盘文件实体,随进程结束而销毁,用于具有亲缘关系的进程

消息队列:生命周期随内核,如果没有释放或关闭操作系统,就会一直存在

消息队列是保存在内核中的消息链表,在发送数据时,会分成一个个独立的数据单元(消息体),是用户自定义的数据类型,消息体有一个最大长度限制,全部消息体的总长度也是有上限。

每条消息具有属性:一个表示优先级的整数,消息数据部分的长度,消息数据本身。

共享内存:

共享内存机制就是拿出一块虚拟地址空间来,映射到相同的物理内存中。

信号量:

整型的计数器,用于实现进程间的互斥与同步。

同步就将信号量初始化为0

互斥就为1

信号量有两个操作

P操作减一个信号量,V操作加一个信号量

P操作:这个操作会把信号量减去1,相减后如果信号量<0,则表明资源已被占用,进程需阻塞等待;相减后如果信号量>=0,则表明还有资源可使用,进程可正常继续执行。

V操作:这个操作会把信号量加上1,相加后如果信号量<=0,则表明当前有阻塞中的进程,于是会将该进程唤醒运行;相加后如果信号量>0,则表明当前没有阻塞中的进程;

信号:

对于异常情况下的工作模式,就需要用信号的方式来通知进程

Socket:

跨网络与不同主机上的进程之间通信,就需要Socket通信

相关文章:

  • 【Linux 】centos8搭建nextcloud全过程
  • 软件工程专业本科毕业论文模板
  • 52+Nand 编译hello_world 工程烧录后,上电后无log
  • Web自动化测试:如何生成高质量的测试报告?
  • 【更新中】(文档+代码)基于推荐算法和Springboot+Vue的购物商城
  • React 性能监控与错误上报
  • Unity 中实现可翻页的 PageView
  • RP2040慎用CriticalSection
  • 思维力三阶 · 序章:从认知碎片到系统思维——点亮内心的“认知操作系统”蓝图
  • 江科大睡眠,停止,待机模式hal库实现
  • 长参考帧LTR
  • [Java 基础]面向对象-多态
  • C语言到底使用什么编码
  • git删除本地分支和远程分支
  • 【力扣】3403. 从盒子中找出字典序最大的字符串 I
  • 2025年6月4日收获
  • 佳易王钟表手表维修养护管理系统:高效便捷的维修管理解决方案
  • NX948NX951美光固态芯片NX956NX960
  • 《江西棒垒球》败方mvp叫什么·棒球1号位
  • Python数据可视化科技图表绘制系列教程(二)
  • 九江网站推广/企业网站推广的形式有
  • 网站用哪些系统做的好处/网站建设开发公司
  • 网站开发定制企业/合肥关键词排名优化
  • 动态网站开发环境搭建/seo查询 工具
  • 品牌营销策划网站/网站建设平台
  • 自己做网站和推广/河北搜索引擎优化