TDIU16 Process- och operativsystemprogrammering
Föreläsningar
Föreläsningar
Slides till föreläsningarna publiceras i samband med varje föreläsning.
| Fö | Material | Kapitel 9 ed. | Kapitel 10 ed. | Kapitel i Intro to Conc. |
|---|---|---|---|---|
| 0 | Kursintroduktion, introduktion till C | - | - | 1 och 2 |
| 1 | Pintos och systemanrop i Pintos | 2.3, 2.4 | 2.3, 2.4 | - |
| 2 | Semaforen | 6.1, 6.6, 6.7 | 6.1, 6.6, 7.1 | 3 |
| 3 | Synkronisering: Lås och conditions | 6.2, 6.5, 6.7 | 6.2, 6.5, 7.1 | 4, 5, 6 |
| 4 | Synkronisering: Deadlocks | 7 | 8 | 7, 8 |
| 5 | Synkronisering: Hur implementeras lås? | 6.3, 6.4 | 6.3 | - |
Kodexempel från föreläsningarna
Nedan finns kodexempel från föreläsningarna. Arkivfilen är ordnad efter vilket problem som behandlas.
Kodexempel från föreläsningarna
Extra övning:
Två gamla tentafrågor.
Seminarier
- Seminarie 1: Systemanropen exec, exit och wait - Läs igenom "Starta en process" under "Tråd- och processhantering i Pintos" i Pintos Wiki innan, samt del B av lab 3 Processhantering
-
Seminarie 2: Övningar deadlocks och synkronisering:
Inför seminariet, försök synkronisera koden nedan
Ett osynkroniserat program för att simulera filosofer (version av koden för användning i Progvis)
OBS! Frågor som dyker upp före seminariet mailas till kursledaren.
OBS! Det går också bra ta upp frågor för diskussion på labtid.
The Deadlock Empire
I The Deadlock Empire tar du rollen som schemaläggare med målet att överbevisa felaktigt synkroniserad kod som just felaktig. Koden är given - du bestämmer var trådbyten ska ske.
Litteratur
-
Kursbok 1: "Operating System Concepts" (Wileys), samma som i TDIU11.
Kapitel relevanta för kursen: 2.3, 2.4 (systemanrop), 6 (synkronisering) och 7 (deadlock).
- Kursbok 2: Introduction to Concurrent Programming in C (gratis online, se information här)
Annan relevant läsning
-
You Don't Know Jack about Shared
Variables or Memory Models (Data races are evil.) by H.-J. Boehm and S. V. Adve (ACM Queue 2011)
Beskriver minnesmodeller på ett relativt lättbegripligt, men ändå formellt sätt. -
Design patterns for semaphores by Kenneth A. Reek
"Pass the Baton" and "I'll Do It For You" patterns for correct use of semaphores.
-
Process Synchronization with Readers and Writers Revisited Jalal Kawash
Much of what you want to know about readers-writers problem, including code examples.
- The Problem with Threads by Edward A. Lee IEEE Computer May 2006, pp. 33-42.
- Blog with several operating system articles.
- Semaphores are Surprisingly Versatile (Inledande förklaring av semaforen är bra, resterande är mer kuriosa.)
- Linux insides. For the interested (tip from experienced assistant, not yet reviewed by me).
- Diskussion om olika minnesmodeller
Sidansvarig: Filip Strömbäck
Senast uppdaterad: 2026-03-12
