semaphore managersem
cycling semaphore mutex1, mutex3,r,w


begin process
capability PROCESS
cycling semaphore the status
cycle
  reader entry
  cycle
     PROCESS = next process( PROCESS LIST)
     if PROCESS # NULL then start
        p (the status)
           if PROCESS_STATUS = 'ready' then start
              PROCESS_STATUS = 'running'
           finish else start
              PROCESS = DUMMY
           finish
        v(the status)
     finish
  repeat until PROCESS # DUMMY
  reader exit
  if process # NULL then start
     resume-process( PROCESS)
  finish else start
     V(managersem)
  finish
  repeat

  end process


                             Figure 4.2-5a





begin process
  cycle
      determine appropiate modifications on process list
     writer entry
        update ( PROCESS LIST )
     writer exit
   repeat
end process

                             Figure 4.2-5b