• Load-Linked Store-Conditionalの略

  • LLとSC、それぞれアトミック操作できる

    • 個別のメモリにマーキングできるハードウェア的仕掛けがある
    • その領域に対して他スレッドが操作をすると、マーキングが揮発する
  • RISCプロセッサ的な観点からみると、CASは引数が多すぎる→LL/SCなら実装が単純

  •   	marking(target, current_thread_id);
      	return *target
      }
      
      function store_conditional(*target, *desired) -> bool {
      	if (!is_marked(target, current_id)) {
      		return false;
      	}
      	*target = desired;
      	return true;
      }
  • 偽陰性がありうる