Het verschil tussen een programma en een proces kan verwarrend zijn, maar hier is een overzicht:
Programma:
* Definitie: Een programma is een statische reeks instructies of een reeks instructies geschreven in een programmeertaal. Zie het als een recept. Het is een plan of een blauwdruk voor het uitvoeren van een taak.
* Kenmerken:
* Opgeslagen op een opslagapparaat (bijvoorbeeld harde schijf, SSD).
* Een passieve entiteit (inactief). Het doet niets uit zichzelf.
* Een verzameling code, gegevens en bronnen (bijvoorbeeld afbeeldingen, configuratiebestanden) die beschrijven hoe een taak moet worden uitgevoerd.
* Uitvoerbaar bestand (bijvoorbeeld .exe op Windows, een uitvoerbaar bestand op Linux/macOS).
* Verbruikt geen systeembronnen (CPU, geheugen), tenzij het wordt uitgevoerd.
* Het is het conceptuele idee/de reeks instructies over wat te doen.
Proces:
* Definitie: Een proces is een instantie van een programma dat wordt uitgevoerd . Zie het als iemand die daadwerkelijk het recept volgt en kookt. Het is de actieve entiteit die CPU-tijd en geheugen verbruikt.
* Kenmerken:
* Een actieve entiteit.
* Verbruikt systeembronnen (CPU, geheugen, I/O).
* Heeft een eigen procescontroleblok (PCB), dat informatie bevat zoals de proces-ID (PID), programmateller, CPU-registers, geheugenbeheerinformatie en I/O-status.
* Het heeft een status (bijvoorbeeld actief, klaar, wachtend).
* Kan worden gemaakt, gepauzeerd, hervat en beëindigd.
* Een programma kan meerdere processen tegelijkertijd laten draaien.
* Het is de daadwerkelijke uitvoering van de instructies die in het programma zijn gedefinieerd.
Analogie:
| Concept | Analogie |
| ---------- | -------------- |
| Programma | Recept |
| Proces | Koken |
| Ingrediënten | Gegevens/bronnen |
Belangrijkste verschillen samengevat:
| Kenmerk | Programma | Proces |
| ------------- | ---------------------------------- | --------------------------------------- |
| Natuur | Statisch, passief | Dynamisch, actief |
| Opslag | Opgeslagen op schijf | Bevindt zich in het geheugen (RAM) tijdens uitvoering |
| Gebruik van hulpbronnen| Minimaal tot uitvoering | Verbruikt CPU, geheugen, I/O |
| Bestaan | Bestaat als bestand | Gemaakt wanneer een programma wordt uitgevoerd |
| Aantal exemplaren | Eén bestand | Eén of meerdere processen kunnen gebaseerd zijn op hetzelfde programma|
| PCB | Geen procescontroleblok | Heeft een procesbesturingsblok |
Voorbeeld:
* Programma: De Chrome-webbrowsertoepassing (bijvoorbeeld het `.exe`-bestand).
* Proces: Elk afzonderlijk actief exemplaar van Chrome. Als u drie Chrome-vensters opent, beschikt u waarschijnlijk over drie afzonderlijke Chrome-processen (hoewel moderne browsers vaak een complexer procesmodel gebruiken met meerdere processen, zelfs binnen één venster).
In het kort: Een programma is als een blauwdruk, terwijl een proces lijkt op de daadwerkelijke constructie die op basis van die blauwdruk plaatsvindt. Je kunt één programma (blauwdruk) hebben, maar op basis daarvan meerdere processen (bouwprojecten) tegelijkertijd laten draaien. |