Modelleren 1

advertisement
Operating Systems- Week 1
1
Memory
Computersystemen
..
.
Instruction
Instruction
Instruction
..
Data
Data
Dat
a
Data
..
.
2
Processor
3
Registers
CPU (core) bevat registers met speciale functies:
• Rekenregisters, algemene registers
• Adresregisters
• Segmentregisters (Intel)
• Stackpointer(s)
• Statusregister
• Instructiepointer
4
Instructies
Speciaal register:
IP (instruction pointer)
Ook wel genoemd:
PC (program counter)
Bevat het adres van de volgende
uit te voeren machine-instructie
5
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)
6
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
7
Sprong-instructies
Bekijk de volgende functie:
int extern telrond(unsigned int waarde)
{
if(waarde >= 60)
waarde = 0;
else
waarde++;
return waarde;
}
8
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
9
00AB1449
ret
Spronginstructies:
Functieaanroep
address
instruction
int k = telrond(8);
00AB14D6
push
00AB14D8
call
00AB14DD
add
00AB14E0
mov
operands
8
00AB1410
esp,4
dword [ebp-0Ch],eax
10
Spronginstructies:
Interruptafhandeling
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
11
Sprong-instructies
(Jump, Branch)
adres
1204
1207
…
1350
…
Waarde
E4 00 14
32
betekenis
MOV
EAX, 1400
JMP
EAX
22 00 14
JMP
1400
1400
1402
1403
1405
43 30 50
54 40
75 02
44 30 50
MOV
INC
ADD
MOV
EBX, [5030]
EBX
EBX, EDX
[5030], EBX
12
Subroutine-aanroep
(Call, Branch Subroutine)
adres
1830
1833
1836
…
waarde
E5 00 01
78 00 16
44
betekenis
MOV
EBX, 100
CALL
1600
DEC
EBX
1600
1602
1604
…
1698
1690
43 34
54 40
F5
MOV
ADD
PUSH
EBP, ESP
ESP, 40
EBP
E5
30
POP
RET
EBP
13
Interrupt service routine
adres
1400
1402
1403
1405
2304
2305
…
2376
2377
waarde
43 30 50
54 40
75 02
44 30 50
E9
54 40
E8
31
betekenis
MOV EBX, [5030]
INC
EBX
Interrupt vector table
ADD EBX, EDX
MOV [5030], EBX
0
2101
PUSHA
MOV ESP, 2400
POPA
IRET
1
5040
2
21F5
3
2304
4
7710
5
5868
6
…
14
I/O-communicatietechnieken
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”
15
I/O-communicatietechnieken
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
16
I/O-communicatietechnieken
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.
17
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
18
Hoe kunnen programma’s het OS
bereiken?
System Calls
Users and User Programs
Operating System
CPU & Memory
I/O Devices
Hardware
19
I/O management
proces
proces
proces
User mode
I/O System call
Kernel mode
KERNEL
I/O manager
(HAL)
Device drivers
descriptors
CPU, MMU, Memory, ...
Devices
20
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
21
Multiprocessor
22
Multicore
SMP – Symmetric MultiProcessor
23
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
24
Eisen aan het besturingssysteem
• Processen creëren
• Meerdere processen concurrent uitvoeren
– Optimaal processorgebruik
– Optimale responstijd
• Bronnen toewijzen aan de processen
• Communicatie tussen processen ondersteunen
25
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
26
Proces
• Wordt ook taak genoemd
• Executie van een individueel
programma
• Kan worden weergegeven in
een trace (reeks van
uitgevoerde instructies)
27
Two-state process model
28
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
29
Five-State Process Model
Dispatch
New
Admit
Release
Ready
Running
Exit
Time-out
Event
Occurs
Event
Wait
Blocked
30
Eén geblokkeerde wachtrij
Ready Queue
vrijgeven
Dispatch
Toelaten
Processor
Time-out
Event Wait
Event
Occurs
Blocked Queue
31
32
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
33
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
34
A Seven-state Process Model
Context-switch
De status van een ander proces
wordt teruggezet.
35
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
36
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
37
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)
• Procesbesturingsinformatie
Mode-switch
Toegevoegde
informatie nodig voor
OS proces heeft
meer om
privileges
het operating
system
de
dan andere processen.
actieve processen te besturen en
te coördineren
– Scheduling en state informatie
– Gegevensstructuur
– Communicatie tussen processen
– Procesprivileges
– Geheugenbeheer
– Eigendom en gebruik van bronnen
– bevat status informatie
– Bijvoorbeeld: de EFLAGS register op de
Pentium processor
38
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
39
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
40
Operating Systems
• Theorie:
– Wat doet een OS ?
– Hoe doen OS-en die dingen
–
–
–
–
Processen beheren
Geheugenbeheer
I/O
Bestandssystemen
• Practicum:
– Stackframes
– Multithreading
41
Moore’s Law
• Sinds 1965 gold de volgende wetmatigheid:
– Computersystemen verdubbelen hun snelheid grofweg elke 2
jaar.
42
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.”
43
Moore’s Law is dead ?
44
Moore’s law is alive !
45
Amdahl’s Law
46
“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+]
47
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
48
Download