reader - writer lock의 일종
read-write 락은 read_lock() 도중에도 read_lock()이 들어갈 수 있지만,
write_lock()이 발생되면 reader 또는 writer 모두 read_lock(), write_lock()에서 다쓸때까지 대기해야한다. 즉, 쓰는 동작이 발생하면 무조건 다른 스레드는 다쓸때까지 대기해야한다.
rcu는 쓰기 동작이 발생하면 쓴 내용을 갱신 리스트에 담아 두어, 쓰는 도중에도 reader가 들어와서 읽을 수 있다. reader나 writer가 rcu 임계구간을 나갈때 자신이 마지막이라면 갱신 리스트의 내용을 그 때 실제 쓴다. (지연된 쓰기가 됨)
Kernel Korner - Using RCU in the Linux 2.5 Kernel
http://www.linuxjournal.com/article/6993
Read-copy-update
From Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Read-copy-update
What is RCU?
http://www.rdrop.com/users/paulmck/RCU/whatisRCU.html
Read Copy Update HOWTO
http://lse.sourceforge.net/locking/rcu/HOWTO/intro.html
참고
Memory barrier
From Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Memory_barrier
Lock-free and wait-free algorithms
From Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Lock-free_and_wait-free_algorithms
read-write 락은 read_lock() 도중에도 read_lock()이 들어갈 수 있지만,
write_lock()이 발생되면 reader 또는 writer 모두 read_lock(), write_lock()에서 다쓸때까지 대기해야한다. 즉, 쓰는 동작이 발생하면 무조건 다른 스레드는 다쓸때까지 대기해야한다.
rcu는 쓰기 동작이 발생하면 쓴 내용을 갱신 리스트에 담아 두어, 쓰는 도중에도 reader가 들어와서 읽을 수 있다. reader나 writer가 rcu 임계구간을 나갈때 자신이 마지막이라면 갱신 리스트의 내용을 그 때 실제 쓴다. (지연된 쓰기가 됨)
Kernel Korner - Using RCU in the Linux 2.5 Kernel
http://www.linuxjournal.com/article/6993
Read-copy-update
From Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Read-copy-update
What is RCU?
http://www.rdrop.com/users/paulmck/RCU/whatisRCU.html
Read Copy Update HOWTO
http://lse.sourceforge.net/locking/rcu/HOWTO/intro.html
참고
Memory barrier
From Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Memory_barrier
Lock-free and wait-free algorithms
From Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Lock-free_and_wait-free_algorithms
'KB > RTOS' 카테고리의 다른 글
RTOS contraint in application (0) | 2008.03.31 |
---|---|
HW타이머 사용시 주의 점 (0) | 2008.01.11 |
rtos stuff (0) | 2006.01.23 |
[링크-동영상 강좌] 마이크로프로세서의 이해, 그리고 운영체제와의 관계 (1) | 2006.01.11 |
rtos 관련 (0) | 2006.01.11 |