美文网首页
总线锁、缓存锁

总线锁、缓存锁

作者: lenny611 | 来源:发表于2019-08-14 23:21 被阅读0次

    操作系统必须要有一些机制和原语,以保证某些基本操作的原子性的两种机制:
    1.总线锁定
    2.缓存一致性

    总线锁定:
    现在的CPU一般都有自己的内部缓存,根据一些规则将内存中的数据读取到内部缓存中来,以加快频繁读取的速度。现在服务器通常是多 CPU,更普遍的是,每块CPU里有多个内核,而每个内核都维护了自己的缓存,那么这时候多线程并发就会存在缓存不一致性,这会导致严重问题。


    CPU和缓存图.png

    操作系统提供了总线锁定的机制。前端总线(也叫CPU总线)是所有CPU与芯片组连接的主干道,负责CPU与外界所有部件的通信,包括高速缓存、内存、北桥,其控制总线向各个部件发送控制信号、通过地址总线发送地址信号指定其要访问的部件、通过数据总线双向传输。在CPU1要操作共享变量的时候,其在总线上发出一个LOCK#信号,其他处理器就不能操作缓存了该共享变量内存地址的缓存,也就是阻塞了其他CPU,使该处理器可以独享此共享内存。
    总线锁定把CPU和内存的通信给锁住了,使得在锁定期间,其他处理器不能操作其他内存地址的数据,从而开销较大。

    缓存一致性:
    与volatile的原理一致,也是通过拷贝,侦测共享变量的值,当发现共享变量改变时,重新读取。

    相关文章

      网友评论

          本文标题:总线锁、缓存锁

          本文链接:https://www.haomeiwen.com/subject/ewmojctx.html