resource multiple_processes() const NUM_PROCESSES := 4, NAP_TIME := 3, RUN_TIME := 60 var num_processes : int := NUM_PROCESSES var nap_time : int := NAP_TIME var run_time : int := RUN_TIME getarg(1, num_processes); getarg(2, nap_time); getarg(3, run_time) # const seeded := 42.0 # Change to 0.0 or leave out these # seed(seeded) # two lines altogether to get # irreproducible random numbers write(num_processes, "processes to run for", run_time, "seconds with", nap_time, "seconds napping") process process_i(i := 1 to num_processes) var napping : int write("process", i, "is alive") do true -> napping := int(random(1000*nap_time)) write("age=", age(), "process", i, "is napping for", napping, "ms") nap(napping) od end process_i nap(1000*run_time); write("must stop now"); stop end multiple_processes /* ............... Example compile and run(s) % sr -o multiple_processes multiple_processes.sr % ./multiple_processes 3 2 10 3 processes to run for 10 seconds with 2 seconds napping process 1 is alive age= 35 process 1 is napping for 1325 ms process 2 is alive age= 41 process 2 is napping for 1804 ms process 3 is alive age= 46 process 3 is napping for 1657 ms age= 1370 process 1 is napping for 1140 ms age= 1712 process 3 is napping for 272 ms age= 1852 process 2 is napping for 1659 ms age= 1988 process 3 is napping for 505 ms age= 2498 process 3 is napping for 1767 ms age= 2518 process 1 is napping for 1609 ms age= 3541 process 2 is napping for 916 ms age= 4139 process 1 is napping for 1858 ms age= 4278 process 3 is napping for 1325 ms age= 4470 process 2 is napping for 1357 ms age= 5609 process 3 is napping for 1385 ms age= 5835 process 2 is napping for 629 ms age= 6008 process 1 is napping for 1334 ms age= 6478 process 2 is napping for 1892 ms age= 6999 process 3 is napping for 1736 ms age= 7348 process 1 is napping for 27 ms age= 7388 process 1 is napping for 160 ms age= 7556 process 1 is napping for 775 ms age= 8347 process 1 is napping for 1162 ms age= 8431 process 2 is napping for 1827 ms age= 8739 process 3 is napping for 1355 ms age= 9603 process 1 is napping for 25 ms age= 9639 process 1 is napping for 568 ms must stop now */