Μια διεργασία (process) είναι ένα πρόγραμμα που τρέχει με τη δική του απομονωμένη μνήμη (χώρο διευθύνσεων)· ένα νήμα (thread) είναι μια μονάδα εκτέλεσης μέσα σε μια διεργασία. Μια διεργασία μπορεί να περιέχει πολλά νήματα, και αυτά τα νήματα μοιράζονται τη μνήμη της διεργασίας — αλλά κάθε διεργασία είναι απομονωμένη από κάθε άλλη.
Τι κατέχει το καθένα
PROCESS A PROCESS B
┌─────────────────────────────┐ ┌───────────────┐
│ address space (code/heap) │ │ address space │
│ file descriptors, PID │ │ (isolated) │
│ ┌────────┐ ┌────────┐ │ │ ┌────────┐ │
│ │thread 1│ │thread 2│ ... │ │ │thread 1│ │
│ │ stack │ │ stack │ │ │ │ stack │ │
│ │ regs/PC│ │ regs/PC│ │ │ └────────┘ │
│ └────────┘ └────────┘ │ └───────────────┘
│ ▲ shared heap, globals, fds│
└─────────────────────────────┘
