Architektura počítače Základní bloky Provádění instrukcí



Podobné dokumenty
Vstup-výstup Input-Output Přehled a obsluha

Systém přerušení. Algoritmizace a programování. Struktura počítače - pokračování. Systémová struktura počítače pokrač.

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systémová struktura počítače

Algoritmizace a programování

ŘÍZENÍ ELEKTRICKÝCH POHONŮ. Systémová struktura počítače Řízení běhu programu. České vysoké učení technické Fakulta elektrotechnická

Struktura a architektura počítačů

Operační systémy. Tomáš Hudec.

Algoritmizace a programování

Algoritmizace a programování

Struktura a architektura počítačů

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Operační systém (Operating System)

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektura počítače

Technické prostředky počítačové techniky

Úvod do informačních technologií

a co je operační systém?

Operační systémy. Přednáška 8: Správa paměti II

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Procesor. Procesor FPU ALU. Řadič mikrokód

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Architektura počítačů

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

PROCESOR. Typy procesorů

Architektura počítače Základní bloky Provádění instrukcí

Architektury CISC a RISC, uplatnění v personálních počítačích

HW počítače co se nalézá uvnitř počítačové skříně

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

HISTORIE VÝPOČETNÍ TECHNIKY. Od abakusu k PC

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Obsah. Kapitola 1 Skříně počítačů 15. Kapitola 2 Základní deska (mainboard) 19. Kapitola 3 Napájecí zdroj 25. Úvod 11

Operační systémy. Tomáš Vojnar IOS 2010/2011. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Základy informatiky. Operační systémy

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Vývoj SW aplikací. Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení

Struktura a architektura počítačů

Úvod SISD. Sekvenční výpočty SIMD MIMD

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Úvod do architektur personálních počítačů

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Operační systémy. Přednáška 1: Úvod

Operační systémy. Tomáš Hudec.

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Charakteristika dalších verzí procesorů v PC

Sběrnicová struktura PC Interní počítačové paměti PC

Klasifikace počítačů a technologické trendy Modifikace von Neumanova schématu pro PC


Metody připojování periferií BI-MPP Přednáška 2

2 Hardware a operační systémy

Základní pojmy a historie výpočetní techniky

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Univerzita Pardubice Fakulta ekonomicko-správní. Vytvoření podpůrných nástrojů pro výuku předmětu Operační systémy. Michal Bělský

Struktura a architektura počítačů (BI-SAP) 7

IT ESS II. 1. Operating Systém Fundamentals

Operační systémy (OS)

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

Úvod. unx-predn_01-uvod.odt :13:43 1

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Management procesu I Mgr. Josef Horálek

Operační systémy Rozdělení a popis. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1124_Operační systémy Rozdělení a popis_pwp

Procesy a vlákna (Processes and Threads)

SÁLOVÉ POČÍTAČE. Principy počítačů. Literatura. Harvard Mark I Grace Murray Hopper ENIAC

2010/2011 ZS. Operační systém. úvod základní architektury

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

Co je to počítač? Počítač je stroj pro zpracování informací Jaké jsou základní části počítače? Monitor, počítač (CASE), klávesnice, myš

Struktura a architektura počítačů (BI-SAP) 1

Přednáška - A3B38MMP Procesory s jádrem ARM. A3B38MMP 2015, J. Fischer, kat. měření, ČVUT-FEL Praha 1

Principy činnosti sběrnic

Miroslav Tichý, tic136

Hardware. Z čeho se skládá počítač

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační paměti počítačů PC

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

6. Procesory jiných firem... 1

Základy digitální techniky

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení

Intel Procesor a jeho konstrukce. Vývojové typy, činnost procesoru

Paměti a jejich organizace

Obvody a architektura počítačů. Jednoprocesorové počítače

Operační systémy Linux, Mac OS X a jejich srovnání

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.

Metody připojování periferií

FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

éra elektrického proudu a počítačů 3. generace

Paměťové prvky. ITP Technika personálních počítačů. Zdeněk Kotásek Marcela Šimková Pavel Bartoš

CHARAKTERISTIKY MODELŮ PC

Principy operačních systémů. Lekce 2: Správa paměti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Komunikace procesoru s okolím

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

4 Správa paměti. 4.1 Základní správa paměti

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností, budoucností a hlavními parametry.

Transkript:

Ú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] Processor Manager (CPU) Device Manager (Disk, Monitor, Printer, Keyboard, etc.) File Manager Memory Manager Network 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 XTAL Clock CPU CPU - SYNCHRONOUS FINITE STATE MACHINE (FSA, FSM) BUS MASTER SEQUENTIAL PROGRAM PROCESSING (ONE INSTRUCTION AT A TIME) Common Bus Program Memory BIOS Operating System Application Program Data Memory MAIN MEMORY PROGRAM INSTRUCTIONS PROGRAM VARIABLES & PROGRAM STACK CD/DVD COMMON DATA PATH (BIDIRECTIONAL) I/O Channels EXTERNAL MEMORY Output Input HDD FLASH Corsair Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače 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 Clock CPU CB DB AB Program Memory ADDRESS DECODER MEMORY ARRAY ADDR.BUS ADDRESS VALID DATA VALID BUS MASTER TRANSFER DIRECTION (TRANSFER PATH) Data Memory ADDRESS DECODER MEMORY ARRAY DATA BUS nread nwrite CPU DATA READ CPU DATA WRITE (to MEMORY) NOTE: nread, nwrite - SIGNAL ACTIVE IN 0 I/O Channels ADDRESS DECODER Output Input INPUT/ Common OUTPUT Bus REGISTERS 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 Program Memory MAIN MEMORY XTAL (CRYSTAL) STABLE SYNC. SIGNAL Clock RESET CPU BIOS Operating System Application Program PROGRAM INSTRUCTIONS Power Supply Power Monitor DRQ1 DRQn HOLD DMA Controller HLDA Data Memory PROGRAM VARIABLES & PROGRAM STACK IRQ1 IRQ2 IRQn Interrupt Controller I/O Channels Output Input World Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače 69

DMA - princip BUS MASTER 1 Common Bus Program Memory MAIN MEMORY XTAL (CRYSTAL) STABLE SYNC. SIGNAL DRQn DMA Controller Clock Control Commands Transfer Count Destination Address Source Address HOLD CPU HLDA INTRQ INTACK BIOS Operating System Application Program Data Memory PROGRAM INSTRUCTIONS PROGRAM VARIABLES & PROGRAM STACK BUS MASTER 2 IRQ1 IRQ2 IRQn Interrupt Controller I/O Channels Output Input World Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače 70

DMA převzetí řízení sběrnice DMA TRANSFER CYCLE ADDRESS VALID DATA VALID BUS REQUEST BUS RELEASED DMA END CPU CONTINUES 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 Slot number 0 Tag CACHE Block Slot 0 1 2 Block (K words) 1 2 X Block length (K words) Block 2 n -1 Word length Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače 78

Cache princip organizace (přiklad) 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1... 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 MAIN MEMORY Memory address 0 1 2 Slot number 0 1 Tag 0001 CACHE Block Slot 4096 4097 4098 Block (4K words) 2 8191 Block X Block length 2 n -1 (4K words) Word length Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače 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) Overlay 1 DISK (HDD) Program se provádí postupně 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 Disk Page 5 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 63 61440-65535 6... 6144-7167 FYZICKÁ PAMĚŤ (MAIN MEMORY) 5 4 5120-6143 4096-5119 Page frame Physical adresses 3 3072-4095 3 3072-4095 2 2048-3071 2 2048-3071 1 1024-2047 1 1024-2047 0 0-1023 0 0-1023 MMU 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 6-bit virtual page 10-bit offset 16-bit virtual address 12-bit memory address Y38ÚOS Úvod do operačních systémů 01 - Architektura počítače 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