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

2.2.2 进程通信

文章目录

  • 原语
  • 进程通信
  • 信号量机制

原语

在这里插入图片描述
原语(Primitive)是完成特定功能的程序段,属于原子操作,无法再被拆分。
原语存放在操作系统的内核中,包含进程控制原语、进程通信原语、资源管理原语等。
在这里插入图片描述
进程控制原语中包含进程创建、进程撤销、进程挂起、进程激活、进程阻塞、进程唤醒原语。

进程通信

在这里插入图片描述
并发执行的程序可能存在同步、互斥这2种制约关系。

  • 同步:进程在某些节点上协调相互合作进程间的工作,例如等进程A完成了某项工作,进程B才能继续进行。
  • 互斥:进程互斥地使用临界资源。临界资源(CR, Critical Resource)是一次只能供一个进程使用的资源。

临界区是一段程序,用于对临界资源实施操作,有4条原则。

  • 有空则进:无进程处于临界区时,运行进程进入。
  • 无空则等:有进程在临界区时,其他需要进入临界区的进程就等着。
  • 有限等待:保证进程等待有限时间后进入临界区。
  • 让权等待:进程等待进入临界区时,应立即释放处理机。

信号量机制

在这里插入图片描述
信号量机制是一种有效的进程同步、互斥的工具。整型信号量是其中一种,此处对其做介绍。

  • 信号量S:S≥0,表示资源可用数。S<0,其绝对值表示阻塞队列中等待该资源的进程数。S还可以用于表示消息,S=0,表示希望的消息未产生。S≠0,表示希望的消息已产生。
  • P操作:申请一个资源,申请后S的数值变成S-1。若S≥0,进程继续执行。若S<0,进程进入阻塞状态,插入阻塞队列。
  • V操作:释放一个资源,释放后S的数值变成S+1。若S>0,进程继续执行。若S≤0,则从阻塞队列中唤醒一个进程,插入就绪队列。

http://www.kler.cn/a/446151.html

相关文章:

  • uniapp图片数据流���� JFIF ��C 转化base64
  • 面试题整理4----lvs,nginx,haproxy区别和使用场景
  • 【Java基础面试题024】Java中包装类型和基本类型的区别是什么?
  • 虚拟机断网没有网络,需清理内存,删除后再重启
  • Pygubu-Designer 使用指南
  • python数据分析:介绍pandas库的数据类型Series和DataFrame
  • Vue.js前端框架教程5:Vue数据拷贝和数组函数
  • 如何利用Java爬虫获得1688商品详情
  • clickhouse-介绍、安装、数据类型、sql
  • RTMP、RTSP、RTP、HLS、MPEG-DASH协议的简介,以及应用场景
  • 本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——11上位机与小车交互
  • Unity Runtime控制编辑器的一些操作
  • 如何用Redis实现分布式锁?
  • 账号安全再升级!跨境卫士的网页元素控制功能详解
  • 【单片机】IIC需要注意什么(企业级回答)
  • 使用RTP 协议 对 H264 封包和解包
  • 浏览器可以直接请求 websocket
  • 基于springboot+vue实现的医院急诊(病房)管理系统 (源码+L文+ppt)4-122
  • 变量的作用域和生命周期
  • docker pull失败处理
  • 人脸生成3d模型 Era3D
  • 【漏洞复现】CVE-2023-37461 Arbitrary File Writing
  • Web3.0安全开发实践:探索比特币DeFi生态中的PSBT
  • 网络安全-企业环境渗透2-wordpress任意文件读FFmpeg任意文件读
  • GESP CCF C++八级编程等级考试认证真题 2024年12月
  • Unity DOTS中的share component