Pokročilé architektury počítačů
|
|
- Marie Kašparová
- před 6 lety
- Počet zobrazení:
Transkript
1 Paměť část první - úvod, realizace pamětí, cache, virtuální paměť České vysoké učení technické, Fakulta elektrotechnická Autor materiálu: Michal Štepanovský
2 Motivace pro přednášku z pohledu programátora? Otázka 1.: Vykonávají programy to samé? Otázka 2.: Který program je rychlejší (pokud některý)? A: int matrix[m][n]; int i,j,sum=0; for(i=0;i<m;i++) for(j=0;j<n;j++) sum+=matrix[i][j]; B: int matrix[m][n]; int i,j,sum=0; for(j=0;j<n;j++) for(i=0;i<m;i++) sum+=matrix[i][j]; Lze doporučit výhodnější způsob procházení matice? 2
3 Architektura počítače CPU 1 CPU 2 CPU 1 CPU 2 RAM RAM Non-Uniform Memory Architecture MC MC Northbridge MC RAM Northbridge RAM MC CPU 1 CPU 2 RAM RAM MC MC CPU 1 CPU 2 RAM Southbridge Southbridge Southbridge Southbridge USB USB USB USB SATA PCI-E SATA PCI-E SATA PCI-E SATA PCI-E MC - Memory controller obsahuje obvody pro zajištění operace čtení a zápisu z/do paměti. Také se stará o udržení obsahu paměti refreshing každých několik desítek ms 3
4 Konkrétněji Nyní je Northbridge jako Graphics and Memory Controller Hub (GMCH) 4
5 Konkrétněji Detaily v přednáškách č.5 a 6 5
6 Terminologie kolem pamětí Typy pamětí RWM (RAM), ROM, FLASH, Provedení RAM pamětí: SRAM (statická), DRAM (dynamická). RAM = Random Access Memory paměť s libovolným přístupem typ paměti počet tranzistorů plocha na 1 bit dostupnost dat latence SRAM cca 6 < 0,1 m2 vždy < 1ns 5ns DRAM 1 < 0,001 m2 potřebuje refresh desítky ns 6
7 Typický čip a buňka SRAM Princip: SRAM paměťová buňka technologie CMOS Plocha paměťové buňky: 7
8 Typický čip a buňka SRAM Typický SRAM čip Příklad čtení typicky synchronní : OE signál je asynchronní 8
9 Typický čip a buňka SRAM Větší paměť? 9
10 Více-portová cache? Pro superskalární CPU nezbytnost Rovněž pokud je cache sdílená 10
11 Detail paměťové buňky dynamické paměti Jednotranzistorová dynamická paměťová buňka nmos tranzistor představuje přepínač, který připojí (nebo ne) kondenzátor na vodič bitline. Připojení je řízeno vodičem wordline. Proces čtení kondenzátor vybíjí. Proto musí být poté obnoven. Občerstvování pamětí (refresh) náboj se z kondenzátoru samovolně ztrácí. Nezbytná pracovní fáze dynamické paměti. Negativně ovlivňuje (prodlužuje) průměrnou vybavovací dobu. Obrázek: 11
12 Vnitřní organizace čipu DRAM paměti 4M 1 DRAM čip je uvnitř realizován jako pole b paměťových buněk 12
13 Vývoj DRAM paměťových čipů v čase Rok Kapacita 64 Kb 256 Kb 1 Mb 4 Mb 16 Mb 64 Mb 128 Mb 256 Mb 512 Mb 1 Gb Cena[$]/GB Doba přístupu [ns] RAS Row Address Strobe, CAS Column Address Strobe 13
14 Klasická DRAM asynchronní rozhraní Důvod rozdělení adresy na 2 části byl dán malým počtem pinů původních DRAM pouzder. Toto rozdělení se dodnes zachovává, ačkoli pouzdro už není problém. Uneslo by více vývodů RAS Row Address Strobe, CAS Column Address Strobe 14
15 SDRAM konec 90.let synchronní DRAM SDRAM čip obsahuje čítač, který umožňuje nastavit délku souvislého (burst) čtení dat. 15
16 SDRAM paměť současnosti SDRAM frekvence až 100 MHz, 2.5V. DDR SDRAM použití obou hran CLK při přenosu dat, 2.5V. DDR2 SDRAM snížení spotřeby použitím napětí 1.8V, frekvence až 400 MHz. DDR3 SDRAM snížení spotřeby použitím napětí 1.5V, frekvence až 800 MHz. DDR4 SDRAM Dále ještě existují paměti a moduly RAMBUS, které ovšem mají zcela odlišné rozhraní i způsob použití. Všechny tyto inovace vylepšují propustnost čtení dat, nikoli latenci čtení první položky. 16
17 Disproporce ve výkonu proc x pam, Moorův zákon 17
18 Bubble sort již znáte z cvičení int pole[5]={5,3,4,1,2}; Jakou int main() využitelnou { vlastnost mají int N = 5,i,j,tmp; naše programy? for(i=0; i<n; i++) for(j=0; j<n-1-i; j++) if(pole[j+1]<pole[j]) { tmp = pole[j+1]; pole[j+1] = pole[j]; pole[j] = tmp; } return 0; } 18
19 Paměťová hierarchie základní principy Programy/procesy přistupují v daném okamžiku jen k malé části svého adresového prostoru Časová lokalita Položky, ke kterým se přistupovalo nedávno, budou zapotřebí brzy znovu. Příklad: programová smyčka, proměnné instrukcí. Prostorová lokalita Položky poblíž právě používaným budou brzy zapotřebí také. Příklad: sekvenční přístup ke kódu (paměť programu), datová pole (paměť dat). 19
20 Co z uvedeného plyne? Je výhodné uspořádat paměťový prostor hierarchicky paměťová hierarchie. Všechny potřebné informace uchovávejte v sekundární paměti. Položky nedávno používané a blízké zkopírujte do (menší) paměti implementované DRAM. Operační paměť. Položky ještě častěji používané (i ty jim blízké) zkopírujte do menší a rychlejší SRAM. Skrytá paměť. 20
21 Paměťová hierarchie Současná rychlost (2008) 0,5-2,5 ns ns 5 20 ms cena/gb $2k-5k $20 75 $0,2-2 To se jedna a tatáž informace může objevit na více místech hierarchické paměti? Ano. 21
22 Jak a kde pak ale hledanou informaci najdeme? Podle adresy a případně dalších informací (např. o platnosti). Hledat začneme v paměti nejvyšší hierarchické úrovně (nejblíže procesoru). Požadavky: Paměťová konzistence. Prostředky: Virtualizace adresy, Mechanizmy uvolňování místa a migrace informace mezi paměťovými úrovněmi. Hit, miss. 22
23 Příklad procesoru včetně cache Harvardská architektura - Intel Nehalem IMC: integrated memory controller with 3 DDR3 memory channels, QPI: Quick-Path Interconnect ports Podívejte se na velkosti jednotlivých cache!!! 23
24 Řešení disproporce rychlosti? Cache. 24
25 Terminologie kolem skryté paměti Cache hit pojmenování situace, kdy požadovaná hodnota ve skryté paměti (cache) je. Cache miss, opak. Není tam. Cache line nebo Cache block základní kopírovatelná jednotka mezi hierarchickými úrovněmi. V praxi se velikost Cache block pohybuje od 8B do 1KB, typicky 64B. Procesor V rámci A4M36PAP buďme důkladnější: Cache block data, která se přenáší z paměti do cache a naopak. Cache line navíc musí obsahovat doplňující údaje o každém bloku (Tag, valid, dirty, atd. záleží na protokolu) Cache row souvisí s vnitřní organizací cache 25
26 Příklad Mějme cache o velikosti 8-mi bloků. Kam se do ní umístí data z adresy 0xF ? Plně asociativní, Přímo mapované, nebo S omezeným stupněm asociativity N=2 (2-cestná, 2-way cache). 26
27 Přímo mapovaná cache Set = (Adresa/4) mod 8 27
28 Přímo mapovaná cache přímo mapovaná cache: one block in each set Capacity C Number of sets S Block size b Number of blocks B Degree of associativity N C = 8 (8 words), S = B = 8, b = 1 (one word in the block), N=1 28
29 Realističtější formát řádky cache Tag je index odpovídajícího bloku v operační paměti (v podstatě se jedná o hodnotu ukazatele/adresy dělenou délkou bloku). Data pole obsahující vlastní hodnoty na příslušné/ných adrese/ách. Validity bit bit platnosti. Indikuje, zda je obsah pole Data vůbec platný. Dirty bit rozšiřující pole v obsahu paměti. Indikuje, že v cache (cache) je jiná hodnota, než v paměti hlavní. V Další bity, např. D Tag Data 29
30 Přímo mapovaná skrytá paměť velikost bloku 4 slova Co přináší větší velikost bloku? 30
31 Cache s omezeným stupněm asociativity N=2 Co přináší zvětšení stupně asociativity? Capacity C Number of sets S Block size b Number of blocks B Degree of associativity N C = 8 (8 words), S = 4, b = 1 (one word in the block), B=8 N=2 31
32 Cache s omezeným stupněm asociativity N=4 4-cestná, 4-way cache 32
33 Plně asociativní cache Plně asociativní cache obsahuje jenom jeden set, stupeň asociativity je roven počtu bloků (N=B). Adresa paměti se může mapovat kamkoliv. je jiné pojmenování pro B-cestně asociativní cache s jedním setem má pro danou kapacitu má nejméně konfliktů, ale potřebuje nejvíce HW prostředků (komparátory) roste plocha čipu je vhodná pro relativně malé cache A fully associative cache has only S=1 set. 33
34 Terminologie kolem skryté paměti II. Hit Rate - podíl počtu paměťových přístupů, které byly úspěšné (nalezla své údaje) při přístupu do té-které úrovně paměťové hierarchie. Miss Rate podobně pro neúspěšný přístup. Miss Penalty čas potřebný pro načtení bloku (údajů) z paměti nižší hierarchické úrovně. Average Memory Access Time (AMAT) AMAT = HitTime + MissRate MissPenalty MissPenalty může být vypočtena rekurentně 34
35 Porovnání Pamatujte: 1. miss rate není vlastností cahce! 2. miss rate není vlastností programu! 35
36 Co přináší prostorová lokalita? Miss rate můžeme redukovat zvýšením velikosti bloku co znamená využití principu prostorové lokality. Na druhou stranu, zvětšování velikosti bloku při dané velikosti cache rovněž znamená snižování počtu setů to se projeví nárůstem konfliktů (nárůstem miss rate) 36
37 Řešení situace Cache Miss, data v cache nejsou Data se nejprve musí z hlavní paměti přečíst. Jenže: co když je cache plná? Strategie uvolňování bloků/řádek cache Náhodná (Random) vybere se libovolný blok. Snadné, ale hloupé. LRU (Least Recently Used) musíme znát informace o posledním použití tohoto bloku (jedná se o celé číslo). LFU (Least Frequently Used), ke každému bloku si pamatujeme informace o tom, jak často byl blok požadován. ARC (Adaptive Replacement Cache), ve které se vhodným způsobem kombinuje strategie LRU a LFU. Write-back. Zároveň musíme obsah uvolňovaných řádek cache do hlavní paměti zapsat (D bity označené řádky). Zajištěno automaticky. 37
38 Řešení situace Cache Miss, data v cache nejsou Jak byste implementovali LRU (Least Recently Used)??? Představte si 4-cestně asociativní cache! way A way B way C way D way A way B way C way D Není to tak snadné pokud má být LRU rychlý Intel používá pseoudo-lru pro 4-way, kde každý set má navíc 3 bity Na činnost cache můžeme nahlížet jako na případy kdy v cache data nalezneme (hit) a na případy kdy ne (miss) V případě hitu musíme uchovat informaci o tom, která cesta data poskytla zcela jistě nebude nejméně používanou (least recently used) V případě missu se musíme rozhodnout kam nová data uložit 38
39 Řešení situace Cache Miss, data v cache nejsou Jak byste implementovali LRU (Least Recently Used)??? bit AB / CD bit A/B bit AB / CD bit C/D bit A/B bit C/D way A way B way C way D way A way B way C way D Nejvyšší bit AB/CD se nastavuje pokud je hit v A nebo B. Tento bit je nulován pokud je hit v C nebo D. Pokud je cache miss, nic se nezapisuje. Tento bit AB/CD nám tedy dává informaci o tom, ve které půlce cache byl naposled hit. Rekurentně, bit A/B se nastavuje pokud byl hit v A, nuluje pokud v B. Podobně bit C/D. 39
40 Řešení situace Cache Miss, data v cache nejsou Jak byste implementovali LRU (Least Recently Used)??? Která data nahradíme v případě cache miss??? Mají všechny cesty v daném setu platná data? ano ne Použij neplatnou cache line bit AB / CD == 0? ne bit A/B == 0? bit C/D == 0? ano ne ne ano ano way A way A way B way B way C way C way D way D state replace next state 00x way A 11u 01x way B 10u 1x0 way C 0u1 1x1 way D 0u0 x don t care u - unchanged Sumarizace: Výhodou pseudo-lru je, že v případě cache hit jsou všechny bity AB/CD, A/B, C/D pouze zapisovány. Zpomalení (čtení) nastává pouze v případě cache miss. Použití binárního stromu pro implementaci pseudo-lru je snadno rozšířitelné i na 8, 16, atd. cest. 40
41 Řešení situace Zápis dat procesorem do paměti Na cestě je i cache! Konzistence dat samozřejmý požadavek na shodu obsahu stejných adres na různých médiích. Write through současně se zápisem do cache se data zapíší do zápisové fronty a pak asynchronně do paměti. Write back data se do cache zapíší s poznámkou Dirty (D bit Inf pole). Ke skutečnému zápisu dat do hlavní paměti dojde až v okamžiku případného rušení příslušného řádku cache, kdy hrozí jejich ztráta. Dirty bit rozšiřující pole v obsahu paměti. Indikuje, že v cache (cache) je jiná hodnota, než v paměti hlavní. V Další bity, např. D Tag Data 41
42 Řešení situace Zápis dat procesorem do paměti Ještě existují další tři důležité strategie: Write-combining (data jsou posílána do write combine bufferu aby mohla být později najednou zapsána; negarantuje pořadí (weakly ordered memory); příklad: při Writezápisu do RAM grafické karty) combining Uncacheable (typicky když daná adresa není adresou do RAM => nechceme zapisovat do RAM, ale do jiného zařízení, př: PCIe karta, kterému je dána daná adresa) Write Write-protect back na x86 k určení dané strategie používáme Memory Type Range Registers (MTRR), na novějších CPU pak Page Attribute Table (PAT) - umožňuje nastavit režim pro každou tabulku stránek zvlášť 42
43 Trend - Víceúrovňové SP Primární SP je bezprostředně připojena k procesoru Rychlá, malá. Nejdůležitější: minimální Hit Time L2 SP ošetřuje výpadky primární SP Větší, pomalejší, ale stále rychlejší než hlavní paměť. Nejdůležitější: low Miss Rate Hlavní paměť ošetřuje výpadky L2 Současné nejvýkonnější systémy mají i L3 Typicky pro L1 Typicky pro L2 Počet bloků KB Velikost bloku v B Miss penalty (v hod) Miss rates 2-5% 0,1-2% 43
44 Victim cache Přímo mapovaná cache je levná a rychlá Problémem přímo mapované cache je, že v případě konfliktu (stejné mapování dvou různých adres) jsou starší (mnohdy stále užitečné) data/instrukce nahrazeny novějšími Řešením tohoto problému byla N-cestně asociativní, resp. plně asociativní cache. Je to jediné řešení? Ne! Ještě lze použít tzv. Victim cache. PRINCIP: Používejme rychlou přímo mapovanou cache. V případě, že data z této cache odstraňujeme, uložme je do Victim cache. Při cache miss se pak máme šanci data najít v této Victim cache. 44
45 Victim cache Hlavní přímo mapovaná cache Victim cache plně asosiativní tag data tag A data z paměti B A: Přicházející blok je umístěn do hlavní cache a vytlačený blok do Victim cache (FIFO strategie nad Victim cache postačuje k realizaci LRU důsledek pravidla B) B: Pokud dojde k miss v hlavní cache a hit ve Victim cache, prohoď cache lines mezi těmito cache Je to jediné řešení? Ne! Ještě lze použít tzv. Assist cache. 45
46 Assist cache Hlavní přímo mapovaná cache tag Assist cache plně asosiativní data A tag data z paměti B A: Přicházející blok je uložen do Assist cache (FIFO) B: Pokud dojde k miss v hlavní cache a hit ve Assist cache, prohoď cache lines mezi těmito cache. Poznámka: Data se přesouvají do hlavní cache až po hitu v Assist cache, to znamená, až po opakované žádosti na tu samou adresu. Do hlavní cache tedy jdou data vykazující časovou lokalitu 46
47 Pochopili jste tuto přednášku? Pokud ano, tak již si uvědomujete, že využití 2 principů (principy časové a prostorové lokality) může vést k významnému urychlení Vašeho programu, a to efektivním využitím cache!!! Existují HW a SW (kompilátorem) techniky, které na základě těchto principů optimalizují práci z cache. HW techniky z pohledu programátora ovlivnit nemůžete. U kompilátoru můžete nastavit stupeň optimalizace Nicméně, i sebelepší kompilátor pouze kompiluje co napsal programátor. Výběr algoritmů, uložení datových struktur v paměti a manipulace s nimi to vše je určeno programátorem. Proto stále je v rukou programátora nejvíc práce a od něj do značné míry závisí jak bude program rychlý. 47
48 Pochopili jste tuto přednášku? Instrukční cache pokročilé Vhodným uspořádáním kódu, příp. přeuspořádáním funkcí v paměti Profilace Datová cache snadné Vhodným uspořádáním dat data, která plánujeme používat sekvenčně, řadit sekvenčně v paměti, apod. Sloučení polí nebo souvisejících datových struktur Práce po blocích dat co nejdřív používat již použité iterace ve vnořených cyklech viz úvodní příklad s cílem procházet paměť sekvenčně a ne po skocích sloučení dvou smyček do jedné Loop fusion atd. 48
49 Pochopili jste tuto přednášku? Prostorová lokalita konflikty v cache: /* Před optimalizací */ int values[size]; int keys[size]; int scores[size]; /* Po optimalizaci */ struct item{ int value; int key; int score; }; struct item records[size]; Předpokládejme 2-cestně asociativní cache for(i=0; i<size; i++) for(j=0; j<size; j++) 49
50 Pochopili jste tuto přednášku? Časová lokalita: /* Před optimalizací */ for (i = 0; i < SIZE; i++) for (j = 0; j < SIZE; j++) a[i][j] = b[i][j] * c[i][j]; for (i = 0; i < SIZE; i++) for (j = 0; j < SIZE; j++) d[i][j] = a[i][j] - c[i][j]; /* Po optimalizaci */ Nejedná se jenom o úsporu instrukcí, ale také efektivněji for (i = 0; i < SIZE; i++) for (j = 0; j < SIZE; j++) používáme cache { a[i][j] = b[i][j] * c[i][j]; d[i][j] = a[i][j] - c[i][j];} 50
51 Pochopili jste tuto přednášku? Dalším příkladem je násobení matic Pomůže nám nějak když prohodíme tyto dva řádky? Bude program ekvivalentní? for(i=0; i < N; i++) for(j=0; j < N; j++) { tmp = 0; (Viz úvodní příklad ) for (k=0; k < N; k++) tmp += y[i][k]*z[k][j]; x[i][j] = tmp; } 51
52 Pochopili jste tuto přednášku? Dalším příkladem je násobení matic Lépe je však použít tzv. blokové násobení. Idea: Rozdělme výpočet na submatice BxB, které se vejdou do cache.. => eliminace capacity misses for (jj = 0; jj < N; jj = jj+b) for (kk = 0; kk < N; kk = kk+b) for (i = 0; i < N; i++) for (j = jj; j < min(jj+b-1,n); j++) { tmp = 0; for (k = kk; k < min(kk+b-1,n); k++) tmp += y[i][k]*z[k][j]; x[i][j] = x[i][j] + tmp; } Ke čtení: 52
53 Pochopili jste tuto přednášku? Neplýtvejme pamětí používejme minimální množství paměti Spatřujete rozdíl v těchto deklaracích? /* Před optimalizací */ int a=0; char b='a'; int c=1; a b /* Po optimalizaci */ int a=0; int c=1; char b='a'; c a c b 53
54 Co je špatně? viz. pahole struct cheese { char char name[17]; name[17]; /* 0 17 */ /* XXX 1 byte hole, try to pack */ short short age; age; /* 18 2 */ char char type; type; /* 20 1 */ /* XXX 3 bytes hole, try to pack */ int int calories; calories; /* 24 4 */ short short price; price; /* 28 2 */ /* XXX 2 bytes hole, try to pack */ int int barcode[4]; barcode[4]; /* */ }; /* size: 48, cachelines: 1 */ /* sum members: 42, holes: 3 */ /* sum holes: 6 */ /* last cacheline: 48 bytes */ Arnaldo Carvalho de Melo: The 7 dwarves: debugging information beyond gdb 54
55 Ponaučení Dávejte pozor na uspořádání prvků struktury Na začátek struktury dávejte nejkritičtější prvky (nejčastěji používané) Pokud přistupujete k prvkům struktury, snažte se zachovat pořadí v jakém jsou ve struktuře definovány Pro větší struktury, pravidla platí rovněž a lze je aplikovat nad velikostí cache line Další otázkou je, jaké položky vůbec mají být ve struktuře: OOP princip vs. rychlost 55
56 Pochopili jste tuto přednášku? Data, ke kterým přistupujete ve stejnou dobu (krátce za sebou) uložte vedle sebe (seskupte). Data, ke kterým přistupujete často uložte vedle sebe (seskupte). Někdy se je potřeba rovněž zamyslet nad zarovnáním dat v paměti buď přímo v assembleru nebo v jazyce C zkontrolujte si jestli Váš kompilátor zarovnává double na 8-byte hranici, pokud ne: alokujte si kolik potřebujete + 4B (nebo i víc dle zarovnání) pomocí ANDu získejte zarovnanou adresu pro svá data, příklad: double a[5]; double *p, *newp; p = (double*)malloc ((sizeof(double)*5)+4); newp = (p+4) & (-7); Viz také int posix_memalign(void **memptr, size_t align, size_t size); 56
57 Pochopili jste tuto přednášku? Hledání prvočísel - Eratostenovo sito: /*Před optimalizací*/ boolean array[max]; for(i=2;i<max;i++) { array = 1; } for(i=2;i<max;i++) Přenos nastáva pouze při if(array[i]) cache miss for(j=i;j<max;j+=i) array[j] = 0; /*přenos z paměti do cache a zápis 0*/ 57
58 Pochopili jste tuto přednášku? Hledání prvočísel - Eratostenovo sito: /*Po optimalizaci*/ boolean array[max]; for(i=2;i<max;i++) { array = 1; } for(i=2;i<max;i++) if(array[i]) for(j=2;j<max;j+=i) if(array[j]!=0) /*přenos z paměti do cache a čtení*/ array[j] = 0; /*zápis 0 pouze někdy*/ Redukujte neužitečné zápisy (redukce zápisů do paměti dirty cache lines musejí být vždy zapsány před odstraněním z cache ) 58
59 Obcházení cache může rovněž urychlit Vaše programy Pokud vyprodukujete data, která nejsou ihned použita (nontemporal write operation) není důvod je cacheovat To je mnohdy případ velkých datových struktur (matice apod.) Proč to vede k urychlení programu? #include <emmintrin.h> void _mm_stream_si32(int *p, int a); A další Uloží data obsažena v a na adresu p bez vynucení účasti cache. Nicméně pokud již p existuje v cache, cache bude aktualizována. -> viz strategie Write-combining; -> o finální vyprázdnění WC buffru se stará programátor, jinak HW Podrobnosti v: Caching of Temporal vs. Non-Temporal Data in Chapter 10 in the Intel 64 and IA-32 Architectures Software Developer s Manual, Volume 1. 59
60 Optimalizujte často volané funkce Pokud často a zejména v rychlém sledu po sobě voláte tutéž funkci, optimalizujte ji! Využijte k tomu i cache Příklad: Víme, že budeme potřebovat počítat odmocniny pouze celých čísel, ale velmi často pouze od 0 do 10. double sqrt10(int i) { static const double lookup_table[] = {0, 1, sqrt(2), sqrt(3), 2, sqrt(5), sqrt(6), sqrt(7), sqrt(8), 3, sqrt(10) }; if(0 <= i && i <= 10) return lookup_table[i]; else return sqrt(i); } 60
61 Optimalizujte často volané funkce Příklad: Budeme volat funkci, která je často krát po sobě volaná se stejnými parametry double f(double x, double y) { return sqrt(x * sin(x) + y * cos(y)); } Po optimalizaci: double f(double x, double y) { static double prev_x = 0, prev_y = 0, result = 0; if (x == prev_x && y == prev_y) return result; prev_x = x; prev_y = y; result = sqrt(x * sin(x) + y * cos(y)); return result; } 61
62 Jak zjistit paramatry cache? Linux #include <unistd.h> long sysconf (int name); Kde name: _SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_ASSOC _SC_LEVEL1_ICACHE_LINESIZE atd. Windows GetLogicalProcessorInformation() -> SYSTEM_LOGICAL_PROCESSOR_INFORMATION a ta obsahuje CACHE_DESCRIPTOR 62
63 Virtuální paměť. 63
64 Motivace k virtuální paměti.. Běžně máme na počítači spuštěno několik desítek/stovek procesů Umíte si představit situaci, kdy bychom rozdělili fyzikou paměť (například 1 GB) mezi tyto procesy? Jak veliký kus paměti by pak patřil jednomu procesu? Jak bychom řešili kolize kdy nějaký program úmyslně (například virus) nebo neúmyslně (chybou programátora práce s ukazateli) by chtěl zapisovat do kusu paměti, který jsme vyhradili jinému procesu? Řešením je právě virtuální paměť Každému procesu vytvoříme iluzi, že celá paměť je pouze jeho a může se v ní libovolně zcela bezpečně pohybovat. Dokonce každému procesu dále vytvoříme iluzi, že má k dispozici např. 4GB paměti i když je fyzická paměť mnohem menší. Proces pak nerozlišuje mezi fyzickou pamětí a diskem (disk se mu jeví jako paměť). Základní idea: Proces adresuje ve virtuální paměti pomocí virtuálních adres. Ty pak musíme nějak přeložit na adresy fyzické. 64
65 Motivace k virtuální paměti.. Představme si, že máme 8B (Bajtů) virtuální prostor a 8B fyzické paměti Jak zabezpečíme překlad adres? Předpokládejme adresaci po bajtech. Zde je jedno řešení: Chceme přeložit libovolnou virtuální adresu na libovolnou fyzickou adresu. Máme 3-bitovou virtuální adresu, a tu chceme přeložit na 3-bitovou fyzickou adresu. K tomu stačí tabulka o 8 záznamech, kde jeden záznam bude mít 3 bity, dohromady 8x3=24bitů/proces. Virtuální prostor 7 mapování Fyzický prostor 3-bitová adresa pro 8 položek Naše řešení: Použijeme Look-up tabulku Look-up table Problém! Pokud budeme mít 4 GB virtuální prostor, naše Look-up tabulka bude zabírat 232x32 bitů = 16GB/proces!!! To je poněkud hodně 65
66 Motivace k virtuální paměti.. - Ponaučení z předchozího slide: Mapování z libovolné virtuální adresy na libovolnou fyzickou adresu je prakticky nerealizovatelný požadavek! Řešení: Rozdělme virtuální prostor na stejně velké části virtuální stránky, a fyzickou paměť na fyzické stránky. Ať je velikost virtuální a fyzické stránky stejná. V našem příkladu máme stránku o velikosti 2B. číslo Virtuální stránky prostor mapování Fyzický číslo prostor stránky bitová adresa pro 4 položky 1 0 Look-up table 2 3 Naše řešení jeden bit adresy nebudeme pro překlad používat. Look-up tabulka bude mít pak v tomto případě poloviční velikost. Naše řešení tedy překládá virtuální adresy po skupinách Uvnitř dané stránky se pak pohybujeme za pomocí právě toho bitu, který jsme při překladu ignorovali.. Tím jsme schopni využít celý adresní prostor. 66
67 Příklad č.1 #include <stdio.h> Co z toho vyplývá? #include <stdlib.h> Data jsou v poli int main() uložena za sebou. { Otázky, které se int a, b[4], *c, d; nabízí.. c = (int*)malloc(4*sizeof(int)); printf("%p %p %p %p\n",&a,&b,&c,&d); Ale co je to za adresu? printf("%p %p %p\n",&b[0],&b[1],&b[2]); printf("%p %p %p\n",&c[0],&c[1],&c[2]); Kam do cache se free(c); tyto data namapují? return 0; } 0028FF1C 0028FF0C 0028FF FF04 Výpis programu: 0028FF0C 0028FF FF
68 Virtualizace paměti VP je způsob správy operační paměti umožňující běžícímu procesu zpřístupnění paměťového prostoru, který je uspořádán jinak, nebo je dokonce větší, než je fyzicky připojená operační paměť. Převod mezi virtuální VA a fyzickou PA adresou může podporovat procesor (HW mapováním TLB, viz dále). V současně běžných operačních systémech je virtuální paměť implementována pomocí stránkování paměti spolu se stránkováním na disk, které rozšiřuje operační paměť o prostor na disku. * R. Lórenc, X36APS,
69 Virtuální paměť - stránkování Virtuální prostor tvoří stejně velké stránky (pages, virtual pages), které se přiřazují jednotlivým běžícím procesům. Fyzickou paměť tvoří stejně velké rámce (frames, physical pages). 69
70 Virtuální paměť - stránkování Každé virtuální stránce může odpovídat nejvýš jedna fyzická stránka, obráceně to neplatí, takže: Na jednu konkrétní fyzickou stránku může být namapováno několik virtuálních stránek. Co to přináší? Můžeme sdílet paměť napříč různými procesy nebo vlákny (data nebo kód OS načte sdílené knihovny jenom jednou), můžeme poskytnout jiná oprávnění (přístupová práva). Pokud se program snaží přistoupit do stránky způsobem, který neodpovídá jeho oprávněním, CPU generuje General protection fault handler pro General protection fault typická reakce je ukončení procesu 70
71 Virtuální a fyzické adresování Fyzická adresa Virtuální adresa Virtuální A0-A31 CPU Fyzická Převod adres D0-D31 A0-A31 Paměť D0-D31 Data 71
72 Virtuální a fyzické adresování - detailněji Předpokládejme virtuální adresu o délce 32 bitů, 1GB fyzické paměti a velikost stránky 4 KB Virtual page number offset 11 Překlad adresy (překlad čísla stránky) A co ty zbylé bity? Vysvětlíme později bitů => 212 = 4 KB je velikost stránky Physical page number offset Jaký velmi důležitý praktický důsledek má toto uspořádání překladu (tj. nejnižší bity adresy zůstávají zachovány)? 72
73 Vraťme se k příkladu č.1 #include <stdio.h> #include <stdlib.h> int main() { int a, b[4], *c, d; c = (int*)malloc(4*sizeof(int)); printf("%p %p %p %p\n",&a,&b,&c,&d); printf("%p %p %p\n",&b[0],&b[1],&b[2]); printf("%p %p %p\n",&c[0],&c[1],&c[2]); free(c); return 0; } 0028FF1C 0028FF0C 0028FF FF04 Výpis programu: 0028FF0C 0028FF FF
74 Vraťme se k příkladu č.1 Virtuální adresní prostor: heap adres, na Všimli jste si kterých se nachází proměnné a, c, d a pole b? Co když budeme chtít rozšířit náš program třeba o příkazy: a = 1; b[0] = a+1; b[1] = b[0]+1; d = b[2]; //b[2] neinicializováno.. c[] c[0] 0x a 0x28FF1C 0x28FF10 0x28FF0C 0x28FF08 0x28FF04 stack b[] 0x c d 4 Bajty 74
75 Vraťme se k příkladu č.1 Předpokládejme L1 datovou cache o velikosti 32kB se stupněm asociativity 8, a velikostí bloku 64B. Cache je na počátku prázdná. Co všechno se stane když vykonáme první řádek programu? a = 1; b[0] = a+1; b[1] = b[0]+1; d = b[2]; 75
76 Vraťme se k příkladu č.1 Předpokládejme L1 datovou cache o velikosti 32kB se stupněm asociativity 8, a velikostí bloku 64B. Cache je na počátku prázdná. Co všechno se stane když vykonáme první řádek programu? a = 1; cesta 0 cesta 1 cesta 7 V 64 setů Tag Data Data slov (16x Data) = 64B = velikost bloku 8 různých cest 76
77 Vraťme se k příkladu č.1 Předpokládejme L1 datovou cache o velikosti 32kB se stupněm asociativity 8, a velikostí bloku 64B. Cache je na počátku prázdná. Co všechno se stane když vykonáme první řádek programu? a = 1; -> cache miss POZOR: Sem patří Tag z fyzické adresy!!! 64 setů cesta V Tag Data Data Data Data Data Data Data Data Data x0028F??? a b[3] b[2] b[1] b[0] c d??? slov (16x Data) = 64B 77
78 Vraťme se k příkladu č.1 Závěry: Stránkování (realizace virtuální paměti) nenarušuje princip prostorové lokality => důležité pro cache. Data na sousedících virtuálních adresách budou uloženy ve fyzické paměti vedle sebe (pokud nepřekročí hranici stránky). Pokud nastane page fault (stránka je na disku) jako důsledek cache miss, pak se celá stránka z disku přesune do paměti a z té se pak celý blok (cache line) přesune do cache. Další cache miss uvnitř stránky již nevyvolá page fault (dokud nebude stránka nahrazena jinou stránkou). 78
79 Realizace převodu adres? Tabulka stránek, Page Table. Jednotkou mapování jsou stránky, Stránka je také jednotkou přenosu mezi vedlejší a hlavní paměti. Mapovací funkce se nejčastěji implementuje Lookup Table (vyhledávací tabulkou). O překlad virtuálních adres na fyzické se stará Memory Management Unit (MMU) MMU je součástí CPU Příklad: 79
80 Realizace převodu adres? Virtual page number offset 11 0 Překlad adresy (překlad čísla stránky) Physical page number 11 0 offset PDBR Datová struktura pro Page Directory (Page Table) je uložena v hlavní paměti. Úkolem operačního systému je alokovat souvislou oblast paměti a počáteční adresu této oblasti uložit do speciálního registru CPU. PDBR - page directory base register v x86 v registru CR3 obsahuje fyzickou adresu PTBR - page table base register to samé 80
81 Realizace převodu adres? 20 bitů 12 bitů Paměť je rozdělena na fyzické stránky č.0 č.1 4kB = 212B Page table daná virtuální stránka odpovídá fyzické stránce č položek 220.4B = 4MB PDBR č.2 4GB 220 fyzických stránek 20 bitů pro určení stránky + další bity (valid, práva, atd.) = 4B (8B) č.n-1 N=232/212=220 81
82 Uvažujme Stránka je typicky 4 kb = 2^12 Když budeme znát adresu stránky, postačuje nám tedy jenom 12 bitů na pohyb (adresaci) v ní. Zbývá 20 bitů (pro 32-bitovou adresu). Tudíž Page Directory (Page Table) by měl obsahovat 2^20 položek. To je nepraktické a přináší řadu nevýhod. Typický proces/vlákno se v daném okamžiku pohybuje pouze v malé části svého adresního prostoru princip časové a prostorové lokality Řešením je více-úrovňové stránkování. 82
83 Více-úrovňové stránkování 83
84 Více-úrovňové stránkování 2 úrovně 10 bitů 10 bitů 12 bitů Paměť je rozdělena na fyzické stránky č.0 č.1 4kB = 212B 210 položek PDBR 210 Page tables 210.4KB = 4MB 210 položek 210.4B = 4KB (pokud je celá paměť nastránkována) 20 bitů pro určení stránky + další bity (valid, práva, atd.) = 4B (8B) č.2 4GB 220 fyzických stránek č.n-1 N=232/212=220 84
85 Více-úrovňové stránkování Poznámky k předchozímu slide: Ne každý proces využívá celý svůj adresní prostor => není nutné alokovat v druhé úrovni 210 Page tables Tabulky stránek můžou být rovněž stránkovány Obecné poznámky: Intel IA32 implementuje 2-úrovňové stránkování Page Table v úrovni 1 označuje jako Page Direcory (10 bitů pro adresaci) Page Table v úrovni 2 pak jako Page Table (10 bitů) V případě 64-bitové virtuální adresy je obvyklé používat méně bitů pro fyzickou adresu například 48, nebo 40. Intel Core i7 používá 4-úrovňové stránkování a 48 bitový adresní prostor Page Table v úrovni 1: Page global directory (9 bitů) Page Table v úrovni 2: Page upper directory (9 bitů) Page Table v úrovni 3: Page middle directory (9 bitů) Page Table v úrovni 4: Page table (9 bitů) 85
86 Tabulka stránek jak vypadají položky? Význam položek Look-up Table 86
87 Tabulka stránek jak vypadají položky? Význam položek Podívejme se na položku Page Directory (Page Table na 1.úrovni) 31 1 Dostupné pro Operační Systém Bázová adresa Page table 6 5 A 0 P= PCD PWT U/S R/W P=1 bit 0: Present bit určuje zda je stránka v paměti (1), nebo na disku (0) Někdy se tento bit označuje V valid. bit 1: Read/Write: pokud 1 R/W; pokud 0 jenom ke čtení bit 2: User/Supervisor: 1 uživatelský přístup; 0 pouze OS bit 3: Write-through/Write-back zapisovací strategie pro stránku bit 4: Cache disabled/enabled některé periferie jsou namapovány přímo do paměti (memory mapped I/O), čímž je umožněn zápis/čtení do/z dané periferie. Tyto adresy v paměti pak chápeme jako I/O porty. Nekešujeme. bit 5: Accessed zda jsme četli/zapsali pomáhá rozhodovat o tom, které stránky mají být odstraněny když potřebujeme uvolnit prostor v paměti 87
88 Tabulka stránek jak vypadají položky? Význam položek Podívejme se na položku Page Table (Page Table na 2.úrovni) 31 1 Dostupné pro Operační Systém Bázová adresa Page 7 6 D 5 A 0 P= PCD PWT U/S R/W P=1 bit 6: Dirty bit Je nastaven pokud jsme do stránky zapsali. 88
89 Poznámky Každý proces má svou Tabulku stránek, Tedy i svou hodnotu PTBR (bázového registru). To, mimochodem, zajišťuje paměťovou bezpečnost procesů. Co chceme abyste si zapamatovali z Formátu položky Tabulky stránek? V Validity Bit. V=0 Stránka není platná (je na disku). AR Access Rights. Přístupová práva (Read Only, Read/Write, Executable, apod.), Frame# - číslo rámce (bázová adresa do nižší úrovně), Popřípadě další, např. Modified/Dirty, apod. (budeme dále podle potřeby doplňovat). V AR Frame# 89
90 Virtuální paměť: spolupráce HW a SW 90
91 Co dělat, když je výpadek stránky Page Fault? Fyzická paměť je volná, ale Rámec je prázdný, data jsou ve vedlejší paměti (na disku). Požadovaná stránka se nějak (DMA, Direct Memory Access, přímým přístupem do paměti, ale to zde neřešíme) načítá do prázdného rámce. Přepne se na případně čekající proces, který může probíhat. Po dokončení DMA přenosu se vyvolá přerušení, aktualizuje se Tabulka stránek procesu. Přepne se zpět na původní proces. Paměti je nedostatek Pomocí LRU najdeme rámec, který můžeme uvolnit. Má-li nastaven Dirty bit, zapíšeme stránku do vedlejší paměti (na disk). Aktualizuje se Tabulka stránek procesu. 91
92 Virtuální paměť a soubory na disku Virtuální paměť rozšiřuje fyzickou paměť o prostor na disku tím, že automaticky odkládá/načítá stránky na disk (swapování). Toho lze využít Načtení programů a knihoven do paměti: Programy a knihovny jsou uloženy na disku jako binární soubory obsahující instrukce a data Když chceme spustit nový program: Jádro OS alokuje souvislou množinu virtuálních stránek (dostatečně velký prostor pro uchování vlastního programu a dat) Poté OS aktualizuje Page table procesu (Page tables pak odkazují na soubory na disku) Položky Page table jsou označeny jako Valid=0 (na disku) Jakmile program běží, správa virtuální paměti načte program do paměti automaticky Viz mmap() funkce alokuje virtuální stránky a nastaví položky Page table tak, aby odkazovaly na soubor na disku 92
93 Více-úrovňové stránkování Problém rychlosti Pokud bychom předpokládali, že všechny položky pro výpočet adresy máme již v cache, bude i tak výpočet adresy trvat velmi dlouhou (v závislosti od počtu úrovní nelze paralelizovat). Výhodnější je přímo cachovat vypočtené adresy. K tomu slouží Translation Look-Aside Buffer (TLB) Dnes se používají více-úrovňové TLB 93
94 Idealizace překladu adres pomocí TLB - čtení CPU (ALU) hit miss virtuální adresa TLB fyzická adresa Cache hit miss přenos Page table do TLB Hlavní paměť Všimněte si, že může dojít k miss-u 2x Pokud nastane TLB miss, musíme vykonat tzv. page walk 94
95 Rychlá realizace Tabulky stránek - TLB Translation-lookaside Buffer, výstižnější by byl termín překládací keš (Translation Cache). Je vlastně skrytá paměť (cache) adres stránek. 95
96 Překlad adres Intel Nehalem (Core i7) 96
97 Překlad adres Intel Nehalem (Core i7) detailněji 97
98 Organizace paměti - Intel Nehalem (Core i7) 98
99 Organizace paměti - Intel Nehalem několik poznámek Velkost bloku: 64B procesor vždy čte řádek cache ze systémové paměti zarovnán na 64B (6 LSb adresy jsou nuly) a nepodporuje částečně plněné řádky L1 Harvard. V SMT sdílená oběma vlákny, Instrukční 4-way, Datová 8-way. L2 unifikovaná, 8-way, neinkluzivní, WB L3 unifikovaná, 16-way, inkluzivní (řádek obsažen buď v L1 nebo L2 se nachází v L3), WB Store Buffers dočasně uchovávají data pro každý zápis. Netřeba čekat na zápis do cache či paměti. Zajišťují, že zápisy jsou ve správném pořadí a také když je potřeba: - výjimka, přerušení, instrukce serializace, lock,.. Můžete si také všimnout oddělených TLB (Translation Lookaside Buffer) 99
100 Intel Core i7 to samé, jiný pohled 100
101 Pro vaší představu: typické hodnoty Typicky pro stránkované paměti Typicky pro TLB Velikost MB 0,25-16 KB Velikost bloku v B Miss penalty (v hod) , ,0001% 0,01-2 Velikost v blocích Miss rates 101
102 Efektivnější používáni paměti prostředek zrychlení programu Váš program může brát v potaz velikost stránky a používat paměť efektivněji jednak zarovnáním alokací na násobek velikosti stránky a pak redukcí interní a externí fragmentace stránek.. (pořadí alokací atd. Viz také memory pool) #include <stdio.h> #include <unistd.h> int main(void) { printf( Velikost stranky je: %ld B.\n", sysconf(_sc_pagesize)); return 0; } Akolace paměťově zarovnaného bloku: void * memalign(size_t size, int boundary) void * valloc(size_t size) 102
103 windows #include <stdio.h> #include <windows.h> int main(void) { SYSTEM_INFO s; GetSystemInfo(&s); printf("velikost stranky je: %ld B.\n", ns.dwpagesize); printf("rozsah adres pro aplikaci (a dll): 0x%lx 0x%lx\n", s.lpminimumapplicationaddress, s.lpmaximumapplicationaddress); return 0; } 103
104 Jsou hierarchické stránkovací tabulky jedinou možností? Hierarchické stránkovací tabulky de facto představují stromovou strukturu, kterou je pak nutno prohledávat Ještě existuje alternativa: Inverted Page Tables 64-bitový virtuální adresní prostor je dosti velký, fyzická paměť mnohem menší -> výrazná disproporce Idea: Fyzická paměť je rozdělena na stránky. Abychom určili, které virtuální stránky jsou přirazeny dané fyzické stránce, postačuje nám tabulka o takovém počtu řádků, kolik je fyzických stránek Problémem je špatná prostorová lokalita (kešovatelnost) v důsledku hashe Page number Offset PID PID Hash Virtual Page # Phys. Page # Hash Table: Počet položek je roven počtu fyzických stránek 104
105 Virtuální paměť z pohledu Linuxu 105
106 Pojmy dejme věci do souvislostí Linux organizuje VP jako kolekci oblastí - areas (segments) Area je souvislý blok existující (alokované) virtuální paměti, který má nějaký význam. Příklad: code segmant, data segment, heap, shared library segment, user stack. Každá existující virtuální stránka patří do nějaké oblasti. Použití oblastí (areas/segments) umožňuje organizovat VP s mezerami segmenty nemusí nutně ležet vedle sebe 106
107 struct task_struct struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ long counter; long priority; unsigned long signal; unsigned long blocked; /* bitmap of masked signals */ unsigned long flags; /* per process flags, defined below */ int errno; long debugreg[8]; /* Hardware debugging registers */ struct exec_domain *exec_domain; struct linux_binfmt *binfmt; struct task_struct *next_task, *prev_task; struct task_struct *next_run, *prev_run; unsigned long saved_kernel_stack; unsigned long kernel_stack_page; int exit_code, exit_signal; unsigned long personality; int dumpable:1; int did_exec:1; int pid; int pgrp; int tty_old_pgrp; int session; int leader; int groups[ngroups]; struct task_struct *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr; struct wait_queue *wait_chldexit; unsigned short gid,egid,sgid,fsgid; unsigned long timeout, policy, rt_priority; unsigned long it_real_value, it_prof_value, it_virt_value; unsigned long it_real_incr, it_prof_incr, it_virt_incr; struct timer_list real_timer; long utime, stime, cutime, cstime, start_time; unsigned long min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap; int swappable:1; unsigned long swap_address; unsigned long old_maj_flt; /* old value of maj_flt */ unsigned long dec_flt; /* page fault count of the last time */ unsigned long swap_cnt; *number of pages to swap on next pass */ struct rlimit rlim[rlim_nlimits]; unsigned short used_math; char comm[16]; int link_count; struct tty_struct *tty; /* NULL if no tty */ struct sem_undo *semundo; struct sem_queue *semsleeping; struct desc_struct *ldt; struct thread_struct tss; struct fs_struct *fs; struct files_struct *files; struct mm_struct *mm; /* memory management info */ struct signal_struct *sig; /* signal handlers */ }; 107
108 struct task_struct task_struct obsahuje (nebo odkazuje na) informace, které potřebuje kernel aby mohl vykonávat proces (PID, ukazatel na user stack, ). Nás zajímá mm_struct *mm. mm_struct určuje stav virtuální paměti. Nás zajímá: pgd_t *pgd; struct vm_area_struct *mmap; Obsah PDBR (page directory base register) = PTBR = CR3 (v x86) je nastaven právě hodnotou pgd. 108
109 Page Fault Exception Handling - zjednodušeně Předpokálejme, že MMU (Mem Manag Unit) spustí Page Fault během pokusu o překlad nějaké virtuální adresy A (nenakešováno v TLB). To vede k přenosu řízení na Page Fault Handler, který výkoná: Je virtuální adresa A legální? Tzn. leží A unvitř oblasti (area) definovanou některou ze struktur vm_area_struct? Porovnání na meze vm_start a vm_end. Sekvenční prohledávání seznamu je časově náročné => v praxi prohledávání stromu nad tímto seznamem. Pokud adresa není legální -> Segmentation Fault a ukončí proces Je pokus o přístup legální? Tzn. máme práva? (read, write, execute) Pokud ne -> Protection Exception a ukončení procesu Nyní může být přístup pouze legální a na legální adresu. Takže musíme vybrat oběť (v případě, že je dirty nakopírovat ji na disk), nahrát novou stránku (tu žádanou), a aktualizovat Page Table. Tím činnost Page Fault Handler končí. CPU restartuje instrukci, která spustila Page Fault. Nyní již MMU žádost o překlad adresy A obslouží normálně bez generování Page Fault. 109
110 Memory Mapping Linux inicializuje obsah oblasti (area) virtuální paměti asociací s: Regular file (čtení z dané oblasti paměti se projeví čtením souboru) Anonymous file pokud CPU čte z dané oblasti paměti poprvé, kernel najde ve fyzické paměti oběť (pokud je dirty zapíše na disk do swap file), vynuluje obsah paměti, aktualizuje Page Table označí ji jako residentní bit Present. Oblasti stránek, které jsou mapovány na Anonymous files jsou někdy označovány jako demand-zero pages Dále viz funkci mmap() která mapuje soubory nebo zařízení do paměti 110
111 Některá systémová volání z pohledu paměti fork() vytvoří nový proces s novým adresním prostorem. Všechny stránky jsou označeny jako Copy-On-Write (COW) a jsou sdíleny mezi procesy VMA pro daný region je označena jako writable, ale PTE ne => privátní kopie clone() vytvoří nový proces, ale umožní sdílet části jeho kontextu s rodičovským procesem => vlákno mmap() vytvoří nový region uvnitř lineárního adresního prostoru daného procesu mremap() remapuje nebo mění velikost regionu paměti munmap() ruší část nebo celý region. (Pokud je unmapováno někde uprostřed, pak se region rozdělí na dva) shmat() připojí shared memory segment k adresnímu prostoru procesu shmdt() opak shmat() exit() zruší adresní prostor a všechny regiony 111
112 References Randal E. Bryant, David R. O Hallaron: Computer Systems, A Programmer s Perspective. David Money Harris and Sarah L. Harris: Digital Design and Computer Architecture, Second Edition. Morgan Kaufmann. 112
Pokročilé architektury počítačů
Pokročilé architektury počítačů Architektura paměťového a periferního podsystému České vysoké učení technické, Fakulta elektrotechnická A4M36PAP Pokročílé architektury počítačů Ver.1.00 2010 1 Motivace
Architektury počítačů
Architektury počítačů Virtuální paměť České vysoké učení technické, Fakulta elektrotechnická B35APO Architektura počítačů Ver.3.5 - odpřednášená 1 * B35APO Architektura počítačů 2 Přímo mapovaná cache
Architektury počítačů
Architektury počítačů Paměť část druhá 1. virtuální paměť, celkový pohled 2. sekundární paměť České vysoké učení technické, Fakulta elektrotechnická A0B36APO Architektura počítačů Ver.1.00 1 Na minulé
Architektury počítačů
Architektury počítačů Paměť část první - úvod, realizace pamětí, cache České vysoké učení technické, Fakulta elektrotechnická A0B36APO Architektura počítačů Ver.1.00 1 Literatura k předmětu A0B36APO Architektura
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
Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti
Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.
Architektura počítačových systémů Pamět ová hierarchie, virtuální pamět doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů
Paměťový podsystém počítače
Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...
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
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 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Operační systémy. Přednáška 8: Správa paměti II
Operační systémy Přednáška 8: Správa paměti II 1 Jednoduché stránkování Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné
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
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 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Struktura a architektura počítačů (BI-SAP) 11
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 11 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Systém adresace paměti
Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného
Operační systémy. Přednáška 7: Správa paměti I
Operační systémy Přednáška 7: Správa paměti I 1 Správa paměti (SP) Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který
ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Správa paměti. Přímý přístup k fyzické paměti, abstrakce: adresový prostor, virtualizace, segmentace
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Správa paměti Přímý přístup k fyzické paměti, abstrakce: adresový prostor, virtualizace, segmentace České vysoké učení technické Fakulta elektrotechnická Y38ÚOS Úvod do operačních
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)
Správa paměti (SP) Operační systémy Přednáška 7: Správa paměti I Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který
Paměti a jejich organizace
Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení
Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje
Paměti Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje Paměti počítače lze rozdělit do tří základních skupin: registry paměťová místa na čipu procesoru jsou používány
2010/2011 ZS P i r i nc č py po ít č čů a PAMĚŤOVÝ ĚŤ SUBSYSTÉM z pohledu OS OS
Pi Principy i počítačů čů PAMĚŤOVÝ SUBSYSTÉM z pohledu OS Správa paměti OS je správcem prostředků, tedy i paměti přidělování procesům zajištění ochrany systému i procesů zajištění požadavků aniž by došlo
Pamět ová hierarchie, návrh skryté paměti 2. doc. Ing. Róbert Lórencz, CSc.
Architektura počítačových systémů Pamět ová hierarchie, návrh skryté paměti 2 doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů
Pamět ová hierarchie, návrh skryté paměti cache 2
Architektura počítačových systémů Róbert Lórencz 8. přednáška Pamět ová hierarchie, návrh skryté paměti cache 2 http://service.felk.cvut.cz/courses/36aps lorencz@fel.cvut.cz Róbert Lórencz (ČVUT FEL, 2005)
Přidělování paměti II Mgr. Josef Horálek
Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování
Paměťová hierarchie. INP 2008 FIT VUT v Brně
Paměťová hierarchie INP 2008 FIT VUT v Brně 000 Výkonová mezera mezi CPU a pamětí Moorův zákon CPU CPU 60% za rok (2X/.5roku) výkonnost 00 0 980 98 DRAM 982 983 984 985 986 987 988 989 990 99 992 993 994
Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni
ělení pamětí Volatilní paměti Nevolatilní paměti Počítačové systémy Vnitřní paměti Miroslav Flídr Počítačové systémy LS 2006-1/11- Západočeská univerzita v Plzni ělení pamětí Volatilní paměti Nevolatilní
Mezipaměti počítače. L2 cache. L3 cache
Mezipaměti počítače Cache paměť - mezipaměť Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá vyrovnávací (cache) paměť SRAM. Rychlost
Struktura a architektura počítačů (BI-SAP) 10
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 10 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Principy počítačů a operačních systémů
Principy počítačů a operačních systémů Operační systémy Správa paměti Zimní semestr 2011/2012 Správa paměti OS jako správce paměti specializovaný subsystém OS spravuje hlavní paměť systému přidělování
09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).
Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis
Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.
Paměti Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry. Klíčové pojmy: paměť, RAM, rozdělení pamětí, ROM, vnitřní paměť, vnější paměť. Úvod Operační paměť
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
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 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
IUJCE 07/08 Přednáška č. 6
Správa paměti Motivace a úvod v C (skoro vždy) ručně statické proměnné o datový typ, počet znám v době překladu o zabírají paměť po celou dobu běhu programu problém velikosti definovaných proměnných jak
Paměti Josef Horálek
Paměti Josef Horálek Paměť = Paměť je pro počítač životní nutností = mikroprocesor z ní čte programy, kterými je řízen a také do ní ukládá výsledky své práce = Paměti v zásadě můžeme rozdělit na: = Primární
Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)
Paměti EEPROM (1) EEPROM Electrically EPROM Mají podobné chování jako paměti EPROM, tj. jedná se o statické, energeticky nezávislé paměti, které je možné naprogramovat a později z nich informace vymazat
Rychlá vyrovnávací paměť v architektuře PC
Rychlá vyrovnávací paměť v architektuře PC 1 Cíl přednášky Prezentovat důvody, které vedly k zavedení rychlé vyrovnávací paměti (RVP) do architektury počítače. Vysvětlit principy činnosti RVP. Ukázat vývoj
PAMĚŤOVÝ SUBSYSTÉM. Principy počítačů I. Literatura. Parametry paměti. Parametry paměti. Dělení pamětí podle funkce. Kritéria dělení pamětí
Principy počítačů I PAMĚŤOVÝ SUBSYSTÉM Literatura http://www.tomshardware.com http://www.play-hookey.com/digital/ 6 kb ought to be enough for anybody. Bill Gates, 98 Parametry paměti kapacita objem informace,
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.
Odpovědi jsem hledala v prezentacích a na http://www.nuc.elf.stuba.sk/lit/ldp/index.htm Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je
Memory Management vjj 1
Memory Management 10.01.2018 vjj 1 10.01.2018 vjj 2 sledování stavu paměti free used správa paměti strategie přidělování paměti techniky přidělování paměti realizace uvolňování paměti 10.01.2018 vjj 3
Principy operačních systémů. Lekce 3: Virtualizace paměti
Principy operačních systémů Lekce 3: Virtualizace paměti Virtuální paměť Adresní prostor paměti je uspořádán logicky jinak, nebo je dokonce větší než je fyzická operační paměť RAM Rozšíření vnitřní paměti
Management procesu I Mgr. Josef Horálek
Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více
Memory Management vjj 1
Memory Management 30.11.2016 vjj 1 30.11.2016 vjj 2 sledování stavu paměti free used správa paměti strategie přidělování paměti techniky přidělování paměti realizace uvolňování paměti 30.11.2016 vjj 3
Miroslav Flídr Počítačové systémy LS 2006-1/21- Západočeská univerzita v Plzni
Počítačové systémy Vnitřní paměti Miroslav Flídr Počítačové systémy LS 2006-1/21- Západočeská univerzita v Plzni Hierarchire pamětí Miroslav Flídr Počítačové systémy LS 2006-2/21- Západočeská univerzita
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden
DUM č. 10 v sadě. 31. Inf-7 Technické vybavení počítačů
projekt GML Brno Docens DUM č. 10 v sadě 31. Inf-7 Technické vybavení počítačů Autor: Roman Hrdlička Datum: 04.12.2013 Ročník: 1A, 1B, 1C Anotace DUMu: jak fungují vnitřní paměti, typy ROM a RAM pamětí,
Metody připojování periferií BI-MPP Přednáška 2
Metody připojování periferií BI-MPP Přednáška 2 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011
Informační a komunikační technologie
Informační a komunikační technologie 7. www.isspolygr.cz Vytvořil: Ing. David Adamovský Strana: 1 Škola Integrovaná střední škola polygrafická Ročník Název projektu 1. ročník SOŠ Interaktivní metody zdokonalující
Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard
Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený
Technické prostředky počítačové techniky
Počítač - stroj, který podle předem připravených instrukcí zpracovává data Základní části: centrální procesorová jednotka (schopná řídit se posloupností instrukcí a ovládat další části počítače) zařízení
Paměti cache. Cache může být realizována softwarově nebo hardwarově.
Paměti cache Cache je označení pro vyrovnávací paměť nacházející se mezi dvěma subsystémy s rozdílnou přenosovou rychlostí, a jak již její název vypovídá, tak tuto rychlost vyrovnává. Cache může být realizována
Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:
Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený
Paměti Flash. Paměti Flash. Základní charakteristiky
Paměti Flash K.D. - přednášky 1 Základní charakteristiky (Flash EEPROM): Přepis dat bez mazání: ne. Mazání: po blocích nebo celý čip. Zápis: po slovech nebo po blocích. Typická životnost: 100 000 1 000
Paměť počítače. 0 (neprochází proud) 1 (prochází proud)
Paměť počítače Paměť je nezbytnou součástí jakéhokoli počítače. Slouží k uložení základních informací počítače, operačního systému, aplikačních programů a dat uživatele. Počítače jsou vybudovány z bistabilních
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Správa paměti v zos 1 2 3 4 5 6 7 Data se ukládají do: REAL STORAGE = "rychlá" pamět např. RAM AUXILIARY
Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC
Informační systémy 2 Obsah: Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC ROM RAM Paměti typu CACHE IS2-4 1 Dnešní info: Informační systémy 2 03 Informační systémy
Operační paměti počítačů PC
Operační paměti počítačů PC Dynamické paměti RAM operační č paměť je realizována čipy dynamických pamětí RAM DRAM informace uchovávána jako náboj na kondenzátoru nutnost náboj pravidelně obnovovat (refresh)
Princip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC
Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:
Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus
Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná
Paměťové prvky. ITP Technika personálních počítačů. Zdeněk Kotásek Marcela Šimková Pavel Bartoš
Paměťové prvky ITP Technika personálních počítačů Zdeněk Kotásek Marcela Šimková Pavel Bartoš Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno Osnova Typy
Procesy a vlákna (Processes and Threads)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating
Adresování paměti. Adresní prostor. Adresní módy (v instrukcích) T.Mainzer
Adresování paměti T.Mainzer Adresní prostor Logický adresní prostor - Adresní prostor se kterým může pracovat/může adresovat daný procesor. Pracuje li procesor s 16-bitovou adresou má log.adresní prostor
Identifikátor materiálu: ICT-1-08
Identifikátor materiálu: ICT-1-08 Předmět Informační a komunikační technologie Téma materiálu Motherboard, CPU a RAM Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí základní desku počítače.
Pokročilé architektury počítačů
Pokročilé architektury počítačů Přednáška 3 Hierarchické uspořádání pamětí počítače Martin Milata Obsah Paměťový subsystém Obvyklé chování programů při přístupu do paměti Cache paměti princip činnosti
asociativní paměti Ing. Jakub Št astný, Ph.D. 1 Katedra teorie obvodů FEL ČVUT Technická 2, Praha 6,
Pamět ové obvody, řadiče a implementace, asociativní paměti AČS Ing. Jakub Št astný, Ph.D. 1 1 FPGA Laboratoř Katedra teorie obvodů FEL ČVUT Technická 2, Praha 6, 166 27 http://amber.feld.cvut.cz/fpga
Přednáška. Správa paměti III. 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 III. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC
Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:
požadovan adované velikosti a vlastností Interpretace adresy POT POT
požadovan adované velikosti a vlastností K.D. - přednášky 1 Interpretace adresy Ve kterémkoliv místě lze adresu rozdělit na číslo bloku a offset uvnitř bloku. Velikost bloku je dána délkou příslušné části
MSP 430F1611. Jiří Kašpar. Charakteristika
MSP 430F1611 Charakteristika Mikroprocesor MSP430F1611 je 16 bitový, RISC struktura s von-neumannovou architekturou. Na mikroprocesor má neuvěřitelně velkou RAM paměť 10KB, 48KB + 256B FLASH paměť. Takže
Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:
Západočeská univerzita v Plzni Písemná zkouška z předmětu: Zkoušející: Katedra informatiky a výpočetní techniky Počítačová technika KIV/POT Dr. Ing. Karel Dudáček Akademický rok: 2004/05 Datum: Příjmení:
Cache paměti (1) Cache paměť: V dnešních počítačích se běžně používají dva, popř. tři druhy cache pamětí:
Cache paměti (1) Cache paměť: rychlá vyrovnávací paměť mezi rychlým zařízením (např. procesor) a pomalejším zařízením (např. operační paměť) vyrobena z obvodů SRAM s přístupovou dobou 1-20 ns V dnešních
Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností, budoucností a hlavními parametry.
Paměti Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností, budoucností a hlavními parametry. Klíčové pojmy: paměť, RAM, rozdělení pamětí, ROM, vnitřní paměť, vnější paměť. Úvod
Ukázka zkouškové písemka OSY
Ukázka zkouškové písemka OSY Jméno a příjmení:.......................................... Odpovězte na otázky zaškrtnutím příslušného políčka. Otázky označené znakem mohou mít více než jednu správnou odpověď.
Pokročilé architektury počítačů
Pokročilé architektury počítačů Architektura IO podsystému České vysoké učení technické, Fakulta elektrotechnická A4M36PAP Pokročílé architektury počítačů Ver.1.00 2010 1 Co je úkolem? Propojit jednotlivé
Přidělování zdrojů (prostředků)
Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné
Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010
Přednášky o výpočetní technice Hardware teoreticky Adam Dominec 2010 Rozvržení Historie Procesor Paměť Základní deska přednášky o výpočetní technice Počítací stroje Mechanické počítačky se rozvíjely už
Paměti počítače ROM, RAM
Paměti počítače ROM, RAM Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje. Paměti počítače lze rozdělit do tří základních skupin: registry paměťová místa na čipu procesoru
PROCESOR. Typy procesorů
PROCESOR Procesor je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program. Primárním úkolem procesoru je řídit činnost ostatních částí počítače včetně
Operační systémy. Přednáška 9: Správa paměti III
Operační systémy Přednáška 9: Správa paměti III Strategie nahrání (Fetch policy) Určuje, kdy má být virtuální stránka nahrána do hlavní paměti. Stránkování na žádost (demand paging) Virtuální stránky jsou
Operační systémy 2. Přednáška číslo 2. Přidělování paměti
Operační systémy 2 Přednáška číslo 2 Přidělování paměti Základní pojmy Paměť = operační paměť paměť, kterou přímo využívají procesory při zpracování instrukcí a dat Funkce modulu přidělování paměti: Sledování
Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška IV. 18. listopad, / 41
Operační systémy Pamět Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YOS: Přednáška IV. 18. listopad, 2016 1 / 41 Operační pamet zásadní část počítače uložení kódu
MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti
MS WINDOWS II Jádro Správa objektů Správa procesů Zabezpečení Správa paměti JÁDRO I ntoskrnl.exe napsán v C (příp. assembler) základní mechanismy poskytované executivám trap dispečink synchronizace přístupů
Adresní mody procesoru
Adresní mody procesoru K.D. - přednášky 1 Obecně o adresování Různé typy procesorů mohou mít v instrukci 1, 2 nebo více adres. Operandy mohou ležet v registrech nebo v paměti. Adresní mechanismus procesoru
Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média
- 10.1 - Kapitola 10: Diskové a souborové struktury Přehled fyzických ukládacích médií Magnetické disky RAID (Redundant Array of Inexpensive Disks) Terciární úložiště Přístup k médiu Souborové organizace
Paměti operační paměti
Paměti operační paměti Autor: Kulhánek Zdeněk Škola: Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, příspěvková organizace Kód: VY_32_INOVACE_ICT_828 1.11.2012
Paměti EEPROM (1) 25/07/2006 1
Paměti EEPROM (1) EEPROM - Electrically EPROM Mají podobné chování jako paměti EPROM, tj. jedná se o statické, energeticky nezávislé paměti, které je možné naprogramovat a později z nich informace vymazat
2.9 Vnitřní paměti. 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
Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín
Paměti počítače 9.přednáška
Paměti počíta tače 9.přednáška Paměť Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje Paměti počítače lze rozdělit do tří základních skupin: registry paměťová místa na
Petr Krajča. 25. listopad, 2011
Operační systémy Pamět Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 25. listopad, 2011 Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 1 / 35 Operační pamet zásadní část počítače
Cache paměti (2) Cache paměti (1) Cache paměti (3) Cache paměti (4) Cache paměti (6) Cache paměti (5) Cache paměť:
Cache paměti (1) Cache paměť: rychlá vyrovnávací paměť mezi rychlým zařízením (např. procesor) a pomalejším zařízením (např. operační paměť) vyrobena z obvodů SRAM s přístupovou dobou 1 20 ns V dnešních
HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán
HelenOS ARM port Pavel Jančík Michal Kebrt Petr Štěpán HelenOS experimentální operační systém (MFF) multiplatformní microkernel amd64, ia32, ia32xen, ia64, mips32, ppc32, ppc64, sparc64 plánování správa
Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Katedra informatiky a výpočetní techniky České vysoké učení technické, fakulta elektrotechnická Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. 10. prosince 2007 Pamět ové banky S výhodou používáme
Pohled do nitra mikroprocesoru Josef Horálek
Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická
Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno
Operační systémy IOS 2009/2010 Tomáš Vojnar Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno ÚÓ Ò Ö ØºÚÙØ ÖºÞ Úvod do UNIXu p.1/11 Unix úvod Úvod do UNIXu p.2/11
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Roman Výtisk, VYT027
Roman Výtisk, VYT027 Ohlédnutí za architekturou AMD K8 Představení architektury procesoru AMD K10 Přínos Struktura cache IMC, HyperTransport sběrnice Použitá literatura Ohlášení x86-64 architektury 5.
Přednáška. Systémy souborů. FAT, NTFS, UFS, ZFS. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Systémy souborů. FAT, NTFS, UFS, ZFS. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Řízení IO přenosů DMA řadičem
Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována
C2115 Praktický úvod do superpočítání
C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137
Metody připojování periferií
Metody připojování periferií BI-MPP Přednáška 3 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011