Göm menyn
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


TTIT61
Temamål
Temaplan
Schema
Examination
Referenslitteratur
Personal
Register for labs

Föreläsningarna
Programexempel
Forum
Labresultat

Schemaläggning
Kritiska sektioner
Processorstöd för operativsystem
Sekundärminne
UNIX, WinNT
Säkerhet

Intro: C/make
Intro: installation
Threads and synchronisation
System calls
Execution of user programs
File system

Lesson 1
Lesson 2
Lesson 3

C/C++ OH
C/C++ tutorial
C pointers tutorial
Pintos documentation
Memory Issues in Pintos
Pintos on-line documentation
The gnu DDD documentation
DDD tutorial
Debugging topics
Programing with threads

Guidelines for writine and changing source code
Pintos source code

Sidansvarig: Sergiu Rafiliu
Senast uppdaterad: 2011-09-12