IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Operativsystemer og C 
Kursusnavn (engelsk):Operating Systems and C 
Semester:Efterår 2014 
Udbydes under:Bachelor i softwareudvikling (bswu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:12 
Forventet antal deltagere:57 
Maks. antal deltagere:65 
Formelle forudsætninger:----
Information om studiestruktur
Dette kursus indgår på femte semester på bacheloruddannelsen i softwareudvikling. 
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

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

Obligatoriske aktivititer:Der er ingen obligatoriske aktiviteter. 
Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern prøve

Skriftlige arbejder: Der udarbejdes tre opgaver i løbet af semesteret.
Under forudsætning af at opgaverne afleveres til den fastsatte deadline gives feedback på opgaverne.
Hvis opgaverne afleveres for sent gives ingen feedback.
De tre opgaver indgår i den endelige eksamensbedømmelse og skal afleveres samlet i LearnIT senest den 10. december kl. 14.
Nærmere beskrivelse af de tre opgaver samt afleveringsfrist 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.