2. přednáška12. 2. 2013
- přerušení (instrukční cyklus, obsluha)- vztahy mezi tématy- vytváření programu- definice operačního systému- provádění vnořených procedur- zásobník, růst zásobníku při dvou procedurách- DMA, multiprogramování
Studijní materiály najdete na adrese:
http://www.uai.fme.vutbr.cz/~vdumek/
- technickými prostředky (vnější), instrukcí INTR nemaskovatelná maskovatelná
- programově (vnitřní) instrukcí INT n, chybou při běhu programu
- sled činností: uloží se FLAGSvynulují se IF, TFCS do zásobníkudo CS obsah hodnoty přerušeníIP do zásobníku (neprovedená instrukce)
do IP obsah hodnoty přerušení- přerušení se uplatní po provedení instrukce- návrat instrukcí IRET
PIC 8259A
PIC 8259A
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
Přerušení
Přerušení (Interrupt) je schopnost procesoru přerušit právě vykonávaný program a začít vykonávat program jiný (obsluha přerušení), začalo se implementovat z důvodu obsluhy periferií (procesor nemusí čekat ve smyčce na pomalé zařízení), dnes je využito při přepínání procesů
IRQ0 - systémový časovač IRQ8 – hodiny reálného časuIRQ1 - řadič klávesnice IRQ9 – available, NIC, SCSIIRQ2 - sekundární PIC IRQ10 – available, NIC, SCSIIRQ3 - COM2, COM4 IRQ11 – available, NIC, SCSIIRQ4 - COM1, COM3 IRQ12 – myš, PS/2IRQ5 - LPT2 (zvuková karta) IRQ13 – floating point unitIRQ6 - řadič disket IRQ14 – ATA (CD ROM, HD)IRQ7 - LPT1 (zvuková karta) IRQ15 - ATA
IRQ Levels (Interrupt Request)
Typ signálu přerušení, které lze maskovat (bit IF – Interrupt Enable Flag v příznakovém registru nastaven na 0), potom se přerušení generované signálem INTR neprovede
N+1
T
Processor
Programcounter
Stackpointer
Generalregisters
Y
T-M
Start
Return
T
T-M Zásobník
Přerušovacírutina
Y
Y+L
NN+1
Uživatelskýprogram
Mainmemory
Y+L+1
T-M
Processor
N+1
T
N+1
Start
Return
T
T-M Zásobník
Přerušovacírutina
Y
Y+L
NN+1
Uživatelskýprogram
Mainmemory
Vyvolání přerušenípo instrukci N
Návrat z přerušení
Instrukční cyklus s přerušením
START
HALT
1
2
i
i+1
M
. . .. . .
. . .
INTERRUPT HANDLERUSER PROGRAM
FETCH NEXTINSTRUCTION
EXECUTEINSTRUCTION
CHECK FOR INTERRUPTINITIATE INTERRUPTHANDLER
Interruptdisabled
Interruptenabled
Obsluha přerušení
Sekvenční způsob Vnořený způsob
Je možné zavádět prioritní obsluhu přerušení
Časování při vícenásobném přerušení
t=0t=10
t=15
t=25
t=25
t=35
t=40
Printer interruptservice routine
User program
Comunication interruptservice routine
Disk interruptservice routine
2
4
5
Interrupt occurs = 10 Interrupt occurs = 15
Interrupt occurs = 20
Důležité vztahy mezi tématy
Processdescriptionand control
Memorymanagement
Security
Scheduling Concurrency
Filemanagement
I/Omanagement
Networking
Vytváření programu
Idea
Algorithm
SourceProgram
BinaryProgram
Status
Stack
Data
Files
OtherResources
Execution Engine
Process
Algoritmus
-determinovanost-rezultativnost-hromadnost-efektivnost
- analýza- editace- překlad- sestavení- spuštění
Vytváření programu
Cíle: použití počítače je pohodlnější a výhodnější, čerpání systémových zdrojů je účinnější, schopnost vývoje (testování, nové funkce, ...)
Funkce:vytváření programů (editor, debugger), spouštění programů, přístup na I/O, přístup k souborům, přístup a ochrana systémových zdrojů, detekce chyb, evidence
Charakteristiky: souběžnost, sdílení (cena, sdílená data, vytváření dalších úloh, odstranění
redundance), determinovanost (stejné výsledky ze stejných dat a kdykoliv), výkonnost (střední čas mezi procesy, čas odezvy, čas obrátky, využití zdrojů, ...), spolehlivost, udržovatelnost, velikost
Operační systémy
- program, který je prostředníkem mezi uživatelem a technickým vybavením- účelem OS je poskytovat uživateli prostředí pro spouštění programů- základní část téměř všech počítačových systémů- správce prostředků (řídí, alokuje, odebírá) – Resource Manager- řídí provádění uživatelských programů a I/O operací – Control Program- program, který vždy běží - Kernel
Definice operačního systému
Provádění vnořených procedur
CALL Proc1
CALL Proc2
CALL Proc2
RETURN
RETURN
Main program
ProceduraProc1
ProceduraProc2
4000
41004101
4500
46004601
46504651
4800
.4101 4101 4101 4101 4101
. .....
4601 4651
AA01
SS:0A1A
11AA
3C00
0A18
0A16
0A14
0A12
Vrchol zásobníku SS:0A14
Zásobník
- struktura LIFO v operační paměti- instrukce PUSH (vložení), POP (výběr)- výběr řídí registr SP (Stack Pointer)- kapacita zásobníku na programátorovi- používá INT, přerušovací systém, volání podprogramu
Dno zásobníku SS:0A1A
Typická organizace zásobníku
Free
In use
Stackpointer
Stacklimit
Stackbase
Blok rezervovanýpro zásobník
- pouze jeden element může být dosažen, jedná se o poslední vkládaný záznam – vrchol zásobníku- parametry zásobníku (počáteční adresa, velikost, limit, ...) jsou variabilní- Stack Pointer – obsahuje sdresu vrcholu zásobníku, adresa je inkrementována nebo dekrementována operacemi PUSH a POP- Stack Base – obsahuje počátek zásobníku ve vyhrazené oblasti- Stack Limit – obsahuje adresu povoleného vrcholu zásobníku, každá operace PUSH za touto hodnotou vyvolá chybové hlášení
Růst zásobníku při dvou procedurách
x2
y2
y1
Return adressPrevious frame
pointer
x2
x1
Return adressPrevious frame
pointer
x1
Return adressPrevious frame
pointer
Top ofstack pointer
Top ofstack pointer
Currentframepointer
Currentframepointer
P: P:
Q:
aktivní proces P proces P zavolal proces Q
DMA - Direct Memory Access, některá zařízení mají možnost přistupovat k paměťovým přenosům dat bez účasti procesoru, při přenosu mezi pamětí a zařízením by byla velká režie, u blokových přenosů se nepřizpůsobuje rychlost – pouze u paměti, jedna adresová sběrnice – nelze použít adresaci dvou míst současně, specializovaný obvod – řadič DMA, jednoúčelové zařízení s 8 kanály u současných počítačů
Direct Memory Access
- procesor provádí více programů (procesů) „současně“
- pořadí provádění programů záleží na jejich prioritě, je modifikováno čekáním na nějakou událost (I/O operace)
- po přerušení se nemusí pokračovat v programu, který se prováděl před přerušením
Multiprogramování
- rychlejší přístup – dražší bit- větší kapacita – levnější bit- větší kapacita – pomalejší přístup
Paměťová hierarchie