DM510: Operativsystemer
Det Naturvidenskabelige Studienævn
Undervisningssprog: På dansk eller engelsk afhængigt af underviser, men engelsk ved internationale studerende
EKA: N330031112, N330031102
Censur: Intern prøve, en bedømmer, Ekstern prøve
Bedømmelse: Bestået/Ikke bestået, 7-trinsskala
Udbudssteder: Odense
Udbudsterminer: Forår
Niveau: Bachelor
STADS ID (UVA): N330031101
ECTS-point: 10
Godkendelsesdato: 01-11-2022
Varighed: 1 semester
Version: Arkiv
Indgangskrav
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 funktionalitet til kernen 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
Eksamensbestemmelser
Forudsætningsprøve a)
Tidsmæssig placering
Forår
Udprøvninger
Programmeringsopgaver
EKA
N330031112
Censur
Intern prøve, en bedømmer
Bedømmelse
Bestået/Ikke bestået
Identifikation
Fulde navn og SDU brugernavn
Sprog
Følger, som udgangspunkt, undervisningssprog
Hjælpemidler
Oplyses på kurset
ECTS-point
0
Uddybende information
Forudsætningsprøven er en forudsætning for deltagelse i eksamenselement a)
Eksamenselement a)
Tidsmæssig placering
Juni
Udprøvninger
Mundtlig eksamen
EKA
N330031102
Censur
Ekstern prøve
Bedømmelse
7-trinsskala
Identifikation
Studiekort
Sprog
Følger, som udgangspunkt, undervisningssprog
Varighed
25 minutter
Hjælpemidler
Oplyses på kurset
ECTS-point
10
Vejledende antal undervisningstimer
Undervisningsform
Undervisningsaktiviteter udmønter sig i en anslået vejledende fordeling af arbejdsindsatsen hos en gennemsnitsstuderende på følgende måde:
- Introfase (forelæsning) - Antal timer: 36
- Træningsfase: Antal timer: 24
Aktiviteter i studiefasen:
- Anvendelse af den tilegnede viden i projekter.
Ansvarlig underviser
Navn | Institut | |
---|---|---|
Jakob Lykke Andersen | jlandersen@imada.sdu.dk | Institut for Matematik og Datalogi |
Kim Skak Larsen | kslarsen@imada.sdu.dk | Institut for Matematik og Datalogi |
Yderligere undervisere
Skemaoplysninger
Administrationsenhed
Team hos Uddannelsesjura & Registratur
Udbudssteder
Anbefalede studieforløb
Overgangsordninger
Overgangsordninger beskriver, hvordan et kursus erstatter et andet kursus, når der ændres i et studieforløb.
Hvis der er lavet en overgangsordning for et kursus vil den fremgå af oversigten.
Se overgangsordninger for alle kurser på Det Naturvidenskabelige Fakultet.
Se overgangsordninger for alle kurser på Det Naturvidenskabelige Fakultet.