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 Tirsdag 10-12 U156 6,8,10-12,14-19
Fælles I Torsdag 12-14 U156 5
Fælles I Torsdag 12-14 U53 6,12
Fælles I Torsdag 12-14 U17 15
Fælles I Fredag 12-14 U31 8,10
Fælles I Fredag 12-14 U8 9
Fælles I Fredag 12-14 U156 20
H1 TE Tirsdag 10-12 U156 20
H1 TE Onsdag 14-16 U146 17
H1 TE Fredag 12-14 U8 6-7,11-12,14-16,18-19
H1 TE Fredag 14-16 U17 9-10
H2 TE Tirsdag 12-14 U155 6
H2 TE Onsdag 12-14 U156 7,10-12,14-20
H2 TE Fredag 16-18 U17 9
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal.

Indgangskrav:
Ingen

Faglige forudsætninger:
Studerende, der følger kurset, forventes at:
  • Stoffet fra DM548 Computerarkitektur og systemprogrammering forudsættes kendt.


Formål
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.

Studerende vil få viden om faktiske operativsystemer, planlægnings-algoritmer, sikkerheds- og beskyttelses-mekanismer, filsystemer og proces-kommunikation. Studerende vil lære C-programmering på operativsystemsniveau.

Kurset giver tildels fagligt grundlag for kurset ‘oversætter-konstruktion

I forhold til uddannelsens kompetenceprofil har kurset eksplicit fokus på at:
  • Give kompetence til:
    • håndtere komplekse og udviklingsorienterede situationer i studie- og arbejdssammenhænge
    • identificere egne læringsbehov og strukturere egen læring i forskellige læringsmiljøer
  • Give færdigheder i:
    • træffe og begrunde fagligt relaterede beslutninger
    • beskrive, formulere og formidle problemstillinger og resultater til enten fagfæller og ikke-specialister eller samarbejdspartnere og brugere
  • Give viden om
    • principper for konstruktion af computerhardware og styresystemer, herunder distribuerede og parallelle systemer


Målbeskrivelse
For at opnå kursets formål er det læringsmålet for kurset, at den studerende demonstrerer evnen til at:
  • 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.
Indhold
Kurset indeholder følgende faglige hovedområder:
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, virtualisering, programmering i C på operativsystemniveau
 


Litteratur
    Meddeles ved kursets start.


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

Forudsætningsprøver
  1. Et antal programmeringsopgaver. Intern bedømmelse ved underviser. Bestået/ikke bestået. Opgaverne er en forudsætning for deltagelse i eksamenselement a). (15016912).
Eksamen- og censurform:
  1. Mundtlig eksamen. 7-trinsskala, ekstern censur. (10 ECTS). (15016902).
Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.
Introfase: 36 timer
Træningsfase: 24 timer, heraf:
 - Eksaminatorie: 24 timer

Aktiviteter i studiefasen
  • Anvendelse af den tilegnede viden i projekter.
Undervisningsform

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 2017 til 31. januar 2019.