基于总线加锁和缓存锁(CPU实现原子操作的两种方式)

总线锁

总线锁就是使用处理器提供的一个 LOCK#信号,当一个处理器在总线上输出此信号时,其他处理器的请求将被阻塞住,那么该处理器可以独占共享内存。

CPU和内存之间的通信被锁!!

如果多个 理器同 时对 共享 改写操作,那么共享变 量就会被多个 理器同 时进 行操作, 这样读 改写操作就不是原子的,操作完之后共享变 量的 会和期望的不一致。

个栗子:如果  i =1 ,我 们进 行两次 i++  操作, 期望的 果是 3 ,但是有可能 果是 2。

       原因可能是多个理器同从各自的存中量 i,分别进行加1操作,然后分写入系统内存中。

       那么,想要保证读改写共享量的操作是原子的,就必CPU1改写共享变量的候,CPU2不能操作存了共享量内存地址的存。这时,就可以使用总线锁解决问题。

缓存锁

缓存锁指内存区域如果被缓存在处理器的缓存行中,并且在Lock操作期间被锁定,那么当它执行锁操作回写到内存时,处理器不在总线上声言LOCK#信号,而是修改内部的内存地址,并允许它的缓存一致性机制来保证操作的原子性,因为缓存一致性机制会阻止同时修改由两个以上处理器缓存的内存区域数据,当其他处理器回写已被锁定的缓存行的数据时,会使缓存行无效。

(有的CPU不支持)性能比较好

缓存一致性机制

当某块CPU对缓存中的数据进行操作后,就通知其他CPU放弃储存在它们内部的缓存,或者从主内存中重新读取。

有两种情况下处理器不会使用缓存锁定

  • 当操作的数据不能被存在理器内部,或操作的数据跨多个存行(cache line则处理器会总线锁定。
  • 有些理器不支持定。Intel 486Pentium理器,就算定的内存区域在处理器的存行中也会总线锁定。

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

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

相关文章

windows下的txt文档,传到ubuntu后,每行后面出现^M,怎么处理?

问题背景:windows下pycharm生成的txt文档,传到ubuntu后,每行后面出现^M 用vim打开显示 使用cat -A filename显示如下 参考https://www.lmlphp.com/user/16697/article/item/579325/给出的几种方法 方法一、dos2unix filename。服务器没装…

配置IPv6 over IPv4手动隧道示例

组网需求 如图1所示,两台IPv6主机分别通过SwitchA和SwitchC与IPv4骨干网络连接,客户希望两台IPv6主机能通过IPv4骨干网互通。 图1 配置IPv6 over IPv4手动隧道组网图 配置思路 配置IPv6 over IPv4手动隧道的思路如下: 配置IPv4网络。配置接…

iptables防火墙、filter表控制、扩展匹配、使用iptables配置网络型防火墙、NAT原理、配置SNAT

day05 day05iptables防火墙filter表filter中的三条链环境准备iptables操作验证FORWARD链准备环境配置FORWARD链NAT配置SNAT iptables iptables有多种功能,每一种功能都用一张表来实现最常用的功能是防火墙和NAT从RHEL7开始,默认的防火墙为firewalld&a…

fiddler 手机抓包(含https) 完整流程

第一部分:下载并安装fiddler 一.使用任一浏览器搜索【fiddler下载安装】,并下载fiddler 安装包。 二.fiddler安装包下载成功后,将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下,双击文件夹中的【fidd…

一起学算法(链表篇)

1.链表的概念 对于顺序存储的结构最大的缺点就是插入和排序的时候需要移动大量的元素&#xff0c;所以链表的出生由此而来 先上代码&#xff1a; // 链表 public class LinkedList<T extends Comparable> {// 结点类class Node {T ele; // 当前结点上的元素内容Node ne…

台式机/工控机通过网线共享笔记本电脑无线网络linux系统下 usb网卡的驱动安装

一、台式机/工控机通过网线共享笔记本电脑无线网络 1、 将台式机通过网线和笔记本连接。 2、 将笔记本的“本地连接”和“无线网络连接”的ipv4均设置为自动获取。 4.修改台式机的IP地址为如下&#xff08;对应笔记本信息&#xff09; IP地址为192.168.XXX.12 子网掩码为255.2…

flask

flask 介绍 # python 界的web框架 -Django&#xff1a;大而全&#xff0c;快速开发&#xff0c;公司内部项目 -Flask&#xff1a;小而精&#xff0c;不具备web开发好多功能&#xff0c;丰富的第三方插件 -FastApi&#xff1a;异步框架&#xff0c;主要为了做前后端…

接口/Web自动化测试如何做?框架如何搭建封装?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 自动化测试怎么做…

Windows7+内网, 安装高版本nodejs,使用vite+vue3+typescript开发项目

前言&#xff1a;vite只支持高版本的nodejs&#xff0c;而高版本的nodejs只支持windows8及以上&#xff0c;且vite还对浏览器版本有兼容问题。以下均为vite官网截图 1、安装好低版本的nodejs win7系统建议安装13.及以下&#xff0c;我的是12.12.0这个版本。nodejs低版本官网下载…

JavaScript(四)DOM及CSS操作

1、DOM简介 DocumentType: Html的声明标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docume…

网络:SecureCRT介绍

1. 使用Tab键补全时出现^I&#xff0c;如下操作

【万字长文】SpringBoot整合MyBatis搭建MySQL多数据源完整教程(提供Gitee源码)

前言&#xff1a;在我往期的博客介绍了2种关于如何使用SpringBoot搭建多数据源操作&#xff0c;本期博客我参考的是目前主流的框架&#xff0c;把最后一种整合多数据源的方式以博客的形式讲解完&#xff0c;整合的过程比较传统和复杂&#xff0c;不过我依旧会把每个实体类的思路…

利用鸿鹄可观测性监控Istio Ingress网关

一、需求描述 在上一篇《利用Vector和鸿鹄搭建微服务应用的可观测性平台》中&#xff0c;阐述了微服务的基本概念、优点及如何利用鸿鹄来处理分布式应用的日志。本文将进一步讨论微服务架构面临的问题、服务网格及鸿鹄处理Istio Gateway的独特优势。 1.1 微服务架构面临的挑战 …

基于SpringBoot+Vue的地方废物回收机构管理系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

企业生产管理的核心工作是什么?

作为管理者&#xff0c;一谈到生产管理&#xff0c;你可能会想到很多生产过程中的问题&#xff1a; 产量无法实时统计&#xff1b; 计划不能跟踪进度&#xff1b; 质量追溯无法实现...... 等等一系列核心问题。 结合这些核心痛点&#xff0c;分享一套符合现在生产的智能化解决…

初阶结构体(超详解)

初阶结构体 1. 结构体的声明1.1 结构的基础知识1.2 结构的声明1.3 结构成员的类型1.4 结构体变量的初始化和定义 2. 结构体的访问3. 结构体传参 1. 结构体的声明 1.1 结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量 结…

cmake 配置Visual studio的调试命令

配置代码如截图&#xff1a; set_property(TARGET ${TARGET_NAME} PROPERTY VS_DEBUGGER_COMMAND "./consoleTest.exe") set_property(TARGET ${TARGET_NAME} PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "./config/labelDriver.cfg") set_propert…

服务机器人有哪些品类

服务机器人是指具备自主运动、感知环境、实现人机交互等能力的机器人&#xff0c;它可以被应用于不同的场景&#xff0c;如餐饮、医疗、物流等行业。根据其功能和应用场景的不同&#xff0c;服务机器人可以分为以下几类&#xff1a;1. 餐饮服务机器人 随着社会发展和人们需…

Jmeter阶梯式加压测试

熟悉阿里云性能测试PTS的都可以看到压测配置设置如下图&#xff0c;相比Jmeter简单的线程设置&#xff0c;要合理更直观。 但是我们会去研究&#xff0c;性能测试中&#xff0c;有时需要模拟一种实际生产中经常出现的情况&#xff0c; 即&#xff1a;从某个值开始不断增加压力…

IC秋招| 秋招怎么做准备,这份攻略请收下!

近期大家关注的就是秋招了&#xff0c;如今一些企业已经开启了提前批招聘&#xff0c;不少同学已经投递了简历&#xff0c;但内心还是非常焦虑&#xff0c;那么今年的秋招到底该如何准备呢&#xff1f; 简历投递思路建议 刚开始对大厂没有把握的话&#xff0c;可以先约初创或…