Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 1 / 21



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

Procesor z pohledu programátora

Operační systémy 2. Přednáška číslo 1. Úvod do OS

Registry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.

ISU Cvičení 3. Marta Čudová

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

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

Pohled do nitra mikroprocesoru Josef Horálek

Kubatova Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR Kubátová Y36SAP-strojový kód 1

Princip funkce počítače

ISU Cvičení 7. Marta Čudová

Procesy a vlákna (Processes and Threads)

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

Petr Krajča. 26. říjen, 2012

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

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

Assembler - 2.část. poslední změna této stránky: Zpět

Kubatova Y36SAP 9. Strojový kód ISA architektura souboru instrukcí střadačově, zásobníkově orientovaná, GPR Kubátová Y36SAP-ISA 1

Strojový kód. Instrukce počítače

x86 assembler and inline assembler in GCC

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

PROCESOR. Typy procesorů

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

Pohled do nitra mikroprocesoru

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

Architektura počítače

REbejs. 1. workshop (draft0)

Úroveň strojového kódu procesor Intel Pentium Úvod

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

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

MSP 430F1611. Jiří Kašpar. Charakteristika

Architektury počítačů a procesorů

Popis instrukční sady procesoru ADOP

a operačních systémů

RISC a CISC architektura

Adresní mody procesoru

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.

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

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

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

8. Laboratoř: Aritmetika a řídicí struktury programu

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Čísla, reprezentace, zjednodušené výpočty

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

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

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

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

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

Assembler x86. Studijní text pro předmět: Strojově orientované jazyky Petr Olivka. Katedra informatiky VŠB-TU Ostrava

Profilová část maturitní zkoušky 2014/2015

Principy komunikace s adaptéry periferních zařízení (PZ)

Assembler - 4.část. poslední změna této stránky: Zpět

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

Simulátory aplikačně specifických instrukčních procesorů Jazyk LISA. Masařík Karel

Profilová část maturitní zkoušky 2015/2016

B4B35OSY: Operační systémy

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Čísla, reprezentace, zjednodušené výpočty

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a

Ú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í

Úroveň strojového kódu 32-bitový procesor Intel Pentium

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška II. 14. říjen, / 26

Program "Světla" pro mikropočítač PMI-80

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

2 Hardware a operační systémy

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

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

Úroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte

CISC A RISC PROCESORY Jak pracují procesory CISC:

Architektura počítačů

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

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Procesy a vlákna - synchronizace

Jazyk symbolických adres

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

Architektura počítačů

Architektura počítačů. Instrukce a návrh instrukční sady. Lubomír Bulej KDSS MFF UK

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10

Operační systémy a programování

Programátorský model x86

Vývoj architektur PC 1

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

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

Jak do počítače. aneb. Co je vlastně uvnitř

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

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

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

Testování jednotky ALU a aplikace metody FMEA

POKROČILÉ ARCHITEKTURY POČITAČŮ KAREL TRČÁLEK, TRC045

Assembler - 1.část. poslední změna této stránky: Zpět

KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO ASSEMBLER VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN

Základní uspořádání pamětí MCU

Assembler DRUHÁ ČÁST OBSAH.

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

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

Systém adresace paměti

PB002 Základy informačních technologií

Transkript:

Operační systémy Úvod do Operačních Systémů Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 1 / 21

Organizační informace email: petr.krajca@upol.cz konzultační hodiny středa 15:00 16:00 pátek 10:00 11:00 www: http://phoenix.inf.upol.cz/~krajca/ slidy budou k dispozici online Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 2 / 21

Průběh výuky přednášky úkoly související s probíranou tématikou není potřeba vyřešit zadané úkoly (určené k pochopení probírané látky) samostudium; do příště: Keprt A. Operační systémy. 2008. Kapitoly 1 5.3.5, tj. strany 9 48. Keprt A. Assembler. 2008. Kapitoly 1 5.1, tj. strany 6 53. skripta jsou na webu katedry (sekce studium) dotazy a konzultace Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 3 / 21

Literatura Keprt A. Operační systémy. 2008 Keprt A. Assembler. 2008 Silberschatz A., Galvin P.B., Gagne G. Operating System Concepts, 7th Edition. John Wiley & sons, 2005. ISBN 0-471-69466-5. Tanenbaum A.S. Modern Operating Systems, 2nd ed. Prentice-Hall, 2001. ISBN 0-13-031358-0. Stallings, W. Operating System Internals and Design Principles, Fifth Edition. Prentice Hall, 2004. ISBN 0-13-127837-1. Solomon D.A., Russinovich M. E. Windows Internals: Covering Windows Server 2008 and Windows Vista. Microsoft Press, 2009. ISBN 0735625301. Jeĺınek L. Jádro systému Linux: kompletní průvodce programátora. Brno, Computer Press, 2008. Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 4 / 21

Architektura počítače John von Neumannova architektura CPU (ALU, řadič) pamět společná pro program i data (vs. harvardská architektura) vstup/výstup sběrnice (řídící, adresní, datová) instrukce procesoru jsou zpracovávány v řadě za sebou (není-li uvedeno jinak) OS jako abstrakce HW vyvíjet software na míru jednoho HW náročné/neefektivní (obvykle); hardware je neuvěřitelně složitý operační systém + jazyky vyšší úrovně poskytují potřebnou abstrakci operační systém rozhraní mezi HW a SW v konečném důsledku několik úrovní abstrakce Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 5 / 21

Operační systém Vrstvy poč. systému 1 hardware 2 operační systém (OS) 3 standardní knihovna (libc, CRT) 4 systémové nástroje 5 aplikace hranice mezi posledními třemi vrstvami nemusí být ostré operační systém zajišt uje správu zdrojů (sdílený přístup k paměti, zařízením,... ) z časových důvodu se omezíme jen na OS pro PC, které jsou založené na architektuře Intel x86 Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 6 / 21

CPU (1/2) Obecná struktura CPU Aritmeticko-logická jednotka (ALU) provádí výpočty řídící jednotka řídí chod CPU registry slouží k uchování právě zpracovávaných dat (násobně rychlejší přístup než do paměti); speciální registry obsluhující chod CPU: IP (instruction pointer), FLAGS, IR (instruction register), SP (stack pointer) Instrukční sada (ISA) sada instrukcí ovládající procesor (specifická pro daný CPU/rodinu CPU) instrukce a jejich operandy jsou reprezentovány jako čísla = strojový kód každá instrukce má obvykle 0 až 3 operandy (může to být registr, konstanta nebo místo v paměti) pro snazší porozumění se instrukce CPU zapisují v jazyce symbolických adres (assembleru) Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 7 / 21

Výpočet faktoriálu: Intel x86 00000000 <main>: 0: 8b 4c 24 04 mov ecx,dword PTR [esp+0x4] 4: b8 01 00 00 00 mov eax,0x1 9: 83 f9 00 cmp ecx,0x0 c: 0f 8e 0a 00 00 00 jle 1c <main+0x1c> 12: f7 e9 imul ecx 14: 83 e9 01 sub ecx,0x1 17: e9 ed ff ff ff jmp 9 <main+0x9> 1c: c3 ret Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 8 / 21

Výpočet faktoriálu: Sparc V8 00000000 <main>: 0: 9d e3 bf 88 save %sp, -120, %sp 4: a0 10 20 01 mov 1, %l0 8: 80 a6 00 00 cmp %i0, %g0 c: 04 80 00 06 ble 24 <main+0x24> 10: 01 00 00 00 nop 14: a0 5c 00 18 smul %l0, %i0, %l0 18: b0 26 20 01 dec %i0 1c: 10 bf ff fb b 8 <main+0x8> 20: 01 00 00 00 nop 24: b0 10 00 10 mov %l0, %i0 28: 81 c7 e0 08 ret 2c: 81 e8 20 00 restore Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 9 / 21

CPU (2/2) instrukce jsou zpracovávány v několika krocích: 1 načtení instrukce do CPU (Fetch) 2 dekódování instrukce (Decode) 3 výpočet adres operandů 4 přesun operandů do CPU 5 provedení operace (Execute) 6 uložení výsledku (Write-back) pipelining umožňuje zvýšit efektivitu CPU je potřeba zajistit správné pořadí operací procesor může mít víc jednotek např. pro výpočty (FPU, ALU) problém s podmíněnými skoky (branch prediction) Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 10 / 21

Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 11 / 21

Intel x86: Registry (1/2) registry jsou 32bitové obecně použitelné (i když existují určité konvence, jak by se měli používat) EAX (Accumulator) střadač pro násobení a dělení, vstupně-výstupní operace EBX (Base) nepřímá adresace paměti ECX (Counter) počitadlo při cyklech, posuvech a rotacích EDX (Data) každý registr má svou spodní 16bitovou část reprezentovanou jako regist AX, BX, CX, DX tyto 16 bitové registr lze rozdělit na dvě 8bitové části reprezentované jako AH, AL, BH, BL,... Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 12 / 21

Intel x86: Registry (2/2) Další registry EDI (Destination Index) adresa cíle ESI (Source Index) adresa zdroje EBP (Base Pointer) adresace parametrů funkcí a lokálních proměnných ESP (Stack Pointer) ukazatel na vrchol zásobníku (adresa vrcholu zásobníku) EIP (Instruction Pointer) ukazatel na aktuální místo v programu, adresa instrukce následující za právě prováděnou instrukcí, není možné jej přímo měnit (jen patřičnými instrukcemi) EF(LAGS) příznaky nastavené právě proběhlou instrukcí spodních 16 bitů těchto registrů lze adresovat pomocí registrů DI, SI, BP, SP, IP, F(LAGS); další dělení není možné ESI a EDI jde používat jako obecně použitelné změny v registrech EBP, ESP by měly být uvážené Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 13 / 21

Intel x86: Operace (1/2) operandy instrukcí mohou být r registry m pamět i hodnoty pamět lze v jedné instrukci adresovat pouze jednou MOV r/m, r/m/i ADD r/m, r/m/i SUB r/m, r/m/i NEG r/m MUL r/m IMUL r, r/m IMUL r, r/m, i OR r/m, r/m/i AND r/m, r/m/i XOR r/m, r/m/i NOT r/m ; op1 := op2 ; op1 := op1 + op2 ; op1 := op1 - op2 ; op1 := - op1 ; EDX:EAX := EAX * op1 ; op1 := op1 * op2 ; op1 := op1 * op2 * op3 ; op1 := op1 op2 ; op1 := op1 & op2 ; op1 := op1 ^ op2 ; op1 := ~op1 Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 14 / 21

Příklady ; do registru EAX ulozi obsah EBX mov eax, ebx ; prevrati spodnich 16 bitu v registru ECX xor ecx, 0x0000ffff ; pricte k registru cx hodnotu registru si add cx, si ; takto nejde -- nesedi velikosti registru add ecx, si ; vyneguje obsah registru edx neg edx Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 15 / 21

Intel x86: Operace (2/2) SHL r/m, i SAL r/m, i SHR r/m, i SAR r/m, i ROL r/m, i ROR r/m, i ; op1 := op1 << op2 (bez znaménková operace) ; op1 := op1 << op2 (znaménková operace) ; op1 := op1 >> op2 (bez znaménková operace) ; op1 := op1 >> op2 (znaménková operace) ; rotace bitů doleva ; rotace bitů doprava INC r/m ; op1 := op1 + 1 DEC r/m ; op1 := op1-1 místo okamžité hodnoty (konstanty) lze použít registr CL jednotlivé operace nastavují hodnoty jednotlivých bitů v registru EF mj. obsahuje příznaky SF (sign flag) podle toho jestli výsledek je kladný nebo záporný ZF (zero flag) výsledek byl nula CF (carry flag) pokud při operaci došlo k přenosu mezi řády OF (overflow flag) příznak přetečení Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 16 / 21

Intel x86: Běh programu, podmíněné skoky a porovnání program zpracovává jednu instrukci za druhou (pokud není uvedeno jinak) = skok nepodmíněný skok operace JMP r/m/i ekvivalent GOTO (použití při implementaci smyček) není přítomná operace ekvivalentní if podmíněný skok je operace ve tvaru Jcc, provede skok na místo v programu, pokud jsou nastaveny příslušné příznaky např. JZ i (provede skok, pokud výsledek předchozí operace byl nula) srovnání čísel jako rozdíl (operace CMP r/m, r/m/i, je jako SUB, ale neprovádí přiřazení JE skok při rovnosti, JNE, při nerovnosti skoky po porovnání znaménkových čísel JG (>), JGE ( ), JL (<), JLE ( ) skoky po porovnání bezznaménkových čísel JA (>), JAE ( ), JB (<), JBE ( ) Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 17 / 21

Příklad ; porovnej eax s hodnotou 10 cmp eax, 10 ; pokud je eax vetsi nez 10 ; provede skok na adresu foo jg foo foo:... ; jinak pokracuje timto kodem...... Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 18 / 21

Adresace paměti přímá adresa ukazuje na místo v paměti nepřímá adresa před přečtením hodnoty se vypočítá z hodnot registrů podle vzorce: adresa = posunuti + baze + index factor posunutí je konstanta báze a index jsou registry factor je číslo 1, 2, 4, nebo 8 kteroukoliv část vzorce lze vypustit v assembleru se čtení/zápis do paměti zapisuje pomocí [... ] mov eax, [ebx + 10] mov [eax + esi * 2 + 100], bx je dobré doplnit velikost zapisovaných dat mov eax, dword ptr [ebx + 10] mov word ptr [eax + esi * 2 + 100], bx mov word ptr [eax + esi * 2 + 100], 42!!! při přístupu k proměnným ve VS (jsou adresy doplněny automaticky) Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 19 / 21

Vztah adresace paměti procesoru a jazyka C 1 Dereference mov eax, dword ptr [ebx] ;; eax := *ebx 2 Pole short a[] = malloc(sizeof(short) * 10); _asm { mov ebx, a mov ax, [ebx + esi * 2] ;; ax := a[esi] } 3 Strukturované hodnoty struct foo { int x; int y; int z[10]; }; struct foo * a = malloc(sizeof(struct foo)); _asm { mov ebx, a mov [ebx], ecx ;; a->x := ecx mov [ebx + 4], ecx ;; a->y := ecx mov [ebx + esi * 4 + 8], ecx ;; a->z[esi] := ecx } Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 20 / 21

CISC a RISC Complex Instruction Set Computer x86 má architekturu CISC složitější instrukce (dovedou víc věcí, adresovat pamět, atd.), náročné na zpracování snazší tvořit program (je kratší) menší počet registrů, instrukce nejsou ortogonální Reduced Instruction Set Computer větší počet registrů, jednoduché instrukce, schopné zajistit stejnou funkcionalitu samostatné instrukce pro přístup k paměti jedna instrukce dělá víc věcí příklady pro SPARC (využívá registr g0, který je vždy nula) subcc %r1, %r2, %r3 ; r3 := r1 - r2 subcc %r1, %r2, %g0 ; g0 := r1 - r2 (cmp r1, r2) or %g0, 123, %r1 ; r1 := g0 123 (mov r1, 123) Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 21 / 21