_monitor(show_sig_dis) op sleep(id: int), wake(id: int) _body(show_sig_dis) _condvar(cond) _proc(sleep(id)) write("Process", id, "enters monitor sleep proc at time", age()) nap(100) write("Process", id, "queues on c.v. sleep proc at time", age()) _wait(cond) write("Process", id, "awakes on c.v. sleep proc at time", age()) nap(100) write("Process", id, "leaves monitor sleep proc at time", age()) _proc_end _proc(wake(id)) write("Process", id, "enters monitor wake proc at time", age()) nap(1000) write("Process", id, "signals c.v in wake proc at time", age()) _signal(cond) write("Process", id, "continues in wake proc at time", age()) nap(100) write("Process", id, "signal two! in wake proc at time", age()) _signal(cond) nap(100) write("Process", id, "leaves monitor wake proc at time", age()) _proc_end _monitor_end