【操作系统】进程管理——管程(个人笔记)

news2025/1/5 9:11:20

学习日期:2024.7.12

内容摘要:管程的定义和基本特征


管程

管程存在的意义:在上一章节中,我们学习了利用信号量机制解决进程同步互斥问题的方法,信号量机制编写程序较为复杂困难,易出错。为了让程序员写程序时不再需要关注PV操作,让写代码更加轻松,引入了管程成分,一种高级同步机制。

管程的定义和组成:

管程是一种特殊的软件模块,由以下部分组成:

1.局部于管程的共享数据结构说明;

2.对该数据结构进行操作的一组过程;

3.对局部于管程的共享数据设置初始值的语句;

4.管程有一个名字。

管程的基本特征:

1.局部于管程的数据只能被局部于管程的过程(其实就是“函数”)所访问;

2.一个进程只有允许通过调用管城内的过程才能进入管程访问共享数据;

3.每次仅允许一个进程在管程内执行某个内部过程。

以上是逻辑代码,管程好比一个类,生产者和消费者都是其中的函数,而互斥使用共享部分数据的功能则由编译器负责。这样,程序员就不需要再考虑PV操作的顺序等等,而是靠编译器和管程解决这些问题。

引入管程的目的就是要更方便的实现进程的同步与互斥

1.需要在管程中定义共享数据(如生产者消费者问题的缓冲区)

2.需要在管程中定义用于访问这些共享数据的“入口”——其实就是一些函数

3.只有通过这些特定的“入口”才能访问数据

4.管程中可以有很多入口,但每次只能开放其中一个,并且只能让一个进程或线程进入,这种互斥特性是由编译器负责实现的,程序员不用关心

5.可在管程中设置条件变量及等待/唤醒操作以解决同步问题。可以让一个进程或线程在条件变量上等待(此时,该进程应该先释放管程的使用权,也就是让出“入口”);可以通过唤醒操作将等待在条件变量上的进程或线程唤醒。

程序员可以用某种特殊的语法定义一个管程,之后其它程序员就可以使用这个管程提供的特定”入口“很方便的实现进程同步/互斥了。这其实就是“封装”的思想


感谢您看到这里,如果满意的话麻烦您点个赞支持一下,个人主页还有更多内容分享。

内容总结自王道计算机考研《操作系统》 和 人民邮电出版社《操作系统导论》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1922026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL查询语句(DQL)

文章目录 查询语句(DQL)简单查询查一个字段查多个字段查所有字段查询字段可以进行数学运算查询时字段可起别名 条件查询and (&&)or (||)between...and...is null 和 is not nullin 和 not inlike (模糊查询) 查询语句(DQL) 简单查询 \c可以清空…

JavaScript中的拷贝技术探秘:浅拷贝与深拷贝的奥秘

最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 前言 JavaScript中的浅拷贝和深拷贝是非常重要的概念,它们在处理对象和数组时具有不同的作用。在编程中,经常需要复制数据以便进行各种操作,但必须注…

【python】Python报错分析:深入探索`IndexError`及其解决办法

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

GlobalSign证书介绍以及申请流程

在当今高度互联的世界中,网络安全与数据保护的重要性日益凸显,而数字证书作为保障网络通信安全的关键技术,已成为构建数字信任的基石。GlobalSign,作为全球数字证书行业的先驱和领导者,自成立以来便致力于为全球企业和…

unity 手动制作天空盒及使用

提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、使用前后左右上下六张图1.准备6张机密结合的图片2.创建Material材质球3.使用天空盒 二、使用HDR贴图制作1.准备HDR贴图2.导入unity 修改Texture Sourpe 属性3.创建材质球4.使用…

Jenkins 离线升级

1. 环境说明 环境 A: jenkins 版本:2.253使用 systemctl 管理的 jenkins 服务 环境 B: 可以上网的机器,装有 docker-compose docker 和 docker-compose 安装,这里都略了。 2. 安装旧版本 2.1 环境 A jenkins 目录打包文件 …

ARM 虚拟机FVP环境搭建

ARM Fixed Virtual Platforms (FVPs) 是由 ARM 提供的一系列虚拟化硬件模拟器,用于在物理硬件可用之前开发和测试软件。FVP 模型非常适用于软件开发、验证和性能分析,涵盖了从裸机到操作系统和复杂 SoC 系统的各种应用。 这里以Cortex-M55为例&#xff0…

80. UE5 RPG 实现UI显示技能冷却进度功能

在上一篇文章里,我们实现了通过GE给技能增加资源消耗和技能冷却功能。UI也能够显示角色能够使用的技能的UI,现在还有一个问题,我们希望在技能释放进去冷却时,技能变成灰色,并在技能冷却完成,技能可以再次使…

【算法】代码随想录之数组

文章目录 前言 一、二分查找法(LeetCode--704) 二、移除元素(LeetCode--27) 三、有序数组的平方(LeetCode--977) 四、长度最小的子数组(LeetCode--209) 五、螺旋矩阵II&#x…

LLM:tokenizer分词器概念

在做nlp时,首先要对文本进行分词,也就是给定一个句子,将其归到词表中的一系列token上,token有对应的数字(token_id)。 上图是bert的分词器的json内容,可以看到词表是一个字典,key为t…

电脑显示MSVCR110.dll丢失怎么办,总结5种靠谱的解决方法

在使用电脑过程中,部分用户可能会遇到MSVCR110.dll文件丢失的问题,具体表现为弹出提示窗口,指出缺失该文件,导致部分程序无法正常启动。小编将为您介绍多种解决该问题的指南。 一、找不到MSVCR110.dll是什么情况 MSVCR110.dll是M…

2.线性回归

简化的房价模型 假设1:影响房价的关键因素时卧室个数,卫生间和居住面积,记为 x 1 , x 2 , x 3 x_1,x_2,x_3 x1​,x2​,x3​ 假设2:成交价时关键因素的加权和: y w 1 x 1 w 2 x 2 w 3 x 3 b y w_1x_1w_2x_2w_3x…

在 IVS 2024 加密盛会上开拓创新:CESS 引领去中心化云存储和 CD²N 之发展

作为基于区块链的去中心化云存储网络和 CDN 基础设施网络,CESS 在日本年度加密创业大会 IVS 2024 上成为焦点!此次活动在历史悠久的京都举办,围绕“跨越边界”这一主题,吸引了超过15,000 名参会者,其中包括 3,000 创始…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥证明介绍及算法规格】

密钥证明介绍及算法规格 HUKS为密钥提供合法性证明能力,主要应用于非对称密钥的公钥的证明。 基于PKI证书链技术,HUKS可以为存储在HUKS中的非对称密钥对的公钥签发证书,证明其公钥的合法性。业务可以通过系统提供的根CA证书,逐级…

Python数据分析-Excel和 Text 文件的读写操作

1.Excel和 Text 文件的读写操作 1. Text 文件读写包 import sys print(sys.argv[0]) print(__file__) print(sys.path[0]) qopen(sys.path[0] "\out.txt","w",encodingutf-8) q.write(这个是测试一下) q.close() print(done)open 语句可以打开的创建text…

DR模式介绍

DR模式 lvs的三种模式 nat:地址转换 DR模式:直接路由模式 tun:隧道模式 DR模式的特点 调度器在整个lvs集群当中是最重要的,在nat模式下,即负责接受请求,同时根据负载均衡的算法转发流量,响…

OceanBase 社区版,搭建,安装,部署

这是阿里的数据库,因为我目前在杭州,所以企业用这个的比较多。 我看的版本是V4.3.1 官网概述解读 我看的是社区版 他是分布式关系型数据库,支持事务。兼容mysql语法,支持水平扩展,LSM数据压缩。 社区版&#xff0…

ROS的TF系统

一、SLAM 1、SLAM全称是Simultaneous Localization And Mapping,即同时定位与地图构建 2、SLAM软件包Hector_Mapping,←建图可参考链接所示文章 二、机器人定位 1、假设机器人开始建图的位置是地图坐标系的原点 2、则机器人在建图过程中的位置可以描…

qml:Material风格下改变控件的颜色

用过Material的都知道,所有控件的默认颜色是玫红色,如果要改变颜色,只需要加一句代码即可:Material.accent: "blue" 你可以将这句写在顶层,那就是所有颜色都改了,如果你单独写在某个控件下&…

【linux】Shell 脚本中的 For 循环详细用法教程

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…