DM510: Operativsystemer
Indgangskrav
Faglige forudsætninger
- 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 funktionalitet til kernen i et Linux-operativsystem.
- Implementere organisationslaget i et filsystem.
- Skrive en let læselig og velstruktureret rapport.
Indhold
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
Eksamensbestemmelser
Forudsætningsprøve a)
Tidsmæssig placering
Udprøvninger
Et antal programmeringsopgaver
EKA
Censur
Bedømmelse
Identifikation
Sprog
Hjælpemidler
Oplyses på kurset
ECTS-point
Uddybende information
Forudsætningsprøven er en forudsætning for deltagelse i eksamenselement a)
Eksamenselement a)
Tidsmæssig placering
Forudsætninger
Type | Forudsætningsnavn | Forudsætningsfag |
---|---|---|
Forudsætning ikke fundet |
Udprøvninger
Mundtlig eksamen
EKA
Censur
Bedømmelse
Identifikation
Sprog
Varighed
Hjælpemidler
Oplyses på kurset
ECTS-point
Uddybende information
Vejledende antal undervisningstimer
Undervisningsform
- Introfase (forelæsning, holdtimer) - Antal timer: 36
- Træningsfase: Antal timer: 24
Aktiviteter i studiefasen:
- Anvendelse af den tilegnede viden i projekter.