3.1 - Process Concept (p.103)
Process
Process = Programma dat wordt uitgeveoerd. (eenheid van werk in een OS) (Ook wel naar gerefereerd als job)
- Een programma is bij definitie niet ook een process.
- Twee processen kunnen van hetzelfde programma afkomstig zijn, maar zijn twee losse processen met eigen inhoud.
Inhoud van een process:
- Huidige activiteit
- Is de program counter
- Tijdelijke data als parameters, return addresses, variabeles
- Is de stack
- Globale variabelen
- Is de data section
- Geheugen dat dynamisch nodig is tijdens het uitvoeren van het process
- Is de heap
- Huidige activiteit
Process State
- Staat van een process:
- New
- Het process wordt aangemaakt.
- Running
- De instructies worden uitgevoerd.
- Er kan maar een process tegelijk worden uitgevoerd op een processor.
- Waiting
- Het process wacht tot een event is/wordt uitgevoerd. (I/O, netwerk oa)
- Ready
- Het process wacht totdat het wordt toegewezen aan een processor.
- Terminated
- Het process is klaar met uitvoeren.
- New
Process Control Block (PCB)
- Bevat informatie geassocieerd met het process
- Velden:
- Process State (zie hierboven)
- Program Counter
- Adres voor de volgende instructie in het process
- Dit gegven moet worden bewaard tijdens een interrupt om het process hierna weer te kunnen vervolgen.
- CPU registers
- Hier wordt alle informatie opgeslagen welke met de CPU te maken heeft.
- Registers, accumulators, indexregisters, stack pointers etc.
- Deze gegevens moeten worden bewaard tijdens een interrupt om het process hierna weer te kunnen vervolgen.
- CPU-scheduling information
- Process prioriteit en pointers naar de scheduling queues.
- Memory-Management information
- Beschrijft de waarde de base en limit registers, page/segment tables (afhankelijk van het systeem dat wordt gebruikt)
- Acounting Information
- CPU tijd gebruikt, limieten, job/process nummer etc.
- I/O status information
- Lijst met I/O apparaten die "gekoppeld" zijn aan het process.
- Thread information
- Informatie over de eventueel verschillende threads in het process.
- Het process kan hierdoor meerdere dingen tegelijk uitvoeren.
- Queue Pointer
- Deze pointer wijst naar de eerstvolgende PCB in de ready queue (zie volgende paragraaf)