var db, writeq: shared; rc: integer = 0; ww: integer = 0; Reader Process region db when ww = 0 begin rc = rc + 1 read database rc = rc - 1 end Writer Process ww = ww + 1 region db when rc = 0 begin write database end ww = ww - 1