IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Operativsystemer og C 
Kursusnavn (engelsk):Operating Systems and C 
Semester:Efterår 2016 
Udbydes under:Bachelor i softwareudvikling (bswu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:57 
Maks. antal deltagere:70 
Formelle forudsætninger:
Læringsmål:Efter kurset skal du kunne:

• Redegøre for opbygningen af operativsystemer og deres rolle som ressourceadministrator af computere, samt beskrive de fundamentale abstraktioner som et operativsystem tilbyder.

• Beskrive samspillet mellem computeren, komponenterne i et moderne operativsystem og applikationsprogrammer.

• Beskrive virkemåden og samspillet af grundlæggende komponenter af et operativsystem, som CPU skedulering, lagersystem, filsystem og I/O.

• Programmere i sproget C, herunder tilføje et systemkald og implementere et simpelt kernemodul i et operativsystem.

• Anvende et operativsystems basale faciliteter (filsystem, shell, scripts) til at løse problemer, der ellers ville kræve programmering.

• Designe og implementere fler-trådede programmer i C, herunder mekanismer til håndtering af baglås.

• Beskrive metoder til multiprogrammering, skedulering, og synkronisering (semaforer, barrierer, låse, monitorer), samt argumentere for valg af samme. 
Fagligt indhold:• Operativsystemers opbygning. OS som virtuel maskine, og som resurseadministrator.
Systemkald, user mode og privileged mode, interrupts og traps.

• Processer og tråde, implementation af processer og tråde, process control blocks, processtilstande, schedulering, kommunikation mellem processer.

• Proceskoordinering, kritiske regioner og gensidig udelukkelse. Semaforer, barrierer, låse.

• Schedulering, scheduleringsalgoritmer, schedulering af tråde.

• Lageradministration, logiske og fysiske adresser, swapping, fragmentering, paging, segmentering. Virtuelt lager, paging og segmentering, pagetabel, segmenttabel, algoritmer til udskiftning af sider, spildopsamling (garbage collection).

• Filsystemer, komponenter i et filsystem, filtyper, filstruktur, filattributter, ataloger (directories), hardlinks/symlinks, fildeling, implementation af filsystem.

• Input/Output, I/O hardware, diske, organisering af data på en disk, kernens håndtering af I/O, polling, interrupts, DMA, buffering, caching, spooling, device drivers.

• Programmeing i C, pointers, allokering af hukommelse, systemkald, flertrådede programmer, debugging mm. 
Læringsaktiviteter:12 forelæsninger og 12 øvelsesgange

Forelæsningerne vil give den studerende indsigt i operativsystemers virkemåder og sætte den studerende i stand til at beskrive disse teoretisk og praktisk.
Øvelsestimer vil fortrinsvist bestå i at anvende C. Herunder at programmere, anvende operativsystemfaciliteter og systemkald samt diskutere implikationer ved forskellige metoder til opgaveløsning.

På kurset indleveres løbende 3 opgaver som tilsammen danner eksamensproduktet. I disse skal, udover design og implementering med C, redegøres og argumenteres for valg af metoder og teknikker benyttet til problemløsning.

Kurset holdes på dansk, men litteraturen er fortrinsvis på engelsk. 

Obligatoriske aktivititer:Der er ingen obligatoriske aktiviteter. Vær venlig KUN at ændre denne tekst når der er obligatoriske aktiviteter./
There are no mandatory activities. Please, change this text ONLY when there are mandatory activities. 
Eksamensform og -beskrivelse:D22: Aflevering med mundtlig eksamen suppleret af aflevering., (7-scale, external exam)

Skriftlige arbejder: Der udarbejdes tre opgaver i løbet af semesteret.
Under forudsætning af at opgaverne afleveres til den fastsatte del-deadline gives feedback på opgaverne.
Hvis opgaverne afleveres for sent gives ingen feedback.
De tre opgaver afleveres samlet i slutningen af semesteret som Exam assignment i LearnIT og indgår i den endelige eksamensbedømmelse.
Nærmere beskrivelse af de tre opgaver samt afleveringsfrister vil blive annonceret på kursussiden i LearnIT.

Varighed af eksamen: 20 minutter  

Litteratur udover forskningsartikler:• Kursets lærebog er: Abraham Silberschatz, Peter Baer Galvin, Greg Gagne: Operating System Concepts, 9th Edition, Wiley. International student version

• Til C programmering kræves ingen lærebog. Online materialer og tutorials fra www.-siderne oplyses under kurset. Hvis I ønsker en bog, kan følgende anbefales: Brian W. Kernighan, Dennis M. Ritchie: The C Programming Language, 2th Edition Prentice Hall.