Zarządzanie dyskowymi operacjami we-wy. Zarządzanie pamięcią operacyjną. dr inż. Jarosław Forenc. systemy plików (NTFS, ext2)

Podobne dokumenty
dr inż. Jarosław Forenc

Informatyka 2. Wykład nr 10 ( ) Plan wykładu nr 10. Politechnika Białostocka. - Wydział Elektryczny. ext2. ext2. dr inŝ.

Zarządzanie dyskowymi operacjami we-wy. Zarządzanie pamięcią operacyjną. dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

dr inż. Jarosław Forenc

Informatyka 2. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

dr inż. Jarosław Forenc

Zarządzanie dyskowymi operacjami we/wy. Zarządzanie pamięcią operacyjną. dr inż. Jarosław Forenc. Algorytm FIFO (First-In-First-Out)

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

System plików przykłady. implementacji

System plików przykłady implementacji

Sektor. Systemy Operacyjne

Systemy plików FAT, FAT32, NTFS

dr inż. Jarosław Forenc

Zarządzanie pamięcią operacyjną

System plików. System plików. Operacje plikowe. Inne operacje. Typy plików. Typy dostępu do plików

System plików. Definicje:

Zaawansowane funkcje systemów plików. Ewa Przybyłowicz

System operacyjny. dr inż. Jarosław Forenc. definicja systemu operacyjnego zarządzanie procesami zarządzanie dyskowymi operacjami we-wy

Zarządzanie pamięcią operacyjną

dr inŝ. Jarosław Forenc

dr inż. Jarosław Forenc

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

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

Schematy zarzadzania pamięcia

Wbudowane systemy operacyjne

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. System plików

16MB - 2GB 2MB - 128MB

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

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

Architektura komputerów

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

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

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

System plików. Warstwowy model systemu plików

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

1. Pliki i ich organizacja

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

System plików warstwa logiczna

System plików Linuksa

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

Struktura dysku. Dyski podstawowe i dynamiczne

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

Systemy operacyjne III

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików przykłady implementacji. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Tworzenie partycji i dysków logicznych

Charakterystyka systemów plików

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

WINDOWS NT. Diagram warstw systemu Windows NT

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

System plików JFS. 1 Najważniejsze informacje. Mateusz Zakrzewski. 18 stycznia JFS to skrót od Journalled File System.

Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii. Materiały pomocnicze do zajęć z przedmiotu SYSTEMY OPERACYJNE

System plików. - warstwa logiczna. - warstwa fizyczna. - przykłady implementacji. Systemy operacyjne Wykład 6 1

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

PROJEKTOWANIE SYSTEMÓW KOMPUTEROWYCH

dr inŝ. Jarosław Forenc

Bezpieczeństwo systemów komputerowych - wykład V i VI

Systemy operacyjne System plików

1. Podstawy...P Polecenia podstawowe...p... 18

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Od programu źródłowego do procesu

Narzędzie konfiguracji rozruchu

HARD DISK MANAGER 11 / PEŁNA LISTA FUNKCJI. HDM 11 Professional. HDM 2011 Suite. Funkcje. Partycjonowanie dysku

Zarządzanie wolną przestrzenią

System plików. Atrybuty pliku. Typy plików. Pojęcie pliku (ang. file) Zadania systemu operacyjnego. Struktura pliku. Dariusz Wawrzyniak 1

SYSTEMY OPERACYJNE WYKŁAD 5 OBSŁUGA PAMIĘCI MASOWYCH

MANAGER 2010 PROFESSIONALP VS. VIRTUALIZATION WIRTUALIZACJA OBSŁUGIWANE ANAGER 2010 C MANAGER 2010 CORPORATE: Funkcja. Korzyści.

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie zasobami pamięci

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Podstawowe zagadnienia informatyki

System plików. Systemy operacyjne System plików 1. Pojęcie pliku (ang. file)

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

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

Zarządzanie dyskowymi operacjami we-wy. Zarządzanie pamięcią operacyjną

PAMIĘĆ OPERACYJNA...107

Technologie informacyjne (2) Zdzisław Szyjewski

System plików. Definicje:

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Stronicowanie w systemie pamięci wirtualnej

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem.

dr inż. Jarosław Forenc

Porównanie systemów plików ze względu na możliwość odzyskania utraconych danych.

Zarządzanie partycjami

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Haszowanie (adresowanie rozpraszające, mieszające)

Zarządzanie wolną przestrzenią

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

ZADANIE nr 4 Sprawdzian z informatyki

Podstawowe wiadomości o systemach plików.

1. Pamięć wirtualna. 2. Optymalizacja pliku pamięci wirtualnej

sprowadza się od razu kilka stron!

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

Laboratorium - Zarządzanie pamięcią wirtualną w systemie Windows Vista

Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii. Materiały pomocnicze do zajęć z przedmiotu SYSTEMY OPERACYJNE

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Transkrypt:

Rok akademicki 2014/2015, Wykład nr 7 2/42 Plan wykładu nr 7 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2014/2015 Zarządzanie dyskowymi operacjami we-wy systemy plików (NTFS, ) Zarządzanie pamięcią operacyjną partycjonowanie statyczne i dynamiczne proste stronicowanie, prosta segmentacja pamięć wirtualna stronicowanie i segmentacja pamięci wirtualnej Wykład nr 7 (08.05.2015) Rok akademicki 2014/2015, Wykład nr 7 3/42 Rok akademicki 2014/2015, Wykład nr 7 4/42 NTFS (New Technology File System) NTFS wersja 1.0 (połowa 1993 r.) - Windows NT 3.1 wersja 1.1 (jesień 1994 r.) - Windows NT 3.5 wersja 1.2 (NTFS 4) - Windows NT 3.51 (1995 r.), Windows NT 4.0 (1996 r.) wersja 3.0 (NTFS 5) - Windows 2000, dużo zmian w stosunku do poprzedniej wersji wersja 3.1 (NTFS 5.1) - Windows XP, Server 2003, Vista, Windows 7/8 teoretyczny rozmiar partycji NTFS wynosi 2 64-1 klastrów, ale Windows potrafi obsłużyć tylko 2 32-1 klastrów (dla klastra 64 kb - ok. 256 TB) tabela partycji w MBR dysku twardego ogranicza rozmiar partycji do 2 TB teoretyczna wielkość pliku wynosi 2 64 bajtów minus 1 kb, ale Windows ogranicza ten rozmiar do 2 44 bajtów minus 64 kb (ok. 16 TB) struktura wolumenu (dysku) NTFS: Boot Sector rozpoczyna się od zerowego sektora partycji i może zajmować 16 kolejnych sektorów znajdują się w nim następujące dane: instrukcja skoku do początku programu ładującego (3 bajty) nazwa wersji systemu operacyjnego - OEM ID (8 bajtów) struktura BPB - blok parametrów BIOS (25 bajtów) rozszerzony BPB (48 bajtów) wykonywalny kod startowy uruchamiający system operacyjny (426 bajtów) znacznik końca Boot Sectora - 55AAH (2 bajty)

Rok akademicki 2014/2015, Wykład nr 7 5/42 Rok akademicki 2014/2015, Wykład nr 7 6/42 NTFS NTFS - Metapliki w MFT struktura wolumenu (dysku) NTFS: MFT (Master File Table) - specjalny plik, niewidoczny dla użytkownika, pełniący rolę tablicy alokacji plików w systemie FAT - są w nim zapisane wszystkie dane niezbędne do odczytania pliku z dysku MFT - hierarchiczna, obiektowa baza danych, składająca się z rekordów o stałej długości 1 kb - 4 kb w każdym rekordzie zapisane są atrybuty, które jednoznacznie określają położenie i zawartość odpowiadających im plików lub katalogów pierwsze 16 (NTFS 4) lub 26 (NTFS 5) rekordów jest zarezerwowane dla tzw. metaplików Plik systemowy Główna tablica plików Główna tablica plików 2 Plik dziennika (log operacji dyskowych) Nazwa pliku Rekord MFT $Mft 0 $MftMirr 1 $LogFile 2 Wolumin $Volume 3 Definicje atrybutów Indeks katalogu głównego Funkcja pliku Zawiera jeden bazowy rekord dla każdego pliku w woluminie NTFS. Jeżeli informacje dotyczące pliku lub katalogu są zbyt duże, aby zmieściły się w pojedynczym rekordzie, to alokowane są rekordy dodatkowe - w MFT lub poza nim. Kopia pierwszych czterech rekordów w MFT. Plik ten gwarantuje dostęp do MFT w przypadku awarii pojedynczego sektora. W starszych systemach umieszczany był w połowie woluminu, zaś w nowszych - na jego końcu. Zawiera listę kroków transakcji, używaną przez funkcje związane z odzyskiwaniem NTFS, a mówiąc prościej są to informacje o wszystkich operacjach wykonywanych na plikach i katalogach, np. kopiowanie i kasowanie plików, przenoszenie katalogów, itp. Rozmiar pliku dziennika zależy od rozmiaru woluminu i może osiągać do 4 MB. Plik ten jest używany przez Windows 2000 do przywracania spójności systemu plików po awarii systemu. Zawiera informacje o woluminie, takie jak jego etykieta, rozmiar i wersja NTFS użyta do formatowania dysku. $AttrDef 4 Tabela nazw atrybutów, ich numerów i opisów. $ 5 Katalog główny. Rok akademicki 2014/2015, Wykład nr 7 7/42 Rok akademicki 2014/2015, Wykład nr 7 8/42 NTFS NTFS struktura wolumenu (dysku) NTFS: struktura wolumenu (dysku) NTFS: pozostała część pliku MFT przeznaczona jest na rekordy wszystkich plików i katalogów umieszczonych na dysku (ok. 12,5% miejsca na dysku) jeśli pierwszy rekord MFT jest uszkodzony to system automatycznie odczytuje drugi rekord, w którym zapisana jest kopia pierwszego położenie obu metaplików $Mft i $MftMirr zapisane jest w sektorze startowym partycji system NTFS traktuje każdy plik jako zbiór atrybutów elementy takie jak nazwa, prawa dostępu, a nawet dane są atrybutami wszystkie atrybuty mają dwie części składowe: nagłówek i blok danych nagłówek zawiera informacje opisujące atrybut, np. całkowitą liczbę bajtów zajmowanych przez atrybut, rozmiar bloku danych atrybutu, położenie bloku danych, znacznik czasu, wskaźniki stanu w bloku danych atrybutu znajdują się informacje zgodne z przeznaczeniem atrybutu

Rok akademicki 2014/2015, Wykład nr 7 9/42 Rok akademicki 2014/2015, Wykład nr 7 10/42 NTFS - Pliki NTFS - Pliki pliki w systemie NTFS są reprezentowane w MFT przez rekord zawierający atrybuty: $Standard_Information $File_Name $Security_Descriptor $Data jeśli atrybuty pliku są duże (najczęściej dotyczy to atrybutu $Data), to w rekordzie w MFT umieszczany jest tylko nagłówek atrybutu oraz wskaźnik do jego bloku danych, a sam blok danych przenoszony jest na dysk poza MFT atrybuty niemieszczące się całkowicie w MFT nazywane są nierezydentnymi blok danych takiego atrybutu zapisywany jest w przyległych klastrach w przypadku małych plików wszystkie jego atrybuty zapisywane są bezpośrednio w MFT jeśli nie jest to możliwe, to dane zapisywane są w kilku ciągach jednostek alokacji i wtedy każdemu ciągowi odpowiada wskaźnik w rekordzie MFT $Standard_Information (Informacje standardowe) $File_Name (Nazwa pliku) $Security_Descriptor (Opis praw dostępu) $Data (Dane) jeśli wszystkie atrybuty mieszczą się wewnątrz pojedynczego rekordu MFT, wówczas nazywane są rezydentnymi Rok akademicki 2014/2015, Wykład nr 7 11/42 Rok akademicki 2014/2015, Wykład nr 7 12/42 NTFS - Katalogi katalogi reprezentowane są przez rekordy zawierające trzy takie same atrybuty jak pliki: pierwszy system plików w Linuxie: Minix (14-znakowe nazwy plików i maksymalny rozmiar wynoszący 64 MB) $Standard_Information $File_Name $Security_Descriptor system Minix zastąpiono nowym systemem nazwanym rozszerzonym systemem plików - ext (ang. extended file system), a ten, w styczniu 1993 r., systemem (ang. second extended file system) zamiast atrybutu $Data umieszczone są trzy atrybuty przeznaczone do tworzenia list, sortowania oraz lokalizowania plików i podkatalogów $Index_Root $Index_Allocation $Bitmap w systemie podstawowym elementem podziału dysku jest blok wielkość bloku jest stała w ramach całego systemu plików, określana na etapie jego tworzenia i może wynosić 1024, 2048 lub 4096 bajtów w celu zwiększenia bezpieczeństwa i optymalizacji zapisu na dysku posługujemy się nie pojedynczymi blokami, a grupami bloków

Rok akademicki 2014/2015, Wykład nr 7 13/42 Rok akademicki 2014/2015, Wykład nr 7 14/42 Boot Sector (blok startowy) przechowuje informacje wykorzystywane przez system operacyjny podczas jego uruchamiania każda grupa fizyczna bloków zawiera informacje o jednej grupie logicznej, a ponadto pewne informacje o całym systemie plików na poziomie logicznym grupę bloków tworzą: deskryptor grupy (32 bajty) blok z mapą zajętości bloków danych (1 blok dyskowy) blok z mapą zajętości i-węzłów (1 blok dyskowy) bloki z tablicą i-węzłów bloki danych Deskryptor grupy Blok z mapą bitową zajętości bloków danej grupy Blok z mapą bitową zajętości i-węzłów danej grupy Tablica i-węzłów Bloki danych w każdej grupie fizycznej bloków znajduje się kopia tego samego bloku identyfikacyjnego oraz kopia bloków z deskryptorami wszystkich grup blok identyfikacyjny zawiera informacje na temat systemu plików: numer urządzenia, na którym jest super-block rodzaj systemu plików rozmiar bloku struktury do synchronizacji dostępu czas dokonanej ostatnio zmiany informacje specyficzne dla konkretnej implementacji Rok akademicki 2014/2015, Wykład nr 7 15/42 Rok akademicki 2014/2015, Wykład nr 7 16/42 każda grupa fizyczna bloków zawiera informacje o jednej grupie logicznej, a ponadto pewne informacje o całym systemie plików każda grupa fizyczna bloków zawiera informacje o jednej grupie logicznej, a ponadto pewne informacje o całym systemie plików w deskryptorach grupy znajdują się informacje na temat grupy bloków: numer bloku z bitmapą zajętości bloków grupy numer bloku z bitmapą zajętości i-węzłów numer pierwszego bloku z tablicą i-węzłów liczba wolnych bloków liczba wolnych i-węzłów w grupie liczba katalogów w grupie blok z mapą bitową zajętości bloków danej grupy jest tablicą bitów o rozmiarze jednego bloku jeśli blok ma rozmiar 1 kb to pojedynczą mapą można opisać fizyczna grupę 8096 bloków czyli 8 MB danych jeśli natomiast blok ma rozmiar 4 kb, to fizyczna grupa bloków zajmuje 128 MB danych przed tablicą i-węzłów znajduje się blok z mapa bitową zajętości i-węzłów danej grupy - jest to tablica bitów, z których każdy zawiera informację czy dany i-węzeł jest wolny czy zajęty

Rok akademicki 2014/2015, Wykład nr 7 17/42 Rok akademicki 2014/2015, Wykład nr 7 18/42 - i-węzeł - i-węzeł pliki na dysku reprezentowane są przez i-węzły (ang. i-node) każdemu plikowi odpowiada dokładnie jeden i-węzeł, który jest strukturą zawierającą m.in. następujące pola: numer i-węzła w dyskowej tablicy i-węzłów typ pliku: zwykły, katalog, łącze nazwane, specjalny, znakowy prawa dostępu do pliku: dla wszystkich, grupy, użytkownika liczba dowiązań do pliku identyfikator właściciela pliku identyfikator grupy właściciela pliku rozmiar pliku w bajtach (max. 4 GB) czas utworzenia pliku czas ostatniego dostępu do pliku czas ostatniej modyfikacji pliku liczba bloków dyskowych zajmowanych przez plik położenie pliku na dysku określają w i-węźle pola: 12 adresów bloków zawierających dane (w systemie Unix jest ich 10) - bloki bezpośrednie 1 adres bloku zawierającego adresy bloków zawierających dane - blok jednopośredni (ang. single indirect block) 1 adres bloku zawierającego adresy bloków jednopośrednich - blok dwupośredni (ang. double indirect block) 1 adres bloku zawierającego adresy bloków dwupośrednich - blok trójpośredni (ang. triple indirect block) Rok akademicki 2014/2015, Wykład nr 7 19/42 Rok akademicki 2014/2015, Wykład nr 7 20/42 - i-węzeł /* Structure of an inode on the disk */ struct _inode {... u16 i_mode; /* File mode */ u16 i_uid; /* Owner Uid */ u32 i_size; /* Size in bytes */ u32 i_atime; /* Access time */ u32 i_ctime; /* Creation time */ u32 i_mtime; /* Modification time */ u32 i_dtime; /* Deletion Time */ u16 i_gid; /* Group Id */ u16 i_links_count; /* Links count */ u32 i_blocks; /* Blocks count */ u32 i_flags; /* File flags */ union { struct { u32 l_i_reserved1; } linux1; struct { u32 h_i_translator; } hurd1; struct { u32 m_i_reserved1; } masix1; } osd1; /* OS dependent 1 */ nazwy plików przechowywane są w katalogach, które w systemie Linux są plikami, ale o specjalnej strukturze katalogi składają się z ciągu tzw. pozycji katalogowych o nieustalonej z góry długości każda pozycja opisuje dowiązanie do jednego pliku i zawiera: numer i-węzła (4 bajty) rozmiar pozycji katalogowej (2 bajty) długość nazwy (2 bajty) nazwa (od 1 do 255 znaków) struct _dir_entry { _u32 inode /* numer i-wezla */ _u16 rec_len /* dlugosc pozycji katalogowej */ _u16 name_len /* dlugosc nazwy */ char name[ext2_name_len] /* nazwa */ }

Rok akademicki 2014/2015, Wykład nr 7 21/42 Rok akademicki 2014/2015, Wykład nr 7 22/42 Zarządzanie pamięcią Zarządzanie pamięcią w systemie komputerowym uruchomionych jest jednocześnie wiele programów (procesów) rozmiar pamięci operacyjnej jest ograniczony i niewystarczający, aby przechowywać wszystkie programy oraz struktury danych potrzebne aktywnym procesom oraz systemowi operacyjnemu niektóre procesy (lub ich część) są przechowywane w pamięci pomocniczej zadaniem systemu operacyjnego jest więc wydajne przenoszenie programów i danych do i z pamięci operacyjnej czyli zarządzanie pamięcią w nowoczesnych wieloprogramowych systemach operacyjnych zarządzanie pamięcią opiera się na bardzo zaawansowanych schematach nazywanych pamięcią wirtualną pamięć wirtualna bazuje na wykorzystaniu segmentacji i stronicowania z historycznego punktu widzenia w systemach komputerowych stosowane były/są następujące metody zarządzania pamięcią: partycjonowanie statyczne partycjonowanie dynamiczne proste stronicowanie prosta segmentacja stronicowanie pamięci wirtualnej segmentacja pamięci wirtualnej stronicowanie i segmentacja pamięci wirtualnej Rok akademicki 2014/2015, Wykład nr 7 23/42 Rok akademicki 2014/2015, Wykład nr 7 24/42 Partycjonowanie statyczne Partycjonowanie statyczne podział pamięci operacyjnej na obszary o takim samym lub różnym rozmiarze, ustalanym podczas generowania systemu podział pamięci operacyjnej na obszary o takim samym lub różnym rozmiarze, ustalanym podczas generowania systemu w przypadku takiego samego rozmiaru partycji każdy proces, którego rozmiar jest równy lub mniejszy od rozmiaru partycji może zostać załadowany do dowolnej partycji w przypadku partycji o różnych rozmiarach najprostszy algorytm rozmieszczenia polega na przypisaniu każdego procesu do najmniejszej partycji, w której się zmieści zbyt duże procesy mogą nie zmieścić się w partycji o stałym rozmiarze występuje fragmentacja wewnętrzna (proces 2 MB zajmuje partycję 8 MB) powyższym problemom można zaradzić stosując partycje o różnych rozmiarach w takim przypadku dla każdej partycji stosowana jest kolejka procesów przeniesionych do pamięci pomocniczej wady partycjonowania statycznego: ograniczona liczba partycji a więc i procesów w systemie niewielkie zadania powodują nieefektywne wykorzystanie pamięci

Rok akademicki 2014/2015, Wykład nr 7 25/42 Rok akademicki 2014/2015, Wykład nr 7 26/42 Partycjonowanie dynamiczne Partycjonowanie dynamiczne partycje są tworzone dynamicznie w ten sposób, że każdy proces jest ładowany do partycji o rozmiarze równym rozmiarowi procesu partycje mają różną długość, może zmieniać się także ich liczba przykład - w systemie działa 5 procesów: 20 MB, 14 MB, 18 MB, 8 MB, 8 MB Zalety: brak fragmentacji wew., wydajniejsze wykorzystanie pamięci Wady: fragmentacja zewnętrzna rozwiązaniem problemu fragmentacji zewnętrznej jest upakowanie - co pewien czas system operacyjny przemieszcza tak procesy, aby wolne obszary stanowiły jeden blok w metodzie partycjonowania dynamicznego stosowane są trzy algorytmy rozmieszczenia procesów/partycji: najlepsze dopasowanie (best-fit) - wybierany jest blok najbliższy rozmiarowi procesu w pamięci (najgorsza metoda) pierwsze dopasowanie (first-fit) - wybierany jest pierwszy blok od początku pamięci, w którym może zmieścić się dany proces (najprostsza, najlepsza, najszybsza metoda) kolejne dopasowanie (next-fit) - wybierany jest pierwszy blok, w którym może zmieścić się dany proces, ale jego poszukiwanie rozpoczyna się poniżej miejsca, w którym proces był ostatnio wstawiony Rok akademicki 2014/2015, Wykład nr 7 27/42 Rok akademicki 2014/2015, Wykład nr 7 28/42 Proste stronicowanie Proste stronicowanie pamięć operacyjna podzielona jest na jednakowe bloki o stałym niewielkim rozmiarze nazywane ramkami lub ramkami stron (page frames) dla każdego procesu przechowywana jest tablica strony (page table) zawierająca lokalizację ramki dla każdej strony procesu do tych ramek wstawiane są fragmenty procesu zwane stronami (pages) aby proces mógł zostać uruchomiony wszystkie jego strony muszą znajdować się w pamięci operacyjnej

Rok akademicki 2014/2015, Wykład nr 7 29/42 Rok akademicki 2014/2015, Wykład nr 7 30/42 Proste stronicowanie Proste stronicowanie aby mechanizm stronicowania był wygodny ustala się, że rozmiar strony jest liczbą podniesioną do potęgi drugiej - dzięki temu adres względny oraz adres logiczny (numer strony + jej przesunięcie) są takie same Przykład: zalety: brak fragmentacji zewnętrznej, stronicowanie nie jest widoczne dla programisty wady: niewielki stopień fragmentacji wewnętrznej Pamięć operacyjna 16-bitowy adres logiczny 6 bitów: nr strony (0-63), max. 2 6 = 64 strony 10 bitów: przesunięcie w ramach strony (0-1023), rozmiar strony wynosi: 2 10 = 1024 bajty = 1 kb przesunięcie 645(10) Rok akademicki 2014/2015, Wykład nr 7 31/42 Rok akademicki 2014/2015, Wykład nr 7 32/42 Prosta segmentacja Prosta segmentacja polega na podzieleniu programu i skojarzonych z nim danych na odpowiednią liczbę segmentów o różnej długości ładowanie procesu do pamięci polega na wczytaniu wszystkich jego segmentów do partycji dynamicznych (nie muszą być ciągłe) segmentacja jest widoczna dla programisty i ma na celu wygodniejszą organizację programów i danych adres logiczny wykorzystujący segmentację składa się z dwóch części: numeru segmentu przesunięcia dla każdego procesu określana jest tablica segmentu procesu zawierająca: długość danego segmentu adres początkowy danego segmentu w pamięci operacyjnej Przykład: 16-bitowy adres logiczny 4 bity: nr segmentu (0-15), max. 2 4 = 16 segmentów 12 bitów: przesunięcie w ramach segmentu (0-4095), rozmiar segmentu wynosi: 2 12 = 4096 bajtów = 4 kb

Rok akademicki 2014/2015, Wykład nr 7 33/42 Rok akademicki 2014/2015, Wykład nr 7 34/42 Prosta segmentacja Pamięć wirtualna do zmiany adresu logicznego na fizyczne potrzebne są następujące kroki: z adresu logicznego pobieramy numer segmentu wykorzystując numer segmentu jako indeks tablicy segmentu procesu odczytujemy początkowy fizyczny adres segmentu oraz jego długość porównujemy przesunięcie z adresu logicznego z długością segmentu - jeśli przesunięcie jest większe lub równe długości segmentu to adres jest błędny adres fizyczny jest sumą początkowego fizycznego adresu segmentu oraz przesunięcia pamięć wirtualna umożliwia przechowywanie stron/segmentów wykonywanego procesu w pamięci dodatkowej (na dysku twardym) Co się dzieje, gdy procesor chce odczytać stronę z pamięci dodatkowej? kiedy procesor napotyka na adres logiczny nie znajdujący się w pamięci operacyjnej to generuje przerwanie sygnalizujące błąd w dostępie do pamięci system operacyjny zmienia stan procesu na zablokowany, wstawia do pamięci operacyjnej fragment procesu zawierający adres logiczny, który był przyczyną błędu, a następnie zmienia stan procesu na uruchomiony Dzięki zastosowaniu pamięci wirtualnej: w pamięci operacyjnej może być przechowywanych więcej procesów proces może być większy od całej pamięci operacyjnej Rok akademicki 2014/2015, Wykład nr 7 35/42 Rok akademicki 2014/2015, Wykład nr 7 36/42 Stronicowanie pamięci wirtualnej Stronicowanie pamięci wirtualnej przy zastosowaniu stronicowania, adres wirtualny (logiczny) ma postać: odczytanie strony wymaga translacji adresu wirtualnego na fizyczny Numer strony Przesunięcie mechanizm pamięci wirtualnej bazującej na stronicowaniu wymaga również tablicy stron P - bit określający, czy strona znajduje się w pamięci operacyjnej, jeśli tak, to zapis zawiera numer ramki tej strony M - bit określający, czy zawartość strony skojarzonej z tą tablicą została zmodyfikowana od ostatniego załadowania tej strony do pamięci - jeśli nie, to nie trzeba tej strony zapisywać, gdy ma być ona przeniesiona do pamięci pomocniczej

Rok akademicki 2014/2015, Wykład nr 7 37/42 Rok akademicki 2014/2015, Wykład nr 7 38/42 Segmentacja pamięci wirtualnej Segmentacja pamięci wirtualnej w przypadku segmentacji, adres wirtualny ma postać: Numer segmentu Przesunięcie mechanizm odczytania słowa z pamięci obejmuje translację adresu wirtualnego na fizyczny za pomocą tablicy segmentu mechanizm pamięci wirtualnej wykorzystujący segmentację wymaga tablicy segmentu zawierającej więcej pól P - bit określający, czy segment znajduje się w pamięci operacyjnej M - bit określający, czy zawartość segmentu skojarzonego z tablicą została zmodyfikowana od ostatniego załadowania tego segmentu do pamięci Rok akademicki 2014/2015, Wykład nr 7 39/42 Rok akademicki 2014/2015, Wykład nr 7 40/42 Stronicowanie i segmentacja pamięci wirtualnej Stronicowanie i segmentacja pamięci wirtualnej przestrzeń adresowa użytkownika jest dzielona na dowolną liczbę segmentów według uznania programisty tłumaczenie adresu wirtualnego na adres fizyczny: każdy segment jest dzielony na dowolną liczbę stron o stałym rozmiarze równym długości ramki pamięci operacyjnej z punktu widzenia programisty adres logiczny składa się z numeru segmentu oraz jego przesunięcia Adres wirtualny Numer segmentu Przesunięcie z punktu widzenia systemu, przesunięcie segmentu jest postrzegane jako numer strony oraz przesunięcie strony dla strony wewnątrz określonego segmentu Adres wirtualny Numer segmentu Numer strony Przesunięcie

Rok akademicki 2014/2015, Wykład nr 7 41/42 Rok akademicki 2014/2015, Wykład nr 7 42/42 Stronicowanie i segmentacja pamięci wirtualnej Koniec wykładu nr 7 tłumaczenie adresu wirtualnego na adres fizyczny: z każdym procesem skojarzona jest tablica segmentu oraz kilka tablic stron - po jednej dla każdego segmentu procesu kiedy proces jest uruchomiony, rejestr przechowuje adres początkowy tablicy segmentu dla tego procesu Dziękuję za uwagę! na podstawie numeru segmentu z adresu wirtualnego tworzony jest indeks do tablicy segmentu procesu w celu znalezienia tablicy strony dla tego segmentu następnie numer strony z adresu wirtualnego jest używany do indeksacji tej tablicy strony oraz sprawdzenia odpowiedniego numeru ramki dodając numer ramki i przesunięcie z adresu wirtualnego otrzymujemy adres rzeczywisty (fizyczny)