MENY
Dette er studietilbudet for studieår 2018-2019. 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. Sikrehet i operativsystemer.

Kurset inkluderer programmeringsoppgaver som fokuserer på hovedkonseptene i kurset, for eksempel samtidighet, parallellisme og synkroniseringsteknikker, og verktøy for å analysere og feilsøke ulike aspekter ved slike applikasjoner. I sluttprosjektet skal studentgrupper utforme et større system ved hjelp av teknikkene som er dekket av kurset.

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 en stor 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 Jayarama 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.

Go Systems Programming. Mihalis Tsoukalos

Laboratorieoppgavene og programmeringsprosjektene blir publisert på Github.


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

Sist oppdatert: 18.10.2018