【南京大学操作系统(蒋岩炎)】(三)理解并发程序执行 | 并发控制 : 互斥

文章目录

  • 互斥算法
    • Peterson 算法
  • 并发控制 :互斥(自选锁、互斥锁、futex)
      • 互斥 (mutual exclusion),“互相排斥”
    • 问题的思考
    • 自旋锁的实现
      • x86 原子操作:LOCK 指令前缀
      • 用 xchg 实现互斥 (自旋锁)
      • 旧的x86原子操作
      • MESI(缓存一致性)
      • RISC
      • Compare-and-Swap 的 LR/SC 实现
    • 互斥锁的实现
      • 自旋锁的缺陷
      • Scalability
      • 使用场景
      • 互斥锁 (Mutex Lock)
    • Futex = Spin + Mutex
      • Spin VS Mutex
      • Futex: Fast Userspace muTexes
    • 总结

前言

我目前正在学jyy的操作系统,该文章为我的笔记。
学习链接 : 链接点击跳转

  • 这也证明了为什么 要贴上对方的名字 +

    • 如果把 内敛汇编的 去掉的话 , 则会出错

    自旋锁的实现

    x86 原子操作:LOCK 指令前缀

    • 例子:[sum-atomic.c](http://jyywiki.cn/pages/OS/2022/demos/sum-atom
    • Atomic exchange (load + store)

    用 xchg 实现互斥 (自旋锁)

    • 例子 : 每次去厕所门口都需要exchange 只有在在上厕所的人身上才有钥匙

    旧的x86原子操作

    • 当俩个cpu处理共享一个内存
    • 上锁 加上汇编指令前缀
    • 但是存在负担 代价大

    MESI(缓存一致性)

    • 但现在有 共享缓存锁 : 保证缓存的一致性
    • Compare-and-Swap 的 LR/SC 实现

      使用场景

    Futex: Fast Userspace muTexes

    • gdb 调试 (待完成 ,暂时功底不够)
    • 文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93765 人正在系统学习中

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

  • 上一篇 2022年10月15日
    下一篇 2022年10月15日

    相关推荐