1 Pami wirtualna. 1.1 Stronicowanie

Podobne dokumenty
Architektura komputerów

Bazy danych. Andrzej Łachwa, UJ, /15

Schematy zarzadzania pamięcia

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Architektury systemów komputerowych

Listy i operacje pytania

1 Rodzaje pami ci. 2 Hierarchia pami ci. 3 Lokalno± odwoªa« 4 Pami podr czna

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

1. Warunek ka»dy proces w ko«cu wejdzie do sekcji krytycznej jest

architektura komputerów w. 8 Zarządzanie pamięcią

Macierze RAID MARCEL GAŃCZARCZYK 2TI 1

dr inż. Jarosław Forenc

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

Wojewódzki Konkurs Matematyczny

Programowanie wspóªbie»ne

1 Bª dy i arytmetyka zmiennopozycyjna

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Lekcja 3 Banki i nowe przedmioty

Wzorce projektowe kreacyjne

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Liczby zmiennoprzecinkowe

Wska¹niki, tablice dynamiczne wielowymiarowe

Ukªady równa«liniowych

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

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Ekstremalnie fajne równania

Analiza wydajno±ci serwera openldap

Programowanie wspóªbie»ne

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Metodydowodzenia twierdzeń

Lekcja 12 - POMOCNICY

Metody numeryczne i statystyka dla in»ynierów

Charakterystyka systemów plików

Architektura komputerów

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

CAŠKOWANIE METODAMI MONTE CARLO Janusz Adamowski

Programowanie i struktury danych

Lab. 02: Algorytm Schrage

Metody numeryczne i statystyka dla in»ynierów

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA

Pamięci masowe. ATA (Advanced Technology Attachments)

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

Liczby zmiennopozycyjne. Kody Hamminga.

Budowa systemów komputerowych

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Subversion - jak dziaªa

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

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

Systemy wbudowane Mikrokontrolery

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Metody iteracyjne rozwi zywania równania f(x)=0

System pamięci. Pamięć wirtualna

16MB - 2GB 2MB - 128MB

Wst p do sieci neuronowych, wykªad 14 Zespolone sieci neuronowe

Wojewódzki Konkurs Matematyczny

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz 24 czerwca Podstawowe funkcje. 2.1 Windows

Zarządzanie pamięcią operacyjną

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Programowanie i struktury danych 1 / 44

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

System pamięci. Pamięć wirtualna

przewidywania zapotrzebowania na moc elektryczn

Systemy operacyjne III

O pewnym zadaniu olimpijskim

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Model obiektu w JavaScript

Zarządzanie zasobami pamięci

Wykład 7. Zarządzanie pamięcią

Architektura komputerów

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI

System pamięci. Pamięć wirtualna

Szeregowanie zada« Przedmiot fakultatywny 15h wykªadu + 15h wicze« dr Hanna Furma«czyk. 7 pa¹dziernika 2013

J zyk C dla sterowników programowalnych GeFanuc

Podstawy modelowania w j zyku UML

System plików NTFS. Charakterystyka systemu plików NTFS

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Lekcja 5 Programowanie - Nowicjusz

Zagadnienia związane z systemem IO

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

Konfiguracja historii plików

Numer albumu: Imi i nazwisko:...

Lekcja 6 Programowanie - Zaawansowane

Podział dysku na partycje. Formatowanie niskopoziomowe

Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST. Pomoc techniczna

Kompilowanie programów

Mikroinformatyka. Tryb wirtualny

2 Skªadnia polece«w pliku

Architektura komputerów

Baza danych - Access. 2 Budowa bazy danych

Transkrypt:

1 Pami wirtualna 1.1 Stronicowanie Przestrze«adresowa, która mo»e by u»ywana przez program (przy 32-bitowych adresach) nie mie±ci si w typowej pami ci RAM (nawet jakby si mie±ciªa, to i tak jest problem wspóªczesne systemy operacyjne pozwalaj uruchamia wiele programów jednocze±nie; ka»dy z nich widzi 4GB pami ci!). Rozwi zaniem jest u»ycie pami ci wirtualnej cz ±c zawarto±ci pami ci gªównej umieszcza si na dysku twardym. Pomysª jest rozszerzeniem pomysªu pami ci cache pewne dane b d szybko dost pne (gdy s w pami ci RAM), inne b d musiaªy zosta najpierw ±ci gni te z dysku. Ka»dy proces ma do dyspozycji 4GB pami ci (mo»e u»ywa dowolnych adresów). Musimy sobie zdawa spraw,»e adresy wyznaczne s ju» w trakcie kompilowania programu. Programista nie wie wtedy w jakim otoczeniu b dzie wykonywany nasz program i jakich adresów b d u»ywaªy inne procesy - nie przejmuje si wi c tym w ogóle. Oczywiste zatem staje si staje,»e adresy wyst puj ce w kodzie maszynowym nie s adresami rzeczywistymi. Idea pami ci wirtualnej: dzielimy caª rzeczywist pami (gªówn i dyski) na strony. Przyjmijmy,»e rozwarza b dziemy strony o rozmiarze 4KB=2 12 bajtów. Potrzebujemy zatem 12- bitów, aby okre±li przesuni cie bajtu na stronie. 32-bitowy adres jest wi c dzielony na dwie cz ±ci: bity 0-11 - przesuni cie na stronie, bity 12-32 wskazuj na pozycj w tzw. tablicy stron (która jest przechowywana w pami ci RAM). Pojedynczy wpis do tablicy stron zawiera zyczny adres strony oraz pewne dodatkowe inforamcje o stronie. Jedn z tych inforamcji jest bit aktualno±ci. Je±li bit aktualno±ci = 1, ocznacza to,»e adres zyczny dotyczy pami ci gªównej, je±li=0 dyskowej (gdy si gamy do tablic stron i bit aktualno±ci =0 mówimy,»e nast piª bª d strony page fault). Ka»dy proces ma wªasn 4GB przestrze«adresow oraz wªasna tablic stron. Organizacja tablicy stron: maksymalnie 2 20 wpisów, ka»dy wpis zawiera wirtualny numer strony, jej adres zyczny oraz bit aktualno±ci. Uwagi: Tablica stron procesu zazwyczaj nie ma a» 2 20 (okoªo miliona) wpisów proces po prostu nie u»ywa zazwyczaj a» tak du»ej pami ci. Fizyczny adres strony okre±la zyczne poªo»enie strony na dysku lub w pami ci gªównej, a tak»e zawiera informacje np. o zabezpieczeniach przed zapisem i odczytem (np. proces A mo»e nie mie uprawnie«do odczytu strony u»ywanje przez proces B -zagadnienia zwi zane z systemami op.). Ilu bitów potrzeba na zyczny adres strony - zale»y od rozmiaru pami ci. 256MB RAM-u = 2 28 bajtów = 64K stron = 2 16 - potrzeba 16 bitów na zyczny adres strony. 128Gb dysku twardego - 32M stron 2 25-25 bitów w tablicy stron. Jak zorganizowana jest tablica stron? W najprostszej wersji numer strony (odczytywany z adresu wirtualnego) jest indeksem do odpowiedniego wpisu. W bardziej skomplikowanych wersjach mo»emy mie do czynienia z haszowaniem. Niekiedy tablice stron równie» podlegaj stronicowaniu.. Pojawia si pewnien problem: ka»de si gni cie do pami ci musi by poprzedzone zajrzeniem do tablicy stron, a wi c nawet je±li dane, które s potrzebne znajduj si w cache musieliby±my si ga najpierw do DRAM. Oczywi±cie chcemy tego unikn. Rozwi zanie tworzymy cache dla tablicy stron, twz. translation lookaside buer (TLB - szybka tablica translacji). TLB ma zazwyczaj kilkaset pozycji. np. 2 9 = 512. 1

Stosujemy idee podobne do znajnych nam z cache np. mapowanie bezpo±rednie lub sekcyjnoskojarzeniowe w TLB. Przy mapowaniu bezpo±rednim: wirtualny numer strony = 9 bitów wska¹nika do TLB + 11 bitów znacznika. Si gni cie do pami ci: adres wirtualny adres zyczny: zagl damy do odpowiedniej pozycji TLB, je±li znacznik si zgadza to nasza strona jest w RAM, a jej adres w TLB je±li znacznik si nie zgadza, to zagl damy do tablicy stron (jej adres dla aktualnego procesu mo»e by trzymany w specjalnym rejestrze procesora); je±li bit aktualno±ci =1 to jest jeszcze w miar dobrze strona jest w DRAM, kopiujemy zapis w tablicy stron do TLB; je±li bit aktualno±ci jest równy 0, to strona jest na dysku podmieniamy j z jak ± stron z DRAM (któr wybiera system operacyjny u»ywaj c np. algorytmu LRU) je±li wiemy ju»,»e strona jest w pami ci, to pozostaje nam jeszcze sprawdzenie czy nasz adres nie jest obecnie w cache (...) Uwaga: w przypadku wyst pienia bª du strony system operacyjny zazwyczaj nie czeka na ±ci gni cie strony z dysku, ale oddaje sterowanie innemu procesowi. Na koniec rozwa»my dwa przypadki si gania do pami ci: najlepszy i najgorszy: Najlepszy przypadek: sprawdzamy TLB traenie! - odczytujemy tªumaczenie adresu wirtualnego na zyczny (z TLB) sprawdzamy cache! - traenie! - odczytujemy interesuj ce nas informacje z cache Najgorszy przypadek: sprawdzamy TLB - chybienie! sprawdzamy tablic stron - bit aktualno±ci = 0 kopiujemy stron z dysku, poprawiamy wpisy w tablicy stron kopiujemy wpis tablicy stron do TLB tªumaczymy adres sprawdzamy cache: chybienie! (tu musi by w tym przypadku chybienie...) sci gamy blok z DRAM do cache odczyt z cache 2

1.2 Segmentacja Przedstawione powy»ej rozwi zanie nazywa si stronicowaniem. Nie jest to jednyna mo»liwa organizacja pami ci wirtualnej. Alternatywne rozwi zanie to segmentacja. W przypadku segmentacji wirtualna pami jest dzielona na fragmenty ró»nej wielko±ci nazywane segmentami. Przed skopiowaniem segmentu do pami cia RAM system operacyjny wyszukuje wolny obszar odpowiedniej wielko±ci (ewentualnie zwalnia go). Z ka»dym progrmem kojarzymy teraz tabel segmentów. Segment opisywany jest poprzez adres bazowy (lokuj cy go w przestrzeni adresowej) oraz rozmiar. Zalety: rozmiary segmentów mog zmienia si dynamicznie; ªatwe wspóªdzielnie danych mi dzy procesami; ªatwa ochrona. Wiele procesorów ma rozwi zania sprz towe zarówno dla segmentacji jak i dla stronicowania. W przypadku procesorów Pentium istnieje mo»liwo± wyboru rozdzaju organizacji pami ci (niesegmentowana pami niestronicowana, niesegmentowana pami stronicowana, segmentowana pami niestronicowana, segmentowana pami stronicowana. 1.3 Wady i zalety pami ci wirtualnej Wady: translacja adresów spowalnia prac dodatkowe zu»ycie pami ci (tablice stron) komplikcacja sprz tu marnowanie pami ci fragmetnacja (wewn trzna stronicowanie, zewn trzna segmentacja) Zalety: programy nie s ograniczone wielko±ci pami ci zycznej programista (kompilator j zyka wysokiego poziomu) nie musi si przejmowa w jakim otoczeniu b dzie wykonywany jego program (adresy) 2 Nap dy magnetyczne Nie b dziemy mówili wiele o zycznych podstawach funkcjonownia dysków magnetycznych. Kilka podstawowych informacji: Dane zapisywane s i odczytywane za pomoc gªowicy (czasem gªówice zapisuj ca i odczytuj ca s osobne mo»liwo± dotarcia do wszystkich informacji na dysku zapewnia obracanie si dysku (zazwyczaj gªowica porusza si tylko od ±rodka dysku do jego obrze»a; ewentualnie nie porusza si w ogóle wtedy mamy jedn gªowic nad ka»d ±cie»k ). Na powierzchni dysku znajduj si ±cie»ki (tysi ce okr gów) ka»da ±cie»ka szeroko±ci gªowicy cie»ki oddzielone s lukami dane przesyªane s jako sektory; na ±cie»ce znajduj si zazwyczaj setki sektorów 3

sektory mog by jednakowej lub zmiennej dªugo±ci; obecnie najcz ±ciej staªa dªugo± 512 bajtów bit blisko centrum dysku przechodzi pod gªowic szybciej ni» bit na obrze»u; mo»liwe rozwi zanie: im dalej od centrum, tym wi ksze odst py mi dzy bitami ( constant angular velocity); praktyczniejsze rozwi zanie: (multiple zone recording) powierzchnia dysku podzielona na strefy (typowo 16), w ka»dej stree liczba bitów na ±cie»ce jest staªa; ale strefy dalsze od ±rodka maj wi cej sektorów na ±cie»ce. musimy umie ustali pocz tek ±cie»ki i pocz tki/ko«ce sektorów; zapewniaj to dodatkowe informacje formatuj ce niewidoczne dla u»ytkownika Rodzaje dysków: jednogªowicowe/wielogªowicowe; wymienialne/niewymienialne; jednostronne/dwustronne; jednopowierzchniowe/wielopowierzchniowe. Czas dost pu do dysku twardego = czas poszukiwania ±cie»ki + czas oczekiwania na wªa±ciwy sektor. Wspóªczesne dyski obracj si z kilku-kilkunastu tysi cy obrotów na minut, co daje ±redni czas oczekiwania rz du kilku milisekund. Nast pnie trzeba jeszcze odczyta dane. Przykªad: rozwa»my dysk o ±rednim czasie poszukiwania ±cie»ki 2 ms, pr dko±ci obrotowej 15 tys. obrotów na minut (250 na sekund ), sektorach 512 bajtowych i 500 sektorach na ±cie»k. Chcemy odczyta plik zajmuj cy 2500 sektorów (1,28 MB). W pierwszej wersji zaªó»my,»e dane zajmuj pi s siednich ±cie»ek i uªo»one s sekwencyjnie. Pierwsza ±cie»ka zostanie odczytana w czasie: 2 ms (poszukiwanie) + 2 ms oczekiwanie na pierwszy sektor (±rednio). Odczytanie 500 sektorów: 4 ms. Pomijamy czas przestawiania gªowicy na kolejne ±cie»ki. Bierzemy pod uwag tylko czas oczekiwania na pierwszy sektor i czas odczytu ±cie»ki. W sumie: 8 + 4 6 = 32 ms. Je»eli zaªo»ymy,»e odczytywane dane s rozproszone uzyskamy czas: 2500 (2 + 2 + 0, 008) = ponad 10s. 3 RAID RAID - Redundant Array of Independent (Inexpensive) Disks - jest rozwi zaniem zapewniaj cym lepsz szybko± transmisji danych z dysku i/lub wi kszo± niezawodno± systemu dyskowego. Stosowane jest gªównie w systemach przechowuj cych dane o du»ym znaczeniu, lub dane w przypadku których wa»na jest szybko± dost pu. RAID u»ywany jest gªównie w serwerach, chocia» zdarza si i w komputerach osobistych. Deniuje si 7 poziomów RAID (od 0 do 6). Nie nale»y jednak patrze na nie jak na hierarchi jest to po prostu 7 ró»nych pomysªów. System RAID zbudowany jest z kilku osobnych (tanich) dysków, widzianych przez system operacyjny jako jedno urz dzenie. Dane rozproszone s na ró»nych dyskach. Cz ± przestrzeni dyskowej jest u»ywana do przechowanie informacji gwarantuj cej odzyskanie danych w przypadku uszkodzenia którego± (których±) z dysków. 3.1 RAID 0 Rozwi zanie to ma tylko poprawia szybko± transmisji. Nie gwarantuje odzyskiwania danych. Caªa logiczna przestrze«dyskowa dzielona jest na paski (paskami mog by np. sektory). Paski umieszczane s na kolejnych dyskach (pierwszy na dysku 1, drugi na 2, n-ty na dysku n, n + 1 na dysku 1, itd.). Rozwi zanie takie przyspiesza dziaªanie systemu z dwóch powodów: ró»ne» dania IO mog by obsªugiwane jednocze±nie (jest spora szansa,»e b d odwoªywa si do ró»nych dysków), pojedyncze»adanie mo»e dotyczy kilku dysków wtedy równie» mo»na przyspieszy jego obsªug. 4

Oczywi±cie RAID 0 (podobnie jak nast pne poziomy) wymaga osobnych kanaªów transmisji dla poszczególnych dysków. 3.2 RAID 1 Podobnie jak na poziomie 0 u»yte jest paskowanie. Tym razem ka»dy pasek jest jednak umieszczony na dwóch dyskach (czyli tak naprawd ka»dy dysk ma swoj kopi ). Zapewnia to mo»liwo± odzyskania danych w przypadku uszkodzenia którego± z dysków. Ale nie tylko. Umo»liwia równie» przyspieszenie operacji odczytu: odczyt wykonywany jest z tego z dysków przechowuj cych» dane dane, na którym szukany pasek znajduje si bli»ej gªowicy. Ka»d operacj zapisu nale»y niestety wykonowy na obu dyskach. Rozwi zanie to jes niestety do± kosztowne. Stosowane jest dlatego tylko tam, gdzie przechowywane dane s naprawd bardzo wa»ne. 3.3 RAID 2 w RAID 2 i RAID 3 kªadzie si nacisk na wykorzystanie równolegªego odczytu paski bardzo maªe (np. pojedyncze bajty) w pojedynczym odczycie/zapisie bior udziaª zazwyczaj wszystkie dyski dyski s zsynchronizowane gªowice wszystkich dysków s zazwyczaj w tej samej pozycji do korekcji bª dów u»ywa si zazwyczaj kodu Hamminga SEC (single error correcting): bity parzysto±ci liczone s dla sªów skªadaj cych si z odpowiadaj cych sobie bitów wszystkich dysków i umieszczane na dyskach dodatkowych zapewnia to mo»liwo± odtworzenia danych np. w przypadku caªkowitego uszkodzenia jednego z dysków (chocia» do tego celu wystarczy, jak zobaczymy, prostsze rozwi zanie); oczywi±cie koryguje te» pojedyncze bª dy wymaga log n dodatkowych dysków kosztowne w praktyce si go nie stosuje 3.4 RAID 3 podobny do RAID 2, ale wymaga tylko jednego dodatkowego dysku, niezale»nie od liczby dysków z danymi dodatkowy dysk przechowuje bity parzysto±ci dla sªów zªo»onych z odpowiadaj cych sobie bitów wszystkich dysków w przypadku uszkodzenia jednego z dysków dane ªatwe do odtworzenia zapewnie bardzo szybk obsªug pojedynczego» dania tracimy, je±li stawiamy nie tyle na szybk obsªug pojedynczego» dania, co na zas reakcji«a» danie 5

3.5 RAID 4 Na poziomach od 4 do 6 stawiamy na szybko± obsªugi wielu niezale»nych» da«dost pu dyski pracuj niezale»nie paski s du»e bity parzysto±ci podobnie jak w RAID 3 czasochªonny zapis (szczególnie w przypadku zapisu maªej ilo±ci danych) ka»da operacja zapisu u»ywa dysku parzysto±ci (staje si on w skim gardªem) 3.6 RAID 5 podobnie jak RAID 4, ale paski przysto±ci rozlokowane na wszystkich dyskach (np. pierwsze paski na dyskach: dane1, dane2, dane 3, parity1-3; drugie paski: dane4, dane5, parity4-6, dane 6; trzecie paski: dane7, parity7-9, dane8, dane9; itd.) redukcja problemu w skiego gardªa (dysk z bitami parzysto±ci) u»ywany powszechnie w serwerach sieciowych 3.7 RAID 6 zamiast n + 1 u»ywana si n + 2 dysków; informacje korekcyjne kodowane dwoma algorytmami (jeden to po prostu dodawanie bitów parzysto±ci) i zapisywane s na dwóch ró»nych dyskach; rozproszone podobnie jak w RAID 5. umo»liwia korekcj danych w sytuacjach gdy dwa dyski ulegn uszkodzeniu. 6