Besturingssystemen

Besturingssystemen

  • Informatica
  • IB1302
  • 5 EC
  • Vanaf € 352
  • Voor dit product gelden ingangseisen
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

Inhoud

Elke moderne computer wordt bestuurd door een besturingssysteem. Bekende besturingssystemen zijn Windows, macOS en Linux maar ook op telefoons draaien besturingssystemen als Android en iOS. Het besturingssysteem omvat de software die de interface naar de gebruikers verzorgt en die toegang tot de beschikbare hardware regelt voor programma’s. In de cursus ligt de nadruk op het beheren van processen, geheugen, bestanden en randapparatuur.

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

Aanmelden voor deze cursus kan pas nadat je de volgende cursussen hebt afgerond, dan wel hebt vrijgesteld:
- 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

Deze cursus is reeds gestart en wordt pas in het volgend academisch jaar opnieuw aangeboden.

De cursus wordt eenmaal per academisch jaar aangeboden.

Voorkennis

Om deze cursus met succes te kunnen volgen, moet je over voldoende programmeerkennis en -vaardigheid beschikken, op het niveau van de cursus Objectgeoriënteerd programmeren (IB1102). Omdat een Engelstalig tekstboek wordt gebruikt, is goede Engelse leesvaardigheid vereist.

Begeleidingsvorm

Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

Een aantal virtuele begeleidingsbijeenkomsten.

Begeleidingsbijeenkomsten



Studiedag Informatica en Informatiekunde, Den Bosch, onder voorbehoud
Kwartiel 2 - begeleider: dhr.dr. T. van Steenvoorden
za 25-11-2023 / 14.50-16.30 uur
Tijdig aanmelden via: ou.nl/inf-studiedag

Online-bijeenkomsten
Kwartiel 2 - begeleider: dhr.dr. T. van Steenvoorden
1. ma 04-12-2023 / 19.00-21.00 uur
2. ma 18-12-2023 / 19.00-21.00 uur
3. ma 08-01-2024 / 19.00-21.00 uur
4. ma 22-01-2024 / 19.00-21.00 uur

Docenten

Tentamenvorm

Digitaal groepstentamen met open vragen en een opdracht.

Tentamentoelichting

U dient zelf tijdig aan te melden voor een tentamen.

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

Digitaal groepstentamen: 24-04-2024 19:00, 26-08-2024 19:00.
Opdracht: volgens afspraak.

Tentamenhulpmiddelen

Het online woordenboek
De online rekenmachine
Het online woordenboek t.b.v. ANS

Meer informatie

Voor een inkijkje in de cursus, ga naar de snapshot van de voorgaande cursus (T27231 Besturingssystemen).

Cursusmateriaal

De cursus bestaat uit een Engelstalig tekstboek en een tweetal Nederlandstalige werkboeken.
Het tekstboek is: Operating System Concepts, International Student Version, 10th editions (Wiley).

Mediagebruik

Voor het uitvoeren van de opdrachten is een computer met het Unix omgeving vereist. Voor Windows gebruikers kan hiervoor WSL 2 worden geïnstalleerd.

Digitale leeromgeving

Bij de cursus hoort een cursussite in de online leeromgeving. Je vindt daar actuele studie-informatie, aanvullend cursusmateriaal en voorzieningen voor communicatie en discussie met docent en medestudenten.