Operating Systems, Voorjaar 2018
Docent: dr. K. F. D. Rietveld
Practicumassistenten: K. Putman, D. vd Zwaan, T. Smeding
Contact
Vragen omtrent de practicumopdrachten kunnen worden gesteld via os2018-team@lists.liacs.nl. Dit e-mailadres is gedeeld met de docenten en alle student-assistenten van het vak.
Beschrijving
Ten grondslag van alle software die op een computersysteem draait ligt het operating system, ofwel besturingssysteem. Het besturingssysteem heeft als doel een generieke interface te bieden voor allerhande software die op het systeem kan draaien. Deze software hoeft zich dan niet te bekommeren hoe de (specifieke) hardware van het systeem moet worden aangestuurd en hoe deze hardware moet worden gedeeld met verschillende stukken software die tegelijk op het systeem worden uitgevoerd. In dit laatste is het besturingssysteem verantwoordelijk voor het alloceren van 'resources' zoals CPU tijd, RAM geheugen en opslagruimte op harde schijven.
In deze cursus zullen de belangrijkste facetten van besturingssystemen worden bestudeerd: structuur van besturingssystemen, process management, memory management en storage management. Begrippen als system calls, virtual memory, device drivers, bootstrapping, scheduling, context switching, file systems en virtualization zullen de revue passeren.
Een speciaal ontwikkeld besturingssysteem zal de basis vormen voor het practicum. In het practicum wordt de besproken theorie over process management, virtual memory management en storage management in de praktijk gebracht. Hierbij zal ook worden gewerkt aan het verkrijgen van vaardigheden op het gebied van de ontwikkeling van operating system ("low-level programming").
Leerdoelen
Het kunnen beschrijven hoe operating systems in het algemeen zijn gestructureerd. Standaard methoden en algoritmen die worden gebruikt in de implementatie van operating systems wat betreft process management, memory management en storage management kunnen uitleggen en toepassen. Verschillen tussen methodes en algoritmen kunnen toelichten en het kunnen maken van afwegingen tussen deze methodes en algoritmen voor gegeven scenario's. Het kunnen ontwerpen van nieuwe of aangepaste methoden of algoritmen voor gegeven scenario's. De opgedane kennis over operating systems kunnen toepassen in het uitvoeren van probleemanalyses. Het zelfstandig kunnen implementeren van basale algoritmen gebruikt in operating systems zoals process schedulers en block allocatie algoritmen. Het zelfstandig kunnen toevoegen en aanpassen van functionaliteiten van (simpele) operating systems.
Examinering
Schriftelijk aan het eind van het semester en met een practicum gedurende het semester. Het cijfer voor het vak wordt bepaald aan de hand van het tentamen (twee derde, 2/3) en het practicum (een derde, 1/3). Zowel het tentamen als het eindcijfer voor het practicum moeten voldoende (≥ 5.5) zijn om een voldoende te behalen voor het vak. Het practicumcijfer is opgebouwd uit 3 opdrachten die elk met een eigen gewicht meetellen: (opdracht 1: 0.3, opdracht 2: 0.3, opdracht 3: 0.4). Alle opdrachten moeten worden ingeleverd om een cijfer voor het practicum te kunnen krijgen.
Literatuur
Boek: Operating System Concepts, 9th Edition (International Student Version). Abraham Silberschatz, Peter B. Galvin, Greg Gagne. 2014. Wiley Publishing.
De in het hoorcollege gebruikte slides zijn hier te downloaden:
- Introductie tot de introductie
- Chapter 1: Introduction
- Chapter 2: Operating System Structures
- Chapter 3: Processes (update 21 maart: nu compleet)
- Chapter 4: Threading
- Chapter 5: Scheduling, zie ook de slides voor hoofdstuk 6 (CPU Scheduling) van het tekstboek: http://codex.cs.yale.edu/avi/os-book/OS9/slide-dir/index.html
- Chapter 6: Process Synchronization
- Chapter 8: Memory Management Strategies eerste deel, zie ook de slides voor hoofdstuk 8 van het tekstboek: http://codex.cs.yale.edu/avi/os-book/OS9/slide-dir/index.html
- Chaper 9: Virtual Memory Management, zie de slides voor hoofdstuk 9 van het tekstboek: http://codex.cs.yale.edu/avi/os-book/OS9/slide-dir/index.html
- Chapter 10: File System Interface
- Chapter 11: File System Implementation
- Chapter 12: Mass Storage Systems
- Let op: bij uitzondering in voorjaar 2018 GEEN deel van de tentamenstof:
- Virtualization
Daarnaast zijn ook de hand-outs behorende bij het boek zijn beschikbaar op http://codex.cs.yale.edu/avi/os-book/OS9/slide-dir/index.html.
Extra website links:
- Film!!! The IBM 1401 compiles and runs FORTRAN II
- Completere uitleg over de verschillende multithreading modellen: http://docs.oracle.com/cd/E19455-01/806-3461/6jck06gqe/index.html
Tentamenstof
De tentamenstof omvat al hetgeen dat tijdens de colleges is behandeld. Dit betreft de volgende hoofdstukken:
- Ch. 1: Introduction
- Ch. 2: System Structures
- Ch. 3: Process Concept
- Ch. 4: Multithreading
- Ch. 5: Process Scheduling
- Ch. 6: Synchronization
- Ch. 8: Memory-Management Strategies
- Ch. 9: Virtual-Memory Management
- Ch. 10: File Systems
- Ch. 11: Implementing File Systems
- Ch. 12: Mass-Storage Structure
Oefententamens
Tentamen juni 2016 (uitwerking)Tentamen juni 2015 (uitwerking).
Tentamen juni 2014.
Tentamen mei 2011.