DM510: Operativsystemer (10 ECTS)

STADS: 15001001

Niveau
Bachelorkursus

Undervisningsperiode
Kurset er placeret i forårssemesteret.
3. og 4. kvartal.

Ansvarlige undervisere
Email: daniel@imada.sdu.dk

Skemaoplysninger
Hold Type Dag Tidsrum Lokale Uger Kommentar
Fælles I Mandag 12-14 U27A 05-06, 08-11, 16, 18-21
Fælles I Mandag 12-14 U27A 05-06
Fælles I Mandag 12-14 U27A 05-06
Fælles I Mandag 12-14 U27A 05-06
Fælles I Mandag 12-14 U27A 05-06
Fælles I Mandag 12-14 U27A 05-06
Fælles I Mandag 12-14 U27A 05-06
Fælles I Mandag 12-14 U27A 05-06
Fælles I Mandag 12-14 U27A 08-11
Fælles I Mandag 12-14 U27A 08-11
Fælles I Mandag 12-14 U27A 08-11
Fælles I Mandag 12-14 U27A 08-11
Fælles I Mandag 12-14 U27A 08-11
Fælles I Mandag 12-14 U27A 08-11
Fælles I Mandag 12-14 U27A 08-11
Fælles I Mandag 12-14 U27A 16
Fælles I Mandag 12-14 U27A 16
Fælles I Mandag 12-14 U27A 16
Fælles I Mandag 12-14 U27A 16
Fælles I Mandag 12-14 U27A 16
Fælles I Mandag 12-14 U27A 16
Fælles I Mandag 12-14 U27A 16
Fælles I Mandag 12-14 U27A 18-21
Fælles I Mandag 12-14 U27A 18-21
Fælles I Mandag 12-14 U27A 18-21
Fælles I Mandag 12-14 U27A 18-21
Fælles I Mandag 12-14 U27A 18-21
Fælles I Mandag 12-14 U27A 18-21
Fælles I Mandag 12-14 U27A 18-21
Fælles I Onsdag 14-16 U24 15
Fælles I Onsdag 14-16 U24 15
Fælles I Onsdag 14-16 U24 15
Fælles I Onsdag 14-16 U24 15
Fælles I Onsdag 14-16 U24 15
Fælles I Onsdag 14-16 U24 15
Fælles I Onsdag 14-16 U24 15
Fælles I Onsdag 14-16 U24 15, 21
Fælles I Onsdag 14-16 U24 21
Fælles I Onsdag 14-16 U24 21
Fælles I Onsdag 14-16 U24 21
Fælles I Onsdag 14-16 U24 21
Fælles I Onsdag 14-16 U24 21
Fælles I Onsdag 14-16 U24 21
Fælles I Onsdag 14-16 U24 21
Fælles I Torsdag 12-14 U27A 05-06
Fælles I Torsdag 12-14 U27A 05-06
Fælles I Torsdag 12-14 U27A 05-06
Fælles I Torsdag 12-14 U27A 05-06
Fælles I Torsdag 12-14 U27A 05-06
Fælles I Torsdag 12-14 U27A 05-06, 08, 15, 18
Fælles I Torsdag 12-14 U27A 05-06
Fælles I Torsdag 12-14 U27A 05-06
Fælles I Torsdag 12-14 U27A 08
Fælles I Torsdag 12-14 U27A 08
Fælles I Torsdag 12-14 U27A 08
Fælles I Torsdag 12-14 U27A 08
Fælles I Torsdag 12-14 U27A 08
Fælles I Torsdag 12-14 U27A 08
Fælles I Torsdag 12-14 U27A 08
Fælles I Torsdag 12-14 U27A 15
Fælles I Torsdag 12-14 U27A 15
Fælles I Torsdag 12-14 U27A 15
Fælles I Torsdag 12-14 U27A 15
Fælles I Torsdag 12-14 U27A 15
Fælles I Torsdag 12-14 U27A 15
Fælles I Torsdag 12-14 U27A 15
Fælles I Torsdag 12-14 U27A 18
Fælles I Torsdag 12-14 U27A 18
Fælles I Torsdag 12-14 U27A 18
Fælles I Torsdag 12-14 U27A 18
Fælles I Torsdag 12-14 U27A 18
Fælles I Torsdag 12-14 U27A 18
Fælles I Torsdag 12-14 U27A 18
S1 TE Onsdag 14-16 U24 06-11
S1 TE Onsdag 14-16 U24 06-11, 16, 18-20, 22
S1 TE Onsdag 14-16 U24 06-11
S1 TE Onsdag 14-16 U24 06-11
S1 TE Onsdag 14-16 U24 06-11
S1 TE Onsdag 14-16 U24 06-11
S1 TE Onsdag 14-16 U24 06-11
S1 TE Onsdag 14-16 U24 06-11
S1 TE Onsdag 14-16 U24 16
S1 TE Onsdag 14-16 U24 16
S1 TE Onsdag 14-16 U24 16
S1 TE Onsdag 14-16 U24 16
S1 TE Onsdag 14-16 U24 16
S1 TE Onsdag 14-16 U24 16
S1 TE Onsdag 14-16 U24 16
S1 TE Onsdag 14-16 U24 18-20
S1 TE Onsdag 14-16 U24 18-20
S1 TE Onsdag 14-16 U24 18-20
S1 TE Onsdag 14-16 U24 18-20
S1 TE Onsdag 14-16 U24 18-20
S1 TE Onsdag 14-16 U24 18-20
S1 TE Onsdag 14-16 U24 18-20
S1 TE Onsdag 14-16 U24 22
S1 TE Onsdag 14-16 U24 22
S1 TE Onsdag 14-16 U24 22
S1 TE Onsdag 14-16 U24 22
S1 TE Onsdag 14-16 U24 22
S1 TE Onsdag 14-16 U24 22
S1 TE Onsdag 14-16 U24 22
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal. 3. + 4. kvartal.

Indgangskrav:
Ingen

Faglige forudsætninger:
Stoffet fra DM506 Maskinarkitektur skal være kendt.

Kursusintroduktion
At give de studerende viden om strukturering af computersystemer, om sammenspillet mellem hardware og software og operativsystemers rolle heri, og om de ressource-abstraktioner som et operativsystem tilbyder.

Kompetencer
De studerende vil opnå detaljeret indsigt i operativsystemer og vil kunne anvende denne indsigt til
  • Valg og implementering af operativsystemer

  • Valg og implementering af skeduleringsalgoritmer

  • Valg og implementering af sikkerhedsmekanismer

  • Valg og implementering af filsystemer

  • Valg og implementering af processkommunikations metoder

  • Programmering i C – inklusive programmering på operativsystem niveau

Forventet læringsudbytte
Efter kurset forventes den studerende at kunne:

• Beskrive forskellige metoder og arkitekturer til at realisere operativsystemer, samt beskrive de fundamentale abstraktioner som et operativsystem tilbyder.
• Beskrive hvordan multiple kontrol-flows kan blive realiseret, diskutere problemer relateret til concurrency, og beskrive hvordan synkronisation og kommunikation mellem kontrol-flows kan opnås.
• Diskutere metoder for schedulering af CPU, disk og page-replacement.
• Beskrive hvordan hukommelse kan gøres virtuel, og hvordan den kan håndteres som ressource.
• Beskrive filsystembegrebet, mulige implementationer heraf og diskutere hvordan ekstern hukommelse kan tilknyttes et computersystem.
• Beskrive samspillet mellem systemprogrammel, operativsystemkerner og hardware.
• Beskrive de to hovedprincipper for design af distribuerede operativsystemer, og beskrive netværksbegrebet og den lagdelte tilgang til at realisere netværksprotokoller.
• Beskrive sikkerhedsbegrebet i operativsystemer, diskutere eksisterende løsninger, og beskrive sikkerhedsproblemer som virus, orm, trojansk hest og buffer overflow.
• Implementere systemprogrammel under brug af moderne operativsystemabstraktioner.
• Anvende basale operativsystemabstraktioner i netværksprogrammering.
• Programmere i sproget C.

Efter programmeringsprojekterne forventes den studerende at kunne:

• Tilføje et systemkald til et Linux-operativsystem.
• Implementere et kernemodul i et Linux operativsystem.
• Implementere organisationslaget i et filsystem.
• Skrive en let læselig og velstruktureret rapport.

Emneoversigt
Struktur af operativsystemer, systemkald, interrupts, processer, multi-threading, CPU schedulering, kritisk sektion, synkroniseringsmekanismer, klassiske synkroniseringsproblemer, atomiske transaktioner, deadlock handling, swapping, allokering af hukommelse, paging, segmentering, demand paging, page replacement, frame allocation, filer, mapper, mounting, håndtering af fri hukommelse, diskstruktur, disk-schedulering, RAID, sikkerhed og sikkerhedsproblemer, access-matricer, kryptering, autentifikation, distribuerede operativsystemer, netværk, distribuerede filsystemer, programmering i C

Litteratur
  • Meddeles ved kursets start..


Pensum
Se pensumbeskrivelse.

Kursets hjemmeside
Dette kursus benytter e-learn (blackboard).

Forudsætningsprøver
Ingen

Eksamen- og censurform:
a) Et antal programmeringsopgaver (intern censur ved én underviser. Bestået/ikke bestået) som tilsammen tæller 4 ECTS ud af kursets samlede omfang på 10 ECTS. Opgaverne skal være bestået for at man kan deltage i mundtlig eksamen.
b) Mundtlig eksamen, 20 min. uden forberedelsestid. Ekstern censur. Karakter efter 7-trinsskalaen.

Reeksamen efter 2. kvartal.

Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.

Forelæsninger (36 timer), eksaminatorier (24 timer) og projektarbejde.
Aktiviteter i studiefasen

Sprog
Dette kursus undervises på dansk eller engelsk, afhængigt af underviseren. Dog altid på Engelsk ved deltagelse af internationale studerende.

Kursustilmelding
Se tilmeldingsfrister.

Pris for åben uddannelse
Se priser for enkeltkurser.

Denne kursusbeskrivelse var gyldig fra 1. februar 2009 til 31. august 2012.