De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1 Operating Systems- Week 1. 2 Computersystemen Memory Instruction Data........

Verwante presentaties


Presentatie over: "1 Operating Systems- Week 1. 2 Computersystemen Memory Instruction Data........"— Transcript van de presentatie:

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 00AB AB14DD 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 1204E MOVEAX, JMPEAX … JMP1400 … MOVEBX, [5030] INCEBX ADDEBX, EDX MOV[5030], EBX

13 13 Subroutine-aanroep (Call, Branch Subroutine) adreswaardebetekenis 1830E MOVEBX, CALL DECEBX … MOVEBP, ESP ADDESP, F5PUSHEBP … 1698E5POPEBP RET

14 14 Interrupt service routine adreswaardebetekenis MOVEBX, [5030] INCEBX Interrupt vector table ADDEBX, EDX MOV[5030], EBX F5 2304E9PUSHA MOVESP, … E8POPA 6… IRET

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


Download ppt "1 Operating Systems- Week 1. 2 Computersystemen Memory Instruction Data........"

Verwante presentaties


Ads door Google