-- WARNING: All output lines starting with a double dash are there to show you -- how the simulation proceeds and are NEITHER REQUIRED NOR RECOMMENDED. -- ARRIVAL event for process 3 at time 0 ms Process 3 starts at time 0 ms Process Table: There are no active processes. -- Process 3 requests a core at time 0 ms for 100 ms. -- Process 3 will release a core at time 100 ms. -- ARRIVAL event for process 5 at time 3 ms Process 5 starts at time 3 ms Process Table: Process 3 is RUNNING. -- Process 5 requests a core at time 3 ms for 120 ms. -- Process 5 must wait for a core. -- NI Queue now contains 1 process(es) waiting for a core. -- ARRIVAL event for process 7 at time 5 ms Process 7 starts at time 5 ms Process Table: Process 3 is RUNNING. Process 5 is READY. -- Process 7 requests a core at time 5 ms for 120 ms. -- Process 7 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- ARRIVAL event for process 9 at time 8 ms Process 9 starts at time 8 ms Process Table: Process 3 is RUNNING. Process 5 is READY. Process 7 is READY. -- Process 9 requests a core at time 8 ms for 100 ms. -- Process 9 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- ARRIVAL event for process 11 at time 13 ms Process 11 starts at time 13 ms Process Table: Process 3 is RUNNING. Process 5 is READY. Process 7 is READY. Process 9 is READY. -- Process 11 requests a core at time 13 ms for 120 ms. -- Process 11 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 3 at time 100 ms -- Process 5 will release a core at time 220 ms. -- Process 3 requests SSD access at time 100 ms for 0 ms. -- Process 3 will release the SSD at time 100 ms. -- SSD completion event for process 3 at time 100 ms -- Process 3 requests a core at time 100 ms for 80 ms. -- Process 3 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 5 at time 220 ms -- Process 7 will release a core at time 340 ms. -- Process 5 requests SSD access at time 220 ms for 0 ms. -- Process 5 will release the SSD at time 220 ms. -- SSD completion event for process 5 at time 220 ms -- Process 5 requests a core at time 220 ms for 60 ms. -- Process 5 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 7 at time 340 ms -- Process 9 will release a core at time 440 ms. -- Process 7 requests SSD access at time 340 ms for 0 ms. -- Process 7 will release the SSD at time 340 ms. -- SSD completion event for process 7 at time 340 ms -- Process 7 requests a core at time 340 ms for 60 ms. -- Process 7 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 9 at time 440 ms -- Process 11 will release a core at time 560 ms. -- Process 9 requests SSD access at time 440 ms for 0 ms. -- Process 9 will release the SSD at time 440 ms. -- SSD completion event for process 9 at time 440 ms -- Process 9 requests a core at time 440 ms for 80 ms. -- Process 9 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 11 at time 560 ms -- Process 3 will release a core at time 640 ms. -- Process 11 requests SSD access at time 560 ms for 0 ms. -- Process 11 will release the SSD at time 560 ms. -- SSD completion event for process 11 at time 560 ms -- Process 11 requests a core at time 560 ms for 60 ms. -- Process 11 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 3 at time 640 ms -- Process 5 will release a core at time 700 ms. -- Process 3 requests SSD access at time 640 ms for 0 ms. -- Process 3 will release the SSD at time 640 ms. -- SSD completion event for process 3 at time 640 ms -- Process 3 requests a core at time 640 ms for 40 ms. -- Process 3 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 5 at time 700 ms -- Process 7 will release a core at time 760 ms. -- Process 5 requests SSD access at time 700 ms for 0 ms. -- Process 5 will release the SSD at time 700 ms. -- SSD completion event for process 5 at time 700 ms -- Process 5 requests a core at time 700 ms for 20 ms. -- Process 5 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 7 at time 760 ms -- Process 9 will release a core at time 840 ms. -- Process 7 requests SSD access at time 760 ms for 0 ms. -- Process 7 will release the SSD at time 760 ms. -- SSD completion event for process 7 at time 760 ms -- Process 7 requests a core at time 760 ms for 20 ms. -- Process 7 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 9 at time 840 ms -- Process 11 will release a core at time 900 ms. -- Process 9 requests SSD access at time 840 ms for 0 ms. -- Process 9 will release the SSD at time 840 ms. -- SSD completion event for process 9 at time 840 ms -- Process 9 requests a core at time 840 ms for 40 ms. -- Process 9 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 11 at time 900 ms -- Process 3 will release a core at time 940 ms. -- Process 11 requests SSD access at time 900 ms for 0 ms. -- Process 11 will release the SSD at time 900 ms. -- SSD completion event for process 11 at time 900 ms -- Process 11 requests a core at time 900 ms for 20 ms. -- Process 11 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 3 at time 940 ms -- Process 5 will release a core at time 960 ms. -- Process 3 requests SSD access at time 940 ms for 0 ms. -- Process 3 will release the SSD at time 940 ms. -- SSD completion event for process 3 at time 940 ms -- Process 3 requests a core at time 940 ms for 80 ms. -- Process 3 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 5 at time 960 ms -- Process 7 will release a core at time 980 ms. -- Process 5 requests SSD access at time 960 ms for 0 ms. -- Process 5 will release the SSD at time 960 ms. -- SSD completion event for process 5 at time 960 ms -- Process 5 requests a core at time 960 ms for 30 ms. -- Process 5 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 7 at time 980 ms -- Process 9 will release a core at time 1020 ms. -- Process 7 requests SSD access at time 980 ms for 0 ms. -- Process 7 will release the SSD at time 980 ms. -- SSD completion event for process 7 at time 980 ms -- Process 7 requests a core at time 980 ms for 30 ms. -- Process 7 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 9 at time 1020 ms -- Process 11 will release a core at time 1040 ms. -- Process 9 requests SSD access at time 1020 ms for 0 ms. -- Process 9 will release the SSD at time 1020 ms. -- SSD completion event for process 9 at time 1020 ms -- Process 9 requests a core at time 1020 ms for 70 ms. -- Process 9 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 11 at time 1040 ms -- Process 3 will release a core at time 1120 ms. -- Process 11 requests SSD access at time 1040 ms for 0 ms. -- Process 11 will release the SSD at time 1040 ms. -- SSD completion event for process 11 at time 1040 ms -- Process 11 requests a core at time 1040 ms for 30 ms. -- Process 11 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 3 at time 1120 ms -- Process 5 will release a core at time 1150 ms. -- Process 3 requests SSD access at time 1120 ms for 0 ms. -- Process 3 will release the SSD at time 1120 ms. -- SSD completion event for process 3 at time 1120 ms -- Process 3 requests a core at time 1120 ms for 40 ms. -- Process 3 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 5 at time 1150 ms -- Process 7 will release a core at time 1180 ms. -- Process 5 requests SSD access at time 1150 ms for 0 ms. -- Process 5 will release the SSD at time 1150 ms. -- SSD completion event for process 5 at time 1150 ms -- Process 5 requests a core at time 1150 ms for 80 ms. -- Process 5 must wait for a core. -- NI Queue now contains 4 process(es) waiting for a core. -- CORE completion event for process 7 at time 1180 ms -- Process 9 will release a core at time 1250 ms. Process 7 terminates at time 1180 ms. Process Table: Process 3 is READY. Process 5 is READY. Process 7 is TERMINATED. Process 9 is RUNNING. Process 11 is READY. -- CORE completion event for process 9 at time 1250 ms -- Process 11 will release a core at time 1280 ms. -- Process 9 requests SSD access at time 1250 ms for 0 ms. -- Process 9 will release the SSD at time 1250 ms. -- SSD completion event for process 9 at time 1250 ms -- Process 9 requests a core at time 1250 ms for 80 ms. -- Process 9 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 11 at time 1280 ms -- Process 3 will release a core at time 1320 ms. -- Process 11 requests SSD access at time 1280 ms for 0 ms. -- Process 11 will release the SSD at time 1280 ms. -- SSD completion event for process 11 at time 1280 ms -- Process 11 requests a core at time 1280 ms for 80 ms. -- Process 11 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 3 at time 1320 ms -- Process 5 will release a core at time 1400 ms. -- Process 3 requests SSD access at time 1320 ms for 0 ms. -- Process 3 will release the SSD at time 1320 ms. -- SSD completion event for process 3 at time 1320 ms -- Process 3 requests a core at time 1320 ms for 90 ms. -- Process 3 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 5 at time 1400 ms -- Process 9 will release a core at time 1480 ms. -- Process 5 requests SSD access at time 1400 ms for 0 ms. -- Process 5 will release the SSD at time 1400 ms. -- SSD completion event for process 5 at time 1400 ms -- Process 5 requests a core at time 1400 ms for 80 ms. -- Process 5 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 9 at time 1480 ms -- Process 11 will release a core at time 1560 ms. -- Process 9 requests SSD access at time 1480 ms for 0 ms. -- Process 9 will release the SSD at time 1480 ms. -- SSD completion event for process 9 at time 1480 ms -- Process 9 requests a core at time 1480 ms for 40 ms. -- Process 9 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 11 at time 1560 ms -- Process 3 will release a core at time 1650 ms. -- Process 11 requests SSD access at time 1560 ms for 0 ms. -- Process 11 will release the SSD at time 1560 ms. -- SSD completion event for process 11 at time 1560 ms -- Process 11 requests a core at time 1560 ms for 60 ms. -- Process 11 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 3 at time 1650 ms -- Process 5 will release a core at time 1730 ms. -- Process 3 requests SSD access at time 1650 ms for 1 ms. -- Process 3 will release the SSD at time 1651 ms. -- SSD completion event for process 3 at time 1651 ms -- Process 3 requests a core at time 1651 ms for 100 ms. -- Process 3 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 5 at time 1730 ms -- Process 9 will release a core at time 1770 ms. -- Process 5 requests SSD access at time 1730 ms for 0 ms. -- Process 5 will release the SSD at time 1730 ms. -- SSD completion event for process 5 at time 1730 ms -- Process 5 requests a core at time 1730 ms for 40 ms. -- Process 5 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 9 at time 1770 ms -- Process 11 will release a core at time 1830 ms. -- Process 9 requests SSD access at time 1770 ms for 0 ms. -- Process 9 will release the SSD at time 1770 ms. -- SSD completion event for process 9 at time 1770 ms -- Process 9 requests a core at time 1770 ms for 90 ms. -- Process 9 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 11 at time 1830 ms -- Process 3 will release a core at time 1930 ms. -- Process 11 requests SSD access at time 1830 ms for 0 ms. -- Process 11 will release the SSD at time 1830 ms. -- SSD completion event for process 11 at time 1830 ms -- Process 11 requests a core at time 1830 ms for 20 ms. -- Process 11 must wait for a core. -- NI Queue now contains 3 process(es) waiting for a core. -- CORE completion event for process 3 at time 1930 ms -- Process 5 will release a core at time 1970 ms. -- Process 3 will interact with a user at time 1930 ms for 5000 ms. -- Process 3 will complete the interaction at time 6930 ms. -- CORE completion event for process 5 at time 1970 ms -- Process 9 will release a core at time 2060 ms. -- Process 5 requests SSD access at time 1970 ms for 0 ms. -- Process 5 will release the SSD at time 1970 ms. -- SSD completion event for process 5 at time 1970 ms -- Process 5 requests a core at time 1970 ms for 80 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 2060 ms -- Process 11 will release a core at time 2080 ms. -- Process 9 requests SSD access at time 2060 ms for 0 ms. -- Process 9 will release the SSD at time 2060 ms. -- SSD completion event for process 9 at time 2060 ms -- Process 9 requests a core at time 2060 ms for 80 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 2080 ms -- Process 5 will release a core at time 2160 ms. -- Process 11 requests SSD access at time 2080 ms for 0 ms. -- Process 11 will release the SSD at time 2080 ms. -- SSD completion event for process 11 at time 2080 ms -- Process 11 requests a core at time 2080 ms for 30 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 2160 ms -- Process 9 will release a core at time 2240 ms. -- Process 5 requests SSD access at time 2160 ms for 0 ms. -- Process 5 will release the SSD at time 2160 ms. -- SSD completion event for process 5 at time 2160 ms -- Process 5 requests a core at time 2160 ms for 40 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 2240 ms -- Process 11 will release a core at time 2270 ms. -- Process 9 requests SSD access at time 2240 ms for 0 ms. -- Process 9 will release the SSD at time 2240 ms. -- SSD completion event for process 9 at time 2240 ms -- Process 9 requests a core at time 2240 ms for 40 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 2270 ms -- Process 5 will release a core at time 2310 ms. -- Process 11 requests SSD access at time 2270 ms for 0 ms. -- Process 11 will release the SSD at time 2270 ms. -- SSD completion event for process 11 at time 2270 ms -- Process 11 requests a core at time 2270 ms for 80 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 2310 ms -- Process 9 will release a core at time 2350 ms. -- Process 5 requests SSD access at time 2310 ms for 0 ms. -- Process 5 will release the SSD at time 2310 ms. -- SSD completion event for process 5 at time 2310 ms -- Process 5 requests a core at time 2310 ms for 90 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 2350 ms -- Process 11 will release a core at time 2430 ms. -- Process 9 requests SSD access at time 2350 ms for 0 ms. -- Process 9 will release the SSD at time 2350 ms. -- SSD completion event for process 9 at time 2350 ms -- Process 9 requests a core at time 2350 ms for 90 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 2430 ms -- Process 5 will release a core at time 2520 ms. -- Process 11 requests SSD access at time 2430 ms for 0 ms. -- Process 11 will release the SSD at time 2430 ms. -- SSD completion event for process 11 at time 2430 ms -- Process 11 requests a core at time 2430 ms for 80 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 2520 ms -- Process 9 will release a core at time 2610 ms. -- Process 5 requests SSD access at time 2520 ms for 0 ms. -- Process 5 will release the SSD at time 2520 ms. -- SSD completion event for process 5 at time 2520 ms -- Process 5 requests a core at time 2520 ms for 80 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 2610 ms -- Process 11 will release a core at time 2690 ms. -- Process 9 requests SSD access at time 2610 ms for 1 ms. -- Process 9 will release the SSD at time 2611 ms. -- SSD completion event for process 9 at time 2611 ms -- Process 9 requests a core at time 2611 ms for 110 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 2690 ms -- Process 5 will release a core at time 2770 ms. -- Process 11 requests SSD access at time 2690 ms for 0 ms. -- Process 11 will release the SSD at time 2690 ms. -- SSD completion event for process 11 at time 2690 ms -- Process 11 requests a core at time 2690 ms for 40 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 2770 ms -- Process 9 will release a core at time 2880 ms. -- Process 5 requests SSD access at time 2770 ms for 0 ms. -- Process 5 will release the SSD at time 2770 ms. -- SSD completion event for process 5 at time 2770 ms -- Process 5 requests a core at time 2770 ms for 40 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 2880 ms -- Process 11 will release a core at time 2920 ms. -- Process 9 requests SSD access at time 2880 ms for 0 ms. -- Process 9 will release the SSD at time 2880 ms. -- SSD completion event for process 9 at time 2880 ms -- Process 9 requests a core at time 2880 ms for 40 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 2920 ms -- Process 5 will release a core at time 2960 ms. -- Process 11 requests SSD access at time 2920 ms for 0 ms. -- Process 11 will release the SSD at time 2920 ms. -- SSD completion event for process 11 at time 2920 ms -- Process 11 requests a core at time 2920 ms for 80 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 2960 ms -- Process 9 will release a core at time 3000 ms. -- Process 5 requests SSD access at time 2960 ms for 0 ms. -- Process 5 will release the SSD at time 2960 ms. -- SSD completion event for process 5 at time 2960 ms -- Process 5 requests a core at time 2960 ms for 90 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 3000 ms -- Process 11 will release a core at time 3080 ms. -- Process 9 requests SSD access at time 3000 ms for 0 ms. -- Process 9 will release the SSD at time 3000 ms. -- SSD completion event for process 9 at time 3000 ms -- Process 9 requests a core at time 3000 ms for 90 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 3080 ms -- Process 5 will release a core at time 3170 ms. -- Process 11 requests SSD access at time 3080 ms for 0 ms. -- Process 11 will release the SSD at time 3080 ms. -- SSD completion event for process 11 at time 3080 ms -- Process 11 requests a core at time 3080 ms for 40 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 3170 ms -- Process 9 will release a core at time 3260 ms. -- Process 5 requests SSD access at time 3170 ms for 1 ms. -- Process 5 will release the SSD at time 3171 ms. -- SSD completion event for process 5 at time 3171 ms -- Process 5 requests a core at time 3171 ms for 100 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 3260 ms -- Process 11 will release a core at time 3300 ms. -- Process 9 requests SSD access at time 3260 ms for 1 ms. -- Process 9 will release the SSD at time 3261 ms. -- SSD completion event for process 9 at time 3261 ms -- Process 9 requests a core at time 3261 ms for 100 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 3300 ms -- Process 5 will release a core at time 3400 ms. -- Process 11 requests SSD access at time 3300 ms for 0 ms. -- Process 11 will release the SSD at time 3300 ms. -- SSD completion event for process 11 at time 3300 ms -- Process 11 requests a core at time 3300 ms for 90 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 3400 ms -- Process 9 will release a core at time 3500 ms. -- Process 5 will interact with a user at time 3400 ms for 5000 ms. -- Process 5 will complete the interaction at time 8400 ms. -- CORE completion event for process 9 at time 3500 ms -- Process 11 will release a core at time 3590 ms. -- Process 9 will interact with a user at time 3500 ms for 3000 ms. -- Process 9 will complete the interaction at time 6500 ms. -- CORE completion event for process 11 at time 3590 ms -- Process 11 requests SSD access at time 3590 ms for 0 ms. -- Process 11 will release the SSD at time 3590 ms. -- SSD completion event for process 11 at time 3590 ms -- Process 11 requests a core at time 3590 ms for 80 ms. -- Process 11 will release a core at time 3670 ms. -- CORE completion event for process 11 at time 3670 ms -- Process 11 requests SSD access at time 3670 ms for 0 ms. -- Process 11 will release the SSD at time 3670 ms. -- SSD completion event for process 11 at time 3670 ms -- Process 11 requests a core at time 3670 ms for 40 ms. -- Process 11 will release a core at time 3710 ms. -- CORE completion event for process 11 at time 3710 ms -- Process 11 requests SSD access at time 3710 ms for 0 ms. -- Process 11 will release the SSD at time 3710 ms. -- SSD completion event for process 11 at time 3710 ms -- Process 11 requests a core at time 3710 ms for 90 ms. -- Process 11 will release a core at time 3800 ms. -- CORE completion event for process 11 at time 3800 ms -- Process 11 requests SSD access at time 3800 ms for 1 ms. -- Process 11 will release the SSD at time 3801 ms. -- SSD completion event for process 11 at time 3801 ms -- Process 11 requests a core at time 3801 ms for 100 ms. -- Process 11 will release a core at time 3901 ms. -- CORE completion event for process 11 at time 3901 ms -- Process 11 will interact with a user at time 3901 ms for 5000 ms. -- Process 11 will complete the interaction at time 8901 ms. -- TTY completion event for process 9 at time 6500 ms -- Process 9 requests a core at time 6500 ms for 120 ms. -- Process 9 will release a core at time 6620 ms. -- CORE completion event for process 9 at time 6620 ms -- Process 9 will interact with a user at time 6620 ms for 2000 ms. -- Process 9 will complete the interaction at time 8620 ms. -- TTY completion event for process 3 at time 6930 ms -- Process 3 requests a core at time 6930 ms for 20 ms. -- Process 3 will release a core at time 6950 ms. -- CORE completion event for process 3 at time 6950 ms -- Process 3 will interact with a user at time 6950 ms for 5000 ms. -- Process 3 will complete the interaction at time 11950 ms. -- TTY completion event for process 5 at time 8400 ms -- Process 5 requests a core at time 8400 ms for 80 ms. -- Process 5 will release a core at time 8480 ms. -- CORE completion event for process 5 at time 8480 ms -- Process 5 requests SSD access at time 8480 ms for 0 ms. -- Process 5 will release the SSD at time 8480 ms. -- SSD completion event for process 5 at time 8480 ms -- Process 5 requests a core at time 8480 ms for 80 ms. -- Process 5 will release a core at time 8560 ms. -- CORE completion event for process 5 at time 8560 ms -- Process 5 requests SSD access at time 8560 ms for 0 ms. -- Process 5 will release the SSD at time 8560 ms. -- SSD completion event for process 5 at time 8560 ms -- Process 5 requests a core at time 8560 ms for 40 ms. -- Process 5 will release a core at time 8600 ms. -- CORE completion event for process 5 at time 8600 ms -- Process 5 requests SSD access at time 8600 ms for 0 ms. -- Process 5 will release the SSD at time 8600 ms. -- SSD completion event for process 5 at time 8600 ms -- Process 5 requests a core at time 8600 ms for 90 ms. -- Process 5 will release a core at time 8690 ms. -- TTY completion event for process 9 at time 8620 ms -- Process 9 requests a core at time 8620 ms for 80 ms. -- Process 9 must wait for a core. -- I Queue now contains 1 process(es) waiting for a core. -- CORE completion event for process 5 at time 8690 ms -- Process 9 will release a core at time 8770 ms. -- Process 5 requests SSD access at time 8690 ms for 1 ms. -- Process 5 will release the SSD at time 8691 ms. -- SSD completion event for process 5 at time 8691 ms -- Process 5 requests a core at time 8691 ms for 30 ms. -- Process 5 must wait for a core. -- NI Queue now contains 1 process(es) waiting for a core. -- CORE completion event for process 9 at time 8770 ms -- Process 5 will release a core at time 8800 ms. -- Process 9 requests SSD access at time 8770 ms for 1 ms. -- Process 9 will release the SSD at time 8771 ms. -- SSD completion event for process 9 at time 8771 ms -- Process 9 requests a core at time 8771 ms for 30 ms. -- Process 9 must wait for a core. -- NI Queue now contains 1 process(es) waiting for a core. -- CORE completion event for process 5 at time 8800 ms -- Process 9 will release a core at time 8830 ms. -- Process 5 requests SSD access at time 8800 ms for 1 ms. -- Process 5 will release the SSD at time 8801 ms. -- SSD completion event for process 5 at time 8801 ms -- Process 5 requests a core at time 8801 ms for 20 ms. -- Process 5 must wait for a core. -- NI Queue now contains 1 process(es) waiting for a core. -- CORE completion event for process 9 at time 8830 ms -- Process 5 will release a core at time 8850 ms. -- Process 9 requests SSD access at time 8830 ms for 1 ms. -- Process 9 will release the SSD at time 8831 ms. -- SSD completion event for process 9 at time 8831 ms -- Process 9 requests a core at time 8831 ms for 20 ms. -- Process 9 must wait for a core. -- NI Queue now contains 1 process(es) waiting for a core. -- CORE completion event for process 5 at time 8850 ms -- Process 9 will release a core at time 8870 ms. -- Process 5 requests SSD access at time 8850 ms for 1 ms. -- Process 5 will release the SSD at time 8851 ms. -- SSD completion event for process 5 at time 8851 ms -- Process 5 requests a core at time 8851 ms for 30 ms. -- Process 5 must wait for a core. -- NI Queue now contains 1 process(es) waiting for a core. -- CORE completion event for process 9 at time 8870 ms -- Process 5 will release a core at time 8900 ms. -- Process 9 requests SSD access at time 8870 ms for 1 ms. -- Process 9 will release the SSD at time 8871 ms. -- SSD completion event for process 9 at time 8871 ms -- Process 9 requests a core at time 8871 ms for 30 ms. -- Process 9 must wait for a core. -- NI Queue now contains 1 process(es) waiting for a core. -- CORE completion event for process 5 at time 8900 ms -- Process 9 will release a core at time 8930 ms. -- Process 5 requests SSD access at time 8900 ms for 1 ms. -- Process 5 will release the SSD at time 8901 ms. -- SSD completion event for process 5 at time 8901 ms -- Process 5 requests a core at time 8901 ms for 20 ms. -- Process 5 must wait for a core. -- NI Queue now contains 1 process(es) waiting for a core. -- TTY completion event for process 11 at time 8901 ms -- Process 11 requests a core at time 8901 ms for 80 ms. -- Process 11 must wait for a core. -- I Queue now contains 1 process(es) waiting for a core. -- CORE completion event for process 9 at time 8930 ms -- Process 11 will release a core at time 9010 ms. -- Process 9 requests SSD access at time 8930 ms for 1 ms. -- Process 9 will release the SSD at time 8931 ms. -- SSD completion event for process 9 at time 8931 ms -- Process 9 requests a core at time 8931 ms for 20 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 9010 ms -- Process 5 will release a core at time 9030 ms. -- Process 11 requests SSD access at time 9010 ms for 0 ms. -- Process 11 will release the SSD at time 9010 ms. -- SSD completion event for process 11 at time 9010 ms -- Process 11 requests a core at time 9010 ms for 80 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 9030 ms -- Process 9 will release a core at time 9050 ms. -- Process 5 requests SSD access at time 9030 ms for 1 ms. -- Process 5 will release the SSD at time 9031 ms. -- SSD completion event for process 5 at time 9031 ms -- Process 5 requests a core at time 9031 ms for 30 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 9050 ms -- Process 11 will release a core at time 9130 ms. -- Process 9 requests SSD access at time 9050 ms for 1 ms. -- Process 9 will release the SSD at time 9051 ms. -- SSD completion event for process 9 at time 9051 ms -- Process 9 requests a core at time 9051 ms for 30 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 9130 ms -- Process 5 will release a core at time 9160 ms. -- Process 11 requests SSD access at time 9130 ms for 0 ms. -- Process 11 will release the SSD at time 9130 ms. -- SSD completion event for process 11 at time 9130 ms -- Process 11 requests a core at time 9130 ms for 40 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 9160 ms -- Process 9 will release a core at time 9190 ms. -- Process 5 requests SSD access at time 9160 ms for 1 ms. -- Process 5 will release the SSD at time 9161 ms. -- SSD completion event for process 5 at time 9161 ms -- Process 5 requests a core at time 9161 ms for 20 ms. -- Process 5 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 9 at time 9190 ms -- Process 11 will release a core at time 9230 ms. -- Process 9 requests SSD access at time 9190 ms for 1 ms. -- Process 9 will release the SSD at time 9191 ms. -- SSD completion event for process 9 at time 9191 ms -- Process 9 requests a core at time 9191 ms for 20 ms. -- Process 9 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 11 at time 9230 ms -- Process 5 will release a core at time 9250 ms. -- Process 11 requests SSD access at time 9230 ms for 0 ms. -- Process 11 will release the SSD at time 9230 ms. -- SSD completion event for process 11 at time 9230 ms -- Process 11 requests a core at time 9230 ms for 90 ms. -- Process 11 must wait for a core. -- NI Queue now contains 2 process(es) waiting for a core. -- CORE completion event for process 5 at time 9250 ms -- Process 9 will release a core at time 9270 ms. Process 5 terminates at time 9250 ms. Process Table: Process 3 is BLOCKED. Process 5 is TERMINATED. Process 9 is RUNNING. Process 11 is READY. -- CORE completion event for process 9 at time 9270 ms -- Process 11 will release a core at time 9360 ms. Process 9 terminates at time 9270 ms. Process Table: Process 3 is BLOCKED. Process 9 is TERMINATED. Process 11 is RUNNING. -- CORE completion event for process 11 at time 9360 ms -- Process 11 requests SSD access at time 9360 ms for 1 ms. -- Process 11 will release the SSD at time 9361 ms. -- SSD completion event for process 11 at time 9361 ms -- Process 11 requests a core at time 9361 ms for 30 ms. -- Process 11 will release a core at time 9391 ms. -- CORE completion event for process 11 at time 9391 ms -- Process 11 requests SSD access at time 9391 ms for 1 ms. -- Process 11 will release the SSD at time 9392 ms. -- SSD completion event for process 11 at time 9392 ms -- Process 11 requests a core at time 9392 ms for 20 ms. -- Process 11 will release a core at time 9412 ms. -- CORE completion event for process 11 at time 9412 ms -- Process 11 requests SSD access at time 9412 ms for 1 ms. -- Process 11 will release the SSD at time 9413 ms. -- SSD completion event for process 11 at time 9413 ms -- Process 11 requests a core at time 9413 ms for 30 ms. -- Process 11 will release a core at time 9443 ms. -- CORE completion event for process 11 at time 9443 ms -- Process 11 requests SSD access at time 9443 ms for 0 ms. -- Process 11 will release the SSD at time 9443 ms. -- SSD completion event for process 11 at time 9443 ms -- Process 11 requests a core at time 9443 ms for 90 ms. -- Process 11 will release a core at time 9533 ms. -- CORE completion event for process 11 at time 9533 ms -- Process 11 requests SSD access at time 9533 ms for 1 ms. -- Process 11 will release the SSD at time 9534 ms. -- SSD completion event for process 11 at time 9534 ms -- Process 11 requests a core at time 9534 ms for 30 ms. -- Process 11 will release a core at time 9564 ms. -- CORE completion event for process 11 at time 9564 ms -- Process 11 requests SSD access at time 9564 ms for 1 ms. -- Process 11 will release the SSD at time 9565 ms. -- SSD completion event for process 11 at time 9565 ms -- Process 11 requests a core at time 9565 ms for 20 ms. -- Process 11 will release a core at time 9585 ms. -- CORE completion event for process 11 at time 9585 ms -- Process 11 requests SSD access at time 9585 ms for 1 ms. -- Process 11 will release the SSD at time 9586 ms. -- SSD completion event for process 11 at time 9586 ms -- Process 11 requests a core at time 9586 ms for 30 ms. -- Process 11 will release a core at time 9616 ms. -- CORE completion event for process 11 at time 9616 ms -- Process 11 requests SSD access at time 9616 ms for 1 ms. -- Process 11 will release the SSD at time 9617 ms. -- SSD completion event for process 11 at time 9617 ms -- Process 11 requests a core at time 9617 ms for 20 ms. -- Process 11 will release a core at time 9637 ms. -- CORE completion event for process 11 at time 9637 ms -- Process 11 requests SSD access at time 9637 ms for 1 ms. -- Process 11 will release the SSD at time 9638 ms. -- SSD completion event for process 11 at time 9638 ms -- Process 11 requests a core at time 9638 ms for 30 ms. -- Process 11 will release a core at time 9668 ms. -- CORE completion event for process 11 at time 9668 ms -- Process 11 requests SSD access at time 9668 ms for 1 ms. -- Process 11 will release the SSD at time 9669 ms. -- SSD completion event for process 11 at time 9669 ms -- Process 11 requests a core at time 9669 ms for 20 ms. -- Process 11 will release a core at time 9689 ms. -- CORE completion event for process 11 at time 9689 ms Process 11 terminates at time 9689 ms. Process Table: Process 3 is BLOCKED. Process 11 is TERMINATED. -- TTY completion event for process 3 at time 11950 ms -- Process 3 requests a core at time 11950 ms for 80 ms. -- Process 3 will release a core at time 12030 ms. -- CORE completion event for process 3 at time 12030 ms -- Process 3 requests SSD access at time 12030 ms for 1 ms. -- Process 3 will release the SSD at time 12031 ms. -- SSD completion event for process 3 at time 12031 ms -- Process 3 requests a core at time 12031 ms for 30 ms. -- Process 3 will release a core at time 12061 ms. -- CORE completion event for process 3 at time 12061 ms -- Process 3 requests SSD access at time 12061 ms for 0 ms. -- Process 3 will release the SSD at time 12061 ms. -- SSD completion event for process 3 at time 12061 ms -- Process 3 requests a core at time 12061 ms for 90 ms. -- Process 3 will release a core at time 12151 ms. -- CORE completion event for process 3 at time 12151 ms -- Process 3 requests SSD access at time 12151 ms for 1 ms. -- Process 3 will release the SSD at time 12152 ms. -- SSD completion event for process 3 at time 12152 ms -- Process 3 requests a core at time 12152 ms for 30 ms. -- Process 3 will release a core at time 12182 ms. -- CORE completion event for process 3 at time 12182 ms -- Process 3 requests SSD access at time 12182 ms for 1 ms. -- Process 3 will release the SSD at time 12183 ms. -- SSD completion event for process 3 at time 12183 ms -- Process 3 requests a core at time 12183 ms for 20 ms. -- Process 3 will release a core at time 12203 ms. -- CORE completion event for process 3 at time 12203 ms -- Process 3 requests SSD access at time 12203 ms for 1 ms. -- Process 3 will release the SSD at time 12204 ms. -- SSD completion event for process 3 at time 12204 ms -- Process 3 requests a core at time 12204 ms for 30 ms. -- Process 3 will release a core at time 12234 ms. -- CORE completion event for process 3 at time 12234 ms -- Process 3 requests SSD access at time 12234 ms for 1 ms. -- Process 3 will release the SSD at time 12235 ms. -- SSD completion event for process 3 at time 12235 ms -- Process 3 requests a core at time 12235 ms for 20 ms. -- Process 3 will release a core at time 12255 ms. -- CORE completion event for process 3 at time 12255 ms -- Process 3 requests SSD access at time 12255 ms for 1 ms. -- Process 3 will release the SSD at time 12256 ms. -- SSD completion event for process 3 at time 12256 ms -- Process 3 requests a core at time 12256 ms for 30 ms. -- Process 3 will release a core at time 12286 ms. -- CORE completion event for process 3 at time 12286 ms -- Process 3 requests SSD access at time 12286 ms for 1 ms. -- Process 3 will release the SSD at time 12287 ms. -- SSD completion event for process 3 at time 12287 ms -- Process 3 requests a core at time 12287 ms for 20 ms. -- Process 3 will release a core at time 12307 ms. -- CORE completion event for process 3 at time 12307 ms -- Process 3 requests SSD access at time 12307 ms for 1 ms. -- Process 3 will release the SSD at time 12308 ms. -- SSD completion event for process 3 at time 12308 ms -- Process 3 requests a core at time 12308 ms for 30 ms. -- Process 3 will release a core at time 12338 ms. -- CORE completion event for process 3 at time 12338 ms -- Process 3 requests SSD access at time 12338 ms for 1 ms. -- Process 3 will release the SSD at time 12339 ms. -- SSD completion event for process 3 at time 12339 ms -- Process 3 requests a core at time 12339 ms for 20 ms. -- Process 3 will release a core at time 12359 ms. -- CORE completion event for process 3 at time 12359 ms Process 3 terminates at time 12359 ms. Process Table: Process 3 is TERMINATED. SUMMARY: Total elapsed time: 12359 ms Number of processes that completed: 5 Total number of SSD accesses: 90 Average number of busy cores: 0.463 SSD utilization: 0.00

-- ARRIVAL event for process 0 at time 10 ms Process 0 starts at time 10 ms -- Process 0 requests a core at time 10 ms for 100 ms -- Process 0 will release a core at time 110 ms -- ARRIVAL event for process 1 at time 20 ms Process 1 starts at time 20 ms Process 0 is RUNNING -- Process 1 requests a core at time 20 ms for 40 ms -- Process 1 will release a core at time 60 ms -- ARRIVAL event for process 2 at time 50 ms Process 2 starts at time 50 ms Process 0 is RUNNING Process 1 is RUNNING -- Process 2 requests a core at time 50 ms for 40 ms -- Process 2 must wait for a core -- Ready queue now contains 1 process(es) waiting for a core -- ARRIVAL event for process 3 at time 60 ms Process 3 starts at time 60 ms Process 0 is RUNNING Process 1 is RUNNING Process 2 is READY -- Process 3 requests a core at time 60 ms for 40 ms -- Process 3 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 1 at time 60 ms -- Process 2 will release a core at time 100 ms -- Process 1 requests SSD access at time 60 ms for 1 ms -- Process 1 will release the SSD at time 61 ms -- SSD completion event for process 1 at time 61 ms -- Process 1 requests a core at time 61 ms for 100 ms -- Process 1 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- ARRIVAL event for process 4 at time 80 ms Process 4 starts at time 80 ms Process 0 is RUNNING Process 1 is READY Process 2 is RUNNING Process 3 is READY -- Process 4 requests a core at time 80 ms for 40 ms -- Process 4 must wait for a core -- Ready queue now contains 3 process(es) waiting for a core -- CORE completion event for process 2 at time 100 ms -- Process 3 will release a core at time 140 ms -- Process 2 requests SSD access at time 100 ms for 1 ms -- Process 2 will release the SSD at time 101 ms -- SSD completion event for process 2 at time 101 ms -- Process 2 requests a core at time 101 ms for 100 ms -- Process 2 must wait for a core -- Ready queue now contains 3 process(es) waiting for a core -- CORE completion event for process 0 at time 110 ms -- Process 1 will release a core at time 210 ms -- Process 0 requests input from user at time 110 ms for 5000 ms -- Process 0 starts input at time 110 ms -- Process 0 will complete input at time 5110 ms -- CORE completion event for process 3 at time 140 ms -- Process 4 will release a core at time 180 ms -- Process 3 requests SSD access at time 140 ms for 1 ms -- Process 3 will release the SSD at time 141 ms -- SSD completion event for process 3 at time 141 ms -- Process 3 requests a core at time 141 ms for 100 ms -- Process 3 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 4 at time 180 ms -- Process 2 will release a core at time 280 ms -- Process 4 requests SSD access at time 180 ms for 1 ms -- Process 4 will release the SSD at time 181 ms -- SSD completion event for process 4 at time 181 ms -- Process 4 requests a core at time 181 ms for 100 ms -- Process 4 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 1 at time 210 ms -- Process 3 will release a core at time 310 ms -- Process 1 requests SSD access at time 210 ms for 1 ms -- Process 1 will release the SSD at time 211 ms -- SSD completion event for process 1 at time 211 ms -- Process 1 requests a core at time 211 ms for 200 ms -- Process 1 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 2 at time 280 ms -- Process 4 will release a core at time 380 ms -- Process 2 requests SSD access at time 280 ms for 1 ms -- Process 2 will release the SSD at time 281 ms -- SSD completion event for process 2 at time 281 ms -- Process 2 requests a core at time 281 ms for 200 ms -- Process 2 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 3 at time 310 ms -- Process 1 will release a core at time 510 ms -- Process 3 requests SSD access at time 310 ms for 1 ms -- Process 3 will release the SSD at time 311 ms -- SSD completion event for process 3 at time 311 ms -- Process 3 requests a core at time 311 ms for 200 ms -- Process 3 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 4 at time 380 ms -- Process 2 will release a core at time 580 ms -- Process 4 requests SSD access at time 380 ms for 1 ms -- Process 4 will release the SSD at time 381 ms -- SSD completion event for process 4 at time 381 ms -- Process 4 requests a core at time 381 ms for 200 ms -- Process 4 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 1 at time 510 ms -- Process 3 will release a core at time 710 ms -- Process 1 requests SSD access at time 510 ms for 1 ms -- Process 1 will release the SSD at time 511 ms -- SSD completion event for process 1 at time 511 ms -- Process 1 requests a core at time 511 ms for 50 ms -- Process 1 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 2 at time 580 ms -- Process 4 will release a core at time 780 ms -- Process 2 requests SSD access at time 580 ms for 1 ms -- Process 2 will release the SSD at time 581 ms -- SSD completion event for process 2 at time 581 ms -- Process 2 requests a core at time 581 ms for 50 ms -- Process 2 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 3 at time 710 ms -- Process 1 will release a core at time 760 ms -- Process 3 requests SSD access at time 710 ms for 1 ms -- Process 3 will release the SSD at time 711 ms -- SSD completion event for process 3 at time 711 ms -- Process 3 requests a core at time 711 ms for 50 ms -- Process 3 must wait for a core -- Ready queue now contains 2 process(es) waiting for a core -- CORE completion event for process 1 at time 760 ms -- Process 2 will release a core at time 810 ms -- Process 1 requests input from user at time 760 ms for 5000 ms -- Process 1 must wait for user -- Input queue now contains 1 process(es) waiting for the user -- CORE completion event for process 4 at time 780 ms -- Process 3 will release a core at time 830 ms -- Process 4 requests SSD access at time 780 ms for 1 ms -- Process 4 will release the SSD at time 781 ms -- SSD completion event for process 4 at time 781 ms -- Process 4 requests a core at time 781 ms for 50 ms -- Process 4 must wait for a core -- Ready queue now contains 1 process(es) waiting for a core -- CORE completion event for process 2 at time 810 ms -- Process 4 will release a core at time 860 ms -- Process 2 requests input from user at time 810 ms for 5000 ms -- Process 2 must wait for user -- Input queue now contains 2 process(es) waiting for the user -- CORE completion event for process 3 at time 830 ms -- Process 3 requests input from user at time 830 ms for 5000 ms -- Process 3 must wait for user -- Input queue now contains 3 process(es) waiting for the user -- CORE completion event for process 4 at time 860 ms -- Process 4 requests input from user at time 860 ms for 1000 ms -- Process 4 must wait for user -- Input queue now contains 4 process(es) waiting for the user -- INPUT completion event for process 0 at time 5110 ms -- Process 1 will complete input at time 10110 ms -- Process 0 requests a core at time 5110 ms for 100 ms -- Process 0 will release a core at time 5210 ms -- CORE completion event for process 0 at time 5210 ms -- Process 0 requests SSD access at time 5210 ms for 1 ms -- Process 0 will release the SSD at time 5211 ms -- SSD completion event for process 0 at time 5211 ms -- Process 0 requests a core at time 5211 ms for 80 ms -- Process 0 will release a core at time 5291 ms -- CORE completion event for process 0 at time 5291 ms -- Process 0 requests SSD access at time 5291 ms for 1 ms -- Process 0 will release the SSD at time 5292 ms -- SSD completion event for process 0 at time 5292 ms -- Process 0 requests a core at time 5292 ms for 100 ms -- Process 0 will release a core at time 5392 ms -- CORE completion event for process 0 at time 5392 ms -- Process 0 requests SSD access at time 5392 ms for 1 ms -- Process 0 will release the SSD at time 5393 ms -- SSD completion event for process 0 at time 5393 ms -- Process 0 requests a core at time 5393 ms for 80 ms -- Process 0 will release a core at time 5473 ms -- CORE completion event for process 0 at time 5473 ms -- Process 0 requests SSD access at time 5473 ms for 0 ms -- Process 0 will release the SSD at time 5473 ms -- SSD completion event for process 0 at time 5473 ms -- Process 0 requests a core at time 5473 ms for 30 ms -- Process 0 will release a core at time 5503 ms -- CORE completion event for process 0 at time 5503 ms -- Process 0 requests SSD access at time 5503 ms for 1 ms -- Process 0 will release the SSD at time 5504 ms -- SSD completion event for process 0 at time 5504 ms -- Process 0 requests a core at time 5504 ms for 20 ms -- Process 0 will release a core at time 5524 ms -- CORE completion event for process 0 at time 5524 ms -- Process 0 requests SSD access at time 5524 ms for 1 ms -- Process 0 will release the SSD at time 5525 ms -- SSD completion event for process 0 at time 5525 ms -- Process 0 requests a core at time 5525 ms for 80 ms -- Process 0 will release a core at time 5605 ms -- CORE completion event for process 0 at time 5605 ms -- Process 0 requests SSD access at time 5605 ms for 0 ms -- Process 0 will release the SSD at time 5605 ms -- SSD completion event for process 0 at time 5605 ms -- Process 0 requests a core at time 5605 ms for 40 ms -- Process 0 will release a core at time 5645 ms -- CORE completion event for process 0 at time 5645 ms -- Process 0 requests SSD access at time 5645 ms for 1 ms -- Process 0 will release the SSD at time 5646 ms -- SSD completion event for process 0 at time 5646 ms -- Process 0 requests a core at time 5646 ms for 20 ms -- Process 0 will release a core at time 5666 ms -- CORE completion event for process 0 at time 5666 ms Process 0 terminates at time 5666 ms Process 0 is TERMINATED Process 1 is BLOCKED Process 2 is BLOCKED Process 3 is BLOCKED Process 4 is BLOCKED -- INPUT completion event for process 1 at time 10110 ms -- Process 2 will complete input at time 15110 ms -- Process 1 requests a core at time 10110 ms for 100 ms -- Process 1 will release a core at time 10210 ms -- CORE completion event for process 1 at time 10210 ms -- Process 1 requests SSD access at time 10210 ms for 1 ms -- Process 1 will release the SSD at time 10211 ms -- SSD completion event for process 1 at time 10211 ms -- Process 1 requests a core at time 10211 ms for 80 ms -- Process 1 will release a core at time 10291 ms -- CORE completion event for process 1 at time 10291 ms -- Process 1 requests SSD access at time 10291 ms for 1 ms -- Process 1 will release the SSD at time 10292 ms -- SSD completion event for process 1 at time 10292 ms -- Process 1 requests a core at time 10292 ms for 100 ms -- Process 1 will release a core at time 10392 ms -- CORE completion event for process 1 at time 10392 ms -- Process 1 requests SSD access at time 10392 ms for 1 ms -- Process 1 will release the SSD at time 10393 ms -- SSD completion event for process 1 at time 10393 ms -- Process 1 requests a core at time 10393 ms for 80 ms -- Process 1 will release a core at time 10473 ms -- CORE completion event for process 1 at time 10473 ms -- Process 1 requests SSD access at time 10473 ms for 1 ms -- Process 1 will release the SSD at time 10474 ms -- SSD completion event for process 1 at time 10474 ms -- Process 1 requests a core at time 10474 ms for 100 ms -- Process 1 will release a core at time 10574 ms -- CORE completion event for process 1 at time 10574 ms -- Process 1 requests SSD access at time 10574 ms for 1 ms -- Process 1 will release the SSD at time 10575 ms -- SSD completion event for process 1 at time 10575 ms -- Process 1 requests a core at time 10575 ms for 40 ms -- Process 1 will release a core at time 10615 ms -- CORE completion event for process 1 at time 10615 ms Process 1 terminates at time 10615 ms Process 1 is TERMINATED Process 2 is BLOCKED Process 3 is BLOCKED Process 4 is BLOCKED -- INPUT completion event for process 2 at time 15110 ms -- Process 3 will complete input at time 20110 ms -- Process 2 requests a core at time 15110 ms for 100 ms -- Process 2 will release a core at time 15210 ms -- CORE completion event for process 2 at time 15210 ms -- Process 2 requests SSD access at time 15210 ms for 1 ms -- Process 2 will release the SSD at time 15211 ms -- SSD completion event for process 2 at time 15211 ms -- Process 2 requests a core at time 15211 ms for 80 ms -- Process 2 will release a core at time 15291 ms -- CORE completion event for process 2 at time 15291 ms -- Process 2 requests SSD access at time 15291 ms for 1 ms -- Process 2 will release the SSD at time 15292 ms -- SSD completion event for process 2 at time 15292 ms -- Process 2 requests a core at time 15292 ms for 100 ms -- Process 2 will release a core at time 15392 ms -- CORE completion event for process 2 at time 15392 ms -- Process 2 requests SSD access at time 15392 ms for 1 ms -- Process 2 will release the SSD at time 15393 ms -- SSD completion event for process 2 at time 15393 ms -- Process 2 requests a core at time 15393 ms for 80 ms -- Process 2 will release a core at time 15473 ms -- CORE completion event for process 2 at time 15473 ms -- Process 2 requests SSD access at time 15473 ms for 1 ms -- Process 2 will release the SSD at time 15474 ms -- SSD completion event for process 2 at time 15474 ms -- Process 2 requests a core at time 15474 ms for 100 ms -- Process 2 will release a core at time 15574 ms -- CORE completion event for process 2 at time 15574 ms -- Process 2 requests SSD access at time 15574 ms for 1 ms -- Process 2 will release the SSD at time 15575 ms -- SSD completion event for process 2 at time 15575 ms -- Process 2 requests a core at time 15575 ms for 40 ms -- Process 2 will release a core at time 15615 ms -- CORE completion event for process 2 at time 15615 ms Process 2 terminates at time 15615 ms Process 2 is TERMINATED Process 3 is BLOCKED Process 4 is BLOCKED -- INPUT completion event for process 3 at time 20110 ms -- Process 4 will complete input at time 21110 ms -- Process 3 requests a core at time 20110 ms for 100 ms -- Process 3 will release a core at time 20210 ms -- CORE completion event for process 3 at time 20210 ms -- Process 3 requests SSD access at time 20210 ms for 1 ms -- Process 3 will release the SSD at time 20211 ms -- SSD completion event for process 3 at time 20211 ms -- Process 3 requests a core at time 20211 ms for 80 ms -- Process 3 will release a core at time 20291 ms -- CORE completion event for process 3 at time 20291 ms -- Process 3 requests SSD access at time 20291 ms for 1 ms -- Process 3 will release the SSD at time 20292 ms -- SSD completion event for process 3 at time 20292 ms -- Process 3 requests a core at time 20292 ms for 100 ms -- Process 3 will release a core at time 20392 ms -- CORE completion event for process 3 at time 20392 ms -- Process 3 requests SSD access at time 20392 ms for 1 ms -- Process 3 will release the SSD at time 20393 ms -- SSD completion event for process 3 at time 20393 ms -- Process 3 requests a core at time 20393 ms for 80 ms -- Process 3 will release a core at time 20473 ms -- CORE completion event for process 3 at time 20473 ms -- Process 3 requests SSD access at time 20473 ms for 1 ms -- Process 3 will release the SSD at time 20474 ms -- SSD completion event for process 3 at time 20474 ms -- Process 3 requests a core at time 20474 ms for 100 ms -- Process 3 will release a core at time 20574 ms -- CORE completion event for process 3 at time 20574 ms -- Process 3 requests SSD access at time 20574 ms for 1 ms -- Process 3 will release the SSD at time 20575 ms -- SSD completion event for process 3 at time 20575 ms -- Process 3 requests a core at time 20575 ms for 40 ms -- Process 3 will release a core at time 20615 ms -- CORE completion event for process 3 at time 20615 ms Process 3 terminates at time 20615 ms Process 3 is TERMINATED Process 4 is BLOCKED -- INPUT completion event for process 4 at time 21110 ms -- Process 4 requests a core at time 21110 ms for 100 ms -- Process 4 will release a core at time 21210 ms -- CORE completion event for process 4 at time 21210 ms -- Process 4 requests SSD access at time 21210 ms for 1 ms -- Process 4 will release the SSD at time 21211 ms -- SSD completion event for process 4 at time 21211 ms -- Process 4 requests a core at time 21211 ms for 80 ms -- Process 4 will release a core at time 21291 ms -- CORE completion event for process 4 at time 21291 ms -- Process 4 requests SSD access at time 21291 ms for 1 ms -- Process 4 will release the SSD at time 21292 ms -- SSD completion event for process 4 at time 21292 ms -- Process 4 requests a core at time 21292 ms for 100 ms -- Process 4 will release a core at time 21392 ms -- CORE completion event for process 4 at time 21392 ms -- Process 4 requests SSD access at time 21392 ms for 1 ms -- Process 4 will release the SSD at time 21393 ms -- SSD completion event for process 4 at time 21393 ms -- Process 4 requests a core at time 21393 ms for 80 ms -- Process 4 will release a core at time 21473 ms -- CORE completion event for process 4 at time 21473 ms -- Process 4 requests SSD access at time 21473 ms for 1 ms -- Process 4 will release the SSD at time 21474 ms -- SSD completion event for process 4 at time 21474 ms -- Process 4 requests a core at time 21474 ms for 100 ms -- Process 4 will release a core at time 21574 ms -- CORE completion event for process 4 at time 21574 ms -- Process 4 requests SSD access at time 21574 ms for 1 ms -- Process 4 will release the SSD at time 21575 ms -- SSD completion event for process 4 at time 21575 ms -- Process 4 requests a core at time 21575 ms for 40 ms -- Process 4 will release a core at time 21615 ms -- CORE completion event for process 4 at time 21615 ms Process 4 terminates at time 21615 ms Process 4 is TERMINATED SUMMARY: Number of processes that completed: 5 Total number of SSD accesses: 40 Average SSD access time: 0.95 ms Total elapsed time: 21615 ms Core utilization: 19.48 percent SSD utilization: 0.18 percent

NCORES 1 START 0 PID 3 CORE 100 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 1 CORE 100 TTY 5000 CORE 20 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 0 CORE 90 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 START 3 PID 5 CORE 120 SSD 0 CORE 60 SSD 0 CORE 20 SSD 0 CORE 30 SSD 0 CORE 80 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 1 CORE 100 TTY 5000 CORE 80 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 START 5 PID 7 CORE 120 SSD 0 CORE 60 SSD 0 CORE 20 SSD 0 CORE 30 START 8 PID 9 CORE 100 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 70 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 1 CORE 110 SSD 0 CORE 40 SSD 0 CORE 90 SSD 1 CORE 100 TTY 3000 CORE 120 TTY 2000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 START 13 PID 11 CORE 120 SSD 0 CORE 60 SSD 0 CORE 20 SSD 0 CORE 30 SSD 0 CORE 80 SSD 0 CORE 60 SSD 0 CORE 20 SSD 0 CORE 30 SSD 0 CORE 80 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 1 CORE 100 TTY 5000 CORE 80 SSD 0 CORE 80 SSD 0 CORE 40 SSD 0 CORE 90 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 0 CORE 90 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 SSD 1 CORE 30 SSD 1 CORE 20 END

The first spring 2020 assignment explained

Jehan-François Pâris

[email protected]

A very simple case

 NCORES 1 // number of cores START 120 // new process at T=1200 PID 23 // process ID CORE 100 // request CORE for 100 ms TTY 5000 // 5000 ms user interaction CORE 80 // request CORE for 80 ms SSD 1 // request SSD for 1 ms CORE 30 // request CORE for 30 ms SSD 1 // request SSD for 1 ms CORE 20 // request CORE for 20 ms

The model

We have • One single-core CPU

• NCORES = 1

• One SSD

• Many user windows

• Two CPU queues – Interactive – Non-interactive

Core

I Q

NI Q

SSD TTY

SSD Q

Process states

A process can be

• Running • It occupies a core

• Ready • It waits for a core

• Blocked • It wait for an I/O

completion

Core

I Q

NI Q

SSD TTY

SSD Q

The solution (I)

 NCORES 1 CPU has one core

 START 120 Set clock at T=120 ms

 PID 23 Record arrival of process 23 at T=120ms

The solution (II)

 CORE 100 T=120ms Allocate core to process 23 for 100ms Move 23 to RUNNING state Core completion at T=120+100=220ms

 TTY 5000 T=220ms Release core Move 23 to BLOCKED state TTY completion at T=220+5,000=5,220ms

The solution (III)

 CORE 80 T=5,220ms Allocate core to process 23 for 80ms Move 23 to RUNNING state Core completion at T=5,220+80=5,300ms

 SSD 1 T=5,300ms Release core Move 23 to BLOCKED state SSD completion at T=5,300+1=5,301ms

The solution (IV)

 CORE 30 T = 5,301ms Allocate core to process 23 for 30ms Move 23 to RUNNING state Core completion at T=5,301+30=5,331ms

 SSD 1 T=5,331ms Release core Move 23 to BLOCKED state SSD completion at T=5,331+1=5,332ms

The solution (V)

 CORE 20 T=5,332ms Allocate core to process 23 for 20ms Move 23 to RUNNING state Core completion at T=5,332+20=5,352ms

 Process terminates Move 23 to TERMINATED state

Another way to look at it

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

T=120ms Process 23 arrives Gets core until T = 120+100 = 220ms

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

T=220ms Process 23 releases core gets TTY until = 220+5,000 = 5,220ms

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

T=5,220ms Process 23 gets core until T=5,220+80 = 5,300ms

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

T=5,300ms Process 23 releases core Gets SSD until T=5,300+1 = 5,301ms

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

T=5,301ms Process releases SSD Gets core until T=5,331ms

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

T=5,331ms Process releases core Gets SSD until = 5,332ms

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

T=5,332ms Process releases SSD Gets core until = 5,352ms

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

T=5,352ms Process terminates

NCORES 1 START 120 PID 23 CORE 100 TTY 5000 CORE 80 SSD 1 CORE 30 SSD 1 CORE 20

Core

I Q

NI Q

SSD TTY

SSD Q

A very simple case indeed

 All the computational steps of a given process/job are processed in sequence

 Processes never wait for any resource

 Still useful to introduce completion events

The completion events

 Completions are events

Mark end of a step

Notify it is time to move to next step

Next allocation step

 Scheduling is trivial when there is only one process

Not true otherwise

Handling two processes

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Process 0

Process 1

The solution (I)

Time Command Action(s) 0 NEW 0 Process 0 starts 0 CORE 10 P0 gets core until T=10ms 5 NEW 5 Process 1 starts 5 CORE 20 Core is busy:

P1 enters NI queue P1 is in READY state

10 SSD 1 P0 releases the CPU Gets SSD until T=11 ms P1 gets CPU until T=30ms P1 is in RUNNING state

The solution (II)

Time Command Action(s) 11 CORE 30 CPU is busy:

P0 enters NI queue P0 is in READY state

30 SSD 0 P1 releases the CPU Gets SSD until T=30 ms P0 gets CPU until T=60ms

30 CORE 40 CPU is busy: P1 enters NI queue P1 is in READY state

The solution (III)

Time Command Action(s) 60 P0 releases CPU and

terminates P1 gets CPU until T=100ms

100 P1 releases CPU and terminates

Another way to look at it

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

Event list

 Tells your program decide what step to take next

 New type of events

Arrival events

Can be predicted when reading in the input

T = 0ms Start

Process 0 Non-interactive

T = 5ms Start

Process 1 Non-interactive

Using the event list

 When deciding which step to take, must always pick the one associated with the next event

T = 0ms Start

Process 0 Non-interactive

T = 5ms Start

Process 1 Non-interactive

T= 0ms P0 gets core until T = 10ms

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

We update the event list

T = 10ms Core

Process 0 Non-interactive

T = 5ms Start

Process 1 Non-interactive

Finding the next step

T = 10ms Core

Process 0 Non-interactive

T = 5ms Start

Process 1 Non-interactive

T=5ms P1 waits for P0 to release core at T=10ms

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

We update the event list

Time 10 Core

Process 0 Non-Interactive

Finding the next step

T = 10ms Core

Process 0 Non-Interactive

T=10ms P0 gets SSD until T=11ms P1 gets core until T=30ms

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

We update the event list

T = 11ms SSD

Process 0 Non-Interactive

T = 30ms Core

Process 1 Non-Interactive

Finding the next step

T = 11ms SSD

Process 0 Non-interactive

T = 30ms Core

Process 1 Non-Interactive

T=11ms P0 waits for P1 to release core at T=30ms

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

We update the event list

T = 30ms Core

Process 1 Non-Interactive

Finding the next step

T = 30ms Core

Process 1 Non-Interactive

T=30ms P1 gets SSD until T=30+0=30ms P0 gets core until T=30+30=60ms

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

We update the event list

T = 30ms SSD

Process 1 Non-Interactive

T = 60ms Core

Process 2 Non-Interactive

Finding the next step

T = 30ms SSD

Process 1 Non-Interactive

T = 60ms Core

Process 0 Non-Interactive

T=30ms P1 waits for P0 to release core at T=60ms

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

We update the event list

T = 60ms Core

Process 0 Non-Interactive

Finding the next step

T = 60ms Core

Process 0 Non-Interactive

T=60ms P0 to release core and terminates P1 gets core until T=100ms

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

We update the event list

T = 100ms Core

Process 1 Non-Interactive

Finding the next step

T = 100ms Core

Process 1 Non-Interactive

T=100ms P1 releases core and terminates

NCORES 1 START 0 PID 0 CORE 10 SSD 1 CORE 30 START 5 PID 1 CORE 20 SSD 0 CORE 40

Core

I Q

NI Q

SSD TTY

SSD Q

We update the event list

 The event list is empty

The simulation ends

Scheduling the CPU

 Have two queues

 Interactive queue

Contains processes that have just completed a user interaction

Higher priority

Non-interactive queue

Contains all other processes

Lower priority

Example (I)

 When process 1 releases a core, process 4 will get it ahead of 2 and 3.

Core

I Q

NI Q

SSD TTY

SSD Q

1

2

34

Example (II)

 If process 1 returns to READY state before 4 releases its core, it will get this core ahead of 2 and 3

 Otherwise process 2 will get the core

Core

I Q

NI Q

SSD TTY

SSD Q

1

2

3

4

Handling parallel activities

 We only need to consider start times and completion times of each computational step

 Completion times are the most important Release a device  Initiate the next request

Can be immediately satisfied if requested device is free

May require process to wait for device Ready queue or disk queue

ENGINEERING THE SIMULATION

Simulating time

 Absolutely nothing happens to our model between two successive "events"

 Events are

Arrival of a new process

Completion of a computing step

Completion of a SSD access

Completion of a user interaction

 We associate an event routine with each event

Organizing our program (I)

 Most steps of simulation involve scheduling future completion events

 Associate with each completion event an event notice

Time of event

Device

Process ID

 Interactive/Non-interactive bit

Organizing our program (II)

 Do the same with process arrivals

Time of event

Start

 Process ID Process sequence number

 Interactive/non-interactive bit

Set to non-interactive

Organizing our program (III)

 Process all event notices in chronological order

T = 247 SSD

0 NI

T = 250 Core

1 NI

T = 245 Start

2 NI

T = 270 Start

3 NI

T = 310 Start

4 NI

First notice to be processed

Organizing our program (IV)

 Overall organization of main program

read in input file schedule all process starts while (event list is not empty) {

process next event in list } // while print simulation results

Organizing our program (IV)

 Processing next event in list

pop event from list clock = event.time if (event.type is arrival) {

arrival(event.time, event.seqno) } else if (event.type is core) {

Organizing our event list (I)

 As a priority queue

 Associating a completion time

With each core request

With each SSD request

With each user interaction

With the each new process arrival

Organizing our event list

 Process all event notices in time order

First notice to be processed is at the head of the list

T = 247 SSD

0 NI

T = 250 Core

1 NI

T = 245 Start

2 NI

T = 270 Start

3 NI

T = 310 Start

4 NI

Arrival event routine

arrival(time, seqno) { mark process non-interactive process first request of new process

} // arrival

Core request routine core_request(how_long, seqno, isinteract){

if (nfreecores > 0) { nfreecores--; schedule completion at time current_time + how_long for process seqno;

} else { if (isinteract == interactive) {

queue proc_id in i_queue } else {

queue proc_id in ni_queue } // inner if

} // outer if } // core_request

Core completion routine core_release (seqno){

if (i_queue is not empty) { pop first request in i_queue

schedule its completion at current_time + how_long;

} else if (ni_queue is not empty { pop first request in ni_queue schedule its completion at current_time + how_long;

} else { nfreecores++;

} //if process next process request;

} // core_release

SSD request routine

ssd_request(how_long, seqno){ if (ssd == FREE) {

ssd = BUSY; schedule completion at time current_time + how_long for process seqno;

} else { queue process seqno in ssd queue;

} // if } // ssd_request

SSD completion routine

ssd_release (seqno, &isinteract){ isinteract = non_interactive; if (ssd queue is not empty) {

pop first request in ssd queue schedule its completion at current_time + how_long;

} else { ssd = FREE;

} // if process next process request;

} // ssd_release

User request routine user_request (how_long, seqno){

schedule completion at time current_time + how_long for process process_id;

} // user_request

User completion routine

user_release (seqno, &isinteract){ isinteract = interactive; process next process request;

} // user_release

Overview (I)

 Input module

Schedules all ARRIVAL events

 Main loop

Pops next event from event list

ARRIVAL

CORE completion

SSD completion

TTY completion

Overview (II)

 ARRIVAL event

Starts a core request

Overview (III)

 Core request

 If a core is free

Schedules a CORE completion event

 CORE completion event

May schedule a CORE completion event

Starts next request

SSD or TTY

Overview (IV)

 SSD request

 If SSD is free

Schedules an SSD completion event

 SSD completion event

May schedule a SSD completion event

Starts next request

CORE

Overview (V)

 TTY request

Schedules an TTY completion event

 TTY completion event

Starts next request

CORE

Input module ARRIVAL events

Core requests

CORE completion events

SSD requests

SSD completion events

TTY requests

TTY completion events

Explanations

 Green boxes represent conventional functions

 Amber boxes represent events and their associated functions

 Continuous blue arrows represent regular function calls

 Red dashed lines represent the scheduling of specific events

Finding the next event

 If you do not use a priority list for your events, you can find the next event to process by searching the lowest value in

The process start times in the process table

The completion times in the device table

The display completion timed in the process table

AN IMPLEMENTATION

 My main data structures would include:

An input table

A process table

A device table

The input table

 Stores the input data

 Line indices are used in process table

Operation Parameter

START 5

PID 10

CORE 20

SSD 0

CORE 20

START 50

PID 20

… …

Most elegant input table

START 5

START 50

PID 10

PID 20

… …

Top array indexed by process sequence numbers

The process table (I)

PID Start Time

First Line

Last Line

Current Line

State

10 5 0 4 varies varies

20 50 5 … …

… … … …

The process table (II)

 One line per process

Line index is process sequence number!

 First column has start time of process

 First line, last line and current line respectively identify first line, last line and current line of the process in the input table

 Last column is for the current state of the process (READY, RUNNING or BLOCKED)

The device table (I)

Device Status Busy times total

CPU P0 15

SSD - --

The device table (II)

 One line per device

Line index identifies the device

 First column has status of device

Number of free cores for CPU

Free/busy for SSD

 Last column is for the total of all busy times

READING YOUR INPUT

 You must use I/O redirection assign1 < input_file

 Advantages

Very flexible

Programmers write their code as if it was read from standard input

No need to mess with fopen(), argc and argcv

Detecting the end of data

 The easiest ways to do it

 If you use scanf() scanf(…) returns 0 once it reaches the end of

data

if(scanf(…))

 If you use cin cin returns 0 once it reaches the end of data

while (cin >> keyword >> time )

Last updated on Monday, January 13, 2020.

COSC 3360‐Operating System Fundamentals  Assignment #1: Process Scheduling 

 Due Wednesday, February 12, 2019 at 11:59:59 pm  

1. OBJECTIVE  This assignment will introduce you to core scheduling.

2. SPECIFICATIONS  You are to simulate the execution of processes by a tablet with a large memory, one display, a multi-core processing unit, and one solid-state drive. Each process will be described by its start time and its process id followed by a sequence of resource requests.

These resources requests will include core requests (CORE), SSD requests (SSD) and user interactions (TTY). Your input will be a sequence of pairs as in:

NCORES 2     // number of cores  START   12000 // new process  PID     23  // process ID  CORE   100   // request CORE for 100 ms  TTY 5000  // 5000 ms user interaction  CORE   80    // request CORE for 80 ms  SSD   1     // request SSD for 1 ms  CORE   30    // request CORE for 30 ms  SSD   1     // request SSD for 1 ms  CORE   20    // request CORE for 20 ms  START  12040  // new process ... END  // end of data 

All times will be expressed in milliseconds. All process start times will be monotonically increasing. The last line of input will contain an END.

Processor Management: Your program should have two ready queues, namely:

1. A interactive queue that contains all processes have just completed a user interaction,

2. A non-interactive queue that contains all other processes waiting for a core.

Each time your program answers process core requests, it should give priority to processes in the interactive queue and only allocate cores to processes from the non-interactive queue when the interactive queue is empty.

Both ready queues should be FIFO queues and keep all processes ordered according to their queue arrival time in strict first-come first-served order.

SSD Management: SSD access times are much shorter than disk access times with write requests taking less than a millisecond and read requests taking much less than that. As a result, write request timings will be rounded up to one

millisecond and read requests timing will be rounded down to zero. SSD scheduling will be strictly first-come first-served.

To simplify your life, we will also assume that:

1. There is no contention for main memory,

2. Context switch times can be neglected, and

3. User think times and other delays, like overlapping windows, are included in the TTY times.

In addition, you can assume that all inputs will always be correct.

Program organization: Your program should read its input file name though input redirection as in:

./a.out < input.txt 

Your program should have one process table with one entry per process containing its process id, the process class, its process arrival time and its current state (RUNNING, READY or BLOCKED).

Since you are to focus on the scheduling actions taken by the system you are simulating, your program will only have to intervene whenever

1. A process is loaded into memory,

2. A process completes a computational step.

All times should be simulated.

Each time a process starts or terminates your program should print a snap shot containing:

1. The current simulated time in milliseconds,

2. The process id (PID) of the process causing the snapshot, and the states of all other active processes

When all the processes in your input stream have completed, your simulator should print a summary report listing:

1. The total simulation time n millisecond,

2. The number of processes that have completed,

3. The total number of SSD accesses,

4. The average number of busy cores (between zero and NCORES),

5. The SSD utilization, that is, the fraction of time that device was busy (between zero and one).

3. IMPORTANT  Your program should start by a block of comments containing your name, the course number, the due date and a very short description of the assignment. Each class, method or function should start by a very brief description of the task it performs.

Get help from top-rated tutors in any subject.

Efficiently complete your homework and academic assignments by getting help from the experts at homeworkarchive.com