Architektura počítačů

Podobné dokumenty
Virtualizace. Lukáš Krahulec, KRA556

Pokročilé architektury počítačů

Počítač jako prostředek řízení. Struktura a organizace počítače

Virtualizace na Linuxu

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

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

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

35POS Počítačové systémy. 8 Mnohaúrovňová organizace počítače 1

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

Pokročilé architektury počítačů

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

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Red Hat Enterprise Virtualization

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

VirtualBox desktopová virtualizace. Zdeněk Merta

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

Virtualizační platforma ovirt

Procesy a vlákna (Processes and Threads)

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

2 Hardware a operační systémy

VIRTUALIZACE POČÍTAČE HISTORIE A VÝVOJ

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

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

Matematika v programovacích

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

Architektura procesoru ARM

Virtualizace a virtualizace s podporou procesoru

a co je operační systém?

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

Provádění instrukcí. procesorem. Základní model

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

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

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

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

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

Stavba operačního systému

Xen je volně šířený hypervisor (virtual machine monitor) pro architektury IA-32, x86, x86-64, IA- 64 a PowerPC 970.

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

09. Memory management. ZOS 2006, L.Pešička

Management procesu I Mgr. Josef Horálek

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.

Systém adresace paměti

Virtualizace v Linuxu

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Implementace Xenu v univerzitním prostředí

Pohled do nitra mikroprocesoru Josef Horálek

Logická organizace paměti Josef Horálek

Virtualizace a Cloud computing. Luboš Matějka KIV FAV ZČU Plzeň

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Brno. 30. května 2014

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

Charakteristika dalších verzí procesorů v PC

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Antonín Přibyl - Virtualizace Windows serveru s KVM hypervisorem

Virtualizace. Miroslav Novotný

Principy operačních systémů. Lekce 1: Úvod

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

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

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Architektury VLIW M. Skrbek a I. Šimeček

pouˇzití USB nebo SPI

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

NÁSTROJE PRO VIRTUALIZACI POČÍTAČE

Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Struktura a architektura počítačů

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Procesory CISC- historie procesorů Intel x86

Virtualizace pomocí Novell Open Enterprise Server 2

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Co je to virtualizace?

C2115 Praktický úvod do superpočítání

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

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


CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

Princip funkce počítače

Roman Výtisk, VYT027

PROCESOR. Typy procesorů

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

Bezpečnostní záplata linuxového jádra Ochrana přístupu k paměti Nabízí: podporu nespustitelných stránek randomizaci adresního prostoru (ASLR)

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

Úvod do operačního systému Linux Mgr. Josef Horálek

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Algoritmizace a programování

Architektury počítačů a procesorů

Charakteristika dalších verzí procesorů Pentium

TÉMATICKÝ OKRUH TZD, DIS a TIS

CAL (CAN Application Layer) a CANopen

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

Management virtualizace Management of virtualization

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

Pokročilé architektury počítačů

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

Úvod do operačního systému Linux Mgr. Josef Horálek

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

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

Ukazky Zdroje:... 17

Transkript:

Architektura počítačů Víceúrovňový model počítače, virtualizace České vysoké učení technické, Fakulta elektrotechnická Ver.1.10 1

Mnohaúrovňová organizace počítače Strojový jazyk počítače - množ. jedn. instr. - do ní převést prog. pro výkon - úroveň L1 - abeceda {0,1}, obtížná komunikace Jazyk vyšší úrovně - vhodnější pro lidskou komunikaci L2 + další Vykonání programu v L2 na stroji jenž má L1 Kompilace - instrukce v L2 se nahradí posloupností instrukcí v L1 Interpretace - program v L1 zpracovává program v L2 jako data (pomalejší) Virtuální počítač Na úrovni i zavádíme virtuální počítač M i s jazykem Li. Program v Li je překládán nebo interpretován počítačem M i-1 atd. 2

Současný mnohaúrovňový počítač Vývoj víceúr. stroje první počítače běžná strojová úroveň - 1.úr. 50- tá léta - Wilkes mikroprogram. - 2.úr. 60- tá léta operační systémy - 3.úr. překladače, program. jazyky - 4.úr. uživatelské aplikační programy - 5.úr. HW a SW jsou logicky ekvivalentní (lze je navzájem nahradit) souboj a splývání RISC a CISC procesorů 3

Procesy a jejich stavy PROCES - probíhající program (program - pasivní, proces - aktivní) STAV PROCESU - info, které při zast. procesu umožní jeho znovuspuštění 1. program 3. hodnoty proměnných a data 2. násled. instrukce 4. stavy a polohy všech I/O PŘEDPOKLAD: proces P sám nemění svůj program! STAVOVÝ VEKTOR - proměnné složky stavu procesu mění HW nebo prgm. PROCES = PROG + STAV. VEKT. ZMĚNA STAV. V. stav. vektor proc. P2 mění P1 -> P1 interpret programu P2 4

Konvenční strojová úroveň (ISA) (M2) Definovaná Instrukční sadou (často označovaná architektura procesoru) ISA Instruction Set Architecture Mikroarchitektura (Implementece v M1) HW - strukt. poč., proc., I/O kan., sběrnic, org. a příst. k pam., org.reg. a j. SW - instr.soubor, formát dat a ulož. v pam., adresování, zás.pam, reg aj. Instrukční formát - skládá se z polí, (jedno nebo po sobě jdoucí slova) - adr. části mohou být adresami nebo odkazy na reg. (nepřímo) Nejpoužívanější formát je u CISC dvouadresový, u RISC tříoperandový jen mezi registry 5

Intel Core 2 Architecture (Mikroarchitektura) (M1) 128 Entry ITLB Instruction Fetch Unit 32 KB Instruction Cache (8 way) 128 Bit 32 Byte Pre-Decode, Fetch Buffer 6 Instructions 18 Entry Instruction Queue Shared Bus Interface Unit Microcode Complex Decoder Simple Decoder Simple Decoder Simple Decoder 4 µops 1 µop 1 µop 1 µop 7+ Entry µop Buffer 4 µops Register Alias Table and Allocator 4 µops 96 Entry Reorder Buffer (ROB) 4 µops Retirement Register File (Program Visible State) Shared L2 Cache (16 way) 256 Entry L2 DTLB 4 µops 32 Entry Reservation Station Port 0 Port 1 Port 5 Port 3 Port 4 Port 2 ALU SSE Shuffle ALU ALU SSE Shuffle MUL ALU Branch SSE ALU Store Address Store Data Load Address 128 Bit FMUL FDIV 128 Bit FADD Memory Ordering Buffer (MOB) Internal Results Bus 128 Bit Store128 Bit 32 KB Dual Ported Data Cache (8 way) Load 16 Entry DTLB 256 Bit 6

Požadavky na dobrého programátora Každý programátor by měl umět vytvořit takový kód, aby splnil následující požadavky: Efektivní využití procesoru, tj. rychlý kód Efektivní využití paměti, tj. používat jen takové datové typy, aby stačily k účelům programátora a zároveň nezabíraly příliš místa v paměti Následování stanovených pravidel konvence, tj. pravidla zápisu pro lepší čtení zdrojového kódu (mezery, odsazení..) Možnost jednoduché úpravy a zlepšování kódu (používání funkcí nebo OOP podle možností programátora) Dobře otestovaný a pevný kód, tj. zjištění a oprava možných chyb (většinou se vyskytují takové chyby, které neočekáváme, že by se mohly objevit!) Dokumentace (návod pro používání programu) Z knihy Randall Hyde: Write Great Code - Volume 2: Thinking Low-Level, Writing High-Level, překlad k@ze 7

moje doporučení pro x86 a další CPU architektury pro x86 přečíst a pochopit návody na optimalizaci od Agner Fog http://www.agner.org/optimize/ The microarchitecture of Intel, AMD and VIA CPUs An optimization guide for x86 platforms pro pochopení vývoje CPU a technik zrychlení vykonávání instrukcí přečíst John Bayko: Great Microprocessors of the Past and Present pochopit jak vyšší jazyky a běhová prostředí mapují jazykové konstrukce na datové typy a alokaci paměti a z toho odvodit, které datové struktury použít prostudovat vlastnosti kompilátoru a zkusit si různé testy a získat cit pro odhad, jak budou které konstrukce výhodné a kolik paměti pak data zaberou často pak zjistit, že v mnoha případech bez dostatečných znalostí neobratné snahy optimalizovat vedou k pomalejšímu kódu, než když je ponechaná kompilátoru volnost když je opravdu výkon prioritou, aplikace náročná, tak znovu studovat a pochopit, kde jsem prvně měl znalosti nedostatečné, kde je dobré věřit kompilátoru a kde se mu musím pomoc veškeré toto snažení může být zcela zbytečné, pokud je nevhodně navržený/vybraný již vlastní algoritmus nebo koncepce řešení viz uvedený příklad skládání dvou byte do 16-bit slova 8

Virtualizace Virtualizace skrývá implementaci/vlastnosti nižších vrstev (reality) a předkládá prostředí s požadovanými vlastnostmi V počítačové technice rozdělujeme virtualizaci na Čistě aplikační/na úrovni jazyků a kompilovaného kódu (byte-kód) virtuální stroje, např. JVM, dotnet Emulace a simulace typicky jiné počítačové architektury (také zvaná křížová virtualizace) Nativní virtualizace izolované prostředí poskytující shodný typ architektury pro nemodifikovaný OS Virtualizace s plnou podporou přímo v HW Částečná virtualizace typicky jen adresní prostory Paravirtualizace systém musí být pro běh v nabízeném prostředí upraven Virtualizace na úrovni OS pouze oddělená uživ. Prostředí 9

Virtualizace na úrovni OS Mechanism chroot Operating system most UNIXlike operating systems License Release date Proprietary BSD GNU GPL CDDL FS Disk quotas I/O QoS Mem limits Features CPU quotas Network isolation 1982 Yes No No No No No No Part. checkpt. and live migration FreeVPS Linux GNU GPL - Yes Yes No Yes Yes Yes No Linux-VServer Yes/ GNU GPL (security Linux - Yes Yes No Yes Yes Yes No v.2 context) [1] OpenVZ (virtualization, isolation and resource management) Parallels Virtuozzo Containers Linux Linux, Windows GNU GPL v.2 - Yes Yes Proprietary - Yes Yes Yes [2] Yes [4] Yes Yes Yes[3] Yes Yes Yes Yes[3] Yes Container/Zon Solaris CDDL 01/2005 Yes Yes No Yes Yes Yes[3] No[5] e FreeBSD J ail FreeBSD BSD 03/2000 Yes No No No No Yes No OpenBSD, sysjail BSD - Yes No No No No Yes No NetBSD WPARs AIX Proprietary 10/2007 Yes - - - - - 10

Virtualizace na úrovni celého stroje Hostitelský počítač (Host, Domain DOM 0) Hostovaný systém (Guest) Procesor pro hostovaný systém pro nativní případ běžný kód/neprivilegované instrukce zpracovány přímo CPU pro křížový případ interpretace instrukcí emulátorem (program v DOM 0), případně akcelerace Privilegované instrukce v hostovaném systému způsobí výjimky, které obslouží monitor/hypervizor tak, že je odemuluje CPU má podporu pro HW virtualizaci (AMD-V, Intel VT-x), stínové stránkovací tabulky Periferie/zařízení přístupu na IO a paměťově mapované periferie způsobují výjimky a hypervizor odsimuluje jejich činnost hostovaný systém se přizpůsobí tak, aby předal požadavky přímo ve formátu, kterému hypervizor rozumí (ovladače na míru atd.) 11

Hypervizor zajišťuje spouštění a zastavování domén monitoruje jejich činnost a ošetřuje výjimky především emuluje činnost privilegovaných instrukcí zajišťuje rozdělení paměti a výpočetního výkonu do hostovaných systémů emuluje činnost periferií a předává data do ovladačů fyzických zařízení a sítí na úrovni hostitelského systému může být implementovaný v uživatelském prostoru hostitelského systému (QEMU) s využitím podpory v HW a jádře OS (KVM) jako samostatný systém/mikrojádro, který využívá systém v jedné doméně (DOM 0) pro komunikaci s fyzickými zařízeními a z tohoto systému data přeposílá do ostatních (XEN) 12

Paravirtualizovaná systémová volání (XEN) Ring 0 Native Kernel Paravirtualized Hypervisor Ring 1 Kernel Ring 2 Ring 3 Application Application Hypercall System Call Accelerated System Call 13

Využití úrovní (ringů) oprávnění X86 v Parvirtualizovaném OS Native Paravirtualized 3 2 1 0 3 2 1 0 Hypervisor Kernel Applications Unused 14

Využití úrovní (ringů) oprávnění pro AMD64/EMT64 Native Paravirtualized 3 0 3 0 Hypervisor Kernel Applications Unused 15

Packet Path from Unprivileged Domain Domain U Guest Domain 0 Guest Application TCP/IP Stack TCP/IP Stack (Routing / Bridging) Split Driver Split Driver Real Driver Xen Shared Memory Segment Hardware Physical 16

Architektura zařízení v prostředí Xen Domain 0 Guest Domain U Guest Xen Control User Interface Applications Split Split Xen Virtual CPU Virtual Memory Scheduling Hardware Physical CPU Physical Memory Network Block s 17

Xen Nemodifikovaný Guest OS (HVM) Domain 0 Guest Xen Control User Interface Isolated Driver Domain Domain U Guest Applications HVM Guest Legacy Applications Emulated s Split Driver Split Split Xen Virtual CPU Virtual Memory Scheduling Hardware Physical CPU Physical Memory Network Block s 18

Xen Plně paravirtualizovaný/adaptovaný Guest OS Domain 0 Guest Xen Control User Interface Domain U Guest Applications Domain U Guest Applications Domain U Guest Applications NFS Client NFS Client NFS Client... Split Split Split Split Xen Virtual CPU Virtual Memory Scheduling Hardware Physical CPU Physical Memory Network To NFS Server 19

Xen API Hierarchy Language Xen-CIM Xen-CIM libvirt xm Other tools libxen (C) pyxen Other bindings XML-RPC xend d mon /dev/xen* Kernel Hypercalls Hypervisor 20

Qemu, GNU/Linux a další dobrý zdrojem informací pro zájemce o portaci GNU/Linuxu, psaní ovladačů a přenositelných aplikací jsou výukové texty ze serveru Free Electrons http://free-electrons.com/docs/ Například virtualizace Thomas Petazzoni / Michael Opdenacker: Virtualization in Linux 21