100% tevredenheidsgarantie Direct beschikbaar na betaling Zowel online als in PDF Je zit nergens aan vast
logo-home
Operating Systems Samenvatting HoGent €5,49
In winkelwagen

Samenvatting

Operating Systems Samenvatting HoGent

1 beoordeling
 92 keer bekeken  4 keer verkocht

Samenvatting van het vak Operating Systems, in het 1ste bachelor van het traject Toegepaste Informatica (TI) aan de HoGent

Voorbeeld 10 van de 45  pagina's

  • 12 mei 2024
  • 45
  • 2023/2024
  • Samenvatting
Alle documenten voor dit vak (4)

1  beoordeling

review-writer-avatar

Door: maerten1 • 4 maanden geleden

avatar-seller
TomDeBakker
Operating Systems

Tom De Bakker

12/05/2024




1

,Inhoudstafel
Operating Systems 6
Evaluatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Hoofdstuk 1: Besturingssystemen 7
1.1 Wat is een besturingssysteem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Taken van een besturingssysteem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Soorten besturingssystemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Concepten van besturingssystemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Verschillende lagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Programma’s/taken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.3 Processen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.4 Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.5 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.6 Concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.7 Onwerp criteria van een besturingssysteem . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Hoofdstuk 2: Virtualisatie & Cloud 9
2.1 Wat is virtualisatie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Virtuele Architectuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 Virtuele Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.3 Voordelen van virtualisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.4 Nadelen van virtualisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Concepten van virtualisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Virtuele Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Soorten Virtuele Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 Hypervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.4 Type 1 vs Type 2 Hypervisors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1 Wat is een container? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 Wat is een container image? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.3 Dockerfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.4 Port bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.5 Port bindings: voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.6 Volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.7 Volumes: types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.8 Volumes: voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.9 Docker Compose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Multi-tenancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.1 Single-Tenant vs Multi-Tenant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.2 Kenmerken van Multi-Tenancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.3 Voor- en nadelen van Multi-Tenancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.1 Kenmerken van Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.2 Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.3 Deployment modellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.4 Service modellen (publieke cloud) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.5 Cloud Computing = virtualisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.6 Elasticiteit van de Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Hoofdstuk 3: Processen 14
3.1 Van programma tot proces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 Compileren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2 Instructieset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.3 Instructiecyclus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.4 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.5 Binaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.6 Van binary tot proces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Opbouw van een proces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.1 Process image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.2 Process control block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16


2

, 3.3 Soorten processen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.1 Interactief proces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.2 Automatische processen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.3 Daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 Beheer van processen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.1 Ontstaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.2 Afbraak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.3 2 States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.4 5 States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.5 6 States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.6 Swapping (suspend) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5.1 Multiprogramming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5.2 Time sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.3 Context switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.4 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.5 Preemption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.6 Voorrang bij plaatsen van processen in de wachtrij . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.7 Starvation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.8 Voorbeelden van scheduler-types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.9 First Come, First Served (FCFS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.10 Shortest Process Next (SPN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.11 Shortest Remaining Time (SRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5.12 Round Robin (RR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5.13 Overzicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.14 Overzicht type planners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Hoofdstuk 4: Concurrency 25
4.1 Wat is concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.1 Concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2 Concurrency treedt op in verschillende situaties: . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.3 Concurrency - 1 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.4 Parallel Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.5 Parallel Concurrent Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.6 Parallellisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 Wederzijdse uitsluiting (mutual exclusion) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.1 Wederzijdse uitsluiting: voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.2 Wederzijdse uitsluiting bij multiprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.3 Wederzijdse uitsluiting bij multiprogrammering . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.4 Wederzijdse uitsluiting afdwingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.5 Meer dan toegang tot gedeeld geheugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Synchronisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3.1 Soorten synchronisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3.2 Bestandssynchronisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3.3 Bestandssynchronisatie: soorten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4 Deadlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.1 Deadlocks behandelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.2 Voorwaarden deadlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.3 Deadlock preventie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.4 Deadlock vermijden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4.5 Deadlock signaleren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4.5 Deadlock herstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Hoofdstuk 5: File Systems 30
5.1 Persistente opslag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1.1 Hard Disk Drive (HDD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1.2 Solid-State Drive (SSD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1.3 CD/DVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1.4 USB stick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.1 Wat is een file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.2 Bytes uitlezen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31


3

, 5.3 Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.1 Wat is een directory? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.2 Padnamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4 Mappenstructuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4.1 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4.2 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4.3 MacOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5 File systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5.1 Wat is een file system? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5.2 Implementatie van files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5.3 Contiguous storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5.4 Linked lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5.5 File allocation table (FAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.5.6 Index nodes (inodes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.5.7 Implementatie van directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5.8 Implementatie van links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5.9 Journaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.5.10 Virtual file systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.6 Partities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.6.1 MBR vs GPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.6.2 MBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.6.3 GPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.7 Booten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.7.1 Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.7.2 Multi-Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8 Voorbeelden van file systems (FS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8.1 NTFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8.2 FAT32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8.3 exFAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8.4 HFS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8.5 APFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8.6 ext4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.8.7 ZFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.8.8 Btrfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.8.9 ISO 9660 / UDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.9 Opslag in Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.9.1 VM vs container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.9.2 Storage driver en layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.9.3 Voorbeeld image layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.9.4 Container layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.9.5 Persistente opslag in Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Hoofdstuk 6: Threads 42
6.1 Wat zijn threads? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.1 Processen: 2 concepten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.2 Processen: eigendom bronnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.3 Proces: uitvoering programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.4 Processen vs. threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.5 Opbouw threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2 Soorten threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.1 User-Level Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.2 Kernel-Level Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.3 Combinatie ULT ne KLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3 Voor- en nadelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3.1 Voordelen multi-threading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3.2 Uitdagingen bij multi-threading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.4 Parallellisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.4.1 Soorten parallellisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.4.2 Amdahl’s Law . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.5 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.5.1 Games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.5.2 Word processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44


4

,6.5.3 3D modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45




5

, OPERATING SYSTEMS



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

Voordelen van het kopen van samenvattingen bij Stuvia op een rij:

√  	Verzekerd van kwaliteit door reviews

√ Verzekerd van kwaliteit door reviews

Stuvia-klanten hebben meer dan 700.000 samenvattingen beoordeeld. Zo weet je zeker dat je de beste documenten koopt!

Snel en makkelijk kopen

Snel en makkelijk kopen

Je betaalt supersnel en eenmalig met iDeal, Bancontact of creditcard voor de samenvatting. Zonder lidmaatschap.

Focus op de essentie

Focus op de essentie

Samenvattingen worden geschreven voor en door anderen. Daarom zijn de samenvattingen altijd betrouwbaar en actueel. Zo kom je snel tot de kern!

Veelgestelde vragen

Wat krijg ik als ik dit document koop?

Je krijgt een PDF, die direct beschikbaar is na je aankoop. Het gekochte document is altijd, overal en oneindig toegankelijk via je profiel.

Tevredenheidsgarantie: hoe werkt dat?

Onze tevredenheidsgarantie zorgt ervoor dat je altijd een studiedocument vindt dat goed bij je past. Je vult een formulier in en onze klantenservice regelt de rest.

Van wie koop ik deze samenvatting?

Stuvia is een marktplaats, je koop dit document dus niet van ons, maar van verkoper TomDeBakker. Stuvia faciliteert de betaling aan de verkoper.

Zit ik meteen vast aan een abonnement?

Nee, je koopt alleen deze samenvatting voor €5,49. Je zit daarna nergens aan vast.

Is Stuvia te vertrouwen?

4,6 sterren op Google & Trustpilot (+1000 reviews)

Afgelopen 30 dagen zijn er 52928 samenvattingen verkocht

Opgericht in 2010, al 14 jaar dé plek om samenvattingen te kopen

Start met verkopen
€5,49  4x  verkocht
  • (1)
In winkelwagen
Toegevoegd