Computer Systems Processen MB107a 2024-2025 PDF
Document Details
UCLL Hogeschool
2024
UCLL
Marc Vanophalvens, Roel Standaert, Tiebe Van Nieuwenhove
Tags
Summary
This presentation covers computer systems processes, specifically focusing on process scheduling, various algorithms (FCFS, SJF, Round Robin), system calls, and interrupts. The document details different scheduling methods, their advantages and drawbacks, and the concept of process states and the role of the operating system in managing processes.
Full Transcript
Toegepaste Informatica MBI07a 2024-2025 Computer Systems Processen Marc Vanophalvens, Roel Standaert, Tiebe Van Nieuwenhove Deel 1: Process Scheduling Programma’s en processen Wat is een p...
Toegepaste Informatica MBI07a 2024-2025 Computer Systems Processen Marc Vanophalvens, Roel Standaert, Tiebe Van Nieuwenhove Deel 1: Process Scheduling Programma’s en processen Wat is een programma? Programma’s Computers hebben een Ieder programma heeft heleboel programma’s code, instructies die het Browsers, tekstverwerkers, uitvoerteen serie Instructies: rekenmachine, bestandverkenner, machineinstructies terminal, shell Ieder programma heeft een ‘pointer’ om bij te houden welke instructie het moet uitvoeren Proces Een programma in uitvoering Houdt info bij: Status programma Gebruikte bestanden Geheugengebruik Procestoestand (hierover later meer) … Processen uitvoeren De processor voert processen (een serie instructies) uit In de simpelste vorm neemt een processor een proces, voert dit uit, en gaat naar het volgende Bijvoorbeeld, processen A, B en C A B C Processen uitvoeren: een reality check In realiteit is een proces echter zelden rechtlijnig, 1 rekensom Wat doet een tekstverwerker als er niks getypt wordt? Wachten Wat doet een browser als je bezig bent met lezen? Wachten A B C Processen zijn vaak onderbroken, met pauzes waarin de processor niks doet INEFFICIËNT! Processen moeten op elkaar wachten Multiprogrammatie Kunnen we processen door elkaar plannen? Wanneer het 1e proces wacht, laten we het volgende lopen Optimaler gebruik van de processor Oplossing? We gaan processen ‘inplannen’ met een scheduler Scheduling algoritmes Niet preëmptieve Preëmptieve algoritmes algoritmes Kunnen lopende processen Kunnen lopende processen onderbreken NIET onderbreken First come first served Wachtrij volgens aankomst (First In, First Out) 0 1 2 3 101 Proces Aankomst Uitvoertijd Start Omlooptijd Relatieve omlooptijd A 0 1 0 1 1 B 1 100 1 100 1 C 2 1 101 100 100 D 3 100 102 199 1,99 First come first served (niet preëmptief) Voordelen Nadelen Goed voor processen met Korte processen die later lange CPU bursts binnen komen zullen relatief lang moeten wachten Processen die vaak op I/O wachten moeten telkens achteraan aanschuiven Shortest Job First Het kortste proces wordt altijd als eerste uitgevoerd 0 1 2 3 102 Proces Aankomst Uitvoertijd Start Omlooptijd Relatieve omlooptijd A 0 1 0 1 1 B 0 100 2 102 1,02 C 1 1 1 1 1 D 1 100 102 201 2,01 Shortest job first (niet preëmptief) Voordelen Nadelen Korte processen zullen Processen met langere snel afgehandeld worden bursts worden uitgesteld Starvation Starving? Doordat er altijd andere processen voor een lang process kunnen springen, kan het zijn dat een proces eeuwig in de queue blijft staan Oplossing? Aging Nadat een proces een bepaalde tijd in de queue staat het toch op de processor zetten, ookal zijn er kortere processen Round Robin Wachtrij volgens aankomst (First In, First Out) Processen hebben een tijdsquantum (bijv. 60) Een proces kan maximaal 60 tijdseenheden per keer worden uitgevoerd 0 1 2 3 61 122 162 202 62 Proces Aankomst Uitvoertijd Start Omlooptijd Relatieve omlooptijd A 0 1 0 1 1 B 1 100 1 161 1,61 C 2 1 61 60 60 D 3 100 62 199 1,99 Round Robin (preëmptief) Voordelen Nadelen Minder lange wachttijden Vaak wisselen tussen dan FCFS processen is trager Geen starvation Processen die vaak op I/O wachten moeten telkens achteraan aanschuiven Deel 2: System calls & Interrupts System Calls & Interrupts Processor voert één programma tegelijk uit Besturingssysteem is zelf een programma Wanneer moet het besturingssysteem in actie komen? Signaal vanuit de hardware bijv. netwerk pakket komt aan Vraag van hoger gelegen software bijv. applicatie wil bestand wegschrijven Interrupt requests Stel: een netwerkpakket komt binnen op de netwerkkaart 1. Netwerkkaart stuurt een interrupt request naar de processor = berichtje dat het OS iets moet afhandelen 2. Processor onderbreekt het actieve programma Springt naar code van het OS om de request af te handelen Geen interrupt requests = geen onderbreking van het actieve programma (na iedere instructie controlleert PC op interrupts) Wat als er een interrupt binnenkomt? 1. De processor stopt het proces in uitvoering 2. De gegevens (instruction pointer, registers, …) over het proces worden in het geheugen opgeslagen 3. De processor laadt de nodige code in om de interrupt af te handelen 4. De processor handelt de interrupt af 5. De processor laadt de oorspronkelijke code terug in Stap 2, 3 en 5 = Context Switch Snelheidswinst interrupts: zonder interrupt Het programma (1) moet een bestand van de schijf inlezen Zolang het leeswerk (3) bezig is, moet het proces wachten op de leesoperatie Wanneer de leesoperatie gedaan is, kan het process hervatten (5) Snelheidswinst interrupts: met interrupt Terwijl de leesoperatie bezig is, runt de CPU een ander proces (3) Wanneer de leesoperatie gedaan is, krijgt de CPU een interrupt (kruisje) Dit is het teken om het oorspronkelijke proces te hervatten System calls Zoals interrupts signalen van de hardware aan het OS zijn, zijn system calls signalen van de software aan de OS System calls: voorbeelden Opstarten en beëindigen van programma’s Programma laten wachten op een gebeurtenis Toekennen en vrijgeven van geheugen Bestandsbeheer Creëren en vernietigen van bestanden en directories Openen en sluiten van bestanden Lezen en schrijven in bestanden Bepalen van toegang tot bestanden Voorbeelden read() leest bestanden in write() schrijft output exec() start nieuw programma op … Wil je hiermee eens op verkenning? Voer in je terminal eens het commando strace [commandonaam] uit Dit toont je de system calls die gebeuren voor dat proces