What is the relationship between a program and processes in the Operating System?
Dipende dal programma.
Posso scrivere un programma di basso livello che non ha bisogno di un sistema operativo. In effetti è quello che è un sistema operativo. Se l'hardware supporta tutto ciò di cui ho bisogno non mi mancherà nemmeno l'os.
Se tuttavia, ho bisogno di caricare un file e non ho sistemi operativi per dare una mano, sono in cerca di un po 'di lavoro. Il sistema operativo normalmente astrae le cose che normalmente preferirei non pensare. Che tipo di controller ha l'unità? Quali comandi vengono utilizzati per indirizzare i dati? Questo non è facile senza un sistema operativo che impone un'interfaccia comune per i driver da implementare in modo da poter comunicare con tutti i controller del disco rigido allo stesso modo.
Per quanto riguarda la matematica, beh ora stavamo parlando con l'ALU, forse. Forse la CPU fa questo in modo nativo su questo hardware. Altre cose che devi sapere perché il sistema operativo non si sta prendendo cura di esso per te.
Se il programma si aspetta che un sistema operativo sia disponibile, la relazione è che il sistema operativo astrae i dettagli dell'hardware e determina quando il programma può essere eseguito (sistema operativo multithread o meno). Il sistema operativo può anche fermare a
programma.
Se il programma non si aspetta un sistema operativo potrebbe essere un sistema operativo stesso. O potrebbe essere solo un programma dedicato per quell'hardware.
Se parliamo di Java, beh, c'è questa macchina virtuale che cerca di rendere tutti gli hardware e il sistema operativo uguali al programma in modo che possa funzionare su qualsiasi hardware e qualsiasi sistema operativo. Ciò astrae i dettagli in modo che il programma non debba preoccuparsi di cosa sta eseguendo.
La relazione essenziale è che i programmi hanno bisogno che le cose al di fuori di se stesse funzionino correttamente. Il sistema operativo potrebbe essere una di quelle cose.