MENY
Dette er studietilbudet for studieår 2017-2018. Endringer kan komme.


Emnet gir en innføring i operativsystemer, og hvordan programmere effektivt mot dem, spesielt med fokus på trådprogrammering og synkronisering mellom tråder i et program.

Læringsutbytte

Kunnskap - Vite hvordan operativsystemer fungerer - Vite hvordan man kan beskytte operativsystemet mot ondsinnet programvare

Ferdighet - Være i stand til å programmere mot operativsystemer - Være i stand til å programmere enkle mekanismer for ressurshåndtering - Kunne programmere med tråder - Kunne utnytte virtualisering for ressursstyring

Generell kompetanse - Kunne viktige generelle prinsipper for ressurshåndtering for datasystemer.

Innhold

Emnet gir en innføring i operativsystem arkitekturer og mekanismer for ressurshåndtering i datasystemer. Konkrete tema som dekkes: Kjerneabstraksjonen, prosesser, programmeringsgrensesnittet, tråder, samtidighet og parallelitet, synkronisert tilgang til delte objekter, multi-objekt synkronisering og processor fordelingsalgoritmer. Minnehåndtering: addresseoversetting, caching og virtuelt minne. Varig lagring: filsystemer og pålitelig lagring gjennom transaksjonsbasert filsystemkonsistens.

Emnet omfatter flere programmeringsoppgaver gjennom semesteret som dekker noen av temaene nevnt ovenfor, men med spesielt fokus på trådprogrammering og synkronisering mellom tråder.

Programmeringsspråk som benyttes i dette emnet er primært Go (golang).

Forkunnskapskrav

Ingen.

Anbefalte forkunnskaper

DAT100 Objektorientert programmering, DAT200 Algoritmer og datastrukturer, DAT230 Kommunikasjonsteknologi 1, ELE210 Datamaskinarkitektur

Eksamen/vurdering

Skriftlig eksamen og programmeringsprosjekt
Vekting Varighet Karakter Hjelpemiddel
Skriftlig eksamen3/54 timerA - FIngen hjelpemidler tillatt
Programmeringsprosjekt2/5 A - F
Prosjektoppgave bestående av to programmeringsoppgaver. Prosjektoppgaven utføres i gruppe. Karakteren for prosjektoppgaven settes baseres på innlevert programkode og individuell muntlig gjennomgang (labeksamen) av innlevert programkode. Det gis kun en samlet karakter for disse to oppgavene, men gruppemedlemene kan få ulik karakter basert på den muntlige gjennomgangen.

Vilkår for å gå opp til eksamen/vurdering

Obligatorisk laboratoriearbeid

Fem obligatoriske individuelle laboppgaver (programmeringsoppgaver). Godkjent/ikke godkjent. Alle programmeringsoppgavene må godkjennes for å gå opp til skriftlig- og lab-eksamen. Godkjenning skjer ved innlevering via Autograder systemet for automatisk evaluering, samt etterfølgende godkjenning på lab.

Gjennomføring av obligatorisk lab skal gjøres til de tider og i de grupper som er oppsatt. Fravær på grunn av sykdom eller av andre årsaker skal snarest mulig kommuniseres til laboratorie- eller fagansvarlig. Det kan ikke påregnes å få gjennomføre lab utenom oppsatt tid hvis dette ikke er kommunisert og ny avtale gjort.

Konsekvens av at du ikke har fått godkjent laboratoriearbeid er at du ikke får gå opp til eksamen i faget.

Fagperson(er)

Faglærer
Vinay J. Setty
Emneansvarlig
Hein Meling
Instituttleder
Tom Ryen

Arbeidsformer

4 timer forelesninger og 2 timer veiledede laboratorieøvinger. Labøvingene krever en god del egeninnsats utover veiledede labøvinger.

Overlapping

Emne Reduksjon (SP)
Operativsystemer (BID200_1) 5

Åpent for

Bachelornivå på Det teknisk-naturvitenskapelige fakultetet.

Masternivå på Det teknisk-naturvitenskapelige fakultetet.

Emneevaluering

Skjer vanligvis ved skjema og/eller samtaler etter gjeldende retningslinjer.

Litteratur

Operating Systems: Principles and Practice. Second Edition. Thomas Anderson og Michael Dahlin.

Laboratorieoppgavene og programmeringsprosjektene blir publisert på Github.



Dette er studietilbudet for studieår 2017-2018. Endringer kan komme.

Sist oppdatert: 21.09.2017