diff --git a/Concurrent Systems/test/Untitled.md b/Concurrent Systems/test/Untitled.md index 72d21aa..e84129b 100644 --- a/Concurrent Systems/test/Untitled.md +++ b/Concurrent Systems/test/Untitled.md @@ -1,34 +1,36 @@ ``` -GLOB_MUTEX and R_MUTEX semaphores init. at 1 +GLOB_MUTEX, W_MUTEX, PR_MUTEX and R_MUTEX semaphores init. at 1 R a shared register init. at 0 begin_read() := - PR_MUTEX.down() + PRR_MUTEX.down() R_MUTEX.down() R++ # currently active readers if R = 1 then - W_MUTEX.down() + PRW_MUTEX.down() GLOB_MUTEX.down() R_MUTEX.up() - PR_MUTEX.up() + PRR_MUTEX.up() return end_read() := R_MUTEX.down() R-- - if R = 0 then GLOB_MUTEX.up() + if R = 0 then + GLOB_MUTEX.up() + PRW_MUTEX.up() R_MUTEX.up() return begin_write() := - W_MUTEX.down() - W_MUTEX.up() - PR_MUTEX.down() + PRR_MUTEX.down() + PRW_MUTEX.down() + PRW_MUTEX.up() GLOB_MUTEX.down() return end_write() := - PR_MUTEX.up() + PRR_MUTEX.up() GLOB_MUTEX.up() return ``` \ No newline at end of file