Title: Besturingssystemen / hoofdstuk 3

Naam: process state
Wat is/doet het?: toestand v/h proces
Welke types zijn er?: new: pas aangemaakt
ready: kan uitgevoerd worden door CPU
waiting: wachten op IO
running: in uitvoering
terminated
Wanneer gebruikt?: wanneer scheduler beslist over status van process
Pagina: 105
Figuur: 3.2

Naam: process control block (PCB) / task contol block
Wat is/doet het?: gegevens over processen bijhouden bv
programmateller
toestand
registers
scheduler-informatie bv prioriteit
io-status: geopende bestanden, gealloceerde IO apparaten,..
memory management informatie: bv start- en eindadres in geheugen (protectie), page tables,...
Hoe werkt het?: regelmatig in schrijven bv bij preemtion
Waar gebruikt?: proces management in het algemeen
Wanneer gebruikt?: alles wat met proces te maken heeft
Pagina: 106-107
Figuur: 3.3

Naam: queues bij scheduling
Wat is/doet het?: wachtrij van processen die bepaalde resource nodig hebben
Hoe werkt het?: afhankelijk van scheduler, maar volgende in queue krijgt steeds de gevraagde resource
Welke types zijn er?: ready queue: wacht op CPU
IO queue: wacht op IO
Waar gebruikt?: scheduling
Pagina: 109-110
Figuur: 3.6

Naam: long term scheduler
Wat is/doet het?: kiest welke processen in het geheugen geladen kunnen worden
Waar gebruikt?: scheduling
Wanneer gebruikt?: vnl  bij aanmaken vh proces, (swapping is bij medium-term)
Voordelen: modulair
Nadelen: moet zelf ook CPU krijgen => niet te vaak oproepen
Alternatieven: - medium term scheduler
Pagina: 110

Naam: short term scheduler
Wat is/doet het?: geeft CPU aan een proces in het geheugen
Hoe werkt het?: kiest proces uit de ready queue
Waar gebruikt?: scheduling
Wanneer gebruikt?: afhankelijk van wannneer scheduler beslist nieuw process in te laden
Nadelen: moet zelf ook CPU krijgen => niet te vaak oproepen
Pagina: 111

Naam: medium term scheduler
Wat is/doet het?: proces in en uit swappen
Hoe werkt het?: zie hoofdstuk 8 (en 9)
Waar gebruikt?: scheduling
Wanneer gebruikt?: te veel processen in geheugen, geen plaats om nieuwe in geheugen te plaatsen
Voordelen: altijd plaats over
Nadelen: soms moeilijk te bepalen welk proces uit geheugen gelaten mag worden, in- en uitladen is overhead
Alternatieven: geen swapping, enkel long term scheduler
Pagina: 111
Figuur: 3.7

Naam: context switch
Wat is/doet het?: transitie tussen processen
Hoe werkt het?: - opslaan van huidige toestand proces in PCB
- kiezen van nieuw proces en alle gegens van PCB (bv registers) inladen
Waar gebruikt?: scheduling
Wanneer gebruikt?: afhankelijk van scheduler
Voordelen: multiprogramming
Nadelen: zuiver overhead
Pagina: 112

Naam: fork()
Wat is/doet het?: creeren van een kindproces
Hoe werkt het?: - dupliceert volledige adresruimte, met uitzondering van de returnwaarde van fork
- kind roept exec op om binary bestand in te laden en uit te voeren
- ouder kan wait() oproepen om te wachten op terminatie van kind
Waar gebruikt?: procescreatie in UNIX
Voordelen: eenvoudige communicatie
Alternatieven: CreateProcess in windows (meerdere parameters, incl link naar binary bestand)
Pagina: 115
Figuur: 3.9

Naam: CreateProcess()
Wat is/doet het?: proces maken in windows
Hoe werkt het?: bij proces maken onmiddelijk programma inladen
Waar gebruikt?: windows
Wanneer gebruikt?: proces maken
Voordelen: programma onmiddelllijk ingeladen
Nadelen: communicatie ouder-kind is complexer
Alternatieven: fork()
Pagina: 117
Figuur: 3.11

Naam: process cooperation
Wat is/doet het?: delen van informatie tussen processen
Welke types zijn er?: shared memory
message passing
Waar gebruikt?: interpocess communication
Voordelen: delen van informatie
delen in subtaken => sneller
modulair
Alternatieven: independent proces: kan niet gewijzigd worden door ander proces
Pagina: 120

Naam: shared memory
Wat is/doet het?: procescommunicatie in geheugen van 1 vd 2 processen
Hoe werkt het?: - proces A en B verwijderen restrictie dat ze niet in elkaars geheugen mogen schrijven
- proces A bevat een array met bepaalde (of onbeperkte) lengte, met pointers waar de nieuwe informatie gelezen of geschreven kan worden
- A en B delen 1 of meerdere pagina's
Waar gebruikt?: ipc
Voordelen: communicatie niet via kernel (tegenwoordig toch niet sneller)
Nadelen: moeilijker als relatie niet producer-consumer is
Alternatieven: message passing
Pagina: 124
Figuur: 3.12, 3.13, 3.14

Naam: direct communication
Wat is/doet het?: message passing implementatie
Hoe werkt het?: pid meegeven bij send/receive (naming)
Waar gebruikt?: message passing
Wanneer gebruikt?: mp
Nadelen: pid moet bekend zijn en mag niet veranderen
Alternatieven: indirect communication
Pagina: 125

Naam: indirect communication
Wat is/doet het?: message pasing schema
Hoe werkt het?: stuur messages naar mailbox, niet naar proces
mailbox is eigendom van het proces dat het aanmaakt
Welke types zijn er?: hoe weten wie de messages mag ontvangen?
- mailbox met hoogstens 2 processen die er aan gelinkt zijn
- of met meerdere, in welk geval hoogstens 1 tegelijk een receive kan doen
Waar gebruikt?: message passing
Voordelen: minder afhankelijk van kennis van pid
Nadelen: communicatie moeilijker bij meerdere processen die aan dezelfde mailbox gelinkt zijn
Alternatieven: direct communication (naming)
Pagina: 126

Naam: message passing synchronisation
Wat is/doet het?: tijdsindeling
Welke types zijn er?: blocking send: verzender blockt tot receive
nonblocking: zend message en hervat proces
blocking receive: block tot ontvangen v message
nonblocking receive: bij receive krijgt ontvanger bericht of NULL
beide blocking => rendez vous
Waar gebruikt?: messsage passing
Pagina: 127
Figuur: 3.15, 3.16