티스토리 뷰

1. n writer, n reader 
semaphore 사용. 매우 느림. 심지어 wait 상태도 busy.....하므로

2. n writer, 1 reader
writer들과 reader의 자원을 분리한다.
writer의 업데이트를 reader에 알려주는 방식으로 reader 스레드가 업데이트를 받아 직접 자료를 수정하고 읽는다. 

3. 1 writer, n reader 
RCU 사용. (read copy update)
writer가 자원을 미러링한 후 수정 -> reader에게 새로운 자원 포인터 넘김 

*
3의 경우가 가장 많은 경우
커널엔 RCU가 구현되어있지만 (http://jake.dothome.co.kr/rcu/) 
유저레벨 개발에선 직접 RCU를 구현해야 함. 

'Programming tips > architecture' 카테고리의 다른 글

CAS, RCU  (0) 2018.03.31
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함