Hoppa till huvudinnehållet
Till KTH:s startsida Till KTH:s startsida

ID1206 Operativsystem 7,5 hp

Kurs-PM HT 2021-50897

Version 1 – 2021-11-02 15:09:21

Kursomgång

HT 2021-2 (Startdatum 2021-11-01, Svenska)

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kurs-PM HT 2021

Presentation av kursen

Kursen avser ge dig kunskap om hur operativsystem implementeras och hur man praktiskt skriver program som utnyttjar operativsystem, så kallad systemprogrammering.

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,

Programmeringskunskaper

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.

Ytterligare Information

Ingen information tillagd

Fakta om kursomgång

Startdatum

Obligatoriskt innehåll saknas

Kursomgång

  • HT 2021-50897

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kontakter