Detta är inte senaste versionen av kurs-PM. Visa (senaste versionen).
Rubriker markerade med en asterisk ( * ) kommer från kursplan version HT 2021
Innehåll och lärandemål
Kursinnehåll
Kursen ger kunskaper om principerna för och hur man kan implementera
abstraktioner av hårdvara
virtualisering av resurser och schemaläggning av uppgifter; främst vad avser exekvering, minne och persistent lagring.
Ett operativsystems uppbyggnad studeras för att öka kunskapen om dessa begrepp och även ge färdighet i att på ett effektivt sätt använda den abstraktionsnivå som ett operativsystem erbjuder.
Lärandemål
Efter godkänd kurs ska studenten kunna
förklara hur flertrådade processer är strukturerade,
förklara hur ett operativsystem kan hantera flera processer samtidigt,
implementera delar av ett operativsystems funktioner.
För högre betyg ska studenten dessutom kunna
förklara hur virtualisering av minne implementeras,
förklara hur minneshantering implementeras,
förklara egenskaper för olika schemaläggningsalgoritmer,
förklara egenskaper för olika typer av processkommunikation,
förklara implementering av mer avancerade filsystem.
Läraktiviteter
Under kursens gång kommer vi ha ett antal schemalagda föreläsningstillfällen. Vid dessa tillfällen kommer vi ta upp frågor och diskutera vidare om de ämnen som tas upp i kursliteraturen och de förinspelade videoföreläsningarna.
Det finns även övningstimmar schemalagda där ni får hjälp med de programmeringsuppgifter som finns i kursen. Uppgifterna är inte obligatoriska och skall inte redovisas men frågor på tentamen kommer ha dessa uppgifter som utgångspunk.
Det finns tre projekt under kursens gång som skall redovisas genom inlämning av kortare rapporter samt deltangade i seminarie där uppgifterna diskuteras. Utöver att lämna in en egen rapport skall man läsa och värdera andra studenters rapporter.
Förberedelser inför kursstart
Rekommenderade förkunskaper
Särskild behörighet HT20:
Från och med HT20 bedöms särskild behörighet för kurs ID1020 Algoritmer och datastrukturer, vara uppfylld vid godkänt kursmoment ”ARBA- Kursarbete, 4,5 hp”.
ID1019 Programmering II är inte ett krav för behörighet till kursen.
Kurslitteratur
Kursen kommer att vara baserad på:
Remzi H. Arpaci-Dusseau och Andrea C. Arpaci-Dusseau, "Operating Systems: Three Easy Pieces", Arpaci-Dusseau Books.
Boken finns i sin helhet nedladdningsbar från OSTEP. Det är dock en mycket läsvärd och rolig bok och den kostar desutom inte särskilt mycket. Om ni skall beställa böcker så gå förslagsvis ihop några stycken så blir fraktkostnaden lägre per bok (annars kostar frakten nästan lika mycket som boken).
Programvara
Vi kommer under kursen använda operativsystemet Linux som referens och det är mycket bra om du har tillgång till detta. Det kan du lösa genom att: använda en egen laptop med:
Ubuntu eller någon annan Linuxdistribution installerat,
macOS installerat då detta system också är inom Unix-familjen, eller
Windows installerat och då använda det som kallas Windows Subsystem for Linux (WSL).
Har du macOS eller Windows och vill prova på att arbeta i en Linux-miljö kan du t.e.x använda en virtualiserad miljö t.ex. VirtualBox. Även om du redan har Ubuntu installerat är det lärorikt att lära sig använda virtualiserade miljöer.
Alla programmeringsuppgifter är i C så du måste ha en programmeringsmiljö där du kan skriva, kompilera och köra program skrivna i C. Det står dig fritt att använda vilken miljö som helst. men i de uppgifter som finns så har gcc använts. Använder du en annan kompilator, t.ex. Clang eller Visula C++ så kommer allt att fungera men det kan vara flaggor och inställningar som skiljer sig,
Stöd för studenter med funktionsnedsättning
Om du har en funktionsnedsättning kan du få stöd via Funka:
Kursen kommer använda sig av C-program för att förstå hur ett operativsystem fungerar. Kursen är dock inte en kurs i C-prgrammering. Det förutsätts att du antingen har grundläggande kunskaper i C-programmering sedan tidigare eller att du kan plocka upp dessa färdigheter själv. De övningshandledare som kommer finnas vid övningstillfällena kommer kunna hjälpa dig om du har problem.
Examination och slutförande
Betygsskala
A, B, C, D, E, FX, F
Examination
SEMA - Seminarium, 1,5 hp, Betygsskala: P, F
TENA - Tentamen, 6,0 hp, Betygsskala: A, B, C, D, E, FX, F
Examinator beslutar, baserat på rekommendation från KTH:s samordnare för funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.
Examinator får medge annan examinationsform vid omexamination av enstaka studenter.
Avsnittet nedan kommer inte från kursplanen:
Seminarium ( SEMA )
Tre projekt skall redovisas skriftligt och muntligt vid schemalagda seminarium. Dessutom skall andra studenters rapporter läsas och bedömas.
Tentamen ( TENA )
Tentamen kommer (om inget annat bestäms) ges online i Canvas.
Målrelaterade betygskriterier/bedömningskriterier
Tentamen kommer vara uppdelad i flera delar där varje del tar upp ett område som anges i de lärandemål som finns.
Den första delen, som är kravet för E, handlar om hur processer är strukturerade och hur operativsystemet kan hantera flera processer samtidigt. Detta inkluderar inte hur det faktikst är implementerat men de synliga effekterna man ser och konsekvenserna det har för en programmerare.
Övriga delar är för högre betyg och går in på hur saker och ting faktikst är implementerat under ytan. Det kommer finnas en del för varje område:
virtualisering av minne,
minneshantering i en process (malloc/free)
schemaläggningsalgoritmer,
processkommunikation (pipes/socket/signaler/...)
filsystem.
Dessa delar ger angtingen godkänt eller underkänt och betygsättningen är som följer: 2 av 5 ger D, 3 ger C, 4 ger B och 5 av 5 ger A.
Möjlighet till komplettering
En gräns på den första del kommer finnas för FX.
Möjlighet till plussning
Plussning uppmuntras.
Ta kontakt med studievägledningen och be om att bli registrerad på omtentamen.
Etiskt förhållningssätt
Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.
Avsnittet nedan kommer inte från kursplanen:
Hederskodex
I denna kurs tillämpas EECS hederskodex, se: http://www.kth.se/eecs/utbildning/hederskodex.