前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >操作系统:管程与进程通信机制解析

操作系统:管程与进程通信机制解析

作者头像
Srlua
发布2024-04-02 10:09:30
800
发布2024-04-02 10:09:30
举报
文章被收录于专栏:CSDN社区搬运CSDN社区搬运

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。🎥 希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮 记得先点赞👍后阅读哦~ 👏👏 📘📚 所属专栏:操作系统 欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙

管程

管程(Monitor)是功能更强的同步机制。

管程的定义是:一个管程定义一个数据结构和能为并发进程在其上执行的一组操作,这组操作能使进程互斥/同步,能改变管程中的数据。

一个管程由管程名称、局部于管程的共享数据的说明、对数据进行操作的一组过程和对该共享数据赋初值的语句四部分组成

管程结构示意图
管程具有以下三个特性

① 管程内部的局部数据变量只能被管程内定义的过程所访问,不能被管程外面声明的过程直接访问。

② 进程要想进入管程,必须调用管程内的某个过程。

③ 一次只能有一个进程在管程内执行,而其余调用该管程的进程都被挂起,等待该管程成为可用的。即管程能有效地实现互斥。

利用管程实现同步

定义两个条件变量xy

condition x , y;

操作wait(x):挂起等待条件x的调用进程,释放相应的管程,以便供其他进程使用。

操作signal(x):恢复执行先前因在条件x上执行wait而挂起的那个进程。

管程的职责与信号量的职责不同(不能累积)

管程结构示意图

进程通信

进程通信是指进程间的信息交换。

上述进程的互斥和同步机构因交换的信息量少,被归结为低级进程通信。

高级进程通信方式有很多种,大致可归并为共享内存、消息传递管道文件三类。

1.共享内存

共享内存是在内存中分配一片空间作为共享存储区。需要进行通信的各个进程把共享存储区附加到自己的地址空间中,然后,就像正常操作一样对共享区中的数据进行读或写。

2.消息传递

消息传递系统的功能是允许进程彼此进行通信,而不必借助于共享数据。

既可实现进程的同步,又可实现在协作进程间交换信息。

消息传递系统有多种形式,通常都提供两个原语,即send和receive。

sendreceive的一般格式是:

  • send (destination, message)
  • receive (source, message)

设计消息传递系统涉及同步、寻址、格式和排队等多项问题

3.管道文件方式

管道文件也称管道线,它是连接两个命令的一个打开文件

例如 who | wc -l

一个命令向该文件中写入数据,称做写者;

另一个命令从该文件中读出数据。

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 管程结构示意图
  • 管程具有以下三个特性:
  • 利用管程实现同步
  • 管程结构示意图
  • 1.共享内存
  • 2.消息传递
  • 3.管道文件方式
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档