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)
Designa, implementera och felsöka program med pekare och explicit minneshantering. (LAB1)
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 tre delmoment: lågnivåprogrammering, processprogrammering och operativsystem.
Lågnivåprogrammering innehåller: programmering i programspråket C med speciellt fokus på pekare och minneshantering.
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. Datastrukturer och algoritmer. Datorteknik. Distribuerad versionshantering (t.ex. git).