IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Operativsystemer og C 
Kursusnavn (engelsk):Operating Systems and C 
Semester:Efterår 2013 
Udbydes under:Bachelor i softwareudvikling (bswu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:http://www.itu.dk/courses/BOSC/E2013/ 
Min. antal deltagere:12 
Forventet antal deltagere:40 
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

Students will work with the programs in collaboration with a parallel course.

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

Obligatoriske aktivititer:I dette kursus skal de studerende gennemføre obligatoriske aktiviteter (fx deltagelse, opgaver, øvelser, fremlæggelser, produktioner), som skal opfyldes for at blive indstillet til eksamen og evt. for at kunne aflevere skriftlig arbejde til eksamen. Hvis aktiviteterne ikke gennemføres annulleres tilmeldingen til eksamen.

De obligatoriske aktiviteter (datoer annonceres på kursusbloggen/-hjemmesiden):
Afleverings/gennemførelse af obligatoriske aktiviteter inden xxx 
Eksamensform og -beskrivelse:D22: Aflevering med mundtlig eksamen suppleret af aflevering., 7-trins-skala, Ekstern censur

Skriftlige arbejder: De godkendte obligatoriske opgaver indgår i den endelige eksamensbedømmelse og skal afleveres ved som skriftlige arbejder den xxx

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. 
 
Undervisere
Følgende personer underviser på kurset:
Navn Stilling Undervisertype Indsats (%)
Kasper Støy Lektor(ITU) Kursusansvarlig 100
Simon Terkildsen Hjælpelærer(ITU) Hjælpelærer 0

Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
Ugedag Tidspunkt Forelæsning/Øvelser Sted Lokale
Torsdag 12.00-13.50 Øvelser ITU 2A52
Torsdag 14.00-15.50 Øvelser ITU 2A52

Eksamen afholdes på følgende tid og sted:
Eksamensdato Tidspunkt Eksamenstype Sted Lokale
2013-12-11 No later than 2PM Skriftlige arbejder ITU Student Affairs and Program (wing 3D)
2014-01-13 contact course manager Mundtlig eksamen ITU 2A20
2014-01-14 contact course manager Mundtlig eksamen ITU 2A20
2014-01-15 contact course manager Mundtlig eksamen ITU 2A20