Fizyczne struktury danych. Kategorie nośników danych. Nośniki danych hierarchia nośników budowa dysku magnetycznego macierze RAID.

Podobne dokumenty
Fizyczne struktury danych

Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc. ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba.

PLAN WYKŁADU BAZY DANYCH HIERARCHIA MECHANIZMÓW SKŁADOWANIA PRZECHOWYWANIA BAZ DANYCH

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Architektura komputerów

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Bazy danych - BD. Organizacja plików. Wykład przygotował: Robert Wrembel. BD wykład 5 (1)

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

sprowadza się od razu kilka stron!

Zad. 1. Systemy Baz Danych przykładowe zadania egzaminacyjne

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Fizyczna organizacja danych w bazie danych

Pliki. Operacje na plikach w Pascalu

Systemy Operacyjne Pamięć masowa

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Architektura komputerów

Architektura komputerów

Wykład 14. Zagadnienia związane z systemem IO

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Pamięć - parametry. 1. Pojemność 2. Szybkość 3. Koszt 4. Pobór mocy

Cele RAID. RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków.

Zagadnienia związane z systemem IO

Architektura komputerów

Podstawy Informatyki JA-L i Pamięci

Wykład 9 Struktury pamięci masowej

Przykładowe B+ drzewo

Systemy operacyjne. dr inż. Marcin Czajkowski. Studia podyplomowe Wydział Informatyki PB

RAID 1. str w przypadku różnych szybkości cała macierz będzie pracowała z maksymalną prędkością najwolniejszego dysku

Pamięci zewnętrzne Dysk magnetyczny:

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Wykład 2. Temat: (Nie)zawodność sprzętu komputerowego. Politechnika Gdańska, Inżynieria Biomedyczna. Przedmiot:

Technologie informacyjne (3) Zdzisław Szyjewski

Macierze RAID MARCEL GAŃCZARCZYK 2TI 1

Technologie informacyjne (3) Zdzisław Szyjewski

System plików. dr inż. Krzysztof Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

SYSTEMY OPERACYJNE WYKLAD 5 - zarządzanie pamięcią pomocniczą

System plików warstwa logiczna

Sektor. Systemy Operacyjne

Systemy plików FAT, FAT32, NTFS

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

ZASADY PRZECHOWYWANIA DANYCH

Definicja pliku kratowego

Systemy operacyjne System plików

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Urządzenia wej.-wyj. Plan (1) Plan (2)

Urządzenia wej.-wyj.

Urządzenia wej.-wyj. Plan (1) Plan (2) Rodzaje urządzeń wejściawyjścia

Pamięć. Podstawowe własności komputerowych systemów pamięciowych:

System plików. Warstwowy model systemu plików

Pamięć - parametry. 1. Pojemnośd. 3. Koszt. 2. Szybkośd. 4. Pobór mocy

Oracle PL/SQL. Paweł Rajba.

Administracja systemem Linux

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

dr inż. Jarosław Forenc

Pamięci masowe. ATA (Advanced Technology Attachments)

Programowanie kart elektronicznych. wykład 9: Polecenia - część 1

Systemy operacyjne system przerwań

Dynamiczne struktury danych

Tabela wewnętrzna - definicja

Wykład 4. Tablice. Pliki

Zarządzanie wolną przestrzenią

Struktury. Przykład W8_1

Technologie informacyjne - wykład 2 -

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

dr inż. Jarosław Forenc

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Haszowanie (adresowanie rozpraszające, mieszające)

PROJEKTOWANIE SYSTEMÓW KOMPUTEROWYCH

Schematy zarzadzania pamięcia

Podstawy Informatyki. Metody dostępu do danych

Pamięci zewnętrzne Dysk magnetyczny:

Bazy danych. Andrzej Łachwa, UJ, /15

Dyski SSD a systemy plików

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

System plików przykłady. implementacji

Algorytmy i struktury danych

Sortowanie zewnętrzne

Optymalizacja poleceń SQL Metody dostępu do danych

PAMIĘĆ OPERACYJNA...107

1. Pliki i ich organizacja

Wbudowane systemy operacyjne

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

System plików przykłady implementacji

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

dr inŝ. Jarosław Forenc

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Architektura Komputerów

System pamięci. Pamięć podręczna

Struktura systemów komputerowych

Transkrypt:

1 Plan rozdziału 2 Fizyczne struktury danych Nośniki danych hierarchia nośników budowa dysku magnetycznego macierze RAID Buforowanie Rekordy i pliki Operacje na plikach plik nieuporządkowany plik uporządkowany Kategorie nośników danych 3 Hierarchia nośników danych 4 Kategorie nośników nośniki podstawowe: bezpośrednio manipulowane przez CPU, obejmują pamięć operacyjną i pamięci podręczne nośniki wtórne: dane kopiowane do nośników podstawowych, obejmują pamięci magnetyczne, optyczne, taśmowe nośniki ulotne: nie przechowują danych przez dłuższy czas nośniki trwałe: przechowują dane przez dłuższy czas nośniki on-line: dane dostępne w dowolnym momencie nośniki off-line: przed udostępnieniem danych konieczna interwencja operatora lub automatu ładującego Pamięć podręczna (ang. cache memory): Static RAM Pamięć główna (ang. main memory): Dynamic RAM Pamięć flash: Electronically Erasable Programmable ROM Pamięć magnetyczna macierze dyskowe Pamięć optyczna: Compact Disk ROM (WORM) pamięć optical juke box Pamięć taśmowa pamięć tape juke box

Schemat dysku magnetycznego 5 Własności dysków magnetycznych 6 cylinder ścieżka głowica ramię Podstawowe cechy dysków bity łączą się w bajty (najczęściej 4-8 bitów/bajt) dyski mogą być jednostronne lub dwustronne ścieżki tworzą koncentryczne okręgi lub (rzadko) spirale ścieżki dysków o tym samym promieniu tworzą cylinder ścieżki są dzielone na bloki dyskowe (strony) podczas formatowania typowy rozmiar bloku dyskowego to 512-8196 bajtów pomiędzy blokami występują specjalne przerwy (ang. interblock gaps) z informacjami kontrolnymi Prawo Krydera 7 Sektory na dysku 8 Charakterystyka sektorów ścieżka dzieli się na sektory, podział na sektory jest fizyczny sektor może zajmować stały kąt lub stałą długość ścieżki nie każdy dysk dzieli się na sektory Analogia do Prawa Moore'a szybszy wzrost pojemności niż gęstości tranzystorów od trzech lat obserwowany spadek tempa wzrostu czas dostępu poprawia się tylko o 10% rocznie!!! czas transferu poprawia się tylko o 20% rocznie!!! ścieżka sektor

Dostęp do sektorów dyskowych Dysk magnetyczny jest urządzeniem o dostępie swobodnym Adres bloku dyskowego numer powierzchni, numer ścieżki, numer bloku adres bufora w pamięci operacyjnej Głowica nieruchoma głowica nad każdą ścieżką ruchoma głowica nad każdą powierzchnią Kontroler odpowiedzialny za przesunięcie głowicy nad ścieżkę i transfer bloku dyskowego do buforów Czas dostępu przesunięcie głowicy nad ścieżkę (ang. seek time): 8-14 msec obrót dysku (ang. latency): 2-6 msec transfer bloku do bufora (ang. block transfer time): < 1 msec 9 Macierze RAID RAID (ang. Redundant Array of Independend Disks) Podział pliku między dyski (ang. data stripping) transparentne rozproszenie pliku między wieloma dyskami równoległe operacje I/O do różnych części pliku zrównoważenie obciążenia dysków zwiększenie niezawodności przez składowanie kodów parzystości lub innych kodów detekcji błędów Plik A A 1 A 2 A 3 A 4 10 RAID a niezawodność dysków 11 RAID a wydajność dysków 12 Duża liczba dysków skraca MTTF (ang. mean time to failure) 1 dysk: MTTF = 200 000 godzin = 23 lata 100 dysków: MTTF = 2000 godzin = 83 dni Shadow copy (mirroring): dwie identyczne kopie pliku MTTR (ang. mean time to repair) = 24 godziny 100 dysków: MTTF = (200 000) 2 /(2*24) = 95 000 lat Poziomy podziału pliku podział bajtów (ang. bit-level stripping): j-ty bit każdego bajtu jest zapisywany na j-ty dysk, dla 8-bitowych bajtów następuje ośmiokrotne przyspieszenie działania dysku podział pliku (ang. block-level stripping): kolejne bloki dysku rozrzucane po dyskach, wielokrotne przyspieszenie kosztem niezawodności, szybki odczyt wieloblokowy Jakie informacje przechowywać nadmiarowo? parzystość, kody Hamminga Gdzie przechowywać nadmiarowe informacje? niewielki zbiór specjalizowanych dysków równomierne rozłożenie po wszystkich dyskach

Poziomy RAID 13 Buforowanie bloków 14 Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 mirrors parzystość rozproszona parzystość ECC Jedna jednostka CPU współbieżny przeplatany odczyt Wiele jednostek CPU współbieżny równoległy odczyt Podwójne buforowanie blok dyskowy I/O blok dyskowy CPU i i+1 i+2 i+3 i+4 wypełnij A wypełnij B wypełnij A wypełnij B wypełnij A i i+1 i+2 i+3 przetwórz A przetwórz B przetwórz A przetwórz B P+Q czas Rekordy i typy rekordowe 15 Pliki danych 16 Dane przechowywane w postaci rekordów rekord to kolekcja wartości (elementów) danych Każdy rekord posiada typ rekordowy kolekcja nazw i typów danych pól w rekordzie nietypowe typy danych (np. BLOB) Przykład rekordu struct employee { char name[30]; char ssn[9]; int salary; int jobcode; char department[20]; } Plik jest sekwencją rekordów Typy plików plik rekordów o stałej długości (ang. fixed-length records) plik rekordów o zmiennej długości (ang. variable-length records) niektóre pola w rekordzie mają zmienną długość (ang. variable-length niektóre pola w rekordzie mają zmienną długość (ang. variable-length fields), np. nazwisko niektóre pola w rekordzie przechowują zbiory wartości (ang. repeating fields), np. języki obce niektóre pola w rekordzie są opcjonalne (ang. optional fields), np. telefon plik zawiera rekordy różnych typów (ang. mixed file), np. w wyniku organizacji klastrowej

Formaty rekordów 17 Formaty rekordów - problemy 18 NAME SSN JOB 1 NAME 8 SSN 15 JOB Smith, John 0123456789 Key Account Manager Pola opcjonalne fizycznie implementowane jak pola wymagane ze specjalnym znacznikiem NULL sekwencje par <nazwa-pola,wartość-pola> sekwencje par <typ-pola,wartość-pola> Pola ze zbiorami wartości alokacja maksymalnej liczby wartości dozwolonej dla pola specjalny separator powtarzanych wartości Pola o zmiennej długości specjalny znak separatora do demarkacji końca pola specjalny znak separatora do demarkacji końca rekordu NAME = Smith, John SSN = 0123456789 JOB = Key 19 Alokacja rekordów do bloków dyskowych Alokacja bloków na dysku 20 Blok dyskowy jest jednostką transferu danych między dyskiem i pamięcią operacyjną Blocking factor bfr: liczba rekordów mieszczących się w jednym bloku dyskowym bfr = B/R, gdzie B rozmiar bloku, R rozmiar rekordu b = r/bfr, gdzie r liczba rekordów, b liczba bloków Organizacje rekordów niedzielona (ang. unspanned) rekord 1 rekord 2 rekord 3 rekord 4 Rodzaje alokacji alokacja ciągła (ang. contiguous allocation): bloki dyskowe alokowane do pliku tworzą ciągłą sekwencję bloków w sektorze alokacja łańcuchowa (ang. linked allocation): każdy blok dyskowy alokowany do pliku posiada wskaźnik na kolejny blok alokacja klastrowa (ang. cluster allocation): ciągłe sekwencje bloków są łączone w klastry, każdy klaster zawiera wskaźnik na kolejny klaster, klastry nazywa się czasem segmentami lub rozszerzeniami (ang. extent) alokacja indeksowa (ang. indexed allocation): wydzielone bloki pełnią rolę indeksów zawierających wskaźniki na bloki alokowane do pliku dzielona (ang. spanned) rekord 1 rekord 2 rekord 3 rekord 3 rekord 4

Nagłówki plików danych 21 Operacje na plikach (1/2) 22 Nagłówek pliku (ang. file header) zawiera informacje o: adresach bloków alokowanych do pliku formatach rekordów w pliku nazwie, typie i długości każdego pola w rekordzie (dla plików z rekordami o stałej długości) kodach typów i separatorach (dla plików z rekordami o zmiennej długości) Typowe operacje na plikach Open(): przygotowuje plik do odczytu, alokuje bufory, odczytuje nagłówek pliku, ustawia wskaźnik na początku pliku Reset(): ustawia wskaźnik na początku pliku Find(): szuka pierwszego rekordu spełniającego warunki wyszukiwania, wczytuje znaleziony blok dyskowy do bufora w pamięci, ustawia wskaźnik na znalezionym rekordzie Read(), Get(): kopiuje bieżący rekord do zmiennej, przesuwa wskaźnik na następny rekord w pliku FindNext(): szuka kolejnego rekordu spełniającego warunki wyszukiwania, wczytuje znaleziony blok dyskowy do bufora w pamięci, ustawia wskaźnik na znalezionym rekordzie Delete(): usuwa bieżący rekord i ustawia wskaźnik na kolejnym rekordzie, opcjonalnie zapisuje bufor na dysk Modify(): modyfikuje wybrane pole w bieżącym rekordzie, opcjonalnie zapisuje bufor na dysk Operacje na plikach (2/2) 23 Plik nieuporządkowany 24 Insert(): wczytuje blok do bufora, wstawia nowy rekord do właściwego bloku, zapisuje bufor na dysk Close(): zwalnia bufory i usuwa wskaźnik z pliku Scan(): zwraca następny rekord (lub pierwszy rekord) FindAll(): znajduje wszystkie rekordy spełniające kryterium selekcji FindOrdered(): znajduje wszystkie rekordy spełniające kryterium selekcji i zwraca je w określonym porządku Reorganize(): rozpoczyna proces reorganizacji pliku Plik nieuporządkowany (ang. heap file, pile file) to sekwencja rekordów umieszczonych w blokach dyskowych w dowolnej kolejności block 1 block 2 NAME JOB SALARY Donahue, Philip Adams, William Wilkes, Stephen Warren, Allice Billow, Susan Chapswick, Ann Abbot, John Barklay, Casey block n Beresford, Jim Dubbs, Ted Woods, Christopher Zimmer, Byron

Operacje na pliku nieuporządkowanym 25 Plik uporządkowany 26 Wyszukiwanie rekordów konieczność liniowego przeszukiwania pliku (b/2 lub b odczytów) Dodawanie rekordów bardzo szybkie, wymaga wczytania ostatniego bloku dyskowego do bufora, dodania rekordu, i zapisania bufora na dysk Usuwanie rekordów wymaga zlokalizowania bloku dyskowego, wczytania bloku do bufora, zmodyfikowania bufora, zapisania bufora na dysk alternatywa: marker usuniętych rekordów pozostawia pustą przestrzeń w pliku (konieczna reorganizacja) Dla rekordów o stałej długości w alokacji ciągłej niedzielonej możliwy dostęp bezpośredni poprzez pozycję rekordu i -ty rekord: block number i/bfr record number (i mod bfr) Plik uporządkowany (ang. sorted file, ordered file) to sekwencja rekordów umieszczonych w blokach dyskowych w kolejności określonej przez pole porządkujące block 1 block 2 block n NAME JOB SALARY Abbot, John Adams, William Barklay, Casey Beresford, Jim Billow, Susan Chapswick, Ann Donahue, Philip Dubbs, Ted Warren, Allice Wilkes, Stephen Woods, Christopher Zimmer, Byron Cechy plików uporządkowanych 27 Połowienie binarne 28 Porządek rekordów rekordy posortowane wg pola porządkującego (ang. ordering field) pole porządkujące może być kluczem (ang. ordering key) Dostęp do rekordów wg pola porządkującego efektywne połowienie binarne wg pozostałych pól dostęp sekwencyjny Modyfikacja danych wstawianie jest operacją bardzo kosztowną, możliwa relokacja połowy rekordów pliku usuwanie jest operacją tańszą jeśli wykorzystamy markery i okresową reorganizację pliku modyfikacja: koszt zależy od warunku wyszukiwania i modyfikowanego pola, modyfikacja pola porządkującego tak samo kosztowna jak wstawienie rekordu l 1; u b; while (u l ) do begin i ( l + u ) div 2; read block i of the file into the buffer; if K < ( ordering key field value of the first record in block i) then u i 1; else if K > (ordering key field value of the first record in block i) then l i + 1; else if the record with ordering key field value = K is in the buffer then goto found; else goto notfound; end; goto notfound; Algorytm wymaga za zwyczaj log 2 (b) odczytów niezależnie od tego, czy rekord został znaleziony.

Zadania 29 Zadania 30 Dane są parametry dysku: rozmiar bloku B = 512, rozmiar przerwy między blokami G = 128, liczba bloków na ścieżce bpt = 20, liczba ścieżek na talerzu 400. Dysk składa się z 15 dwustronnych talerzy. Odpowiedz na pytania: jaka jest pojemność całkowita i użyteczna ścieżki? ile jest cylindrów? jaka jest pojemność całkowita i użyteczna cylindra? jaka jest pojemność całkowita i użyteczna dysku? prędkość obrotowa dysku wynosi 2400 rpm, ile wynosi transfer liczony w bajtach na milisekundę? ile wynosi czas transferu bloku? jakie jest średnie opóźnienie w milisekundach? jeśli czas szukania ścieżki wynosi 30 milisekund, to ile wynosi średni czas znalezienia i transferu jednego bloku dyskowego, dla którego znany jest adres? porównaj czas transferu 20 losowych bloków i 20 ciągłych bloków z wykorzystaniem podwójnego buforowania Plik Studenci ma r = 20 000 rekordów o stałej długości. Każdy rekord ma pola: nazwisko (30B), indeks (9B), adres (40B), telefon (9B), data_ur (8B), płeć (1B), kierunek (3B). Plik jest składowany na dysku o parametrach jak poprzednio. wylicz rozmiar R rekordu wylicz współczynnik blokowania bfr oraz liczbę potrzebnych bloków b zakładając alokację niedzieloną wylicz średni czas dostępu do rekordu przy wykorzystaniu wyszukiwania liniowego zakładając (i) alokację ciągłą i podwójne buforowanie odczytów (ii) alokację losową wylicz średni czas dostępu do rekordu poprzez numer indeksu, zakładając że plik jest uporządkowany wg pola indeks i wykorzystano połowienie binarne