Operating Systems
Evaluatie
• Examen online, schriftelijk, gesloten boek, theorie-examen: 85%
• NPE (configuratie opdracht): 15%
∘ Kan niet hernomen worden in de tweede zit
• Opzich moet je de opdrachten/practica niet kennen, vooral de slides worden gevraagd. Maar het kan wel
zijn dat je de theorie van de slides leert/begrijpt door de opdrachten te maken
• Vragen zoals op het voorbeeldexamen
• Mix van:
∘ Meerkeuze vragen
∘ Juist/fout vragen
• Als je nog geen ervaring hebt met Ans, kan je deze oefentoets van Ans maken ter voorbereiding. Inloggen
doe je uiteraard met je HOGENT-account.
6
, HOOFDSTUK 1: BESTURINGSSYSTEMEN
Hoofdstuk 1: Besturingssystemen
1.1 Wat is een besturingssysteem?
Een besturingssysteem zorgt ervoor dat je als gebruiker de hardware niet rechtstreeks dient aan te spreken of
te laten samenwerken; dit is de taak van het besturingssysteem.
• Programma dat het mogelijk maakt de hardware van een computer te gebruiken
• Hardware = CPU, geheugen, secundaire opslagapparatuur, randapparatuur, …
• Gebruikers geven geen opdrachten aan de computer/hardware, maar aan het besturingssysteem
• Het besturingssysteem geeft de hardware de opdracht om de gewenste taken uit te voeren
• Engels: Operating System (OS)
1.1.2 Taken van een besturingssysteem
• Opslaan en ophalen van informatie
• Programma’s afschermen
• Gegevensstroom regelen
• Prioriteiten regelen
• Beheer en delen van bronnen
• Tijdelijke samenwerking tussen programma’s mogelijk maken
• Reageren op fouten
• Tijdsplanningmaken
• …
1.2 Soorten besturingssystemen
We kunnen een onderscheid maken tussen:
• Single-tasking systemen: Er kan maar één taak gelijktijdig actief zijn
• Multitasking, single-user systemen: meerdere taken kunnen gelijktijdig actief zijn
• Multi-user systemen: meerdere gebruikers kunnen gelijktijdig het systeem gebruiken
1.3 Concepten van besturingssystemen
1.3.1 Verschillende lagen
Figure 1: Lagen van een besturingssysteem
Veel besturingssystemen implementeren de interface tussen gebruiker en computer als een reeks stappen of lagen.
In de toplaag zijn de functies vastgelegd en de onderste laag bevat de details van het laagste niveau om deze
functies uit te voeren.
De gebruiker communiceert met de bovenste laag. Deze bestaat uit routines van het besturingssysteem die zijn
ontworpen om op opdrachten van een gebruiker te reageren. We noemen deze laag de shell of de command
interpreter. Het is het deel van het besturingssysteem waarmee de gebruiker het meest vertrouwd is.
In werkelijkheid is het echter niet de shell die de opdracht van de gebruiker uitvoert.
De reden daarvoor is dat veel opdrachten eigenlijk erg ingewikkeld zijn. Zo is het mogelijk dat er voor een
eenvoudige opdracht die het besturingssysteem vraagt veel moet gebeuren.
7
,1.3 Concepten van besturingssystemen HOOFDSTUK 1: BESTURINGSSYSTEMEN
De laag utilities bevat vele routines die voor deze dingen zorg dragen.
De laatste laag is de kernel of kern. Dit is het hart van het besturingssysteem. Deze laag bevat de routines
die het vaakst worden gebruikt en waar het meest op aan komt. Wanneer een gebruiker een opdracht geeft,
verzorgen de utilities het grootste deel van de controle en de voorbereiding die voor de uitvoering nodig zijn.
1.3.2 Programma’s/taken
Een besturingssysteem zorgt er voor dat taken (programma’s) uitgevoerd worden. We kunnen een onderscheid
maken tussen:
• Interactieve programma’s: (snelle respons) Een interactief programma is een programma dat een
gebruiker vanaf de terminal activeert. De gebruiker werkt met het besturingssysteem op een conversatie-
achtige manier, interactieve mode genoemd. Interactieve gebruikers verwachten een snelle respons.
Daarom moet het besturingssysteem interactieve gebruikers voorrang geven.
• Batch programma’s (geen directe respons) Een gebruiker kan opdrachten in een file opslaan en deze aan
de batch queue (wachtrij voor batch-programma’s) van het besturingssysteem aanbieden. Batch-gebruikers
verschillen van interactieve gebruikers omdat zij geen directe respons verwachten.
• Real-time programma’s (respons in een heel beperkte tijd) Real-time programmering legt aan de re-
spons een tijdsbeperking op. Het wordt gebruikt wanneer een snelle respons essentieel is (bv controlesys-
teem luchthaven).
1.3.3 Processen
Processen zijn één of meer reeksen opdrachten die door een besturingsprogramma worden beschouwd als een
werkeenheid.
1.3.4 Resources
In eerste instantie spreken processen resources (bronnen) aan:
• Randapparatuur
• Geheugen
• Bestanden
• CPU
Een besturingssysteem moet dus:
• zorgen voor voldoende geheugen voor het proces
• het gebruik van de CPU regelen
• De gegevensstroom regelen van of naar randapparatuur
• bestanden en records kunnen lokaliseren
1.3.5 Scheduling
Scheduling verwijst naar de manier waarop aan processen prioriteiten worden gegeven, vaak in combinatie
met een prioriteitenwachtrij.
1.3.6 Concurrency
Processen zijn meestal niet onafhankelijk, processen zijn concurrent
Bijvoorbeeld:
• 2 processen willen dezelfde printer gebruiken
• 2 processen willen dezelfde file lezen of schrijven
⟹ conflicten
OS regelt in welke volgorde processen afgehandeld worden = synchronisatie
1.3.7 Onwerp criteria van een besturingssysteem
• Consistentie
• Flexibiliteit
• Overdraagbaarheid
Vaak is het ongmogelijk om aan alle criteria te voldoen, en worden sommige opgeofferd ten gunse van het andere.
8
, HOOFDSTUK 2: VIRTUALISATIE & CLOUD
Hoofdstuk 2: Virtualisatie & Cloud
2.1 Wat is virtualisatie?
In computing, virtualization refers to the act of creating a virtual (rather than actual) version of something,
including virtual computer hardware platforms, storage devices, and computer network resources.
2.1.1 Virtuele Architectuur
Traditioneel gebruiken we op een computer één besturingssysteem. Het besturingssysteem spreekt de hardware
aan, en één of meerdere applicaties draaien bovenop het besturingssysteem.
Met behulp van virtualisatiesoftware is het mogelijk om op één computer meerdere computers te laten draaien.
Dit zijn geen fysieke computers, maar virtuele computers. Deze virtuele computers werken net zoals afzonderlijke
computers, maar delen dus onderliggend de fysieke hardware.
2.1.2 Virtuele Hardware
Een traditionele computer bestaat uit verschillende hardware bronnen, zoals de processor, het geheugen, de
netwerkkaart en harde schijven. Met behulp van virtualisatiesoftware gaan we een virtuele versie maken van
deze bronnen. Elke virtuele machine heeft onder andere een virtuele processor (vCPU), virtueel geheugen
(vRAM), één of meerdere virtuele netwerkkaarten en één of meer virtuele harde schijven (virtual disks). De
virtualisatiesoftware zorgt er voor dat de fysieke hardware gedeeld wordt over de virtuele hardware.
2.1.3 Voordelen van virtualisatie
• Efficiënter gebruik van de beschikbare hardware
• Goedkoper dan aparte fysieke systemen
• Lagere ecologische voetafdruk
2.1.4 Nadelen van virtualisatie
• Niet alle software leent zich (reeds) tot virtualisatie
• Performantie van applicaties lijdt soms onder virtualisatie
• Virtualisatie vereist technische kennis en een goede strategie rond de opzet ervan binnen een bedrijf, zeker
in combinatie met cloud computing. Anders kan dit leiden tot een wildgroei aan virtuele servers met als
gevolg hogere beheerskosten en verminderde kostenbesparing.
2.2 Concepten van virtualisatie
2.2.1 Virtuele Machine
Een virtuele machine (VM) is een computerprogramma dat een volledige computer nabootst, waar andere
(besturings-)programma’s op kunnen worden uitgevoerd.
2.2.2 Soorten Virtuele Machines
• Programmeertaal-specifiek:
∘ Java Virtual Machine (JVM)
• Emulator
∘ VirtualBox, VMWare, …
• Applicatie-specifiek
∘ Docker
2.2.3 Hypervisor
Een hypervisor is de software die gebruikt wordt om (meerdere) virtuele machines aan te maken en op te
starten.
Een hypervisor wordt ook vaak Virtual Machine Monitor (VMM) genoemd.
Een hypervisor regelt de virtualisatie. Met een hypervisor kan één hostcomputer meerdere VM’s gelijktijdig
laten draaien door de (hardware) bronnen virtueel te delen, zoals het geheugen en de processor.
9
, 2.3 Docker HOOFDSTUK 2: VIRTUALISATIE & CLOUD
2.2.4 Type 1 vs Type 2 Hypervisors
• Type 1 hypervisor
∘ Native (bare metal) hypervisor
∘ Rechtstreeks op de hardware, er is geen onderliggend OS
∘ Kan rechtstreeks de nodige hardwarebronnen aanspreken
∘ Geen overhead door OS
∘ Efficiënter maar ook complexer
∘ Vooral gebruiktop servers, soms ingebouwd in hardware
∘ Hyper-V, VMWare ESXi, …
• Type 2 hypervisor
∘ Programma bovenop een OS
∘ Aanspreken van hardware gebeurt via functies van het besturingssysteem
∘ Eenvoudiger om te installeren (is een “gewoon” programma)
∘ Vooral gebruikt op persoonlijk toestel (bv. Windows VM op Mac)
∘ Niet zo krachtig en efficiënt als Type-1
∘ VirtualBox, VMWare Player, Parallels Desktop, ..
2.3 Docker
Docker is virtualisatiesoftware die containers kan bouwen, uitvoeren en beheren.
Het bootst geen volledige computer na maar de containers spreken rechtstreeks de kernel van het bestur-
ingsysteem van de host aan.
2.3.1 Wat is een container?
• Uitvoerbare versie van een container image
• Volledig gesandboxed proces op jouw host, geïsoleerdvan alle andere processen.
• Lijkt alsof het alleen draait op de host: eigen file systeem, eigen procestabel…
• Gebruikt kernel namespaces, cgroups
• Gedraagt zich op elk systeem identiek
• Uitvoerbaarop een lokaal systeem, virtuele machine en in de cloud
2.3.2 Wat is een container image?
• Blauwdruk voor een container: bevat alles wat de container nodig heeft om te functioneren
• Bevat het hele bestandssysteem van de container:
∘ Dependencies, configuraties, scripts, binaire bestanden, …
• Bevat ook andere informatie:
∘ Omgevingsvariabelen, standaard startcommando, metadata, …
2.3.3 Dockerfile
De Dockerfile is het belangrijkste bestand van een container image. Dit bestand specificeert hoe de image
eruit zal zijn: welke bestanden naar de image gekopieerd worden, welke environment variables er zijn, welke
commando’s uitgevoerd moeten worden wanneer de image gebouwd wordt, welk commando uitgevoerd moet
worden als de container start, enz.
2.3.4 Port bindings
• Containers krijgen een IP-adres in een Docker netwerk
∘ Een container kan in meerdere Docker netwerken zitten
∘ Een docker netwerk is een intern virtueel netwerk
• Standaard worden geen poorten beschikbaar gemaakt op de host
• Met port bindings kan je een poort van de container beschikbaar maken op de host
• Je koppelt dus een poort van de container aan een poort op de host
2.3.5 Port bindings: voorbeeld
docker run -p 8080:80 httpd
• Poort op host: 8080
• Poort in container: 80
10
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller TomDeBakker. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $5.96. You're not tied to anything after your purchase.