Ruud - 5 - Processen Flashcards
Een operating systeem houdt van elk proces de actuele informatie bij in een zogenaamd Process Control Block (PCB).
Maak een lijst van items die in een process control block voorkomen
- Parent of the process
- CPU state.
- Provides snapshot of the process
- Process State. Current activity of the process
- Running. Executing instructions.
- Ready. Waiting to be assigned to a processor.
a) Beschrijf de functie van een TLB in een MMU.
b) Wat is de orde van grootte van het aantal items dat een TLB kan bevatten
c) Vaak bevat de TLB per regel een ASID (address space identifier). Leg uit waarom.
a) De Translation Look aside Buffer (TLB) in een Memory Management Unit (MMU) is een cache die fysieke pagina geheugenadressen bevat. Deze cache
voorkomt dat virtuele geheugenadressen van pagina’s steeds opnieuw vertaald moeten worden.
b) 4096 regels
c) de vertaling van virtuele adressen naar fysieke adressen is proces-afhankelijk.
Leg uit waarom bij een proces-gebaseerd real-time operating systeem het effect van een corrupte pointer minder ernstig is dan bij een thread-gebaseerd real-time operating systeem.
Bij een procesgeoriënteerd real-time besturingssysteem kan een corrupte pointer
in een bepaald proces geen directe invloed op een ander proces hebben, want corrupte pointerwaarden blijven in één virtuele adresruimte.
Gegeven een operating systeem dat werkt met 32 bits virtuele adresruimten, 4kB pagina’s en een paginering in twee niveaus volgens figuur 5.3. Voor de indexering van de pagetable directory worden 10 bits gebruikt.
Hoeveel geheugenruimte nemen de paginatabellen
per proces in beslag bij volledige implementatie en bij gebruik van 4 bytes per pagetable-
entry?
Elke page tabel bevat 1024 elementen. Voor de indexering van de pagetable directory (master table) blijven 10 bits over (32 - 10 -12; A,B,C 10 bits voor B
en 12 bits voor de offset C [volgt uit 4 kB pagina’s] ).
Het aantal page tables
bedraagt dus 2^10 = 1024. De geheugenruimte voor 1 page table bedraagt 1024 x 4 = 4096 bytes.
Voor 1024 page tables bedraagt dit 1024 x 4096 = 4 x 1024x 1024 = 4 MByte.
Een virtueel geheugenadres wordt in de MMU opgedeeld in drie delen: A B C, waarbij A de meestsignificante bits van het geheugenadres voorstelt.
Welk deel A, B of C bepaalt de grootte van de paginatabellen?
Deel B bepaalt de offset in een paginatabel. Als deel B uit x bits bestaat, dan zijner dus 2x elementen in een paginatabel.
Wat staat er in een page table directory?
De page tabel directory bevat aanvangsadressen van page tables
Bij een context swich naar een ander process moet het operating systeem overschakelen op een andere set van page tables. Hoe gebeurt dat?
Overschakeling op een andere set van paginatabellen gebeurd door een MMU-register met een andere waarde te vullen. De waarde van het MMU-register
wijst dan naar een andere page table directory
Hoe kan een operating systeem verschillende processen een gemeenschappelijk stuk geheugen geven?
Door een groep paginatabellen van alle processen met gelijke fysieke adressen te vullen ontstaat een gedeeld stuk geheugen
Wat gebeurt er als één van de user-level threads in figuur 5.6 blokkeert op een system call?
Blokkade van een user-level thread zal tot gevolg hebben dat de bijbehorende kernel thread blokkeert en daarmee ook de overige user-level threads binnen het proces.
Wat is een lightweight process?
Een Light Weight Process (LWP) is een hybride thread die deels in de kernel en deels in de usermode functioneert.
Een LWP verzorgt de
koppeling tussen een kernel thread en user level thread