Visa grundläggande kunskaper om begrepp, problemställningar och metoder för processprogrammering och operativsystem. (LAB1+TEN1)
Identifiera problem relaterade till samtidiga processer, och utforma lösningar till dessa problem. (TEN1)
Beskriva olika krav, funktionalitet, och arkitekturer för operativsystem. (TEN1)
Sätta sig in i ett existerande operativsystem och utforma förbättringar enligt ställda krav. (LAB1)
Implementera, testa och systematiskt felsöka komplex systemmjukvara. (LAB1)
Kursinnehåll
Kursen består av två delmoment: processprogrammering och operativsystem. Processprogrammeringsdelen innehåller: processbegreppet, ömsesidig uteslutning, mekanismer för synkronisering, interaktion mellan processer och deadlocks. Operativsystemsdelen innehåller: systemanrop, processer och trådar, schemaläggning, minneshantering, filsystem, samt designprinciper för olika typer av operativsystem såsom molnsystem, mobila enheter, och inbyggda system.
Förutsättningar
Programmering i C eller C++. Datastrukturer och algoritmer. Datorteknik. Distribuerad versionshantering (t.ex. git).