I think that’s for the same reason most OS schedulers don’t have functionality for applications to tell them such things as “this program needs m MB RAM, s seconds of a standard CPU, doesn’t use vector instructions, will do r I/O reads and w writes to disk d and has to finish before 8 PM”: on general-purpose systems, it’s effectively an intractable system.
Also, even if the OS could compute an optimal schedule, that may not be so good that it makes up for time spent computing that schedule.
Also, even if the OS could compute an optimal schedule, that may not be so good that it makes up for time spent computing that schedule.