Processen en threads

advertisement
ICT Infrastructuren: Processen en Threads
18 november 2013
David N. Jansen
Datum en Ajd van werkcollege
•  na overleg met de aanwezigen: donderdag 8:45–10:30
Stal
hoo lings
fdst
2– 4
Leerdoel voor vandaag .
•  Hoofddoelen en -­‐funcAes van besturingssystemen
•  Processen
•  Threads
•  Lees het boek voor de details!
In-­‐ en uitvoer
•  CommunicaAe met de buitenwereld
•  Maakt gebruik van de bus
•  Drie manieren om te communiceren
–  Programma-­‐gestuurd
–  Interrupt-­‐gestuurd
–  DMA, direct memory access
5
Direct Memory Access
•  Als er invoer is, wacht de processor even
•  invoerapparaat mag de bus gebruiken om gegevens direct naar RAM te schrijven
6
Stal
hoo lings
fdst
2– 4
Leerdoel voor vandaag .
•  Hoofddoelen en -­‐funcAes van besturingssystemen
•  Processen
•  Threads
•  Lees het boek voor de details!
Doelen van Besturingssystemen
•  het OS bemiddelt tussen gewone programma’s en de hardware
•  gebruiksgemak (voor de programmeur)
•  efficiënAe
•  ontwikkeling (van nieuwe hardware e.d.) faciliteren
Bemiddeling
•  processor beschouwt OS als een soort programma
–  kernel = centraal deel van OS (alAjd in RAM)
•  gebruiker/andere programma’s beschouwen OS (bijna) als deel van hardware
–  OS beheert de hardware
Diensten voor gewone programma’s
•  programma’s ontwikkelen
•  programma’s starten
•  abstracAe van hardware (bronnen)
–  toegang tot in-­‐ en uitvoer
–  toegang tot bestanden
–  fouta_andeling
•  gebruikersbeheer
–  toegangsrechten
–  boekhouding
Beheer van bronnen (resources)
•  de computer bestaat uit bronnen
–  processor
–  hoofdgeheugen (RAM)
–  secundair geheugen
–  in-­‐ en uitvoer van gegevens
•  het OS bepaalt wie die bronnen mag gebruiken
EvoluAe van Besturingssystemen
Laat de computer niet wachten.
RekenAjd is duur.
Laat de gebruiker niet wachten.
WerkAjd is duur.
EvoluAe van Besturingssystemen
① handbediening / geen OS
② batch processing
–  single
–  mulAprogrammed
③ interacAef Amesharing
(Single) Batch processing
•  gebruiker levert een stapel ponskaarten in
•  beheerders voegen wat extra kaarten toe (Job Control Language)
–  markeren begin en einde van de stapel
–  geven de soort van programma aan
•  „besturingssysteem” leest JCL-­‐kaarten en beslist wat te doen
•  OS bewaakt correctheid en voortgang
MulAprogrammed batch processing
•  in-­‐ en uitvoer is langzaam = veel wachhjd
•  als een job wacht, kan een andere draaien
•  betere afscherming tussen jobs vereist
–  ingewikkelder geheugenbeheer
–  verdeling van processorAjd
–  gelijkAjdig gebruik van in-­‐ en uitvoer
–  elke job denkt dat hij alleen is op een single-­‐batch-­‐processing-­‐systeem
MulAprogrammed batch processing
Program A
Run
Wait
Run
Wait
Time
(a) Uniprogramming
Program A
Run
Program B
Wait Run
Wait
Run
Wait
Combined
Run Run
A
B
Wait
Run Run
A
B
Wait
Wait
Run
Wait
Time
(b) Multiprogramming with two programs
Program A
Run
Wait
Run
Wait
Interrupts
Stal
hoo lings
fdst
1.4
•  doel: bepaalde taken uitvoeren op een gunsAg moment
•  de processor onderbreekt het lopende programma
•  hij voert tussendoor de “interrupt handler” uit (= een ander programma)
17
Soorten interrupts
• 
• 
• 
• 
fout in programma (b.v. deling door 0)
Amer
in-­‐ of uitvoer
hardwareprobleem
18
Voordelen van interrupts
•  minder lang wachten op resultaten van in-­‐/
uitvoer ! CPU wordt beter benut
•  exactere Aming
19
Meerdere interrupts?
•  Wat moet er gebeuren?
–  tweede interrupt negeren
–  weede interrupt uitstellen
–  weede interrupt onmiddellijk a_andelen
•  interrupt mask/prioriteiten bepalen de keuze
•  elke processor lost het probleem een beetje anders op
20
InteracAef Amesharing
•  één interacAeve centrale computer met meerdere terminals
InteracAef en één gebruiker
•  achteruitgang of vooruitgang?
•  iedere gebruiker zijn eigen computer
•  MS-­‐DOS: uitgekleed OS
–  geen mulAprogramming/mulAtasking
–  geen gebruikersbeheer
netwerk van computers
•  typische doorontwikkeling: file-­‐ en printserver (voor gemeenschappelijke bronnen)
•  mulAtasking en toegangsrechten weer toegevoegd
•  internet: netwerk van netwerken
Proces
•  belangrijkste thema vandaag
•  hoofdstukken 3+4 in Stallings’ boek
•  relevant voor mulAprogramming en nieuwere OS-­‐types
Wat is een proces?
•  een programma dat wordt uitgevoerd onder beheer van het besturingssysteem
•  een samenstel van
–  acAviteiten
–  status van die acAviteiten
•  maakt onderbreken/mulAprogramming mogelijk
–  bronnen
•  Het OS laat het proces denken dat het alleen is
Toestand van een proces
•  besturingssysteem houdt toestand bij
•  één proces is acAef (running), de andere processen wachten
Dispatch
Enter
Not
Running
Running
Pause
(a) State transition diagram
Exit
Op weg naar een completer toestandenmodel
•  Proces ontstaat en eindigt
•  Proces wacht om specifieke reden
•  Veel processen... te veel voor het RAM
Proces ontstaat en eindigt
•  Proces ontstaat
–  login
–  OS biedt dienst in de vorm van proces aan
–  proces start een nieuw proces
•  Proces eindigt
–  normaal einde
–  niet voldoende bronnen
–  proces doet iets illegaals
–  in-­‐ of uitvoer kan niet
–  buitenstaander verzoekt om einde
Redenen voor wachten
•  proces is niet aan de beurt
•  in-­‐ of uitvoer duurt langer
•  buitenstaander onderbreekt het proces
•  niet voldoende RAM: proces wordt op harde schijf opgeslagen
Suspend
Suspend
Blocked
Completer toestandenmodel
(a) With One Suspend State
New
Ad
mi
t
t
mi
Ad
Activate
nd
Dispatch
Ready
Suspend
Running
Timeout
Blocked/
Suspend
ai
tW
en
Ev
Event
Occurs
Event
Occurs
t
Ready/
Suspend
Suspe
Activate
Blocked
Suspend
(b) With Two Suspend States
Release
Exit
InformaAe over het proces
•  Het besturingssysteem houdt bij:
–  idenAteit van het proces
–  processor-­‐registers en geheugen
–  toestand van het proces (acAef / blocked / ...)
–  bronnen die het proces gebruikt
–  details in tabellen 3.4 en 3.5 (p. 148vv.)
•  Process Control Block bevat deze informaAe
Hardware-­‐ondersteuning voor OS
•  instrucAes met privileges
•  user mode: voor gewoon programma sommige instrucAes verboden
•  kernel mode: voor OS alle instrucAes toegestaan
Mode switch
•  direct omschakelen user ! kernel mode is verboden
–  omschakelen alleen tegelijk met •  interrupt of trap
•  system call = programma roept funcAe van OS aan
•  direct omschakelen kernel ! user mode is toegestaan
–  automaAsch aan het einde van een interrupt
Process switch = Omschakelen tussen processen
•  taak van het OS
1  oude context opslaan
–  context = toestand van CPU (registers) en RAM
2 
3 
4 
5 
kiezen welk proces aan de beurt is
procestoestanden veranderen
nieuwe context laden
naar juiste instrucAe in nieuw proces springen
Threads
•  een lichte variant van processen
•  processen gebruiken twee soorten bron:
–  processortoegang
–  geheugen, bestanden etc.
•  threads gebruiken slechts één bron:
–  processortoegang
•  eenvoudiger dan proces
⇒ omschakelen is sneller
Proces vs. thread
•  ProcesinformaAe
–  geheugen
–  bronnen (bestanden, in-­‐ en uitvoer)
•  ThreadinformaAe
–  toestand van de thread (running / blocked / ...)
–  programmateller
–  lokale variabelen (“stack”)
Proces vs. thread
Single-Threaded
Process Model
Process
Control
Block
User
Stack
User
Address
Space
Kernel
Stack
Multithreaded
Process Model
Thread
Thread
Thread
Thread
Control
Block
Thread
Control
Block
Thread
Control
Block
Process
Control
Block
User
Stack
User
Stack
User
Stack
User
Address
Space
Kernel
Stack
Kernel
Stack
Kernel
Stack
Figure 4.2 Single Threaded and Multithreaded Process Models
Waartoe dienen threads?
•  verschillende taken in één programma
–  reageren op gebruiker
–  commando’s uitvoeren
–  achtergrondtaken
•  sommige taken kunnen doorgaan terwijl het programma op OS wacht
•  mulAcore
OS-­‐ondersteuning
•  Sommige OSen bieden geen threads aan
–  dan zijn toch “user level threads” mogelijk
•  wel ondersteuning: “kernel level threads”
–  langzamer, maar flexibeler
Symmetric MulAprocessing
•  vroeger: 1 processor per applicaAe
•  nu:mulAcore
•  processoren zijn symmetrisch = kunnen dezelfde instrucAes etc. aan
Opbouw van een SMP-­‐systeem
Processor
Processor
L1 Cache
Processor
L1 Cache
L2 Cache
L1 Cache
L2 Cache
L2 Cache
System Bus
Main
Memory
I/O
Subsystem
I/O
Adapter
I/O
Adapter
I/O
Adapter
Figure 4.9 Symmetric Multiprocessor Organization
Problemen van SMP
•  meerdere processoren executeren zelfde code ! code moet daarmee rekening houden
•  vaak is serialisaAe gewenst (het lijkt alsof er alleen 1 processor was)
•  meerdere system calls tegelijk mogelijk ! mutual exclusion is ingewikkelder
•  wie verdeelt de processen?
Samenvahng
•  Doelen van besturingssysteem
•  FuncAe, service van besturingssysteem
•  Proces
–  een programma dat draait onder beheer van een besturingssysteem
•  Thread
–  lichtgewicht-­‐proces
–  met gemeenschappelijk geheugen en bronnen
Download