Utförligt förklara och resonera kring hur resurser fördelas i ett operativsystem. Detta innefattar hur ett operativsystem kan hantera minne, filsystem, processer och trådar.
Utförligt förklara och resonera kring hur kommunikation sker mellan ett operativsystem och hårdvara. Detta innefattar även hur ett operativsystem förmedlar data mellan mjuk- och hårdvara.
2. Färdighet och förmåga
Implementera grundläggande funktionalitet i ett operativsystem för resursfördelning och ett grundläggande filsystem. Detta innefattar system för minne och exekveringsresurser. Funktionaliteten som implementeras kan vara i en riktig eller simulerad kärna.
Självständigt välja lämpliga algoritmer och datastrukturer för att implementera grundläggande funktionalitet i ett operativsystem.
Självständigt och kritiskt kunna utvärdera och analysera lösningar.
Kursinnehåll
Eftersom operativsystem utgör gränssnittet mellan mjukvara och hårdvara krävs god förståelse kring hur gränssnittet fungerar och hur det bör hanteras av mjukvaruutvecklare. Detta berör alla system, så som traditionella datorer och mobila inbyggda system. I grunden hanterar operativsystemet fördelningen av datorns resurser och det är därav viktigt att en mjukvaruutvecklare har goda kunskaper kring hur operativsystemet fungerar samt hur prestandan påverkas av fördelningen. Kursen ger även en introduktion till virtuella maskiner samt distribuerade system.
Filsystem
Minneshantering
Resursfördelning för processer och trådar
Hur deadlocks uppstår och förhindras
Synkroniseringsprimitiver för trådar och processer
Abstraktion av hårdvara
Orientering av säkerhetsaspekter i ett operativsystem.
Virtuella maskiner och moln
Distribuerade system
Förutsättningar
För tillträde till kursen krävs 12 avklarade hp i programmering samt 1,5 avklarade hp från algoritmer och datastrukturer.