To vypadá, že terminologie se neustále mění. Nevím jak dnes, ale před nějakými deseti lety to bylo trošku jinak:
program – z hlediska OS základní soubor kódu a dat, který může využívat prostředků daného OS (tj. z něhož může OS vytvořit proces)
proces – plnohodnotná instance programu, tj. základní entita OS, jež může vykonávat nějaký program; více procesů může nezávisle na sobě vykonávat tentýž program
vlákno – minimální instance programu, jež se od procesu liší tím, že implicitně sdílí data s jinými vlákny provádějící tentýž program a tedy obecně, narozdíl od procesu, více vláken nemůže vykonávat tentýž program nezávisle na sobě.