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 2020-2021. Merk at det kan komme endringer.

Se emnebeskrivelse og eksamens-/vurderingsinfo for dette studieåret (2024-2025)

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 prosessor. 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 minnehåndtering, prosessor fordeling, 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) og noe C.

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

Objektorientert programmering (DAT100)

Anbefalte forkunnskaper

Grunnleggende programmering (DAT110)

Eksamen / vurdering

Vurderingsform Vekting Varighet Karakter Hjelpemiddel Exam system Withdrawal deadline Exam date
Hjemmeeksamen 1/1 4 Timer Bokstavkarakterer 17.11.2020


Prosjektoppgaven består av en større programmeringsoppgave. Prosjektoppgaven utføres i gruppe. Karakteren for prosjektoppgaven settes baseres på innlevert programkode og individuell muntlig fremføring. Begge deler må gjennomføres før endelig karakter fastsettes. Gruppemedlemmene kan få ulik karakter basert på den muntlige fremføringen.

Hvis en student ikke består prosjektoppgaven, må denne tas om igjen neste gang emnet undervises. 

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

Obligatorisk laboratoriearbeid, Lab.øving, Obligatorisk laboratoriearbeid

Fem obligatoriske individuelle laboppgaver (programmeringsoppgaver). Godkjent/ikke godkjent. Alle programmeringsoppgavene må godkjennes for å gå opp til skriftlig 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 emnet.

Fagperson(er)

Emneansvarlig:

Nejm Saadallah

Faglærer:

Nejm Saadallah

Instituttleder:

Tom Ryen

Arbeidsformer

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

Overlapping

Emne Reduksjon (SP)
Operativsystemer (BID200_1) , Operativsystemer og systemprogrammering (DAT320_1) 5

Åpent for

Batteri- og energiteknologi - bachelor i ingeniørfag Bygg - bachelor i ingeniørfag Datateknologi - bachelor i ingeniørfag Datateknologi - bachelor i ingeniørfag, deltid Elektroteknologi - bachelor i ingeniørfag, deltid Elektroteknologi - bachelor i ingeniørfag Energi- og petroleumsteknologi - bachelor i ingeniørfag Geovitenskap og energiressurser - bachelor i ingeniørfag Miljøteknologi - bachelor i ingeniørfag Maskin - bachelor i ingeniørfag Medisinsk teknologi - bachelor i ingeniørfag Medisinsk teknologi - bachelor i ingeniørfag - deltid
Enkeltemner ved Det teknisk-naturvitenskaplige fakultet
Industriell økonomi - master i teknologi/siv.ing., femårig Kybernetikk og robotteknologi - Master i teknologi/siv.ing. - 5 år
Utveksling ved Det teknisk- naturvitenskapelige fakultet

Emneevaluering

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

Litteratur

Obligatorisk litteratur1. Arpaci-Dusseau RH. Operating systems : three easy pieces. Version 1.00. (Arpaci-Dusseau AC, red.). Createrspace Independent Publishing Platform; 2018. http://pages.cs.wisc.edu/~remzi/OSTEP/2. Donovan AAA. The Go programming language. First printing, October 2015. (Kernighan BW, red.). Addison-Wesley; 2016.
Emnebeskrivelsen er hentet fra Felles studentsystem Versjon 1