ID1206 Operativsystem 7,5 hp

Operating Systems

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

  • Utbildningsnivå

    Grundnivå
  • Huvudområde

    Teknik
  • Betygsskala

    A, B, C, D, E, FX, F

Kurstillfällen/kursomgångar

HT19 för programstuderande

HT19 TCOMK för programstuderande

HT18 för programstuderande

HT18 för programstuderande

Lärandemål

Studenter skall efter avslutad kurs

påvisa förståelse för abstraktioner och virtualisering av resurser såsom

  • minne
  • processor
  • persistent lagring

kunna beskriva hur ett operativsystem är implementerat för att erbjuda

  • exekvering av program
  • ett virtuellt minne
  • flera exekverande trådar
  • schemaläggning av processer
  • processkommunikation via strömmar, meddelanden och delat minne
  • ett filsystem för persistent lagring

vid implementation av program kunna använda sig av

  • ett operativsystems systemanrop
  • delat minne vid flertrådad programmering
  • kommunicerande processer.

Kursens huvudsakliga innehå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.

Kursupplägg

Kursen består av 12-16 föreläsningar till vilka praktiska mindre uppgifter kopplas. De praktiska uppgifterna är avsedda att ge en ökad förståelse för de begrepp som presenteras såväl som ge den praktiska färdighet som krävs för att uppfylla kursens mål.

Kursen har även en större uppgift som skall utföras under kursens gång. Uppgiften skall ge ökad förståelse för hur ett operativsystem i praktiken är uppbyggt och hur det fungerar.

Behörighet

  • ID1018 Programmering I
  • IS1200 Datorteknik, grundkurs
  • ID1020 Algoritmer och datastrukturer
  • ID1019 Programmering II

Rekommenderade förkunskaper

För att kunna tillgodogöra dig kursen skall du ha grundläggande kunskaper om hur datorer är uppbyggda och fungerar motsvarande grundkursen i Datorteknik samt programmeringsvana motsvarande de grundläggande programmerings och algoritm kurserna på D/I/IT. Erfarenhetsmässigt har det visat sig vara mycket svårt för studenter som inte har dessa förkunskaper att klara kursen.

Litteratur

Kursen kommer att vara baserad på:

Remzi H. Arpaci-Dusseau och Andrea C. Arpaci-Dusseau, "Operating Systems: Three Easy Pieces", Arpaci-Dusseau Books.

Referenslitteratur:

Andrew S. Tanenbaum, "Modern Operating Systems", Prentice-Hall. 

Examination

  • SEMA - Seminarium, 1,5, betygsskala: P, F
  • TENA - Tentamen, 6,0, betygsskala: A, B, C, D, E, FX, F

Ges av

EECS/Datavetenskap

Examinator

Johan Montelius <johanmon@kth.se>

Övrig information

Kursen utvärderas och utvecklas i enlighet med KTH:s policy för Kursanalys. 

Påbyggnad

Operativsystemskursen ger dig kunskaper som är viktiga eller rent av nödvändiga för många fortsättningskurser där man på något sätt kommer att använda eller skriva systemnära programvara. I ICT-skolans kursutbud finns tre huvudspår för vilka operativsystemskursen är en rekommenderad eller obligatorisk förkunskap. Det handlar om:

  • Datorteknik som ger dig en inblick i hur moderna datorsystem är uppbyggda med fokus på hårdvaran. 
  • Programvarusystem som primärt handlar om språk och programvarusystem för distribuerade tillämpningar som t.ex peer-to-peer system. 
  • Tele- och datorkommunikationssystem som behandlar hur kommunikation i olika typer av nät som IP, trådlösa system mm. fungerar. 

Versionsinformation

Kursplan gäller från och med VT2019.
Examinationsinformation gäller från och med VT2019.