IT-Programmet,
Tema 1 i termin 4:
TTIT61 Processprogrammering och Operativ System
/Concurrent Programming and Operating Systems/
Programexempel
Här är ett par små exempel som illustrerar hur trådar
fungerar och hur man synkroniserar trådarna.
Kompilerings- och exekveringsbeskrivning finns i respektive
exempel.
I exemplet fork så skapar en process en annan process genom
att använda kommandot fork.
Man kan också se hur ordningen påverkas ( man kan behöva
köra programmet ett par gånger för att ordningen ska bli "fel").
Kod:
fork.c
I exemplet thread.c skapas ett antal trådar som exekverar.
Varje tråd måste sova lite. Intressant är att se hur ordningen
ändras mellan körningarna.
Kod:
thread.c
En pipe kan användas för att synkronisera processer/trådar.
Här skickas ett meddelande från en tråd till en annan tråd.
Kod:
pipe.c
Semaforer kan användas för att synkronisera processer.
Här försöker ett antal personer ta ut pengar från en
bankautomat. Man kan köra programmet utan semaforer, sem no,
eller med semaforer, sem.
Kod:
sem.c
Ett litet exempel som visar att ett barn (child) kan fortsätta
exekvera även när föräldren (parent) har avslutat exekvering.
Kod:
child.c
|
|
Sidansvarig: Sergiu Rafiliu
Senast uppdaterad: 2011-09-12