TDIU16 Process- och operativsystemprogrammering
Föreläsningar
Föreläsningar på distans
På grund av den nuvarande situationen är all undervisning distansförlagd. Föreläsningarna kommer därmed att hållas via Zoom (en videokonferensmjukvara) tills vidare. Se därför till att du har tillgång till en dator som kan spela ljud (ett headset rekommenderas). Om du vill ha möjlighet att ställa frågor muntligt behöver du också ha en mikrofon. Se också till att du befinner dig någonstans utan bakgrundsljud.
Under föreläsningar kommer era mikrofoner och kameror inte att vara på som standard, dels för att minska bakgrundsljud och dels för att spara på bandbredd. Har ni frågor under föreläsningen finns en knapp "Raise Hand" om man klickar på "Participants" i botten av Zoom-fönstret. Klickar ni på den knappen kommer jag att se det, och ni får chans att fråga så snart som möjligt. Det finns också en chatt ifall ni hellre vill skriva er fråga där. Om ni har skrivit en fråga där, klicka sedan på "Raise Hand"-knappen så att jag inte råkar missa frågan. Använd dock inte Zoom-chatten för annat under föreläsningar. Det är mycket distraherande för alla. Är det någon som inte beter sig på ett lämpligt sätt kan denna bli borttagen från föreläsningsrummet.
Se till att ladda ner och installera Zoom innan första föreläsningen för att undvika strul. Mer instruktioner finns på LiU:s supporthemsida. Zoom finns tillgängligt för Windows, Mac OS, Linux (Debian och Ubuntu bland annat), Android och IOS med flera.
Var sker föreläsningar och seminarier?
- Föreläsningarna hålls i Zoom: 664 1722 9986 (Har du problem, se till att du är inloggad med ditt LiU-konto (via SSO, domän liu-se)).
- Seminarierna hålls i samma Teams som laborationerna. Anslut till gemensamt möte i kanalen General.
Översiktlig plan
- Föreläsning 0: Kursintroduktion, introduktion till C
- Föreläsning 1: Pintos, systemanrop i Pintos
- Föreläsning 2: Semaforen
- 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 labben Processhantering
- Föreläsning 3: Synkronisering: Lås och conditions - Se nedan för de kodexempel som användes (gibberish, bank, sum) - Exempel i visualiseringsverktyget
- Föreläsning 4: Synkronisering: Hur implementeras lås? - Exempel i visualiseringsverktyget
- Föreläsning 5: Deadlocks - Exempel i visualiseringsverktyget
- Diverse kodexempel från föreläsningarna
-
Seminarie 2: Övningar deadlocks och synkronisering:
Ett osynkroniserat program för att simulera filosofer.
En Banker's algorithm räkneuppgift.
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. -
Extra övning:
Två gamla tentafrågor.
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)
Kapitel relevanta för kursen: 2.3, 2.4 (systemanrop), 6 (synkronisering) och 7 (deadlock).
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, Klas Arvidsson
Senast uppdaterad: 2021-05-14