Reader Writer Lock

Poluję na reader writer lock spełniający następujące wymagania:


  1. C++/Win32/32bit

  2. Readers reentrancy.
    Jeśli dany wątek ma reader-lock w metodzie i woła inną metodę w tym samym wątku to ta metoda może wząść reader-lock ponownie (innymi słowy czytelnik może wziąść sekcję czytania wielokrotnie).

  3. Writer reentrancy.
    Jeśli dany wątek ma writer-lock w metodzie i woła inną metodę w tym samym wątku to ta metoda może wząść writer-lock ponownie (innymi słowy czytelnik może wziąść sekcję czytania wielokrotnie).

  4. Hierachy WR.
    Jeśli dany wątek ma writer-lock to może wziąść reader-lock.

  5. Hierachy RW.
    Jeśli dany wątek ma reader-lock to może wziąść writer-lock (chyba marzenie, nie wiem czy to do osiągnięcia bez dead-lock'ów).

  6. Weakening of writer-lock.
    Jesli wątek ma writer-lock to może go osłabić i zamienić na reader-lock (nie wymagane, mile widziane).

  7. Preferences.
    Nie daje preferencji ani pisarzom ani czytelnikom (jeśli już trzeba to niech preferuje pisarzy).

  8. TryEnter
    Metody w stylu try-enter mile widziane zarówno dla czytelnika jak i dla pisarza.

  9. Timeouts
    Timeouty do czekania mile widziane zarówno dla czytelnika jak i dla pisarza.

  10. Fairness
    "fairness", sprawiedliwość nie jest wymagana choć jeśli by była to bym nie płakał

  11. Starvation
    Zagłodzenie. Nie mile widziane choć akceptowalne.
     

Troszkę literatury:

http://en.wikipedia.org/wiki/Readers-writers_problem
http://blogs.msdn.com/vancem/archive/2006/03/28/563180.aspx
http://blogs.msdn.com/vancem/archive/2006/03/29/564854.aspx
http://www.cs.rochester.edu/research/synchronization/pseudocode/rw.html
http://msdn.microsoft.com/en-us/magazine/cc163532.aspx
http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/ReadWriteLock.html
http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html
http://code.activestate.com/recipes/413393/
http://tutorials.jenkov.com/java-concurrency/read-write-locks.html
http://www.cs.ru.nl/bachelorscripties/2007/Bernard_van_Gastel___Reliability_of_a_read-write_lock_implementation.pdf
http://www.jdocs.com/transaction/1.1/org/apache/commons/transaction/locking/ReadWriteLock.html
http://www.boost.org/doc/libs/1_39_0/doc/html/thread/synchronization.html


Dodano 2010-06-24:
http://cit.srce.hr/index.php/CIT/article/viewFile/1561/1265
http://www.cs.arizona.edu/classes/cs522/spring09/papers/rw.pdf

0 komentarze:

Prześlij komentarz

 
Tomasz Kulig