Göm menyn

TDIU16 Process- och operativsystemprogrammering

Föreläsningar


Föreläsningar

Slides till föreläsningarna publiceras i samband med varje föreläsning.

Material Kapitel 9 ed. Kapitel 10 ed.
0 Kursintroduktion, introduktion till C - -
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 Synkronisering: Lås och conditions 6.2, 6.5, 6.7 6.2, 6.5, 7.1
4 Synkronisering: Deadlocks 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 och lös räkneuppgiften
    Ett osynkroniserat program för att simulera filosofer.
    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, "Operating System Concepts" (Wileys), samma som i TDIU11.

Kapitel relevanta för kursen: 2.3, 2.4 (systemanrop), 6 (synkronisering) och 7 (deadlock).

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
No description.
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).


Sidansvarig: Filip Strömbäck
Senast uppdaterad: 2024-04-22