OS Flashcards

1
Q

Wat is een besturingssysteem (OS)?

A

Een programma dat het gebruik van de hardware van een computer mogelijk maakt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie geeft instructies aan de hardware in een computer?

A

Het besturingssysteem geeft instructies aan de hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Noem een taak van een besturingssysteem.

A

Programma’s kunnen informatie opslaan en ophalen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Noem een andere taak van een besturingssysteem.

A

Programma’s worden afgeschermd van specifieke hardwareproblemen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hoe beheert een besturingssysteem de gegevensstroom?

A

Het reguleert de gegevensstroom door de computercomponenten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wat doet een besturingssysteem om de uitvoering van programma’s te waarborgen?

A

Het laat programma’s werken zonder onderbroken te worden door andere programma’s.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hoe werken onafhankelijke programma’s samen onder een besturingssysteem?

A

Ze kunnen tijdelijk samenwerken en informatie delen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wat doet een besturingssysteem in reactie op fouten of gebruikersverzoeken?

A

Het reageert op fouten of verzoeken van de gebruiker.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hoe plant een besturingssysteem middelen voor programma’s?

A

Het maakt een tijdschema voor programma’s die middelen willen gebruiken.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Geef een voorbeeld van een besturingssysteem voor x86/x64 laptop/desktop.

A

Windows 10, Windows 11, Windows Server 2022

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Geef een voorbeeld van een Apple besturingssysteem.

A

MacOS 14, Sonoma

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Geef een voorbeeld van een ander besturingssysteem.

A

Fedora 39, Ubuntu 22/04 LTS, AlmaLinux 9

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Welk besturingssysteem wordt gebruikt in Windows mobiele apparaten?

A

Windows 10 Mobile (einde ondersteuning)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welk besturingssysteem wordt gebruikt in Apple mobiele apparaten?

A

iOS 17, iPadOS 17

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welk besturingssysteem wordt gebruikt in Android apparaten?

A

Android 14, Plasma Mobile, Ubuntu Touch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welk besturingssysteem wordt gebruikt in ARM-apparaten?

A

Windows 11 on ARM, MacOS 14 Sonoma (voor Apple silicon), Raspberry Pi OS, Fedora 39 ARM, Ubuntu 22 Server ARM, AlmaLinux 9 ARM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wat zijn enkeltaaksystemen?

A

Systemen waarbij slechts één taak tegelijkertijd actief kan zijn.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Geef een voorbeeld van een enkeltaaks besturingssysteem.

A

MS-DOS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wat zijn multitasking single-user systemen?

A

Systemen waarbij meerdere taken tegelijkertijd actief kunnen zijn, maar slechts één gebruiker tegelijk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Wat vereist multitasking in single-user systemen?

A

Complexe geheugenbeheerfuncties.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Hoe worden multi-user systemen ook wel genoemd?

A

Multiprogrammeringssystemen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Wat moeten multi-user systemen voorkomen?

A

Gebruikers die elkaar storen of elkaars werk benaderen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Beschrijf de bovenste laag van een besturingssysteem.

A

De shell (of command interpreter) die gebruikersopdrachten afhandelt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wat doet de hulpprogrammalayer in een besturingssysteem?

A

Bevat routines die complexe taken afhandelen die niet door de shell worden beheerd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Wat is de kernel in een besturingssysteem?

A

De kern van het OS, met de meest gebruikte routines.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Wat is een interactief programma?

A

Een programma dat door een gebruiker vanaf de terminal wordt geactiveerd en real-time interactie mogelijk maakt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Wat is een batchprogramma?

A

Een programma dat bestanden met opdrachten verwerkt die aan een batchwachtrij zijn toegevoegd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Wat is een real-time programma?

A

Een programma dat snelle reacties vereist en wordt gebruikt in systemen waar snelle reactie essentieel is.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Wat is een proces in een besturingssysteem?

A

Een set instructies die door het OS als een werkende eenheid wordt beschouwd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Wat moet een besturingssysteem voor elk proces waarborgen?

A

Toegang tot benodigde middelen zoals geheugen, CPU-tijd en apparaatcommunicatie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Hoe beheert een OS geheugen voor processen?

A

Zorgen dat er voldoende geheugen beschikbaar is zonder dat processen hun toewijzing overschrijden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Hoe beheert een OS CPU-gebruik voor processen?

A

Toewijzing van CPU-tijd op basis van het belang van processen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Hoe beheert een OS apparaatcommunicatie?

A

Reguleren van de gegevensstroom naar en van apparaten tussen meerdere processen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Wat is planning in een besturingssysteem?

A

Prioriteiten toewijzen aan processen, vaak met behulp van een prioriteitswachtrij.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Wat is gelijktijdigheid in besturingssystemen?

A

Gelijktijdige uitvoering van processen, waarvoor synchronisatie nodig is bij toegang tot gedeelde bronnen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Noem een belangrijk ontwerpeis voor besturingssystemen.

A

Consistentie: het handhaven van constante responstijden ondanks het aantal processen.

37
Q

Waarom is flexibiliteit belangrijk in OS-ontwerp?

A

Maakt het mogelijk om nieuwe versies oude toepassingen te laten draaien en nieuwe apparaten eenvoudig toe te voegen.

38
Q

Wat betekent draagbaarheid voor besturingssystemen?

A

Het vermogen om op verschillende typen computers te werken.

39
Q

Waarom is het moeilijk om aan alle ontwerpeisen voor besturingssystemen te voldoen?

A

Ontwerpers moeten vaak een compromis sluiten tussen criteria op basis van de behoeften van gebruikers.

40
Q

Wat is virtualisatie?

A

In de IT-wereld verwijst virtualisatie naar het creëren van een virtuele versie van iets, zoals virtuele computer hardware, virtuele opslagapparaten of virtuele netwerkbronnen.

41
Q

Traditionele vs. virtuele architectuur

A

Traditioneel gebruiken we een besturingssysteem. Dat besturingssysteem spreekt de hardware aan, en één of meerdere applicaties die draaien bovenop het besturingssysteem. Traditioneel kunnen we niet verschillende besturingssystemen tegelijkertijd opstarten. Met behulp van virtualisatie kan dit wel. We draaien virtuele computers, deze zijn geen fysieke computers, maar delen wel de onderliggende fysieke hardware.

42
Q

Virtuele hardware

A

Een traditionele computer bestaat uit verschillende hardware bronnen, zoals processor, het geheugen, netwerkkaart en harde schijven. Door middel van virtualisatiesoftware gaan we van deze bronnen een virtuele versie maken.

43
Q

Voordelen van virtualisatie

A
  • We kunnen de hardware van een machine optimaal benutten.
  • Gebruik van virtuele computers is goedkoper.
  • Mogelijke stroombesparing.
44
Q

Nadelen van virtualisatie

A
  • Niet alle software leent zich tot virtualisatie.
  • Performantie van applicaties lijdt soms onder virtualisatie.
  • Virtualisatie vereist technische kennis en een goede strategie.
45
Q

Virtualisatiesoftware

A
  • VMware
  • Microsoft Hyper-V
  • Xen
  • KVM
  • Oracle VirtualBox
  • Parallels Desktop
  • Docker
46
Q

Virtuele machine

A

Een virtuele machine (VM) is een computerprogramma dat een volledige computer nabootst, waar andere (besturings)programma’s op kunnen uitgevoerd worden.

47
Q

Soorten virtuele machines

A
  1. Programmeertaal-specifiek
  2. Emulatie
  3. Applicatie-specifiek
48
Q

Hypervisor

A

Een hypervisor of Virtual Machine Monitor is de software die gebruikt wordt om virtuele machines aan te maken en op te starten.

49
Q

Type hypervisors

A
  1. Type 1 hypervisor: ligt direct op de hardware.
  2. Type 2 hypervisor: ligt niet rechtstreeks op de hardwarelaag, er ligt een besturingssysteem tussen.
50
Q

Docker

A

Docker is een virtualisatiesoftware die containers kan bouwen, uitvoeren en beheren.

51
Q

Container

A

Containers zijn een uitvoerbare versie van een container image.

52
Q

Container image

A

Een container image is de blauwdruk voor een container.

53
Q

Dockerfile

A

De Dockerfile is het belangrijkste bestand van een container image.

54
Q

Port bindings

A

Containers krijgen een IP-adres in een Docker netwerk. Met port bindings kan je een poort van de container beschikbaar maken op de host.

55
Q

Volumes

A

Containers hebben hun eigen bestandssysteem. Een oplossing hiervoor zijn docker volumes.

56
Q

Type volumes

A
  1. Volume
  2. Bind mount
  3. tmpfs mount
57
Q

Docker Compose

A

Tool om meerdere (samenhorende) Docker containers te beheren.

58
Q

Multi-tenancy

A

Single-Tenant: bijvoorbeeld een persoonlijke computer. Multi-Tenant: bijvoorbeeld fysieke server in een datacenter.

59
Q

Kenmerken multi-tenancy

A
  • Bronnen worden gedeeld
  • Een tenant is een gebruiker of groep van gebruikers met gemeenschappelijke toegang
  • Multi-tenancy kan geïmplementeerd worden in verschillende vormen
60
Q

Voor- en nadelen multi-tenancy

A

Voordelen: Efficiënter gebruik van de beschikbare bronnen. Lagere operationele kosten. Nadelen: Minder isolatie en verhoogde beveiligingsrisico’s. Minder prestatie-isolatie.

61
Q

Cloud Computing

A

Bij cloud computing worden computerbronnen, zoals hardware, software en gegevens, op aanvraag beschikbaar gesteld via een netwerk.

62
Q

Kenmerken van Cloud Computing

A
  • Bronnen zijn beschikbaar op aanvraag
  • pay-as-you-go pricing model
  • Elasticiteit
63
Q

Opkomst van Cloud Computing

A
  • Eerste definitie 1997
  • 2000 opkomst Software as a Service
  • 2005-2007 opkomst Cloud Computing
64
Q

Cloud

A
  • Soort van wolk van computers
  • Virtualisatie van serveromgeving
65
Q

Deployment modellen

A
  1. Publieke Cloud omgeving
  2. Private Cloud omgeving
  3. Hybride Cloud omgeving
66
Q

Service modellen

A
  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)
67
Q

Elasticiteit van de Cloud

A

Elasticiteit is de mate waarin het aanbod zich afstemt op een stijgende of dalende vraag.

68
Q

Virtualisatie en Cloud Computing

A

Virtualisatie speelt een belangrijke rol binnen Cloud Computing. Bijvoorbeeld in de vorm van virtuele machines.

69
Q

Cloud Computing = Multi-tenancy

A

Cloud Computing is een mooi voorbeeld van multi-tenancy. Vaak maken verschillende gebruikers gebruik van dezelfde set fysieke hardware.

70
Q

Wat is concurrency?

A

In de meeste moderne computers kunnen er meerdere processen gelijktijdig actief zijn. Ze kunnen al dan niet gelijktijdig uitgevoerd worden.
We kunnen een onderscheid maken tussen:
- Multiprogramming: het beheer van meerdere processen in het systeem met één processor
- Multiprocessing: het beheer van meerdere processen in het systeem met meerdere processoren
- Gedistribueerde verwerking: het beheer van meerdere processen die worden uitgevoerd op een aantal verspreide (= gedistribueerde) computersystemen
Concurrency verwijst naar processen of activiteiten die gelijktijdig uitgevoerd worden.
Deze processen onderling laten samenwerken (bv. door informatie uit te wisselen of bronnen te delen) is een hele challenge.
Het tegenovergestelde van concurrency zijn sequentiele processen. Hierbij worden alle stappen na elkaar uitgevoerd.
Doordat het mogelijk werd een grote rekencapaciteit in een kleine chip te steken, zijn multiprocessors de nieuwe standaard geworden.
Een multiprocessor is een computersysteem met twee of meer processoren.
Concurrency verhoogt productiviteit, maar zorgt ook voor uitdagingen:
- Communicatie tussen processen
- Delen van, en vechten om bronnen
- Synchronisatie van meerdere procesactiviteiten
- Verdelen van processortijd over processen

71
Q

Concurrency komt in verschillende situaties voor:

A
  • Meerdere toepassingen: dynamisch verdelen processortijd over aantal actieve toepassingen
  • Gestructureerde toepassing: toepassingen geprogrammeerd als een verzameling gelijktijdige processen
  • Structuur van het besturingssysteem: besturingssystemen geïmplementeerd als een verzameling processen
72
Q

Parallel Execution

A

Parallel Execution of parallele uitvoering treedt op wanneer een computer meer dan één CPU of CPU-kern heeft en tegelijkertijd voortgang boekt op meer dan één taak.
Parallel Execution is niet hetzelfde als parallellisme.

73
Q

Parallel Concurrent Execution

A

Bij Parallel Concurrent Execution worden de taken verdeeld over verschillende CPU’s. De taken op dezelfde CPU worden gelijktijdig uitgevoerd, terwijl de taken op verschillende CPU’s parallel worden uitgevoerd.

74
Q

Parallellisme

A

Parallellisme betekent dat de toepassing zijn werk opsplits in kleinere subtaken die parallel kunnen verwerkt worden.
Om echte parallellisme te bereiken moet een toepassing meer dan 1 subtaak hebben die wordt uitgevoerd, en elke subtaak moet op afzonderelijke CPU’s / CPU-cores / GPU-cores draaien.

75
Q

Wederzijdse uitsluiting (mutual exclusion)

A

Processen die gelijktijdig gebruik willen maken van gedeelde computerbronnen (gemeenschappelijk RAM geheugen aanspreken), kan voor conflicten en inconsistensies zorgen.
Een kritieke sectie zijn de instructies (code) voor het aanspreken van die gedeelde bronnen (bijvoorbeeld lezen of schrijven naar gemeenschappelijke data).
Wederzijdse uitsluiting is een term uit de informatica waarmee de eis bedoeld wordt dat wanneer een proces zich in een kritieke sectie bevindt en er gebruikgemaakt wordt van gedeelde bronnen, er geen andere processen zijn die zich ook in een kritieke sectie bevinden waarbij dezelfde bronnen worden gebruikt.
Het regelen van toegang tot gedeelde bronnen is een belangrijk probleem in de computerwetenschappen.

76
Q

Voorbeeld - Wederzijdse uitsluiting

A

Stel we hebben een globale variabel getal (geheel getal).
2 processen willen deze variabele aanpassen, via volgende instructies:
1. Lees de huidige waarde van de variabele getal vanuit het geheugen
2. Verhoog deze waarde met 1
3. Schrijf de nieuwe waarde van getal weg naar het geheugen
Als beide processen om beurt de instructies uitvoeren is er geen probleem, maar wat als het eerste proces onderbroken wordt na het uitvoeren van de eerste instructie?
- De variabele getal zal, afhankelijk van de volgende uitvoering verhoogd zijn met 1 of 2
- Een oplossing is om 3 instructies te groeperen als kritieke sectie, en hiervoor een wederzijdse uitsluiting af te dwingen.
Stel de instructies proces A = A1, A2, A3 en proces B = B1, B2, B3.
Wanneer het proces A onderbroken wordt kan de uitvoering er als volgt uitzien: A1, B1, B2, B3, A2, A3.
Het proces A kent nog de originele waarde van het getal. Hier zal het getal dus met 1 verhoogd worden en niet met 2.

77
Q

Wederzijdse uitsluiting bij multiprocessing

A

Niet alleen processen, maar ook activiteiten binnen één proces kunnen parallel worden uitgevoerd.
Als processen of activiteiten niet gemeenschappelijk gebruiken, is er geen probleem. De moeilijkheden ontstaan wanneer de processen het gemeenschappelijk geheugen aanspreken.

78
Q

Wederzijdse uitsluiting bij multiprogramming

A

Ook wanneer een computersysteem maar één processor heeft, zijn gelijklopende processen mogelijk. De processen kunnen niet op hetzelfde moment (parallel) uitgevoerd worden. Maar ze kunnen wel op hetzelfde moment de controle van de CPU proberen te krijgen.
Wanneer twee van zo een processen het gemeenschappelijke geheugen willen aanspreken, kunnen nog steeds problemen ontstaan, en kan wederzijdse uitsluiting nodig zijn.

79
Q

Wederzijdse uitsluiting afdwingen.

A

In praktijk is het afdwingen van wederzijdse uitsluiting niet eenvoudig.
Een mogelijke oplossing is het gebruik maken van een boolean variabele die bijhoudt of er een proces in een kritieke sectie zit. Echter verschuiven we dan het probleem naar de toegang tot deze globale variabele.
Er bestaan verschillend algoritmes die een oplossing bieden voor het probleem van wederzijdse uitsluiting:
- Algoritme van Dekker: beperkt to wederzijdse uitsluiting voor 2 parallelle processen
- Peterson’s algoritme: wederzijdse uitsluiting voor meer dan 2 processen
Buiten deze algoritmes bestaat er ook een alternatieve methodes:
- Afdwingen van wederzijdse uitsluiting via semaforen:
- Bedacht door Dijkstra
- Semafoor is een soort van integer variabele die slechts door enkele primitieve operaties gewijzigd kan worden.
- Een primitieve operatie is een operatie die niet onderbroken kan worden.
- Operatie wordt volledig uitgevoerd
- Of, Operatie wordt volledig ongedaan gemaakt
- Afdwingen van wederzijdse uitsluiting via monitoren
- Een monitor is een constructie in een programmeertaal die een functionaliteit biedt die vergelijkbaar is met semaforen, maar gemakkelijker te besturen is.

80
Q

Meer dan toegang tot gedeeld geheugen

A

Tot nu zagen we wederzijdse uitsluiting exclusief bij het regelen van toegang tot het gedeeld geheugen.
Er bestaan echter andere vormen van wederzijdse uitsluiting:
- Wederzijdse uitsluiting kan ook gebruikt worden om de toegang naar bestanden te regelen, en bijvoorbeeld te voorkomen dat 2 processen gelijktijdig naar hetzelfde bestand willen schrijven (en zo elkaars wijzigingen ondermijnen)
- Wederzijdse kan nuttig zijn om toegang tot bepaalde hardware bronnen te regelen. (bv. gelijktijdig taken sturen naar een printer :arrow_right: printertaken worden bijgehouden in printqueue zodat de taken één voor één afgedrukt worden)

81
Q

Synchronisatie

A

Synchronisatie is het proces of het resultaat van iets gelijktijdig maken.
- Ontstaan in 19e eeuw: treinen reden zo snel dat een verschil in lokale tijd begon op te vallen. Gelijk zetten van de klokken was een noodzaak. (ook veiligheids vereiste voor spoorlijnen met een enkele spoor, zo kon vermeden worden dat treinen op hetzelfde moment op hetzelfde spoor reden)
- Binnen concurrency: Het opleggen van een dwingende volgorde aan events die door concurrente, asynchrone processen worden uitgevoerd.
Bij concurrente processen weten we niet welk proces wanneer aan bod komt, via synchronisatie willen we garanderen dat de uitvoering ervan (of delen ervan) in een bepaalde volgorde verlopen.

82
Q

Het filosofenprobleem

A

Stel: er zitten 5 filosofen aan een ronde tafel. Op die tafel liggen 5 vorken, er ligt één vork tussen elke twee filosofen dus elke filosoof heeft een vork aan zijn linker- en rechterkant. Een filosoof kan twee dingen doen: eten of denken (maar niet tegelijkertijd).
Om te eten heeft elke filosoof twee vorken nodig. Er zijn echter slechts vijf vorken. Zo heeft elke filosoof één vork aan zijn linker en één aan zijn rechterhand; de filosoof kan die oppakken als die op tafel ligt, maar moet de vorken één voor één oppakken.
Het probleem is nu om de filosofen zodanige instructies te geven dat ze niet zullen verhongeren. In welke volgorde moeten de filosofen de vorken oppakken? En hoe lang mag een filosoof eten, voor hij de vork terug op tafel legt?
We moeten dus met andere woorden een planning vinden voor het oppakken en neerleggen van de vorken. Als we dit bovendien eerlijk willen doen, moeten we er in de planning voor zorgen dat elke filosoof even veel tijd krijgt om te eten, met andere woorden: elke filosoof zou na verloop van tijd even lang 2 vorken vastgehad moeten hebben. Dit soort problemen zijn in het algemeen niet zo eenvoudig op te lossen, maar illustreren mooi het probleem van synchronisatie.

83
Q

Eerste poging

A

De filosofen willen meteen eten en nemen elk de vork aan de linkerkant op. Iedereen heeft een vork vast, maar geen van de filosofen kan de rechter vork nemen (in het hand van de filosoof rechts van hen). Ook wil geen van de filosofen hun vork neerleggen.
Er treedt een dode lock op. Dit willen we uiteraard vermijden.

84
Q

Dode lock

A

Bij een dode lock wachten twee of meer processen eindeloos op een gebeurtenis die door een van die wachtende processen veroorzaakt moet worden. (vb. gebeurtenis = vrijgeven van een bron)
De eenvoudigste vorm van een dode lock is wanneer twee processen gebruik maken van dezelfde bronnen (vb. printer en gegevensbestand). Stel proces A gebruikt de printer en proces B gebruikt een gegevensbestand. Vervolgens vraagt proces A toegang tot het gegevensbestand, en proces B toegang tot de printer. Beide processen blijven eindeloos wachten op toegang tot de respectieve bron. Geen van beide bronnen zal ooit worden vrijgegeven, omdat beide processen blijven wachten.

85
Q

Tweede poging

A

Vorken oppakken als beide vorken vrij zijn.
De vijf filosofen pakken de vorken alleen als beide vorken beschikbaar zijn. Als dit niet het geval is, moet een filosoof beide vorken terugleggen en even wachten.
Vermijden van deadlock

86
Q

Live lock

A

Bij een live lock blijven processen hun toestand veranderen in reactie op veranderingen in andere processen zonder dat er werk verricht wordt. Bij een live lock kan men oneindig bezig zijn.
Een live lock ontstaat wanneer een of meer processen dat een dode lock probeert te vermijden en ervoor zorgt dat de processen tegelijkertijd blijven wachten op toegang tot de bronnen.
Er wordt voorkomen dat de processen wachten, maar er wordt ook voorkomen dat de processen toegang krijgen tot de benodigde bronnen.
Live lock komt vaak voor wanneer een proces dat een dode lock probeert te vermijden een conflict probeert op te lossen door zijn toestand te wijzigen. Dit kan leiden tot een situatie waarin de processen tegelijkertijd hun toestand blijven wijzigen en nooit toegang krijgen tot de benodigde bronnen.

87
Q

Resurrectie

A

Het probleem van wederzijdse uitsluiting en synchronisatie:
- Gecontroleerde toegang tot gedeelde bronnen door concurrerende processen
- Fouten door gebruik van semaforen: het kan voorkomen dat een proces dat een seintje geeft (decrement) niet volledig uitgevoerd is
- Manieren om wederzijdse uitsluiting en synchronisatie te implementeren: monitoren, semaforen

88
Q

Resurrectie - Tweede definitie

A

Het synchronisatieprobleem is een probleem in de informatica waarbij meerdere processen of threads gelijktijdig toegang proberen te krijgen tot gedeelde bronnen. Het doel is om ervoor te zorgen dat deze toegang gecontroleerd en gecoördineerd plaatsvindt, zonder conflicten en zonder dat de gedeelde bronnen worden beschadigd.
Er zijn verschillende manieren om synchronisatie te implementeren, waaronder het gebruik van monitoren, semaforen, mutexen (mutual exclusion locks) en condition variables.

89
Q

Conclusie

A

Concurrency biedt vele voordelen, maar zorgt ook voor uitdagingen zoals wederzijdse uitsluiting, synchronisatie en dode locks.
Het correct implementeren van wederzijdse uitsluiting en synchronisatie is cruciaal voor de betrouwbaarheid en efficiëntie van moderne computersystemen.