DM510: Operativsystemer (10 ECTS)

STADS: 15016901

Niveau
Bachelorkursus

Undervisningsperiode
Kurset er placeret i forårssemesteret.

Ansvarlige undervisere
Email: daniel@imada.sdu.dk

Skemaoplysninger
Hold Type Dag Tidsrum Lokale Uger Kommentar
Fælles I Mandag 10-12 U154 6-7,10-13,16-21
Fælles I Tirsdag 10-12 U154 15
Fælles I Tirsdag 14-16 U154 15
Fælles I Torsdag 14-16 U154 6-7,10,12,15
Fælles I Torsdag 14-16 U155 17
H1 TE Tirsdag 10-12 U155 21
H1 TE Onsdag 12-14 U155 7,10-13,15-19
H1 TE Onsdag 12-14 U157 21
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal

Indgangskrav:
Ingen

Faglige forudsætninger:
Stoffet fra DM548 Computerarkitektur og systemprogrammering forudsættes 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.
  • Programmering i C på operativsystem niveau.

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 på operativsystemniveau

Litteratur
    Meddeles ved kursets start.


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

Forudsætningsprøver
Et antal programmeringsopgaver (intern bedømmelse ved underviser. Bestået/ikke bestået). Opgaverne skal være bestået for at man kan deltage i mundtlig eksamen. (15016912)

Eksamen- og censurform:
Mundtlig eksamen, 20 min. uden forberedelsestid. 7-trinsskala, ekstern censur. (15016902)

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

Introfase: forelæsninger (36 timer)

Træningsfase: 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 2015 til 31. januar 2017.