Replicated

[OS] 스레드 세이프 본문

지식

[OS] 스레드 세이프

라구넹 2025. 3. 21. 16:30

여러 스레드가 동시에 같은 코드나 데이터를 사용할 때 문제가 발생하지 않도록 보장되는 상태

그니까 레이스 컨디션 없는 상태다

 

그럼 스레드 세이프 하려면? (== 레이스 컨디션 없애려면?)

 

1. 뮤텍스

2. 원자적인 연산

3. 애초에 락을 안써도 되도록 설계

 

Peterson’s Algorithm?

두 스레드(또는 프로세스)가 공유 자원에 동시에 접근하지 않도록 하는 것

스핀 락, flag[]와 turn

 

근데 상호 배제를 소프트웨어 기반으로만 해결하려고 한다?

https://lagooneng.tistory.com/117

 

Lock의 구현

락: 상호배제를 위한 API 이걸 어떻게 구현할 것이냐?.. 실제로는 하드웨어와 OS의 협업 1. 인터럽트로 2. 소프트웨어만 only approach 3. 소프트웨어가 하드웨어와 협업 락의 평가 방법 1. 정확성 : 상호

lagooneng.tistory.com

하드웨어랑 충돌하고, 성능도 별로다