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

Slides:



Advertisements
Verwante presentaties
CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005.
Advertisements

Hoe werkt een rekenmachine?
Embedded systemen Embedded software.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
Hardware (1) SGDB Informatica.
Par. 3.1 Computers zijn overal
Hardware (1) NSG Informatica.
Jerry van den Heuvel Pim van der Lee
Week 1: overzicht computersysteem-organisatie
ICT Infrastructuren 26 november 2007 David N. Jansen.
Het werkgeheugen stored program concept (John von Neumann) Het achtergrondgeheugen Geheugen.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
BESTURINGS SYSTEMEN Vincent Naessens.
DEEL V: INVOER/UITVOER EN BESTAND Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer.
1 Device driver. 2 Hardware Operating Systeem Prog1Prog2 System calls/ API Device drivers Gebruiker afschermen van de hardware.
Hoofdstuk 8: Virtueel geheugen
Week 2: Microarchitectuur niveau ALU en datapad
Computerarchitectuur
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
Het uC/OS-II RTOS.
De processor.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Hoe werkt een rekenmachine?
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
Event Handling in Embedded Systems.  Wat is een event?  Welke events zijn het meest “time-critical”?  Welke toestand wordt door de CPU opgeslagen?
Operating Systems Informatica.
Presentatie door: Martijn Schmid, Kathinka Veldkamp en Nynke Zwart
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (2)
Mem_ex: buddy system Gegeven: een geheugenblok van 1 megabyte wordt toegewezen met het buddysysteem. A)Toon de resultaten van de volgende reeks in een.
Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Context switching Chanel Mepschen Informatica 5Fvwo.
Context switching Heidi Snoek. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data weggeschreven.
Etherflow Voor het aansluiten van een flowmeter op een Ethernet netwerk Afstudeerpresentatie Michel van der Net Elektrotechniek Avans Hogeschool Breda.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
BIOS en Opstarten.
Basisfuncties Operating System.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Context switching Naomi Baggelaar. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data.
Besturingssysteem Vaak wordt de Engelse term gebruikt: Operating System ( OS ) Plaats van het OS in een computersysteem: Hardware Applicatie Operating.
Cache Prestatie & Energieverbruik. Overzicht Voorbeelden energieverbruik Cache.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
 2 Fases ◦ Data van CPU overbrengen naar GPU  Mesh data, Render State, Blend State... ◦ GPU rendert scene  Programeerbare shaders verwerken input 
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Node.js en NPM. Node.js Open source, crossplatform runtime omgeving voor server-side javascript applicaties, primair bedoel snelle, schaalbare netwerk.
Studie en implementatie van input replay Cornelis Frank.
Module code: Scheduling Het verdelen van processortijd onder processen en threads 1.
Module code: 11. I/O-beheer en schijfscheduling 12. Bestandsbeheer 1 Operating Systems.
Operating Systems Informatica.
Computersystemen 2 (TIRCCMS02 - Operating systems)
Besturingssystemen 1 (TINBES01-1)
Computersystemen 2 (TIRCCMS02 - Operating systems)
Computersystemen 2 (TIRCCMS02 - Operating systems)
Computersystemen 2 (TIRCCMS02 - Operating systems)
Digitale Methoden Onderdeel van vak Computer Systemen
3 Hardware 3.1 De processor en intern geheugen
Besturingssystemen Ga verder met een muisklik..
Wat gaan we doen? Herhaling ARM assembler instructies
SQL Les February 2019.
Besturingssysteem.
Netwerken & Internet 1.
Transcript van de presentatie:

1 Operating Systems- Week 1

2 Computersystemen Memory Instruction Data

3 Processor

4 Registers CPU (core) bevat registers met speciale functies: Rekenregisters, algemene registers Adresregisters Segmentregisters (Intel) Stackpointer(s) Statusregister Instructiepointer

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 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 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 int extern telrond(unsigned int waarde) { if(waarde >= 60) waarde = 0; else waarde++; return waarde; } Sprong-instructies Bekijk de volgende functie:

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 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 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 Sprong-instructies (Jump, Branch) adresWaardebetekenis 1204E MOVEAX, JMPEAX … JMP1400 … MOVEBX, [5030] INCEBX ADDEBX, EDX MOV[5030], EBX

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

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

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 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 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 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 Hoe kunnen programma’s het OS bereiken? Hardware CPU & Memory I/O Devices Operating System System Calls Users and User Programs

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 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 Multiprocessor

23 Multicore SMP – Symmetric MultiProcessor

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 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 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 Proces Wordt ook taak genoemd Executie van een individueel programma Kan worden weergegeven in een trace (reeks van uitgevoerde instructies)

28 Two-state process model

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 Five-State Process Model NewReadyRunningExit Blocked Admit Event Occurs Dispatch Release Time-out Event Wait

31 Eén geblokkeerde wachtrij Toelaten Ready Queue Dispatch Time-out Event Wait vrijgeven Processor Blocked Queue Event Occurs

32

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 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 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 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 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 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 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 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 Operating Systems Theorie: –Wat doet een OS ? –Hoe doen OS-en die dingen –Processen beheren –Geheugenbeheer –I/O –Bestandssystemen Practicum: –Stackframes –Multithreading

42 Moore’s Law Sinds 1965 gold de volgende wetmatigheid: –Computersystemen verdubbelen hun snelheid grofweg elke 2 jaar.

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 Moore’s Law is dead ?

45 Moore’s law is alive !

46 Amdahl’s Law

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 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