Besturingssystemen
-
Informatica
-
IB1302
-
5 EC
-
Vanaf € 384
-
Voor dit product gelden ingangseisen
Inhoud
Na een algemene introductie worden de begrippen ‘proces’ en ‘thread’ behandeld. Dit zijn de basiseenheden om gelijktijdig programmatuur uit te voeren. Elk programma dat uitgevoerd wordt, bestaat uit ten minste één proces, en binnen een proces wordt er vaak gewerkt met meerdere threads (voorbeeld: bij video worden geluid en beeld vaak in aparte threads gelijktijdig gedecodeerd). Begrippen als ‘parallelisme’ en ‘concurrency’ spelen hierbij een grote rol. Met behulp van deze bouwstenen gaan we kijken naar allerlei mogelijke problemen bij het tegelijk uitvoeren en het samenwerken van programmatuur, zoals bijvoorbeeld deadlock, livelock en starvation.
Een ander aspect dat het besturingssysteem onder zijn beheer heeft, is het geheugen. Doorgaans is het fysiek aanwezig geheugen (geadresseerd door fysieke geheugenadressen) te klein om het besturingssysteem zelf, de overige systeemsoftware en alle gebruikerstoepassingen onder te brengen. Vandaar dat er bij de meeste systemen gebruik wordt gemaakt van virtueel geheugen (geadresseerd door logische geheugenadressen) dat vele malen groter kan zijn dan het fysieke geheugen en dat gebruikmaakt van achtergrondgeheugen (meestal een harde schijf of flash-geheugen). Delen van programma's kunnen in het fysieke geheugen worden geplaatst en delen op het achtergrondgeheugen. De noodzakelijke hardwareondersteuning om het moderne geheugensysteem correct en snel te laten functioneren komt tevens aan bod.
Programma's en gegevens worden opgeslagen als bestanden op de harde schijf. Ook hiervoor is een mechanisme nodig om bestanden aan te maken, te bewerken en te verwijderen. Dit is het bestandsbeheersysteem. Het bestandsbeheersysteem draagt ook zorg voor de logische bestandsopslagstructuur die gebruik maakt van mappen, en voor de vertaling daarvan naar de fysieke opslag op het achtergrondgeheugen.
Ten slotte wordt het input-output-systeem behandeld. Zonder een dergelijk systeem kan de computer niet met de buitenwereld communiceren. Randapparatuur, zoals beeldscherm, toetsenbord, muis, en printers moet kunnen worden aangesloten. Interne onderdelen van de computer maken echter ook gebruik van het input-output-systeem. Te denken valt aan schijven als de grafische controller. Ook hierbij is kennis van de onderliggende processorarchitectuur essentieel.
Om de kennis over besturingssystemen ook in de praktijk toe te passen maakt een practicum deel uit van de cursus Besturingssystemen. In dit practicum maken we gebruik van een mini-besturingssysteem voor Raspberry-Pi’s genaamd FramboOS. Je zult stap voor stap onderdelen van dit eigen besturingssysteem ontwikkelen. Allereerst zorg je voor enkele primitieven om op een scherm te kunnen tekenen. Vervolgens ga je aan de slag met het implementeren van taken, een schedular om meerdere processen naast elkaar te kunnen draaien, en een eigen implementatie van locks om processen te synchroniseren. Tot slot schrijf je een geheugenallocator. Bij het schrijven van FramboOS wordt de programmeertaal C gebruikt.
Leerdoelen
Na het bestuderen van de cursus kun je:
- de betekenis en functie van een besturingssysteem plaatsen bij een computersysteem in relatie tot de gebruiker en in relatie tot de toepassingen die verwerkt worden door dat computersysteem,
- uitleggen hoe processen en threads schijnbaar of daadwerkelijk gelijktijdig (parallelisme vs. concurrent) door een processor kunnen worden uitgevoerd, waarbij zaken als scheduling en de context switch een rol spelen,
- uitleggen hoe een processor daadwerkelijk een computerprogramma uitvoert, en welke vertaalslagen daarvoor nodig zijn,
- uitleggen welke aspecten naar voren komen, welke problemen kunnen optreden en de oplossingen daarvoor geven, wanneer processen met elkaar communiceren en/of van dezelfde bronnen gebruik wensen te maken,
- diverse technieken voor geheugenbeheer benoemen en uitleggen hoe die kunnen worden aangewend om een virtueel geheugen te realiseren; alsmede hoe in hardware met geheugen omgegaan wordt,
- uitleggen welke plaatsings- en vervangingsalgoritmen er bestaan en wat hun voordelen en nadelen zijn,
- uitleggen hoe een bestandsbeheersysteem werkt,
- uitleggen op welke wijze, via een input/outputsysteem, communicatie met randapparatuur plaatsvindt op besturingssysteemniveau en op hardwareniveau.
Meer informatie
Voor een inkijkje in de cursus, ga naar de snapshot van de voorgaande cursus (T27231 Besturingssystemen).
Ingangseisen
- Computernetwerken (IB0702),
- Datastructuren en algoritmen (IB1502),
- Formele talen en automaten (IB0802),
- Geavanceerd objectgeoriënteerd programmeren (IB0902),
- Inleiding informatica (IB0102),
- Logica, verzamelingen en relaties (IB0402),
- Objectegoriënteerd programmeren (IB1102),
- Practicum ontwerpen en implementeren (IB1202) en
- Relationele databases (IB0302).
Toelichting aanmelden
De cursus wordt eenmaal per academisch jaar aangeboden.
Voorkennis
Begeleidingsvorm
Een aantal virtuele begeleidingsbijeenkomsten.
Begeleidingsbijeenkomsten
Online-bijeenkomsten
Kwartiel 2 - begeleider: dhr.dr. T. Steenvoorden
- di 19-11-2024 / introductie / 18:30-20:30 uur
Docenten
Tentamenvorm
Tentamentoelichting
Er zijn een aantal opdrachten, die met elke computer uit te voeren zijn. In deze opdrachten ga je aan de slag met het schrijven van een mini-besturingssysteem We adviseren je om eerst de opdrachten af te ronden alvorens het tentamen af te leggen.
Tentamendata
Opdracht: volgens afspraak.
Tentamenhulpmiddelen
De online rekenmachine
Het online woordenboek t.b.v. ANS
Meer informatie
Cursusmateriaal
Het tekstboek is: Operating System Concepts, International Student Version, 10th editions (Wiley).