ÚVOD DO OPERAČNÍCH SYSTÉMŮ
Architektura počítače Základní bloky Provádění instrukcí
České vysoké učení technické Fakulta elektrotechnická Y38ÚOS Úvod do operačních systémů 01
Ver.1.01
2011
Hodnocení předmětu A0B38UOS •
• •
CVIČENÍ • Během semestru 4 testy: • 15 minut: (4., 6., 8. cvičení) • 60 minut: (11. cvičení) • Ze semestru lze získat maximum 60 bodů. • Na zápočet minimum 30 bodů ! ZKOUŠKA • Zkouškový test + krátká ústní část (maximálně 40 bodů). KLASIFIKACE • 90 – 100 bodů A (výborně) • 80 – 89 bodů B (velmi dobře) • 70 – 79 bodů C (dobře) • 60 – 69 bodů D (uspokojivě) • 50 – 59 bodů E (dostatečně) • < 50 bodů F (nedostatečně) Klasifikace je možná na základě hodnocení ze cvičení při dosažení ≥ 30 bodů!!! • 55 – 60 bodů A (výborně) + absolvování krátké ústní zkoušky • 49 – 54 bodů B (velmi dobře) + absolvování krátké ústní zkoušky • 43 – 48 bodů C (dobře) • 37 – 42 bodů D (uspokojivě) • 30 – 36 bodů E (dostatečně)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
2
Studijní materiály a informace o předmětu
•
http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody
•
http://measure.feld.cvut.cz/vyuka/predmety/A7B38UOS
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
3
„Nultá“ generace 1642 - 1945 •
Mechanické počítače (kalkulátory) • 1642 – Blaise Pascal – kalkulátor po výběr daní (+, -) • 1672 – Gotfried von Leibniz – mechanický počítač (+, -, *, /) • (1792-1871) – Charles Babbage – Analytical Engine • První skutečný počítač • Měl čtyři části • Store (paměť), Mill (CPU), Input section (čtečka děrných karet – z měděného plechu), Output section (děrovačka karet). Neměl operační systém. • Kapacita paměti – 1000 slov (slovo 50 dekadických cifer) • Mill četl operandy z paměti, uměl +, -, *, -, a výsledek zapsal zpět do paměti. • Velký pokrok – počítač byl universální, četl program a data z děrných karet a výsledek přenesl do výstupních karet • Programoval se v jednoduchém assembleru • Programátorka – Ada Lovelace (dcera básnika Byrona) • Počítač nikdy nepracoval uspokojivě, nepřesné mech.součásti
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
4
První generace (1945-55) •
HW – elektronky nebo elektromechanická relé • Mnoho pokusů, USA, Anglie, Německo • Př.: • Německo K. Zuse – Z3 computer (hw – relé) • Anglie Collosus • USA W. Mauchley a J.Eckert – ENIAC (hw – elektronky) • Počítače velmi nespolehlivé (elektronky), pomalé (relé) • Neexistovaly programovací jazyky • Neexistoval operační systém • Program se připravoval na propojovací desce (kabely), počítač si programátor vyhradil pro sebe vložil propojovací desku a zkoušel program. • Počítač se použival pro numerické výpočty • Okolo roku 1950 – začátek používání děrných štítků (malé vylepšení)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
5
Druhá generace (1955-65) •
HW – Tranzistory, OS – Batch Systems, Mainframe • Vynález tranzistoru (1947) radikálně změnil situaci • Počítače se staly dostatečně spolehlivé, daly se použít pro komerční výpočty • Mohly být vyráběny a prodány zákazníkům • Byly velmi drahé (miliony dolarů) • Počítače si mohly dovolit pouze velké a bohaté podniky • Poprvé došlo k jasnému oddělení činnosti navrháře počítače, výrobce, operátora, programátora a personálu údržby • Tyto počítače se nazývaly „Mainframes“ • Zabíraly celé klimatizované místnosti • CPU podstatně rychlejší než I/O operace (štítky, pásky), snaha využít výkon počítače efektivně – vstupní a výstupní operace na levnějších, ale pomalejších počítačích, výpočet pak na hlavnim stroji – dávkové zpracování (Batch processing)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
6
Druhá generace (1955-65) • •
HW – Tranzistory, OS – Batch Systems Dávkové zpracování (Batch Processing)
[1]
Slow
Fast, Large Main Memory
Slow
IBM Computers (Mainframes) [1] Tanenbaum, A: Modern Operating Systems. Prentice Hall, New Jersey, 2008 Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
7
Výpočetní dávka na děrných štítcích •
Dávkové zpracování (Batch Processing), Job
Koncový štítek dávky Data programu JAN NOVAK
Zdrojový kód programu Pokyn k natažení překladače První štítek dávky Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
8
Postup zpracování programu • • •
Počítače (Mainframes) drahé – miliony dolarů Zabíraly celé místnosti (klimatizace) Postup zpracování programu: • Zapsat program na papír • Přenést na děrné štítky (děrovací psací stroj) – sestavit dávku (Batch) • Přinést dávku obsluze počítače • Přenést informace z děrných štítků na magnetickou pásku • Přenést magnetickou pásku na hlavní počítač • Spustit výpočet (i více dávek najednou) • Výsledek se zapíše na jinou magnetickou pásku • Přenést pásku na tiskový počítač • Vytisknou buď výsledek, častěji chybové hlášení (syntax error) • Vyzvednout tiskovou sestavu u obsluhy • Prostudovat tiskovou sestavu • Upravit program a celý postup opakovat
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
9
Třetí generace 1965-80 • • • • •
•
•
HW – integrované obvody (SSI - malá integrace) OS – Multiprogramming, Spooling, Timesharing Řada počítačů IBM360 – jsou kompatibilní, liší se rychlostí a velikostí paměti Operační systém OS360 shodný pro celou řadu Nový princip řízení výpočtu - Multiprogramming • Umožnil efektivní využití CPU (rychlé) i když I/O operace jsou pomalé • V hlavní paměti je současně několik úloh (Jobs), když daná úloha čeké na ukončení I/O operace, CPU se přidělí další úloze (multiprogrammig) Současné (paralelní) čtení programu z děrných štítků a výpočet – Spooling (Simultaneous Peripheral Operation On Line). Odpadá počítač pro pořizování dat. Nová úloha (Job) mohla být operačním systémem spuštěna ihned po dokončení předchozí. Interaktivní sdílení času - Timesharing – k počítači připojeno více (mnoho) terminálů a uživatel mohl s počitačem komunikovat interaktivně. Čas CPU byl přidělován jednotlivým uživatelům tak často, aby vznikl dojem, že každý uživatel má počítač ihned k dispozici.
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
10
Některé OS využívající Timesharing • •
CTSS (Compatible Time Sharing System) – 1962 M.I.T MULTICS (Multiplexed Information and Computing Service) – Bell Labs, GE
•
Vznik trhu minipočítačů (Minicomputers) – 1961 – DEC (Digital Equipment Corporation) PDP-1, PDP-7, PDP-11 – řádově levnější než „Mainframes“, minipočítač si mohly dovolit university i menší firmy.
•
Jeden z autorů MULTICS tento OS upravil pro PDP-7 – vznik OS UNIX • Významné verse UNIXu – System-V (AT&T), BSD (Berkeley Software Distribution) • IEEE – vytvořila normu (Standard) pro UNIX → POSIX • MINIX – malý klon UNIXu (1987) (Tannenbaum) • Linux (upravený MINIX) (Linus Torvalds)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
11
Čtvrtá generace 1980-2011 • • •
HW – mikroprocesory (integrované obvody LSI, VLSI – velká integrace) OS CP/M, MS-DOS, Windows, Apple Macintosh Vznik osobních počítačů a později sítových OS • 1971 Intel 4004 • 1974 Intel 8080, Motorola 6800, Zilog Z80 (1975) • 1977 CP/M – Control Program for Microcomputers (Digital Research) – secondary storage – Floppy disk • 1978 Intel 8088 (16 bit machine) • 1980 IBM PC (Personal Computer) • 1980 MS-DOS (MicroSoft Disk Operating System (na HDD) • 1983 Intel 80286 • Apple Macintosh OS a GUI (Graphical User Interface) • 1985-1995 Microsoft Windows – jen grafická nadstavba nad MS-DOS • 1985 Windows 95 (16 bit system) • 1988 Windows 98 (16 bit system)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
12
Čtvrtá generace 1980-2010 • • • • • •
• • •
1999 – Windows NT 4.0 (New Technology)(32 bit) – již bez MS-DOS Windows NT přejmenovány na Windows 2000 2001 Windows XP (vylepšené NT) 2007 Windows Vista 2009 Windows 7 Paralelně s Windows se šíří používání různých verzí UNIXu – Linux • Včetně několika versí GUI pro UNIX • X Windows System (X11) • Gnome • KDE Rychlé rozšiřování síťových a distribuovaných OS Oddělená kapitola – Operační systémy reálného času (Real Time Operating Systems – RTOS) – na PC i v Embedded (vestavných) aplikacích počítačů. Hard RTOS, Soft RTOS.
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
13
Operační systém (Operating System) •
Operační systém je software který [1]: • pro uživatelské programy vytváří lepší, jednodušší, přehlednější základnu pro efektivní využití počítače, • spravuje všechny prostředky (resources) počítače.
•
Prostředky (resources) počítače: • Procesory • Operační paměť (Main Memory) • Disky • Tiskárny • Klávesnice • Myš • Síťové adaptéry • … různá další vstupní a výstupní zařízení (Devices)
[1] Tanenbaum, A: Modern Operating Systems. Prentice Hall, New Jersey, 2008
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
14
Komponenty počítačového systému
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
15
Komponenty operačního systému User Command Interface (System Calls)
[2]
Memory Manager
Processor Manager (CPU)
Network Manager Device Manager (Disk, Monitor, Printer, Keyboard, etc.)
File Manager [2] McIver McHoes, A – Flynn, I.M.: Understanding Operating Systems. Thomson, 2008
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
16
Struktura počítače Kontrolní seznam 1
Check list No.1
Struktura počítače • Počítač • Procesor • Operační paměť • Periferní obvody • ALU – aritmetická a logická jedn. • Registr (paměťové místo) • Řízení procesoru - Řadič • Vstupní kanály • Výstupní kanály • Společná sběrnice • Bit • Byte (slabika)
Computer structure • Computer • Processor, CPU • Main Memory • Peripherals • ALU – Arithmetic Logic Unit • Register • Processor control - Controller • Input (Input Channels) • Output (Output Channels) • Bus (Common Bus) • Bit • Byte
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
17
Strukrura počítače Hlavní komponenty počítače
Paměť programu a dat
Vstupní a výstupní zařízení
Komunikace s okolním světem
Procesor Výpočetní část Mezipaměť výsledků Řízení Řadič (Controller)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
18
Propojení bloků počítače – Bus (společná sběrnice)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
19
Paměti počítače Common Bus XTAL Clock
CPU
BUS MASTER CPU - SYNCHRONOUS FINITE STATE MACHINE (FSA, FSM) SEQUENTIAL PROGRAM PROCESSING (ONE INSTRUCTION AT A TIME)
Program Memory
MAIN MEMORY
BIOS Operating System
PROGRAM INSTRUCTIONS
Application Program
PROGRAM VARIABLES & PROGRAM STACK
Data Memory
CD/DVD Output COMMON DATA PATH (BIDIRECTIONAL)
HDD
I/O Channels Input
EXTERNAL MEMORY Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
FLASH Corsair
20
Organizace operační paměti (Main Memory) •
Operační paměť (Main Memory) je rozdělena na buňky – paměťová místa, kterým jsou přiřazena nezáporná čísla nazývaná adresy
•
• Obsah paměťového místa je slovo • slovo (word) – velikost závisí na procesoru (např. 16b, 24b, 32b, 64b), • b – značí bit (binary digit) • B – značí byte (slabika), 8b = 1B, byte je uspořádaná osmice bitů, obvykle 2 nebo i více byteů tvoří slovo, např. u procesorů Intel řady x86 – 1 slovo = 2B = 16b.
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
21
Procesor a operační paměť - Výkon vs. roky
Výkon
100.000 x
40 let
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
22
Paměťová hierarchie Registry na CPU
Cache
Operační paměť (DRAM) Magnetický disk (HDD) CD-RW DVD-RW
Magnetická páska
Velikost Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
23
Instrukční cyklus Kontrolní seznam 2
Check list No.2
Instrukční cyklus • Čtení instrukce • Vykonání instrukce • Dekódování instrukce • Čtení operandu • Zpracování operandů • Zápis výsledku • Řídicí sběrnice (CB) • Datová sběrnice (DB) • Adresová sběrnice (AB) • Sběrnicový cyklus • Směr přenosu informace
Instruction cycle • Operational code (Opcode) fetch • Instruction execution • Instruction decode • Operand read • Operand processing • Result write • Control bus (CB) • Data bus (DB) • Address bus • Bus cycle • Information transfer direction
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
24
Vykonání instrukce
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
25
Rozdělení společné sběrnice
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
26
Kde číst následující instrukci
Čítač instrukcí
1) Další instrukci čti vždy z adresy uložené v PC 2) Adresa v PC se mění automaticky, po čtení instrukce ukazuje na další instrukci 3) Adresa v PC se dá změnit vykonáním instrukce skoku, cílová adresa je součástí instrukce Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
27
Větvení programu (Jump, Branch)
Realizace větvení programu
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
28
Dekompozice problému na dílčí části
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
29
Zde příklad v Javě
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
30
Požadavky pro volání procedury
Návratová adresa Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
31
Princip volání procedury (Procedure Call)
Zásobník (návratových adres)
Ukazatel zásobníku Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
32
Synchronní akce – volání procedury Kontrolní seznam 3
Check list No.3
Synchronní akce • Čítač instrukcí - PC • Ukazatel do paměti programu • Postupné čtení • Automatická inkrementace • Vnucená adresa • Zásobník • Ukazatel zásobníku • Ukazatel na vrchol zásobníku • Vrchol zásobníku • Vlož do zásobníku - PUSH • Vyzvedni ze zásobníku - POP
Synchronous actions • Program Counter PC • Pointer to program memory • Sequential read • Auto-increment • Forced address • Stack • Stack Pointer • Pointer to stack top • TOS – top of stack • PUSH • POP
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
33
Synchronní akce – volání procedury - pokrač. Kontrolní seznam 4
Check list No.4
Synchronní akce - pokrač. • Začátek programu • Hlavní smyčka • Volání procedury • Návratová adresa • Začátek procedury • Tělo procedury • Bod návratu (return) • Vnořené volání • Návěští (cílová adresa skoku) • Skok (bez návratové adresy) • Hloubka zásobníku
Synchronous actions – cont'd • Program start point • Main loop • Procedure call • Return address • Procedure start • Procedure body • Return • Nested calls • Label (jump target address) • Jump (no return address) • Stack depth
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
34
Prostředky pro organizaci volání procedury
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
35
Sdílené prostředky (sdílí je procedury)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
36
Princip volání procedury (synchronní) • • • • • • • • • • • • •
Volání procedury - souhrn akcí Volání procedury je vyvolané programem (synchronní) ne vnější událostí (vnější událost – viz. přerušení) Stejným mechanismem se řídí i vnořené volání (procedura volá proceduru) Další instrukce se vždy čte z adresy právě uložené v čítači instrukcí (PC) Čti instrukci “Call“ Ulož “návratovou adresu“ (tj. obsah čítače instrukcí) do zásobníku Vlož do čítače instrukcí počáteční adresu procedury Ulož kontext do zásobníku Proveď tělo procedury Vyzvedni kontext Proveď instrukci “Return“ Ta vyzvedne “Návratovou adresu“ ze zásobníku do čítače instrukcí (PC) Pokračuj v programu za místem volání “Call“ na pozadí – tj. čti instrukci z adresy uložené v PC
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
37
Před čtením “CALL“
1 2 3 4
5 6 7
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
38
Po čtení “CALL“ 1
1 2 3 4
5 6 7
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
39
Během provádění “CALL“
2
1 2 3 4
5 6 7
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
40
Po provedení “CALL“
3
1 2 3 4
5 6 7
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
41
Před čtením “RETURN“
4
1 2 3 4
5 6 7
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
42
Po čtení “RETURN“
5
1 2 3 4
5 6 7
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
43
Po čtení “RETURN“
7
6
1 2 3 4
5 6 7
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
44
Princip volání procedury (synchronní) - souhrn • • • • • • • • • • • • •
Volání procedury - souhrn akcí Volání procedury je vyvolané programem (synchronní) ne vnější událostí (vnější událost – viz. přerušení) Stejným mechanismem se řídí i vnořené volání (procedura volá proceduru) Další instrukce se vždy čte z adresy právě uložené v čítači instrukcí (PC) Čti instrukci “Call“ Ulož “návratovou adresu“ (tj. obsah čítače instrukcí) do zásobníku Vlož do čítače instrukcí počáteční adresu procedury Ulož kontext do zásobníku Proveď tělo procedury Vyzvedni kontext Proveď instrukci “Return“ Ta vyzvedne “Návratovou adresu“ ze zásobníku do čítače instrukcí (PC) Pokračuj v programu za místem volání “Call“ na pozadí – tj. čti instrukci z adresy uložené v PC
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
45
Asynchronní akce – hardwareové (hw) volání procedury
Žádosti o přerušení Řadič přerušení Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
46
Asynchronní akce – hw volání procedury (ISR) Kontrolní seznam 5
Check list No.5
Asynchronní akce • Systém přerušení • Hardwarové volání procedury • Předdefinovaná cílová adresa • Vektor přerušení • Tabulka vektorů přerušení • Asynchronní žádost o přerušení • Řadič přerušení • Vstupy žádostí o přerušení • Asynchronní událost • Žádost o přerušení do CPU • Potvrzení žádosti od CPU
Asynchronous actions • Interrupt system • Hardware procedure call • Predefined target address • Interrupt vector • Interrupt vector table • Asynchronous interrupt request • Interrupt controller • Interrupt request inputs • Interrupt event • CPU interrupt request • CPU interrupt acknowledge
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
47
Asynchronní akce – hw volání procedury (ISR). Kontrolní seznam 6
Check list No.6
Asynchronní akce - pokrač. • Instrukce je nepřerušitelná • Reakční doba přerušení • Priorita přerušení • Statická priorita přerušení • Dynamická priorita přerušení • Programová priorita přerušení • Typy přerušení • Maskovatelné přerušení • Nemaskovatelné • Programové (ladící) přerušení • Program řízený událostmi
Asynchronous actions – cont'd • Instruction is uninterruptable • Interrupt latency • Interrupt priority • Static interrupt priority • Dynamic interrupt priority • Software interrupt priority • Interrupt types • Maskable interrupt • Nonmaskable interrupt • Trap (software interrupt) • Event driven program
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
48
Asynchronní akce – hw volání procedury (ISR) Kontrolní seznam 7
Check list No.7
Asynchronní akce - pokrač. • Obsluha přerušení - ISR • Návratová adresa z přerušení • Instrukce návratu z přerušení • Asynchronní událost • Pozadí programu • Nejnižší hladina programu • Sdílené zdroje • Střadač • Stavové slovo procesoru - PSW • Příznakový registr • Kontext programu (uložit/obnovit)
Asynchronous actions – cont'd • Interrupt service routine - ISR • Interrupt return address • Interrupt return instruction • Asynchronous event • Background (level) • Lowest program level • Shared resources • Accumulator • Processor status word - PSW • Flag register • Program context (save/restore)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
49
Asynchronní akce – hw volání procedury (ISR)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
50
Prostředky pro organizaci hw volání procedury (interrupt)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
51
Sdílené prostředky (sdílí je ISR a přerušený program)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
52
Žádost o obsluhu přerušení (hw volání procedury)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
53
Žádost o obsluhu aktivní - 1
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
54
Dokončení aktivní instrukce - 2
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
55
Uložení (Push) návratové adresy do zásobníku (Stack) - 3
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
56
Vyzvednutí adresy obslužného programu (ISR) - 4
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
57
Spuštění obslužné procedury přerušení (ISR) - 5
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
58
Uložení kontextu do zásobníku - 6
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
59
Provedení těla obslužné procedury (ISR) - 7
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
60
Obnovení kontextu (ze zásobníku) - 8
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
61
Vyzvednutí návratové adresy (ze zásobníku) - 9
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
62
Obnovení běhu přerušeného programu - 10
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
63
Princip programu řízeného událostmi - souhrn •
Obsluha žádosti o přerušení – souhrn akcí
• •
Dokonči právě prováděnou instrukci (instrukce je nepřerušitelná) Ulož (Push) “návratovou adresu“ do zásobníku (tj. adresu, která je právě v čítači instrukcí (PC)) Vyzvedni adresu ISR (tj. podprogramu obsluhy přerušení) z tabulky vektorů přerušení Spusť ISR Vynuluj “Interrupt Request Flag“ (závisí na typu procesoru) Ulož kontext do zásobníku Proveď tělo ISR (vlastní obsluhu žádosti o přerušení) Obnov původní kontext (vyzvedni ho ze zásobníku) Proveď instrukci “Return“ Ta vyzvedne “Návratovou adresu“ ze zásobníku do čítače instrukcí (PC) Pokračuj v programu na pozadí – tj. čti instrukci z adresy uložené v PC
• • • • • • • • •
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
64
Event Driven Program Principle - summary •
Interrupt request service summary
• • • • • • • • • • •
Finish current background instruction (instruction is uninterruptable) Push “Return Address“ to stack (i.e. address in program counter) Get “ISR Address“ from “Interrupt Vector Table“ Start ISR routine Clear “Interrupt Request Flag“ (depends on processor type) Save context to stack Run ISR body Restore context from stack Execute “Return“ instruction Pop “Return Address“ from stack (Pop it to program counter) Continue background program – read next instruction from address in PC
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
65
Připojení operační paměti k CPU CB DB AB
CPU
Clock
Program Memory
ADDRESS DECODER MEMORY ARRAY
BUS MASTER
ADDRESS VALID
DATA VALID
ADDRESS DECODER
TRANSFER DIRECTION (TRANSFER PATH)
Data Memory
ADDR.BUS
ADDRESS DECODER Output
DATA BUS
I/O Channels
nREAD
Input INPUT/ OUTPUT REGISTERS
nWRITE CPU DATA READ
MEMORY ARRAY
CPU DATA WRITE (to MEMORY)
NOTE: nREAD, nWRITE - SIGNAL ACTIVE IN ”0”
Common Bus BUS TRANSFER DIRECTIONS: DB = BIDIRECTIONAL CB, AB = UNIDIRECTIONAL
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
66
Operační paměť (Main Memory)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
67
Cyklus obsluhy přerušení (Interrupt Cycle)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
68
DMA cyklus (Direct Memory Access Cycle) Common Bus XTAL (CRYSTAL) STABLE SYNC. SIGNAL Power Supply
Clock
BIOS Operating System Application Program
CPU RESET HOLD
Power Monitor
DRQ1 DRQn
IRQn
PROGRAM INSTRUCTIONS
HLDA
DMA Controller
PROGRAM VARIABLES & PROGRAM STACK
Data Memory
IRQ1 IRQ2
MAIN MEMORY
Program Memory
Output Interrupt Controller
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
I/O Channels
Input
World
69
DMA - princip BUS MASTER 1 XTAL (CRYSTAL) Clock STABLE SYNC. SIGNAL DMA Controller Control Commands DRQn
Transfer Count
Common Bus
BIOS Operating System Application Program
CPU
MAIN MEMORY
Program Memory
PROGRAM INSTRUCTIONS
HOLD HLDA INTRQ
PROGRAM VARIABLES & PROGRAM STACK
INTACK Data Memory
Destination Address Source Address
IRQ1 BUS MASTER 2
IRQ2 IRQn
Output Interrupt Controller
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
I/O Channels
Input
World
70
DMA – převzetí řízení sběrnice DMA TRANSFER CYCLE BUS REQUEST ADDRESS VALID
BUS RELEASED
DMA END
CPU CONTINUES
DATA VALID
ADDR.BUS DATA BUS nREAD nWRITE
HOLD HLDA BUS MASTER 1 - CPU
BUS MASTER 2 – DMA CONTROLLER
NOTE: nREAD, nWRITE - SIGNAL ACTIVE IN ”0”
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
71
Cache (vyrovnávací paměť) Kontrolní seznam 8
Check list No.8
Cache (vyrovnávací paměť) • Operační paměť • Externí paměť • Disk • Magnetická páska • Cache pro instrukce • Datová cache • Metoda zápisu z cache do hl.p. • Zápis ihned zpět do hl.p. • Zápis až při novém plnění cache • Cache slot (blok + označení) • Cache tag (označení bloku) • Cache blok
Cache • Main memory • Secondary memory • HDD (Hard Disk Drive) • Magnetic tape • Instruction cache • Data cache • Cache write • Write-through method • Write-back method • Cache slot • Cache tag • Cache block
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
72
Paměťová hierarchie Registry na CPU
Cache
Operační paměť (DRAM) Magnetický disk (HDD) CD-RW DVD-RW
Magnetická páska
Velikost Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
73
Cache – vyrovnávací paměť
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
74
Cache – vyrovnávací paměť • • • • •
•
•
•
Urychlení práce počítače Část informace přesunuta do menší ale rychlé paměti (cache) Přístup procesoru k této informaci rychlejší Pokud informace v cache není, nutno ji přisunout do cache z operační paměti Cache může být rozdělena na více úrovní (hladin) – jedna z úrovní je přímo v procesoru, druhá může být vně procesoru (ale sestavená z rychlejší paměti než je paměť operační) Cache může být určena jen pro data nebo i pro instrukce • Data cache • Instruction cache Data cache – po zpracování dat se data uloží: • Ihned zpět do operační paměti (write-through method) • Do data cache (write-back method). Zpět do operační paměti se uloží později, při novém plnění data cache Cache je řízena pomocí hardware
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
75
Cache – Vyrovnávací paměť - jednohladinová Word (byte) transfer
Block transfer
Single Level Cache
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
76
Cache – Vyrovnávací paměť - dvouhladinová
Multi Level Cache
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
77
Cache – princip organizace MAIN MEMORY Memory address 0
CACHE Slot number
1 Tag
Block
0
Block (K words)
2 Slot
1 2
X Block length (K words)
Block 2n-1 Word length
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
78
Cache – princip organizace (přiklad) MAIN MEMORY
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Memory address
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
...
0 1
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
2
CACHE
Slot number
Tag
0
0001
4096
Block
4097 Slot
Block (4K words)
4098
1 2 8191
Block X Block length
2n-1
(4K words) Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
Word length
79
Virtual Memory (Virtuální paměť) Kontrolní seznam 9
Check list No.9
Virtuální paměť • Overlay (překryvný modul) • Logická adresa • Fyzická adresa • Stránka (Page) • MMU (přemapování adresy) • Mapovací tabulka • Virtuální adresa • Stránka je/není v oper.paměti • Virtuální stránka • Ofset adresy (posun od zač.str.) • Fyzická stránka v oper.pam. • Stránka není v oper.paměti
Virtual Memory • Overlay • Logical address • Physical address • Page • MMU – Memory management unit • Page table • Virtual address • Present/absent bit • Virtual page • Address offset • Page frame • Page fault
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
80
Velikost programu vs. velikost operační paměti
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
81
Velikost programu vs. velikost operační paměti •
Když program větší než operační paměť (Main Memory) - možnosti • Program nelze použít (to určitě nechceme) • Overlays (překryvné moduly) • Za vytvoření zodpovědný programátor • Virtuální paměť (Paging) – stránkování • Za stránkování zodpovědný operační systém • Pro programátory transparentní • Navrženo - 1961, Manchester, Velká Británie
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
82
Paměťová hierarchie (zjednodušené)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
83
Overlays (překryvné moduly) - princip Program rozdělí PROGRAMÁTOR na části (Overlay)
DISK (HDD) Program se provádí postupně Overlay 1
Overlay 2
Program
Main Memory
Overlay 2
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
84
Overlays (překryvné moduly) - princip •
Když program větší než operační paměť (Main Memory) • Aplikační program se rozdělí na překryvné moduly (Overlays) • Za všechny akce zodpovídá programátor aplikačního programu • Program se rozdělí na části (Overlays), které se vejdou do paměti • Celý program je uložen ve vnější pamětí (Secondary Storage) – např. HDD • Programátor určí, kdy se který překryvný modul (Overlay) má zavést do operační paměti a spustit. • Celý proces výpočtu pomocí překryvných modulů probíhá v režii programátora, bez pomoci počítače (operačního systému) • Nepohodlné, zdlouhavá příprava, možnost chyb
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
85
Virtuální paměť (Virtual Memory) - princip Physical Address
Logical Address Main Memory
Main Memory
Page 0 Page 1
+
Page 2 Page 3 Page 4 Disk
Page 5
Disk
Page N
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
86
Virtuální paměť (Virtual Memory) •
Virtuální paměť • Paměťový prostor je rozšířen na disk • Adresy (logické) mohou mít hodnotu větší než odpovídá rozsahu operační paměti (Main Memory) • Část instrukcí a dat spuštěného programu je odložena (Swap) na externí paměťové medium (disk) (ty, které nejsou právě třeba při provádění programu) • Paměťová jednotka, která se přenáší mezi virtuální a fyzickou pamětí se nazývá stránka (Page) • Překódování adres (mapování, remaping) řídí jednotka MMU – Memory Management Unit (je součástí CPU) • Za překódování (přemapování) virtuální adresy na fyzickou odpovídá operační systém (pro programátora aplikace je činnost MMU transparentní)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
87
Virtuální paměť a MMU (Memory Management Unit)
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
88
...
Virtuální a fyzická adresa
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
89
...
MMU – princip činnosti
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
90
MMU – Jednotka přemapování adres VIRTUÁLNÍ PAMĚŤ
Page Virtual adresses 61440 - 65535
...
63
FYZICKÁ PAMĚŤ (MAIN MEMORY)
6
6144 - 7167
5
5120 - 6143
4
4096 - 5119
Page frame
3
3072 - 4095
3
3072 - 4095
2
2048 - 3071
2
2048 - 3071
1
1024 - 2047
1
1024 - 2047
0
0 - 1023
0
0 - 1023
Physical adresses
MMU 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 6-bit virtual page
1 1 0 0 0 0 1 1 0 1 0 0
10-bit offset 16-bit virtual address
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
12-bit memory address
91
MMU – Jednotka přemapování adres
Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
92
ÚVOD DO OPERAČNÍCH SYSTÉMŮ
Architektura počítače Základní bloky Provádění instrukcí KONEC
České vysoké učení technické Fakulta elektrotechnická Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače
93