> The simplest way to achieve multi-core scheduling, is to do exactly as before. Having a global queue of tasks that are ready to run, and run them once a core is ready:
The second core, in that example, for me, eventually stopped doing anything at all: https://i.imgur.com/9RtfkSG.mp4
I also think the deadline scheduler has a bug, too: sometimes the pink blob will just skip the queue entirely; it seems like its deadline is "0s away" until it has moved all the way to the queue, so if it is mid move & the CPU becomes available, it seems like the most runnable. (It happens with the other colors too, under the same conditions, but you'll see it with pink more often, since it spends far more time in that state — moving from I/O to waiting to run —, but I did catch other colors doing it too.)
And the one at the top would occasionally double-schedule a core. (Multiple dots would animate onto a single core.) https://i.imgur.com/bPHgPJ0.mp4