SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Wirtualizacja zasobów w systemach operacyjnych
Sieci komputerowe Protokół TCP/IP.
Podstawy Informatyki (4)
SYSTEMY OPERACYJNE ·       SO : zestaw programów zarządzających zasobami komputera i wspomagających jego użytkowanie zarządzanie zasobami.
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ
Sieci komputerowe.
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Systemy plików FAT12, FAT16, FAT32, NTFS.
ELEMENTY SKŁADOWE JEDNOSTKI CENTRALNEJ
Systemy plików FAT i FAT 32
Opracowały: Anna Kowalczyk Dominika Lisiak
Jednostki pamięci komputera
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 10: Pamięć wirtualna
Wykład nr 9: Zarządzanie pamięcią
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Magistrala & mostki PN/PD
Systemy operacyjne Bibliografia:
Instalacja systemu Windows Vista
Artur Szmigiel Paweł Zarębski Kl. III i
Autorzy: Łukasz Sztandarski Bartłomiej Granat
ZARZĄDZANIE PROCESAMI
Systemów Operacyjnych
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Pamięć wspólna Opis własnego rozwiązania Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
Systemy plików.
Temat 3: Co to znaczy, że komputer ma pamięć? Czy można ją zmierzyć?
Systemy plików FAT12, FAT16, FAT32, NTFS.
Systemy i właściwości plików
Architektura komputerów
Magazyny pamięci.
Architektura komputerów
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
Systemy operacyjne.
Zasada działania komputera
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Etapy pracy biosu.
Systemy plików FAT, FAT32, NTFS
Przerwanie ang. interrupt.
Buforowanie D e f i n i c j a.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Nośniki informacji i akcesoria komputerowe
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Spis treści Architektura systemu windows Pamięć wirtualna Plik wymiany
FAT 16 FAT 32. Różnice między nimi
W ą t e k (lekki proces) thread.
Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Wykład 9 Zarządzanie pamięcią operacyjną
Systemy plików Bibliografia: Windows XP. Komendy i polecenia. Praktyczne przykłady, P. Czarny Windows XP. Naprawa i optymalizacja, B. Danowski Windows.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Procesor – charakterystyka elementów systemu. Parametry procesora.
System plików.
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
Pamięć RAM Pamięć RAM.
Pamięć SRAM.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Rodzaje pamięci komputerowej
Struktura systemu operacyjnego
Model warstwowy ISO-OSI
Tryby adresowania i formaty rozkazów mikroprocesora
SYSTEM PLIKÓW Źródło: Systemy operacyjne i sieci komputerowe - HELION.
Jednostki pamięci komputera
Podstawy Informatyki.
Systemy i właściwości plików
Format rozkazu Tryby adresowania.
Zapis prezentacji:

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Pamięć wirtualna i plik wymiany.

KONCEPCJA PAMIĘCI WIRTUALNEJ Systemy operacyjne i wykonywane pod ich nadzorem programy są zazwyczaj w stanie wykorzystać dużo większą przestrzeń adresową, niż umożliwia to fizyczna pamięć operacyjna wbudowana w komputer. Ponadto może występować duża różnica pomiędzy możliwościami adresowania wynikającymi z formatu rozkazów procesora (i wielkości jego rejestrów), a możliwościami wynikającymi z szerokości szyny adresowej.

W przypadku procesorów Intel, tryb rzeczywisty adresowania (wykorzystywany przez system operacyjny DOS) umożliwia zaadresowanie jedynie około 1MB pamięci: Jeden segment: 64 KB (ustalona wielkość). 1 MB + Przesunięcie pomiędzy początkami kolejnych segmentów: 16 B. 64 KB - Adresowanie: segment : offset , gdzie zarówno numer segmentu, 16 B jak i wielkość offsetu (przesunięcie względem początku segmentu) są liczbami 16-bitowymi, a cały adres - 20-bitowy (w procesorach 80286 i późniejszych można obsługiwać nadmiar na 21-szym bicie).

Procesory Intel o numerach 80286 i wyższych w ramach zapewniania kompatybilności udostępniają tryb rzeczywisty jako jeden ze swoich trybów pracy. Oznacza to, że programy użytkowe przeznaczone do wykonywania na procesorze 8086 mogą być wykonywane również na procesorach o wyższych numerach. Procesory te udostępniają również tak zwany tryb wirtualny 8086, w którym wiele programów przeznaczonych dla trybu rzeczywistego może być współbieżnie (z podziałem czasu) wykonywanych w oddzielnych przestrzeniach adresowych o pojemnościach 1 MB. Własność tę wykorzystują systemy Windows, które umożliwiają wykonywanie (w wielu oknach) programów. Własność tę wykorzystują systemy Windows, które umożliwiają wykonywanie (w wielu oknach) programów DOS-owych. Utrudnienie stanowi fakt, że niektóre programy DOS-owe nie zawsze korzystają z funkcji systemowych komunikując się z urządzeniami zewnętrznymi, ale, w imię przyspieszenia działania, bezpośrednio wykonują operacje na fizycznych portach i lokatach pamięci operacyjnej wykorzystywanych przez system. Takie programy nie mogą być uruchamiane pod systememami Windows, gdyż systemy te (jak wszystkie przeznaczone do pracy w trybie chronionym) zapewniają ochronę pamięci i sterowników urządzeń zewnętrznych.

Procesor 80286 pracujący w trybie chronionym, ma możliwość zaadresowania 16 MB pamięci fizycznej. Procesory o numerach 80386 i wyższych mogą zaadresować 4 GB pamięci fizycznej (teoretycznie mogłyby adresować nawet do 64 TB pamięci). 1 KB = 2 B = 1024 B 1 MB = 2 B (ponad 1 milion bajtów) 1 GB = 2 B (ponad 1 miliard bajtów) 1 TB = 2 B (ponad 1 bilion bajtów) 10 20 Procesor 80286 pracujący w trybie chronionym (stosujący deskryptorowy tryb obliczania adresu fizycznego, umożliwiający ochronę pamięci), ma możliwość zaadresowania 16 MB pamięci fizycznej (choć jego sposób obliczania adresu teoretycznie umożliwiałby zaadresowanie 1 GB pamięci). Procesory o numerach 80386 i wyższych mogą zaadresować 4 GB pamięci fizycznej (choć teoretycznie mogłyby adresować nawet do 64 TB pamięci). 1 KB = 2 B = 1024 B 1 MB = 2 B (ponad 1 milion bajtów) 1 GB = 2 B (ponad 1 miliard bajtów) 1 TB = 2 B (ponad 1 bilion bajtów) Koncepcja pamięci wirtualnej sprowadza się do symulowania większej ilości pamięci operacyjnej przy użyciu szybkiej pamięci dyskowej. Może być zrealizowana zarówno w oparciu o stronicowanie, jak i o segmentację (stronicowanie jest dużo dogodniejszym narzędziem). Korzystanie przez system z pamięci wirtualnej nie powinno być dostrzegane przez programy wykorzystujące logiczną przestrzeń adresową. Realizacja pamięci wirtualnej musi być wspierana przez odpowiedni sprzęt. 30 40

Architektura i organizacja Jest mała i szybka pamięć operacyjna i duża lecz wolna pamięć dyskowa. Jak zbudować z nich pamięć, która byłaby duża i szybka?

Architektura i organizacja Jest mała i szybka pamięć operacyjna i duża lecz wolna pamięć dyskowa. Jak zbudować z nich pamięć, która byłaby duża i szybka?

Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 1

Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 1

Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 1

Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 7

Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 7

Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 9

Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 9

Adresowanie pamięci wirtualnej Katalog stronic Oddzielny dla każdego procesu do 1024 PDE PDE (4bajty) PDE Tablica stronic Do 1024 PTE PTE Ramka stronic 1 2 3 4 5 6 7 8 ….4096 bajtów Tablica stronic PTE 10 bitów 12 bitów 10 bitów Tablica stronic PTE

Koncepcja pamięci wirtualnej sprowadza się do symulowania większej ilości pamięci operacyjnej przy użyciu szybkiej pamięci dyskowej. Może być zrealizowana zarówno w oparciu o stronicowanie, jak i o segmentację. Korzystanie przez system z pamięci wirtualnej nie powinno być dostrzegane przez programy wykorzystujące logiczną przestrzeń adresową. Realizacja pamięci wirtualnej musi być wspierana przez odpowiedni sprzęt. Procesor 80286 pracujący w trybie chronionym (stosujący deskryptorowy tryb obliczania adresu fizycznego, umożliwiający ochronę pamięci), ma możliwość zaadresowania 16 MB pamięci fizycznej (choć jego sposób obliczania adresu teoretycznie umożliwiałby zaadresowanie 1 GB pamięci). Procesory o numerach 80386 i wyższych mogą zaadresować 4 GB pamięci fizycznej (choć teoretycznie mogłyby adresować nawet do 64 TB pamięci). 1 KB = 2 B = 1024 B 1 MB = 2 B (ponad 1 milion bajtów) 1 GB = 2 B (ponad 1 miliard bajtów) 1 TB = 2 B (ponad 1 bilion bajtów) Koncepcja pamięci wirtualnej sprowadza się do symulowania większej ilości pamięci operacyjnej przy użyciu szybkiej pamięci dyskowej. Może być zrealizowana zarówno w oparciu o stronicowanie, jak i o segmentację (stronicowanie jest dużo dogodniejszym narzędziem). Korzystanie przez system z pamięci wirtualnej nie powinno być dostrzegane przez programy wykorzystujące logiczną przestrzeń adresową. Realizacja pamięci wirtualnej musi być wspierana przez odpowiedni sprzęt.

Menedżer pamięci wirtualnej. obsługuje mechanizm pamięci wirtualnej w systemie odwzorowuje wirtualną przestrzeń adresową na strony pamięci fizycznej komputera każdemu procesowi jest przydzielana wirtualna przestrzeń adresowa

Aby móc zaimplementować pamięć wirtualną, należy wydzielić na dysku odpowiednio dużą partycję lub plik przeznaczony na przestrzeń wymiany (swap file). Aby system operacyjny wiedział, czy zachodzi konieczność aktualizacji zapisu w przestrzeni wymiany na dysku w przypadku usuwania jednostki z pamięci operacyjnej, czy też nie, w opisach jednostek umieszczane są bity modyfikacji, nazywane też bitami zabrudzenia (dirty bit). W przypadku, gdy zawartość jednostki nie podlega modyfikacji, wartość tego bitu wynosi 0. Jeśli w jednostce został zmieniony choćby jeden bajt, bit modyfikacji jest ustawiany na 1. Aby móc zaimplementować pamięć wirtualną, należy wydzielić na dysku odpowiednio dużą partycję przeznaczoną na przestrzeń wymiany (swap file). W przestrzeni wymiany przechowywane są fragmenty logicznego obrazu pamięci, które aktualnie nie mieszczą się w pamięci operacyjnej. Translacja adresów jest teraz realizowana dwustopniowo: 1) przy użyciu rejestrów procesora i tablic deskryptorów następuje przeliczenie adresu logicznego na adres liniowy, który może odpowiadać pewnemu adresowi w fizycznej pamięci operacyjnej, bądź być adresem zewnętrznym (pojęcie pamięci wirtualnej w gruncie rzeczy odpowiada zakresowi adresów liniowych, który może być dużo większy od zainstalowanej pamięci fizycznej). 2) w przypadku, gdy adres liniowy jest adresem zewnętrznym, następuje przerwanie nazywane brakiem jednostki (missing item), w wyniku którego wykonywany jest podprogram sprowadzenia z dysku do pamięci operacyjnej brakującej jednostki (strony lub segmentu), a następnie (po zaktualizowaniu wpisów w tablicy deskryptorów) ostateczne obliczenie adresu fizycznego. W sytuacji, gdy w pamięci fizycznej brakuje miejsca na wpisanie jednostki sprowadzonej z dysku, system musi podjąć decyzję, jaką jednostkę czasowo przepisać z pamięci operacyjnej na dysk.

Uwaga Dostęp systemu operacyjnego do przestrzeni wymiany na dysku jest na ogół dużo szybszy, niż dostęp do systemu plików, gdyż korzysta z dużo prostszych mechanizmów (może nie stosować buforowania ani skomplikowanych algorytmów wyszukiwania miejsca zapisu / odczytu).

Najczęściej stosowanym sposobem implementacji pamięci wirtualnej jest stronicowanie na żądanie (demand paging). W tym przypadku niektóre strony procesu (jego kodu i danych) mogą przebywać w pamięci operacyjnej, a niektóre na dysku. System operacyjny prowadzi „leniwą” politykę sprowadzania stron do pamięci - sprowadza je dopiero wtedy, gdy okażą się potrzebne („na żądanie procesu”). Najczęściej stosowanym sposobem implementacji pamięci wirtualnej jest stronicowanie na żądanie (demand paging). W tym przypadku niektóre strony procesu (jego kodu i danych) mogą przebywać w pamięci operacyjnej, a niektóre na dysku. System operacyjny prowadzi „leniwą” politykę sprowadzania stron do pamięci - sprowadza je dopiero wtedy, gdy okażą się potrzebne („na żądanie procesu”). Problemy, jakie trzeba rozstrzygnąć, to: 1) ile ramek wstępnie przydzielać każdemu procesowi ? 2) jaką politykę wymiany stron prowadzić, gdy nie ma już wolnych ramek w pamięci ? Algorytmy, które rozwiązują te problemy, nazywane są odpowiednio algorytmami wstępnego przydziału i algorytmami zastępowania. Jeśli na początku działania procesy nie mają przydzielanych żadnych ramek, mówimy o czystym stronicowaniu na żądanie. Wstępny przydział ramek nie musi być taki sam dla wszystkich procesów - może zależeć od wielkości jego programu, od priorytetu, logicznej struktury lub danych na temat jego wcześniejszych wykonań.

Fizyczna realizacja stronicowania na żądanie opiera się na istnieniu w każdej pozycji tablicy stron (w każdym opisie strony) bitu poprawności odniesienia, który informuje, czy dana strona przebywa aktualnie w pamięci operacyjnej (adres jest adresem wewnętrznym), czy też przebywa na dysku (adres jest adresem zewnętrznym). W tym drugim przypadku żądanie dostępu do strony generuje przerwanie (page fault). Po sprowadzeniu strony do pamięci (co ewentualnie może być związane z wymianą) system aktualizuje tablicę stron i kontynuuje wykonywanie przerwanego procesu.

Realizacja segmentacji na żądanie wygląda podobnie - również oparta jest na istnieniu bitów poprawności odniesienia w deskryptorach segmentów. Jest jednak algorytmicznie dużo trudniejsza (a zatem powolniejsza) ze względu na zmienną wielkość dziur w pamięci i ewentualną potrzebę ich okresowej komasacji. Segmentację na żądanie wykorzystywały systemy dedykowane procesorowi Intel 80286 – na przykład OS / 2.

Mechanizmem umożliwiającym zabezpieczenie strony przed przedwczesnym usunięciem jej z pamięci operacyjnej może być bit blokowania umieszczony w opisie strony. Ustawienie wartości tego bitu na 1 stanowi informację dla systemu operacyjnego, że strona czasowo nie powinna podlegać usuwaniu w ramach algorytmu wymiany. Stosowanie bitu blokowania może być przydatne zarówno w sytuacji oczekiwania na zakończenie transmisji danych czy współdzielenia strony, jak też w sytuacji, kiedy strona została dopiero co sprowadzona do pamięci przez jakiś proces i jeszcze nie była ani razu użyta. Jeżeli proces ma niski priorytet, mogłoby się zdarzyć, że inny, wysokopriorytetowy proces będzie usiłował pozbawić go od razu miejsca w pamięci. Mechanizmem umożliwiającym zabezpieczenie strony przed przedwczesnym usunięciem jej z pamięci operacyjnej może być bit blokowania umieszczony w opisie strony. Ustawienie wartości tego bitu na 1 stanowi informację dla systemu operacyjnego, że strona czasowo nie powinna podlegać usuwaniu w ramach algorytmu wymiany. Stosowanie bitu blokowania może być przydatne zarówno w sytuacji oczekiwania na zakończenie transmisji danych czy współdzielenia strony, jak też w sytuacji, kiedy strona została dopiero co sprowadzona do pamięci przez jakiś proces i jeszcze nie była ani razu użyta. Jeżeli proces ma niski priorytet, mogłoby się zdarzyć, że inny, wysokopriorytetowy proces będzie usiłował pozbawić go od razu miejsca w pamięci. Ponieważ sprowadzenie strony do pamięci jest czasochłonne, należy zadbać o to, żeby choć przez pewien czas była ona wykorzystana. Procesy użytkowników mogą z „egoistycznych pobudek” starać się nadużywać mechanizmu blokowania stron w pamięci. Z tego powodu systemy operacyjne często traktują ustawienie bitu blokowania jako „blokowanie zalecane”, nie „blokowanie obowiązkowe” i w sytuacji dużego spiętrzenia wysokopriorytetowych procesów mogą same podejmować ostateczną decyzję co do trzymania strony w pamięci lub też jej usunięcia.

Procesy użytkowników mogą z „egoistycznych pobudek” starać się nadużywać mechanizmu blokowania stron w pamięci. Z tego powodu systemy operacyjne często traktują ustawienie bitu blokowania jako „blokowanie zalecane”, nie „blokowanie obowiązkowe” i w sytuacji dużego spiętrzenia wysokopriorytetowych procesów mogą same podejmować ostateczną decyzję co do trzymania strony w pamięci lub też jej usunięcia. Mechanizmem umożliwiającym zabezpieczenie strony przed przedwczesnym usunięciem jej z pamięci operacyjnej może być bit blokowania umieszczony w opisie strony. Ustawienie wartości tego bitu na 1 stanowi informację dla systemu operacyjnego, że strona czasowo nie powinna podlegać usuwaniu w ramach algorytmu wymiany. Stosowanie bitu blokowania może być przydatne zarówno w sytuacji oczekiwania na zakończenie transmisji danych czy współdzielenia strony, jak też w sytuacji, kiedy strona została dopiero co sprowadzona do pamięci przez jakiś proces i jeszcze nie była ani razu użyta. Jeżeli proces ma niski priorytet, mogłoby się zdarzyć, że inny, wysokopriorytetowy proces będzie usiłował pozbawić go od razu miejsca w pamięci. Ponieważ sprowadzenie strony do pamięci jest czasochłonne, należy zadbać o to, żeby choć przez pewien czas była ona wykorzystana. Procesy użytkowników mogą z „egoistycznych pobudek” starać się nadużywać mechanizmu blokowania stron w pamięci. Z tego powodu systemy operacyjne często traktują ustawienie bitu blokowania jako „blokowanie zalecane”, nie „blokowanie obowiązkowe” i w sytuacji dużego spiętrzenia wysokopriorytetowych procesów mogą same podejmować ostateczną decyzję co do trzymania strony w pamięci lub też jej usunięcia.

Zarządzanie pamięcią stronicowaną bazuje na dwupoziomowej strukturze: Katalog tablic stron procesu Tablica stron nr 0 Tablica stron nr 1 Tablica stron nr 1024 Strona Strona Strona Strona Strona 4 KB 4 KB 4 KB 4 KB 4 KB Zarówno katalog, jak i pojedyncza tablica stron mogą zawierać do 1024 wpisów. Strona może przebywać w pamięci operacyjnej lub w pliku na dysku. Procesy uprzywilejowane mają prawo zabronić usuwania wybranych stron z pamięci do pliku. Strony posiadają atrybuty, które informują o stopniu ich ochrony (na przykład read-only). Procesy mogą współdzielić obiekty pamięci, w których mogą mieć odwzorowane fragmenty swoich przestrzeni adresowych.

Korzyści z implementacji pamięci wirtualnej: 1) podobnie, jak w przypadku nakładkowania, w pamięci mogą być przechowywane jedynie fragmenty kodów programów, a nie całe kody; 2) programiści tworzący bardzo duże programy nie muszą wnikać w organizację wymiany ich fragmentów pomiędzy pamięcią operacyjną a pamięcią zewnętrzną; 3) można równolegle wykonywać więcej procesów, niż wynika to z ograniczeń narzucanych przez rozmiar pamięci operacyjnej, co polepsza wykorzystanie sprzętu i zwiększa wydajność systemu. Procesor Intel 80286 umożliwiał realizację pamięci wirtualnej tylko w oparciu o mechanizm segmentacji. Procesory o numerach 80386 i wyższych umożliwiają implementację pamięci wirtualnej zarówno w oparciu o segmentację, jak i stronicowanie, przy czym zdecydowanie zalecany jest ten drugi sposób. Korzyści z implementacji pamięci wirtualnej: 1) podobnie, jak w przypadku nakładkowania, w pamięci mogą być przechowywane jedynie fragmenty kodów programów, a nie całe kody; 2) programiści tworzący bardzo duże programy nie muszą wnikać w organizację wymiany ich fragmentów pomiędzy pamięcią operacyjną a pamięcią zewnętrzną; 3) można równolegle wykonywać więcej procesów, niż wynika to z ograniczeń narzucanych przez rozmiar pamięci operacyjnej, co polepsza wykorzystanie sprzętu i zwiększa wydajność systemu. Procesor Intel 80286 umożliwiał realizację pamięci wirtualnej tylko w oparciu o mechanizm segmentacji. Procesory o numerach 80386 i wyższych umożliwiają implementację pamięci wirtualnej zarówno w oparciu o segmentację, jak i stronicowanie, przy czym zdecydowanie zalecany jest ten drugi sposób.

Stronicowanie pamięci

Pytania Daj możliwość zadania pytań dotyczących prezentacji.