Emne
Operativsystemer og systemprogrammering (DAT320)
Emnet gir en innføring i operativsystemer, hvordan implementere dem og hvordan programmere effektivt mot dem, spesielt med fokus på trådprogrammering og synkronisering mellom tråder i et program.
Dette er emnebeskrivelsen for studieåret 2019-2020. Merk at det kan komme endringer.
Semesters
Fakta
Emnekode
DAT320
Vekting (stp)
10
Semester undervisningsstart
Høst
Undervisningsspråk
Engelsk
Antall semestre
1
Vurderingssemester
Høst
Innhold
Emnet gir en innføring i operativsystemarkitekturer og mekanismer for ressurshåndtering i datasystemer. Konkrete tema som dekkes: Kjerneabstraksjonen, prosesser, programmeringsgrensesnitt, 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. Sikkerhet 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 eller deler av et operativsystem ved hjelp av teknikkene som er dekket av kurset.
Programmeringsspråk som benyttes i dette emnet er primært Go (golang).
Læringsutbytte
Kunnskap:
- Vite hvordan operativsystemer fungerer
- Vite hvordan man kan beskytte operativsystemet mot ondsinnet programvare
Ferdigheter:
- Være i stand til å programmere mot operativsystemer
- Være i stand til å programmere deler av et operativsystem
- 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.
Forkunnskapskrav
Anbefalte forkunnskaper
Eksamen / vurdering
Vurderingsform | Vekting | Varighet | Karakter | Hjelpemiddel | Exam system | Withdrawal deadline | Exam date |
---|---|---|---|---|---|---|---|
Skriftlig eksamen | 3/5 | 4 Timer | Bokstavkarakterer | Ingen hjelpemidler tillatt | Inspera assessment | — | — |
Programmeringsprosjekt | 2/5 | Bokstavkarakterer | — | — | — |
Prosjektoppgaven består av en stor programmeringsoppgave. Prosjektoppgaven utføres i gruppe. Karakteren for prosjektoppgaven settes baseres på innlevert programkode og individuell muntlig gjennomgang. Begge deler må gjennomføres før endelig karakter fastsettes. Gruppemedlemmene kan få ulik karakter basert på den muntlige gjennomgangen.
Hvis en student ikke består prosjektoppgaven, må denne tas om igjen neste gang emnet undervises.
Vilkår for å gå opp til eksamen/vurdering
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)
Emneansvarlig:
Nejm SaadallahFaglærer:
Nejm SaadallahInstituttleder:
Tom RyenArbeidsformer
Overlapping
Emne | Reduksjon (SP) |
---|---|
Operativsystemer (BID200_1) , Operativsystemer og systemprogrammering (DAT320_1) | 5 |
Åpent for
Bachelornivå på Det teknisk-naturvitenskapelige fakultetet.
Masternivå på Det teknisk-naturvitenskapelige fakultetet.
Emneevaluering
Litteratur
Operating Systems: Three Easy Pieces. Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau.
Go Systems Programming. Mihalis Tsoukalos
Laboratorieoppgavene og programmeringsprosjektene som blir publisert på Github.