Wenn die ' elapsed time' nicht nur die reine Rechenzeit, sondern auch Zeiten fuer die Eingabe, Wartezyklen oder Ausgabe enthaelt, kann eigentlich nur 'B' richtig sein.
Der Punkt 'A' setzt voraus, dass das Programm so klein ist, dass es komplett ich Speicher steht. Obwohl das Laden des Programms auch wieder Zeit benoetigt. Die CPU hat nix weiter zu tun und kann sich voll auf das Programm 'stuerzen'. Keine anderen Programme oder Prozesse laufen gerade. Das Ergebnis darf auch nicht ausgegeben werden, da es wieder Zeit benoetigt.. Das halt ich aber fuer recht unwahrscheinlich und ist praktisch auch nicht zu realisieren 😀
Auch auf Mehrprozessormaschinen, Quad- oder Dual-Core-Rechnern ist es nicht anders. Die Prozessoren arbeiten im Grunde nach dem selben Prinzip mit der 'Zeitscheibe'. Software kann die Arbeiten intelligent und die Zyklen gut verteilen, aber damit verringert man nur Wartezyklen der Programme. Ein- und Ausgabe benoetigen auch weiterhin ihre Zeit und das hat die CPU nicht allein in der Hand. So kann die ' elapsed time' nicht kleiner oder gleich als der 'cpu time' werden.