Principper for Samtidighed og Styresystemer (F2008)

[ forelæsningsplan | undervisere | litteratur | miniprojekt | eksamen | links ]

Forelæsningsplan

Forelæsninger afholdes i auditorium 0.1.95 kl. 14:30-16:15.

#DatoEmne
0 05 FEB Kursusintroduktion
Introduktion til styresystemer
Links: [slides] [opgaver]
Læs: [English, Kap. 1-2] [Love, Kap. 1]
1 12 FEB Filer og Filsystemer
Links: [slides](opdateret) [opgaver]
Læs: [English, Kap. 3] [Love, Kap. 12]
2 19 FEB Filsystemer (udviklerperspektiv) samt processer og tråde
Links: [slides] [opgaver]
Læs: [English, Kap. 4] [Love, Kap. 3]
3 26 FEB Processer, tråde og gensidig udelukkelse
Links: [slides] [opgaver]
Læs: [English, Kap. 4] [Love, Kap. 3]
04 MAR Forelæsning og øvelser aflyst
4 11 MAR Deadlocks og deadlockhåndtering
Links: [slides] [opgaver]
Læs: [English, Kap. 4]
18 MAR Forelæsning og øvelser aflyst
5 25 MAR Memory management
Links: [slides] [opgaver]
Læs: [English, Kap. 5,6.1] [Love, Kap. 11,14]
6 01 APR Bemærk: 10:00-10:45 Memory management
11:00-11:55 og 14:30-15:55 The Great OS Shoot-Out
7 08 APR Hardwareunderstøttelse
Links: [slides] [opgaver] [popuptest]
Læs: [English, Kap. 6]
8 15 APR Interrupts og styresystemkernen
Links: [slides] [opgaver]
Læs: [English, Kap. 7], [Love, Kap. 4,6]
9 22 APR Interrupts og styresystemkernen (afsluttes). Device drivere
Links: [slides] [opgaver]
Læs: [English, Kap. 8], [Love, Kap. 7,12,13]
10 29 APR Device drivere (afsluttes)
Links: [opgaver]
Læs: [English, Kap. 8], [Love, Kap. 7,12,13]
Coccinelle: Automated Collateral Evolution in the Linux Kernel
11 06 MAJ Opsummering, mini-projekter, eksamen
Bemærk: Ingen opgaveregning. Forelæsning starter kl. 14:30.
Links: [slides]
12 08 MAJ Mini-projekt
13 13 MAJ Mini-projekt
14 15 MAJ Mini-projekt

Undervisere

Litteratur

Miniprojekt

De sidste tre opgaveregnings-/forelæsnings-moduler bruges til at lave et miniprojekt. Miniprojektrapporten skal afleveres

fredag den 30. maj 2008 kl. 13:00.

Projektbeskrivelser mm. kan findes her.

Liste over studerende der har afleveret miniprojekt kan findes her.

Eksamen

Eksamen bliver afholdt som en mundtlig eksamen med ekstern censur efter 7-trinsskalaen.

Pensum

Hovedspørgsmål

  1. Processer og tråde: begreber og implementation.

    Proces, procesbillede, tilstandsmodeller, proceskontrolblok, forskelle på tråde og processer.

  2. Multithreading.

    Anvendelse, realisering, fordlee og ulemper, anvendelsesområder, implementation af multi-threading (kerneniveau vs. brugerniveau), proces- og tråd-kontrolblok, trådskift.

  3. Semaforer.

    Anvendelse, realisering, mutex, race condition, definition og brug af semaforer, producer/consumer, implementation af semaforer, hardwareunderstøttelse (test-and-set, swap, exchange), udsultning (starvation), deadlocks, priority inversion, dining philosophers.

  4. Deadlockhåndtering.

    Definition af deadlock, nødvendige og tilstrækkelige betingerlser for deadlock, deadlock prevention, sikre tilstande, deadlock avoidance, deadlock detection and recovery, banker's algorithm.

  5. Lageradministration i primær lager.

    Fast inddeling, dynamisk inddeling, virtuelt lager, demand paging, fragmentering (intern/ekstern), shared memory, copy-on-write, memory mapped I/O.

  6. Virtuelt lager, adresseoversættelse, sidetabeller.

    Adresserum, paging, adresseoversættelse (logisk til fysisk), pagefaults og håndtering af samme, sidetabeller (et- og to-niveau), inverteret sidetabel, MMU.

  7. Virtualt lager, sideerstatning og rammeallokering.

    Paging og sidetabeller, sideerstatning (hvad og hvornår), sideerstatningsalgoritmer (OPT, LRU, FIFO, Clock) samt fordele og ulemper, fast-ramme allokering, dynamisk ramme-allokering, working-set.

  8. Filsystemer.

    Navnerum, realisering af filer og mapper, operationer på filer, metadata, åbning af filer, file descriptors, kontinuert allokering, kædet allokering, mapped allokering, indekseret allokering, disk-layout for FAT og ext2 samt fordele og ulemper.

  9. Interrupts og styresystemkernen.

    Definition og forklaring (exceptions, traps, faults), realisering af systemkald, modeskift, kontekstskift, interruptstyret I/O (vs. anden I/O).

  10. Device drivere.

    Definition og beskrivelse, grænseflader (kerne vs. device driver), typer af device drivere, implementation af device drivere, I/O manager og I/O schedulering (for blok devices: FIFO, CBF, SCAN, C-SCAN), collateral evolutions og Coccinelle.

  11. Miniprojekt.

Links