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: 25-10-2018


Varighed: 1 semester

Version: Arkiv

Kommentar

15016901(tidligere UVA) er identisk med denne kursusbeskrivelse.

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

    Se BlackBoard for pensumlister og yderligere litteraturhenvisninger.

    Eksamensbestemmelser

    Forudsætningsprøve a)

    Tidsmæssig placering

    Forår

    Udprøvninger

    Et antal 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

    Forudsætninger

    Type Forudsætningsnavn Forudsætningsfag
    Udprøve N330031112, Et antal programmeringsopgaver N330031101, DM510: Operativsystemer

    Udprøvninger

    Mundtlig eksamen

    EKA

    N330031102

    Censur

    Ekstern prøve

    Bedømmelse

    7-trinsskala

    Identifikation

    Studiekort

    Sprog

    Følger, som udgangspunkt, undervisningssprog

    Hjælpemidler

    Oplyses på kurset

    ECTS-point

    10

    Uddybende information

    Eksamensformen ved reeksamen kan være en anden end eksamensformen ved den ordinære eksamen.

    Vejledende antal undervisningstimer

    60 timer per semester

    Undervisningsform

    Undervisningsaktiviteter udmønter sig i en anslået vejledende fordeling af arbejdsindsatsen hos en gennemsnitsstuderende på følgende måde:

    • Introfase (forelæsning, holdtimer) - Antal timer: 36
    • Træningsfase: Antal timer: 24

     - Aktiviteter i studiefasen:

    • Anvendelse af den tilegnede viden i projekter.

    Ansvarlig underviser

    Navn E-mail Institut
    Jacob Aae Mikkelsen jamik@imada.sdu.dk

    Skemaoplysninger

    Administrationsenhed

    Institut for Matematik og Datalogi (datalogi)

    Team hos Uddannelsesjura & Registratur

    NAT

    Udbudssteder

    Odense

    Anbefalede studieforløb