进程互斥的硬件实现方式(比较难懂的一节课,但是我搞懂了)

news/2025/9/29 9:33:04/文章来源:https://www.cnblogs.com/jimGraymane/p/19118147

中断屏蔽方法

利用开关中断指令实现

关中断后,不允许当前进程被中断,也就不会发生进程切换

优点:简单高效

缺点:不适用于多处理机,只适用于操作系统内核进程,不适合于用户进程(因为开关中断指令只运行于内核态)

TestAndSet指令

简称TS指令,有的地方也称为TestAndSetLock指令,TSL指令

TSL是用硬件实现的,执行过程不允许被中断,只能一气呵成

bool TestAndSet(bool *lock){bool old;old=*lock;//存放原本的lock值*lock=true;//无论之前是什么,都设置为truereturn old;
}
while(TestAndSet(&lock));
临界区代码
lock=false;
剩余区代码

while持续调用函数,检查是否上锁。

当原本的lock是false的时候

返回的old是false,然后原子层面操作的lock是true

那么就把无人在使用的临界区上锁了,并且自己在用,用完之后解锁

当原本的lock是true的时候

返回的old是true,原子层面操作的lock也是true没有变

此时会一直执行while(TestAndSet(&lock));在这里卡着循环

优点:实现简单,无需像软件实现方式那样严格检查是否会有逻辑漏洞,适用于多处理机环境

缺点:不满足“让权等待”原则,暂时无法进入临界区的进程会占用cpu并循环执行TSL指令,从而导致忙等

swap指令

也叫Exchange指令或者XCHG指令

swap指令是用硬件实现的,执行过程不允许被中断,只能一气呵成

Swap(bool *a,bool*b){bool temp;temp=*a;*a=*b;*b=temp
}

感觉和TSL一模一样

bool old=true;
while(old==true){Swap(&lock,&old);
}
临界区代码
lock=false;
剩余区代码

优点:实现简单,无需像软件实现方式那样严格检查是否会有逻辑漏洞,适用于多处理机环境

缺点:不满足“让权等待”原则,暂时无法进入临界区的进程会占用cpu并循环执行swap指令,从而导致忙等

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

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

相关文章

详细介绍:Spring MVC 请求执行流程详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

GreenPlum - commit

GreenPlum - commit在Python代码中执行完insert, delete, update后要执行conn.commit()才能生效,truncate语句之后也要执行conn.commit(),否则truncate不生效。

【征文计划】基于Rokid眼镜平台的AR历史情景课堂创意应用 - 指南

【征文计划】基于Rokid眼镜平台的AR历史情景课堂创意应用 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

忍了一年,我的SAAS CRM终于到期了!

导读:当标准化模板遇上个性化需求,这场“将就”的婚姻终于走到尽头。本文揭秘为何90%的企业最终会放弃通用型SaaS CRM,转向私有部署+深度定制的解决方案。🌈 初见倾心:被颜值欺骗的开始 去年这时,我像捡到宝一样…

最好旅游网站建设深圳南山做网站公司

https://blog.csdn.net/wochunyang/article/details/84776813

Aduro电涌保护器特惠:6口插座与2USB端口52%折扣

本文介绍Aduro电涌保护器特惠活动,详细解析其6个AC插座和2个USB端口的技术规格,包括15安培/120伏特承载能力、2.4安培USB总输出及保护状态指示灯功能,同时讨论USB充电功率限制和使用注意事项。特惠信息 今日特惠为A…

centos 网卡IPv6配置

编辑网卡vi /etc/sysconfig/network-scripts/ifcfg-ens192IPV6INIT=yesIPV6ADDR=2001:db8::2/64IPV6_DEFAULTGW=2001:db8::1IPV6_DEFROUTE=yes # 关键!确保启用默认路由编辑后wq保存退出,重启网

华清远见携STM32全矩阵产品及创新机器狗亮相2025 STM32研讨会,共启嵌入式工艺探索新程

华清远见携STM32全矩阵产品及创新机器狗亮相2025 STM32研讨会,共启嵌入式工艺探索新程2025-09-29 09:26 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; …

免费发布网站html

腾讯云edgeone免费发布网站链接 https://console.cloud.tencent.com/edgeone/pages 在页面点击创建项目有三个选项1.导入 Git 仓库2.从模板开始3.直接上传(如果看不懂选第三个)把你的html文件传上去就好了如不懂可以扫…

IPD和PLM谁先谁后

IPD和PLM谁先谁后在IPD项目前期交流阶段、实施过程中、或者实施后,客户常常提出这些问题:如何提高IPD体系的运行效率? 信息系统如何支撑IPD? IPD如何与PLM结合? 这两个体系的建设应当如何进行? 两个系统的建设是…

卖房网站排名网站建设可行性实施报告

目录 前言 1、字符指针 2、指针数组 3、数组指针 3.1数组指针 3.2&数组名VS数组名 3.3数组指针的使用 4、数组参数、指针参数 4.1一维数组传参 4.2二维数组传参 4.3一级指针传参 4.4二级指针传参 4.5总结 5、函数指针 5.1思考 总结 前言 我们在之前知道指针…

母线操作术语

1、操作术语:(1)倒母线:是指双母线接线方式的变电站(开关站)将一组母线上的部分或全部开关倒换到另一组母线上运行或热备用的操作。(2)倒负荷:是指将线路或变压器负荷转移至其他线路或变压器供电的操作。 2、母…

PySimpleGUI中常见功能元素和函数缩写形式示例

以下是PySimpleGUI中常见功能元素和函数缩写形式的具体代码示例,涵盖基础控件、弹窗、窗口操作等场景,附带详细注释说明:1. 基础元素缩写示例 文本与输入框 import PySimpleGUI as sglayout = [[sg.T("用户名:…

简约网站后台WordPress主题VR插件

1. 京东云擎(http://jae.jd.com)提供了免费的个人博客WordPress一键安装功能了,如下图,给开发者分享福利! 免费的应用,提供了源码,提供了数据库: 我之前把文章发到首页,遭到了封杀!本…

【Linux指令 (一)】Linux 命令行入门:从零开始理解Linux平台理论核心概念与基础指令

【Linux指令 (一)】Linux 命令行入门:从零开始理解Linux平台理论核心概念与基础指令pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

PySimpleGUI有哪些功能元素和函数缩写形式

在PySimpleGUI中,确实存在许多元素和函数的缩写形式,这些缩写通常用于简化代码并提高开发效率。不过,PySimpleGUI并没有一个官方的、完整的缩写列表,因为缩写形式可能会随着库的更新而变化,且部分缩写是开发者根据…

建材龙头东鹏控股:以CRM打造数字化增长新引擎

近日,“走进数字化游学示范基地家居建材领军企业——东鹏控股”活动成功举办。活动通过实地参访、前沿业务战略解码、数字化实践经验分享的多元形式,展现了东鹏控股以数字化重构渠道管理、赋能业务增长的破局之路。“…

科技设计公司网站模板特殊符号网名生成器

本篇为西安交通大学本科课程《电气材料基础》的笔记。 本篇为这一单元的第四篇笔记,上一篇传送门。 复合电介质材料 是由多种成分共同组成,例如油纸复合绝缘、云母层压板、环氧浸渍玻璃纤维布等。即便是没有添加的材料,材料也会存在杂质和…

平顶山哪里有做网站的公司嵌入式软件开发文档

一、下载Nginx 首先,确保你的服务器上已经安装了Nginx,使用编译安装,下载最新版Nginx。 wget https://nginx.org/download/nginx-1.25.3.tar.gz tar -xf nginx-1.25.3.tar.gz二、安装Fancyindex和Nginx-Fancyindex-Theme模块 # 下载Fancyin…

完整教程:国检集团官网UI设计展示——专业界面设计实力呈现

完整教程:国检集团官网UI设计展示——专业界面设计实力呈现pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…