【系统架构设计师】第一章:操作系统(1.2.3)续:管程

【系统架构设计师】第一章:操作系统(1.2.3)续:管程上节链接【系统架构设计师】第一章:操作系统(1.2.3)死锁问题这一节其实想水一章来着。。。因为书上的东西实在是太少,管程就提到了一点,我也不好写太多。不过细想一下,还是决定写点吧。1.2.3管程书上给的东西太少,而且写的很难懂,所以这里我就先不引用书上的东西了,直接写一些自己的理解了。本文参考链接:https://blog.csdn.net/zy702432103/article/details/84259683https://blog.csdn.net/qq_32534441/a.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

上节链接
【系统架构设计师】第一章:操作系统(1.2.3)死锁问题
这一节其实想水一章来着。。。
因为书上的东西实在是太少,管程就提到了一点,我也不好写太多。
不过细想一下,还是决定写点吧。

1.2.3 管程

书上给的东西太少,而且写的很难懂,所以这里我就先不引用书上的东西了,直接写一些自己的理解了。
本文参考链接:
https://blog.csdn.net/zy702432103/article/details/84259683
https://blog.csdn.net/qq_32534441/article/details/95231632
https://www.zhihu.com/question/30641734
http://c.biancheng.net/view/1234.html

概念引入

管程也是用于进程之中的,和信号量以及pv操作起到类似的作用。然而,我们之前提到过,pv操作需要成对出现,因为进程使用完资源以后需要告诉系统。
这种操作其实是不安全的,因为一旦我们的pv操作没有成对出现,系统就会出现问题。因此,为了解决这些问题,就产生了管程的概念。
在这里插入图片描述
我们可以很形象的将使用管程的进程这样想:

  • 当一个进程使用管程的时候,那么,它会将一些用到的变量和操作进行封装,像管道一样。这样,我们就可以保证,整个操作是完整的,不会像pv操作中忘记p或v就会使系统产生问题。
  • 由于使用管程的进程是被封装的,所以其他进程不能进行使用,必须等待管程使用完毕才能进行使用。

细节的一些东西

我们使用管程是为了更安全,而不是彻底的封闭,因此,在一些编程语言中提供了几个方法来控制管程中进程的状态。这个我就直接截图了,书上是没有详细讲这个的。
在这里插入图片描述
这几个方法实现了我们之前使用pv操作中挂起,同步等。由于管程的特殊性,所以引入了enter,leave等操作。
剩下的就没什么好介绍的了,本来书上说的也不深,就当我水了一贴。

操作系统五大功能之一的处理器管理的内容已经写完了。后面会继续写其他4个。
下章链接
【系统架构设计师】第一章:操作系统(1.2.4)文件管理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206767.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月4日 下午10:01
下一篇 2025年8月4日 下午10:43


相关推荐

  • ideavim怎么用_idea基本使用教程

    ideavim怎么用_idea基本使用教程ideavim使用分享ideavim使用ideavim介绍ideavim是JetBrains官方开发的模拟vim插件,熟练ideavim的人可以更快的进行操作,大部分操作都可以用键盘来代替。纯vim也能进行更高效的开发,但是一款适合自己深定义的配置,能够让人更加高效。配合ide的智能补全,就一个字爽ideavim的安装idea中自带的插件管理搜索ideavim然后选择安装macos打开idea配置cmd+,windows打开idea配置ctrl+shfit+s

    2022年10月1日
    5
  • MPP数据库简介

    MPP数据库简介MPP 架构是将任务并行的分散到多个服务器和节点上 在每个节点上计算完成后 将各自部分的结果汇总在一起得到最终的结果 采用 MPP 架构的数据库称为 MPP 数据库

    2026年3月18日
    2
  • python生兔子问题(递归算法)_用python函数写斐波那契数列

    python生兔子问题(递归算法)_用python函数写斐波那契数列兔子产子1.问题描述有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少?2.问题分析兔子产子

    2022年7月31日
    8
  • mqtt安卓客户端_网络抓包工具哪个好

    mqtt安卓客户端_网络抓包工具哪个好MQTT客户端工具介绍概览在学习和使用MQTT的过程中,一个得心应手的客户端工具可以极大的方便使用者进行MQTT特性的探索和功能组件的调试。来自世界各地的开发者们围绕不同操作系统、运行平台,开发出了许多针对MQTT协议的客户端测试工具。这些客户端工具种类繁多,功能侧重点不尽相同,质量层次不齐,因此,对于初学者乃至MQTT专家来说,如何选择一个适用的MQTT客户端工具是一个难题。本篇文章将尽可能的搜集整理,对市面上各类MQTT客户端工具做一个全面的测评以供读者参考。MQTT

    2025年7月7日
    6
  • WiFi曝Krack重大漏洞,6大措施应对威胁!

    WiFi曝Krack重大漏洞,6大措施应对威胁!为什么80%的码农都做不了架构师?>>>…

    2022年5月1日
    48
  • css 背景渐变详解

    css 背景渐变详解一 什么是渐变多种颜色变化的一个过程分类 1 线性渐变 2 径向渐变 3 重复渐变 线性 径向 特点 1 渐变都有填充方向 线性渐变 2 色标 颜色 位置 二 语法属性 backg

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号