400 likes | 579 Views
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äť
E N D
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
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é
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
142 MS Access 4.0 5000 12.12.95 77 oddelovač záznamu oddelovač polí v zázname Reprezentácia záznamov • Záznam s premenlivou dĺžkou
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.