fyzick é organizácie
DESCRIPTION
Fyzick é organizácie. Gabriel Bocek Juraj Čelinák 6. št. skupina 9.3.2003. Hierarchia pamätí. Primárne - priamo dostupné z CPU - registre,cache, operačná pamäť - PowerPoint PPT PresentationTRANSCRIPT
Fyzické organizácie
Gabriel Bocek
Juraj Čelinák
6. št. skupina
9.3.2003
Hierarchia pamätí
• Primárne - priamo dostupné z CPU - registre,cache, operačná pamäť
• Sekundárne - dáta na periférnych zariadeniach s priamym prístupom; nie sú dostupné z CPU, musia byť najprv skopírované do primárnej pamäte
- virtuálna pamäť, magnetické disky, CD-ROM
• Terciálne - dáta na periférnych zariadeniach so
sekvenčným prístupom - magnetické pásky
Magnetické disky• Databázy sú ukladané na magnetických diskoch, pretože:
– Spravidla, sú veľmi veľké, aby sa zmestili do operačnej pamäte– Cena za uloženie dát je rádovo menšia ako u primárnych pamätí– Náhodný prístup
Charakteristiky diskov:• Operácie čítania a zápisu (READ/WRITE) prenášajú bloky dát
medzi diskom a RAM• Prístup k dátam resp. zápis dát na disky je „drahou“ operáciou
každý prístup na disk, musí byť starostlivo zvážený• Disk je zariadenie s priamym prístupom k dátam • Čas prístupu k údajom (oproti RAM) nie je rovnaký dôležitosť
vzájomnej polohy dát na disku
Charakteristiky prístupu na disk
• Prístupová doba k bloku dát• Seek time – nastavenie ramena na požadovanú
stopu• Rotational latency – nastavenie hlavy na
požadovaný sektor• Transfer time – prenos bloku dát• Seek time a rotational latency sú dominantné• Seek time – 1-20 milisekúnd• Rotational delay – 0-10 milisekúnd• Transfer time – cca 1msek/4KB
Štruktúra disku
Štruktúra platne disku
Pojmy
• Track – sústredný úsek na disku
• Sector – Časť track-u s fixnou dĺžkou
• Cylinder – Množina track-ov na všetkých platniach disku na príslušnej pozícii – Track-y pod čítacou hlavou vytvárajú cylinder
• Stránka – Fyzické množstvo dát prenesených medzi pamäťou a diskom.
Stratégia rozloženia dát
Udžiavať súvisiace data blízko seba.
- Na tom istom bloku/sektore
- Na tom istom track-u
- Na tom istom cylindri
Bloky v súbore :– Mali by byt na disku ukladané sekvenčne aby
sa minimalizoval seek a rotational delay
Prístup na disk
Disk– Priamy prístup na médium – nie sequenčný
– Čas pohybu hlavičky zahŕňa seek time a rotational latency
– Cieľom je redukovať počet prístupov na disk a vyhladávací čas
Manažment diskového priestoru
• Najnižšia vrstva SRBD spravuje priestor na disku
• Vyššie vrstvy ju volajú keď potrebujú– Alokovať / dealokovať stránku– Čítať /zapisovať do stránky
• Pri požiadavke na sekvenciu stránok tieto mali by byť naalokované sekvenčne na disku
Buffer manažment v SRBD
•Data musia byt v RAM aby s nimi mohol SRBD pracovať
•BM spravuje tabuľku dvojíc <frame#, pageid>
Požiadavka na stránku – part 1
• Ak požadovaná stránka nie je v buffri– Vyberie sa frame na výmenu– Ak je frame používaný zapíše sa na disk– Načíta sa požadovaná stránka
• Stránka sa označí(pin) a vráti sa jej adresa
• Žiadateľ stránky ju musí odznačiť(unpin) a indikovať pomocou dirty bitu , či bola stránka zmenená
Požiadavka na stránku - part 2
• Stránka v buffri môže byť požadovaná viackrát – počet požiadaní sa ukladá do pin count
• Stránka s najnižším pin count je kandidátom na nahradenie
• Stratégie výmeny framov :– LRU
– Pomocou Počítadla
– MRU
SRBD vs. OS Filesystem
• Rôzne operačné systémy = rôzne filesystemy
• Buffer manažment v SRBD potrebuje schopnosť:– Označovať(pin) stránky v buffri– Presúvať stránky na disk– Meniť stratégiu nahradzovania stránok– Predvyberu stránok na základe prístupového
vzoru
Formát stránky – záznamy s fixnou dĺžkou
•Packed - volné sloty sú na konci stránky
•Unpacked – voľné sloty môžu byť kdekoľvek, je potrebný špeciálny bit na označenie či je slot voľný alebo nie
•Record id = <page id, slot#>
•V prvom prípade pri posuvaní záznamov sa mení record id a to nemusí byt vhodné
Formát stránky – záznamy s premenlivou dĺžkou
Súbory záznamov
• Vyššie vrstvy SRBD pracujú so záznamami alebo súbormi záznamov
• Súbor – kolekcia stránok obsahujúcich záznamy, musí podporovať:– Insert, delete, modify zaznam– Čitanie záznamu(podľa record id)– Prehľadanie všetkých záznamov
Reprezentácia záznamov
• Zázmamy s pevnou dĺžkou
Informácie o dĺžke položiek v zázname je uložená v systémovom katalógu
Reprezentácia záznamov
• Záznam s premenlivou dĺžkou
142 MS Access 4.0 5000 12.12.95 77
oddelovač polí v záznameoddelovač záznamu
Ukladanie záznamov do blokov
• Delené a nedelené záznamy (spanned/unspanned records)
Základné organizácie
• Hromada (Heap)
• Sekvenčná
• Zreťazená
• Zotriedená
• Hashovaná
Hromada – Heap
• Záznamy sú uložené v ľubovoľnom poradí v blokoch, ktoré môžu fyzicky nasledovať za sebou
• Ak nenasledujú za sebou, musia byť prepojené smerníkmi alebo adresy blokov súboru musia byť niekde uložené
Netriedené(heap) súbory
• Najjednoduchšia štruktúra suboru obsahuje nezotriedené záznamy
• Keď sa súbor zväčšuje(zmenšuje) daľšie diskové stránky sa alokujú(dealokujú)
• Pre podporu operácii na záznamoch si musíme pamätať:– Stránky v súbore– Volne miesto na stránkach
– Zaznamy na stránkach
Heap súbory ako zoznam(list)
Každá stránka obsahuje dáta a dva smerníky
Heap súbor používajúci page directory
•Directory je zbierkou stránok, implementacia ako spojkovy zoznam je len jedna z alternatív
•Tato implementácia je omnoho menšia ako spojkový zoznam všetkých stránok
Hromada – Heap
• Vyhľadávanie: záznamy sa vyhľadávajú tak, že sa od začiatku do konca súboru číta záznam po zázname a porovnáva sa, či to je hľadaný záznam.
• Aktualizácia: nájdený záznam sa aktualizuje a uloží na to isté miesto
• Zmazanie: označenie záznamu za neplatný, čím sa vytvorí diera v súbore, kt. Možno využiť pri nasledujúcom vkladaní do súboru
• Vkladanie: nový záznam sa vloží na miesto prvej diery
Sekvenčná organizácia
• Vhodný pre aplikácie, ktoré vyžadujú sekvenčný prístup• Záznamy sú zotriedené podľa kľúča• Vkladanie: nájdenie miesta kde má byť záznam vložený. Ak je
voľné miesto v bloku, vlož. Inak vlož záznam do bloku pretečenia.
Zreťazená organizácia• Niektoré položky záznamov obsahujú adresu iného záznamu
Zreťazená organizácia
• Vyhľadávanie: spočívá z postupného sledovania smerníkov a z testovania, či sme už našli hľadaný záznam
• Aktualizácia: po nájdení vety, ktorú treba zmeniť sa zrobí prostá náhrada záznamu s novými hodnotami pričom musí byť zachovaný smerník ak má zostať záznam v pôvodnej reťazi
• Zmazanie: smerník ukazujúci na zmazávaný záznam sa nahradí smerníkom zmazavaného záznamu
• Vkladanie: reťaz sa predĺži o jeden záznam. Vkladaný záznam sa umiestni na začiatok alebo koniec.
Organizácia s utriedenými záznamami
• Záznamy sú uložené na adresách nasledujúcich za sebou tak, že ich poriadanie zodpovedá usporiadaniu nad jednou alebo viacerými položkami – kľúčami
• Vyhľadávanie: binárne vyhľadávanie podľa klúča• Aktualizácia: po vyhľadaní môžeme aktualizovať všetky
položky okrem položiek triediaceho kľúča• Vkladanie:
- pri prvom vytriedení sa nechávajú v každom bloku diery, ktoré možno využiť pri nasledujúcom vkladaní
Organizácia s utriedenými záznamami
V prípade vyčerpania miesta v bloku, ďalšie záznamy sú ukladané do zvláštnych blokov pretečenia. Sú prístupné pomocou smerníka v záhlaví bloku
Organizácia s utriedenými záznamami
• Zmazanie záznamu: záznam sa označí za neplatný a vznikne diera. Tú treba obvykle prenies na koniec bloku.
Organizácia Hashom
• Vhodný pre aplikácie vyžadujúce priamy prístup (random access)• Záznamy sú nezotriedené Adresa bloku, v ktorom sa nachádza
požadovaný záznam sa vyratáva pomocou hashovacej funkcie• Nech K je množina všetkých kľúčov a B je množina adries bucket-
ov. Hashovacia funkcia je zobrazenie z K do B.• Bucket je najčastejšie blok disku• Vkladanie: vložiť záznam s kľúčom Ki znamená vyrátať hodnotu
hashovacej funkcie, ktorá poskytne adresu bucketu pre záznam• Vyhľadávanie záznamu s kľúčom Ki znamená vyrátať hodnotu
hashovacej funkcie, kt. Poskytne adresu bucket-u v ktorom nájdeme postupným prejdením záznamov náš požadovaný
• Delete : vyhľadanie záznamu v buckete a jeho vymazanie
Hashovanie
• Hashovacia funkcia musí byť zvolená so zreteľom na:– Rozdelenie záznamov bude rovnomerné– Rozdelenie bude náhodné
• Odpoveď na rast databázy:– Veľkosť databázy sa zvýšuje veľmi rýchlo– Máme 3 možnosti vytvorenia statickej hash funkcie:
• Zvolenie funkcie založenej na momentalnej veľkosti databázy
• Zvolenie funkcie založenej na predpokladanej veľkosti databázy
• Periodicky prerábať hash súbor podľa veľkosti databázy
- Použitie dynamického hashovania
Dynamické hashovanie
• Táto technika umožňuje dynamické modifikovanie hashovacej funkcie z dôvodu zväčšovania a zmenšovania databázy
• Je známa ako “extendable hashing”
• Toto hashovanie rieši problém zmeny veľkosti datábazy rozdeľovaním a spájaním bucketov
Interné hashovanie
• Jeden záznam na bucket
Externé Hashovanie
• Hashovacia funkcia mapuje kľúč na relatívne číslo bucketu radšej než na absolutnú adresu bloku
• Hlavička súboru – tabuľka ktorá mapuje relatívne číslo bucketu na počiatočnú adresu každého bucketu
• Viaceré záznamy v jednom bucket-e• Vyhľadávanie: použitie hash funkcie na získanie čísla
bucketu. Transformácia čísla bucketu na adresu bucketu. Načítanie bucketu do pamäti a nájdenie odpovedajúceho kľúča lineárnym prehľadaním bucketu.
Externé hashovanie
Koniec