Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdJonathan Pauwels Laatst gewijzigd meer dan 8 jaar geleden
1
1 Operating Systems- Week 1
2
2 Computersystemen Memory Instruction Data........
3
3 Processor
4
4 Registers CPU (core) bevat registers met speciale functies: Rekenregisters, algemene registers Adresregisters Segmentregisters (Intel) Stackpointer(s) Statusregister Instructiepointer
5
5 Instructies Speciaal register: IP (instruction pointer) Ook wel genoemd: PC (program counter) Bevat het adres van de volgende uit te voeren machine-instructie
6
6 Instructies De processor is voortdurend bezig in een ‘loop:’ 1.Haal instructie op via IP, Instruction Pointer 2.Verhoog IP 3.Decodeer instructie en voer uit. Eén van: ALU-operatie Geheugenoperatie I/O-operatie Branch-operatie (spronginstructie)
7
7 Sprong-instructies IP wordt nooit expliciet benaderd, maar opgehoogd na elke instructie en verder gewijzigd door: –Een absolute sprong –Een relatieve sprong –Een functieaanroep –Een interrupt –Een return-instructie
8
8 int extern telrond(unsigned int waarde) { if(waarde >= 60) waarde = 0; else waarde++; return waarde; } Sprong-instructies Bekijk de volgende functie:
9
9 address instruction operands int extern telrond(unsigned int waarde) { 00AB1410 push ebp 00AB1411 mov ebp,esp if(waarde >= 60) 00AB142E cmp dword ptr [ebp+8],3Ch 00AB1432 jb 00AB143D ; VOORWAARDELIJKE SPRONG waarde = 0; 00AB1434 mov dword ptr [ebp+8],0 else 00AB143B jmp 00AB1440 ; ABSOLUTE SPRONG waarde++; 00AB143D inc dword ptr [ebp+8] return waarde; 00AB1440 mov eax,dword ptr [ebp+8] } 00AB1446 mov esp,ebp 00AB1448 pop ebp 00AB1449 ret
10
10 address instruction operands int k = telrond(8); 00AB14D6 push 8 00AB14D8 call 00AB1410 00AB14DD add esp,4 00AB14E0 mov dword [ebp-0Ch],eax Spronginstructies: Functieaanroep
11
11 Na een externe interrupt: Huidig proces wordt onderbroken Alle registers en vlaggen worden veiliggesteld IP wijst naar interrupt-service routine Na een return-from-interrupt (IRET) wordt alles weer teruggezet Oorspronkelijk proces loopt weer verder Spronginstructies: Interruptafhandeling
12
12 Sprong-instructies (Jump, Branch) adresWaardebetekenis 1204E4 00 14MOVEAX, 1400 120732JMPEAX … 135022 00 14JMP1400 … 43 30 50MOVEBX, [5030] 140254 40INCEBX 140375 02ADDEBX, EDX 140544 30 50MOV[5030], EBX
13
13 Subroutine-aanroep (Call, Branch Subroutine) adreswaardebetekenis 1830E5 00 01MOVEBX, 100 183378 00 16CALL1600 183644DECEBX … 160043 34MOVEBP, ESP 160254 40ADDESP, 40 1604F5PUSHEBP … 1698E5POPEBP 169030RET
14
14 Interrupt service routine adreswaardebetekenis 140043 30 50MOVEBX, [5030] 140254 40INCEBX Interrupt vector table 140375 02ADDEBX, EDX 140544 30 50MOV[5030], EBX 02101 15040 221F5 2304E9PUSHA 32304 230554 40MOVESP, 2400 47710 … 55868 2376E8POPA 6… 237731IRET
15
15 Geprogrammeerde I/O Een programma gaat in een lus na: - Of er data klaar staat - Of er data geschreven kan worden Er is ‘handshaking’ tussen randapparaat en proces via een ready-bit. Deze vorm van I/O heet ook: ”polling” of “busy waiting” I/O-communicatietechnieken
16
16 Interruptgedreven I/O Het lopende proces wordt onderbroken De hardware zorgt dat de processor automatisch naar een interruptroutine springt om daar de I/O af te handelen. Na afhandeling gaat oorspronkelijk proces weer verder I/O-communicatietechnieken
17
17 Direct Memory Access - DMA De processor initialiseert de I/O-transfer De DMA-controller handelt de I/O volledig zelfstandig af DMA heeft altijd een hogere prioriteit op de bus dan de processor. I/O-communicatietechnieken
18
18 Device driver Set van routines met de volgende functionaliteit: –initialisatie van de hardware –output data –input data –(her)configuratie van de hardware –afhandeling van interrupts Soms gemeenschappelijk te gebruiken door middel van een Device Descriptor
19
19 Hoe kunnen programma’s het OS bereiken? Hardware CPU & Memory I/O Devices Operating System System Calls Users and User Programs
20
20 I/O management Devices Device drivers(HAL) KERNEL proces I/O System call I/O manager User mode Kernel mode CPU, MMU, Memory,... descriptors
21
21 Hoofdstuk 3 Besturing van processen Een Proces Het Two-State Model Het Five-State Model Het Seven-State Model Besturingsstructuren in het OS Aanroepen van de kernel
22
22 Multiprocessor
23
23 Multicore SMP – Symmetric MultiProcessor
24
24 Wat is een proces ? Een programma in uitvoering De eenheid die aan een processor kan worden toebedeeld (door het operating system) Een eenheid van activiteit dat bestaat uit –Een set van instructies (het programma) –Een toestand –Een set van resources die het proces gebruikt
25
25 Eisen aan het besturingssysteem Processen creëren Meerdere processen concurrent uitvoeren –Optimaal processorgebruik –Optimale responstijd Bronnen toewijzen aan de processen Communicatie tussen processen ondersteunen
26
26 Standaardfuncties van een kernel Proces Management Creëren en beëindigen van processen Inroosteren en toedelen van processen (scheduling en dispatching) Wisselen van processen Het synchroniseren van processen en ondersteunen communicatie tussen processen Beheer van proces-besturingsblokken Memory Management Toewijzen van adresruimte aan processen Swapping Beheren van pagina ’ s en segmenten I/O Management Beheren van Buffers Toewijzen van I/O kanalen en apparaten aan processen Support Functions Afhandelen van Interrupts Administratie Monitoring
27
27 Proces Wordt ook taak genoemd Executie van een individueel programma Kan worden weergegeven in een trace (reeks van uitgevoerde instructies)
28
28 Two-state process model
29
29 Onderbreken van Processen De processor is sneller dan I/O daarom kunnen alle processen wachten op I/O Haal processen die niet verder kunnen van de processor om andere processen de kans te geven. Hiervoor is een nieuwe state nodig: De blocked state
30
30 Five-State Process Model NewReadyRunningExit Blocked Admit Event Occurs Dispatch Release Time-out Event Wait
31
31 Eén geblokkeerde wachtrij Toelaten Ready Queue Dispatch Time-out Event Wait vrijgeven Processor Blocked Queue Event Occurs
32
32
33
33 Wanneer wisselt een proces? Interrupts –Clock –het proces heeft de maximale time slice gebruikt –I/O Page fault –het geheugenadres is niet gevonden in het virtuele geheugen, daarom moet het uit het hoofdgeheugen gehaald worden Trap –error treedt op –het proces heeft een exit uitgevoerd Soms ook bij aanroep van OS API –zoals open file
34
34 Uitswappen van Processen Er kunnen zoveel processen bestaan dat er een gebrek aan werkgeheugen ontstaat. Swap deze processen naar disk om meer geheugen vrij te krijgen De state wordt suspend (uitgesteld) state wanneer het proces geswapt is naar disk Twee nieuwe states –Blocked, suspend –Ready, suspend
35
35 A Seven-state Process Model Context-switch De status van een ander proces wordt teruggezet. Context-switch De status van een ander proces wordt teruggezet.
36
36 Wanneer stopt een Proces ? Proces is klaar Beëindigen parent Verzoek van parent Tijdslimiet overschreden Event time-out Memory unavailable I/O failure Protection error Arithmetic error Invalid instruction Privileged instruction
37
37 Tabellen Geheugen –Het toewijzen van het hoofdgeheugen aan processen –Het toewijzen van secundair geheugen aan processen –Protectie-attributen voor toegang tot gedeeld geheugen –Informatie nodig voor het besturen van virtueel geheugen I/O –I/O device is beschikbaar of toegewezen –De status van een I/O operatie –Locatie in het hoofdgeheugen die wordt gebruikt voor de bron of bestemming van de I/O data transfer Bestand (file handle) –Alleen geopende bestanden: –Plaats in op schijf –Huidige pointers –Huidige toestand Proces –Proces control block
38
38 Process Control Block Procesidentificatie –Unieke numerieke identifier –Dit kan de index in de primaire proces tabel zijn –User identifier –Identificatiecode parent Procestoestand –De inhoud van de processor registers –User-visible registers –Control and status registers –Stack pointers –Program status word (PSW) –bevat status informatie –Bijvoorbeeld: de EFLAGS register op de Pentium processor Procesbesturingsinformatie Toegevoegde informatie nodig voor het operating system om de actieve processen te besturen en te coördineren –Scheduling en state informatie –Gegevensstructuur –Communicatie tussen processen –Procesprivileges –Geheugenbeheer –Eigendom en gebruik van bronnen Mode-switch OS proces heeft meer privileges dan andere processen. Mode-switch OS proces heeft meer privileges dan andere processen.
39
39 Uitvoering van het besturingssysteem Aparte Kernel (zoals vroeger) Het concept proces bestaat alleen bij de gebruikerprogramma ’ s De OS code wordt uitgevoerd als een aparte entiteit in de privilege mode OS code wordt nooit uitgevoerd binnen een proces
40
40 Uitvoering binnen gebruikersprocessen Vrijwel alle software van het besturingssysteem wordt in de context van het gebruikersproces uitgevoerd. Bij het optreden van Interrupts, Traps, System calls wordt de CPU in de kernel mode gezet en wordt de OS routine uitgevoerd in de context van het gebruikersproces (mode switch) Wordt vastgesteld dat er een proceswisseling moet plaatsvinden, dan wordt de besturing overgedragen aan de proceswisselroutine
41
41 Operating Systems Theorie: –Wat doet een OS ? –Hoe doen OS-en die dingen –Processen beheren –Geheugenbeheer –I/O –Bestandssystemen Practicum: –Stackframes –Multithreading
42
42 Moore’s Law Sinds 1965 gold de volgende wetmatigheid: –Computersystemen verdubbelen hun snelheid grofweg elke 2 jaar.
43
43 Moore’s Law Deze wetmatigheid heeft veel invloed gehad op de manier waarop software zich ontwikkeld heeft: –Er kwamen nieuwe high-level talen (zoals Java en C#) die performance inruilen voor gebruiksgemak en portabiliteit. –Er wordt steeds meer gebruik gemaakt van frameworks om de complexiteit van software op te vangen ten koste van overhead. –Veel software die uitkwam was te langzaam voor de hardware van dat moment. Ook van invloed op ‘mindset’ van softwareontwikkelaars: –“Het is niet erg dat mijn software (te) langzaam is. Volgend jaar is dit (met nieuwe hardware) vanzelf verholpen.”
44
44 Moore’s Law is dead ?
45
45 Moore’s law is alive !
46
46 Amdahl’s Law
47
47 “The free lunch is over” De mythe dat het probleem van langzame software automatisch wordt verholpen door snellere hardware in de toekomst is voorbij. We zullen in softwareontwikkeling ons moeten richten op het vergroten van parallelisme (multi-threading) indien we meer performance willen. Single Core [1] Multicore [2-16] GPU processing (CUDA, OpenCL) [100+] Graphics (DirectX, OpenGL) [100+]
48
48 Studieaanwijzing Hoofdstuk 1: Paragraaf 1.4 Interrupts komt in week 3 aan bod Hoofdstuk 2: In ieder geval paragraaf 2.1 t/m 2.7 Hoofdstuk 3: In ieder geval paragrafen 3.1 t/m 3.5
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.