18
2. přednáška 12. 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/

2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

Embed Size (px)

DESCRIPTION

2. přednáška 12. 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: - PowerPoint PPT Presentation

Citation preview

Page 1: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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/

Page 2: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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

Page 3: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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

Page 4: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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í

Page 5: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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

Page 6: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

Obsluha přerušení

Sekvenční způsob Vnořený způsob

Je možné zavádět prioritní obsluhu přerušení

Page 7: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

Č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

Page 8: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

Důležité vztahy mezi tématy

Processdescriptionand control

Memorymanagement

Security

Scheduling Concurrency

Filemanagement

I/Omanagement

Networking

Page 9: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

Vytváření programu

Idea

Algorithm

SourceProgram

BinaryProgram

Status

Stack

Data

Files

OtherResources

Execution Engine

Process

Page 10: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

Algoritmus

-determinovanost-rezultativnost-hromadnost-efektivnost

- analýza- editace- překlad- sestavení- spuštění

Vytváření programu

Page 11: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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

Page 12: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

- 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

Page 13: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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

Page 14: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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

Page 15: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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í

Page 16: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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

Page 17: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

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

Page 18: 2. přednáška 12. 2. 2013 přerušení (instrukční cyklus, obsluha) vztahy mezi tématy

- 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