Xv6 Locking

本文详细介绍了Xv6操作系统中的锁机制,包括避免竞态条件、使用spinlocks和sleep-locks、死锁与锁的顺序、锁与中断处理的关系、指令和内存顺序以及睡眠锁的工作原理。通过理解这些概念,可以更好地掌握并发环境下的正确同步策略。
摘要由CSDN通过智能技术生成

Meaning Unknown's Head Image

Locking

Learning xv6-riscv-book Chapter 5 Locking

Concurrency: situations in which multiple instruction sreams are interleaved, due to multiprocessor parallelism, threasd switching, or interrupts.

Concurrency control: strategies aimed at correctness under concurrency.

Lock: provides mutual exclusion – ensurign that only one CPU at a time can hold the lock.

Race conditions

Race condition:

  • a memory location is accessed concurrently
  • at list one write

E.g. two CPUs execute list.push at the same time:

struct element {
   
    int data;
    struct element *next;
};

struct element *list = 0;

void
push(int data) 
{
   
    struct element *l;
    
    l = malloc(sizeof *l
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值