Operativsystem och processorienterad programmering
Kursplan, Grundnivå, 1DT096
- Kod
- 1DT096
- Utbildningsnivå
- Grundnivå
- Huvudområde(n) med fördjupning
- Datavetenskap G2F, Teknik G2F
- Betygsskala
- Med beröm godkänd (5), Icke utan beröm godkänd (4), Godkänd (3), Underkänd (U)
- Fastställd av
- Teknisk-naturvetenskapliga fakultetsnämnden, 30 augusti 2018
- Ansvarig institution
- Institutionen för informationsteknologi
Behörighetskrav
60 hp inklusive Datorarkitektur samt genomgången Imperativ och objektorienterad programmeringsmetodik.
Mål
Efter godkänd kurs ska studenten kunna:
- redogöra för hur operativsystem och runtimesystem växelverkar med maskin- och programvara.
- förklara och använda algoritmer och tekniker för schemaläggning och synkronisering i olika system.
- redogöra för hur synkroniseringstekniker kan användas för att hantera samtidighet i datorsystem, och bedöma deras lämplighet i olika situationer.
- redogöra för principerna för olika programmeringsmodeller av flerkärniga system, till exempel processer, trådar, meddelandeöverföring och "software transactional memory", och konstruera program som använder dessa.
- använda verktyg för versionshantering, felsökning och testning
- genomföra ett strukturerat projektarbete tillsammans med andra studenter samt, under processen, reflektera över och utveckla gruppens samarbete.
- planera ett projekt, inklusive användande av samarbetsverktyg, så att det kan genomföras inom givna ramar.
- presentera och diskutera kursens innehåll muntligt och skriftligt med för utbildningsnivån lämplig färdighet.
Innehåll
Programmeringsmodeller för flerkärniga system. Principer och tekniker för programmering och schemaläggning av parallella system av processer på enkelprocessorer, multicore och multiprocessorer. Problem som kan uppkomma i samband med samtidighet, t.ex. data race, dödläge, ömsesidigt uteslutande, Minneshantering i operativsystem och runtimesystem, inklusive minnesskydd, sidindelning och skräpsamling. Filsystem och grundläggande skyddsmekanismer. Praktisk användning av kunskaperna i genomförande av projektarbete i grupp. Programmering av parallella system i olika högnivåspråk, exempelvis Erlang, såväl som i olika lågnivåspråk, exempelvis C. Verktyg för dokumenthantering, versionshantering, debugging, testning, hantering av programbibliotek o dyl. Agila projektmetodiker.
Undervisning
Föreläsningar, laborationer, uppgifter och projektarbete i grupp.
Examination
Muntlig och skriftlig redovisning av uppgifter. Konstruktivt deltagande, muntlig och skriftlig redovisning av projekt. Skriftlig tentamen.
Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en enskild student examineras på annat sätt. Särskilda skäl kan t.ex. vara besked om särskilt pedagogiskt stöd från universitetets samordnare för studenter med funktionsnedsättning.
Övriga föreskrifter
Kan ej ingå i examen tillsammans med 1DT049 Processorienterad programmering eller 1DT044 Operativsystem I eller 1DT089 Operativsystem och multicoreprogrammering.