An optimal algorithm for preemptive scheduling on non-simultaneously available uniform machines