Nein, nicht wirklich. Die Idee hinter Overcommit ist, dass man nicht in Zukunft schauen kann und daher aus der Gegenwart den RAM-Verbrauch in der Zukunft nur schlecht interpolieren kann. Außerdem sind die meisten Programmierer recht großzügig, was RAM-Zuweisungen betrifft. Man fordert mehr an, als man tatsächlich braucht. Overcommit versucht beides auszunutzen, indem es mehr RAM zuweist, als physisch vorhanden ist. Am besten schaut man sich ein Beispiel an: Der Computer hat 8G RAM und außerdem 8G Swap. Maximal können also 16G Speicher zugewiesen werden, denn mehr ist nicht vorhanden. Wenn nun z.B. 15G belegt sind und ein Programm fordert 2G an, schlägt die Anforderung ohne Overcommit fehl, da nicht genügend Speicher vorhanden ist. Mit Overcommit gibt das System der Anforderung aber statt und spekuliert darauf, dass das Programm diese 2G nicht ausnutzen wird. Und wenn es das würde, hoffentlich an anderer Stelle schon wieder Speicher frei geworden ist, den man neu zuweisen kann.
Der große Vorteil von Overcommit ist, dass man eine deutlich bessere Speicherausnutzung erreichen kann. Das war vor allem früher wichtig, als RAM teuer und immer knapp war, wodurch die Systeme eh durchgehend tief in der Swap hingen. Der Nachteil ist, dass die Wette auch schief gehen kann. Wenn angeblich zugewiesener Speicher dann doch nicht vorhanden ist, kommt der berüchtigte "Out of Memory"-Killer ins Spiel, der beginnt Prozesse wegzuschießen und so die Lücke zwischen Theorie und Realität schließt.
Traditionell machen die meisten Unix-Abkömmlinge Overcommit, die Frage ist nur wie aggressiv. FreeBSD nutzt es unabhängig von dem sysctl 'vm.overcommit' nur noch wenig, anscheinend umso weniger je mehr RAM vorhanden ist. Linux hingegen geht in Standardeinstellung noch immer die Vollen, eine Speicherzuweisung schlägt dort nur in sehr extremen Situationen fehl. Egal wie viel RAM bereits belegt ist. Windows als geistiger Nachfolger oder (je nach Sichtweise) Klon von VMS nutzt gar kein Overcommit. Jede Speicherzuweisung ist immer durch RAM oder Swap abgedeckt. Wenn man die Swap auf dynamische Größe einstellt, wird Windows die Swap bei jeder weiteren Zuweisung solange vergrößern, wie Speicherplatz vorhanden ist. Erst wenn er keinen Swap-Speicher mehr reserviert bekommt, schlagen Zuweisungen fehl. Das ist eigentlich eine sehr elegante Lösung.