dr inŝ. Jarosław Forenc



Podobne dokumenty
dr inż. Jarosław Forenc

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

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

dr inż. Jarosław Forenc

Zarządzanie dyskowymi operacjami we-wy. Zarządzanie pamięcią operacyjną. 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

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

Systemy plików FAT, FAT32, NTFS

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

Sektor. Systemy Operacyjne

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

System plików przykłady. implementacji

dr inż. Jarosław Forenc

System plików przykłady implementacji

16MB - 2GB 2MB - 128MB

Zarządzanie pamięcią operacyjną

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

Zarządzanie pamięcią operacyjną

Architektura komputerów

Schematy zarzadzania pamięcia

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

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

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

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

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

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

Wbudowane systemy operacyjne

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

Struktura dysku. Dyski podstawowe i dynamiczne

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

System plików. Warstwowy model systemu plików

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

Zarządzanie pamięcią w systemie operacyjnym

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

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

System plików Linuksa

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

System plików. Definicje:

Systemy operacyjne III

dr inŝ. Jarosław Forenc

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

System plików warstwa logiczna

1. Pliki i ich organizacja

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

Od programu źródłowego do procesu

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

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

PROJEKTOWANIE SYSTEMÓW KOMPUTEROWYCH

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

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

Stronicowanie w systemie pamięci wirtualnej

Tworzenie partycji i dysków logicznych

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

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

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

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

WINDOWS NT. Diagram warstw systemu Windows NT

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

Narzędzie konfiguracji rozruchu

Charakterystyka systemów plików

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

Podstawowe wiadomości o systemach plików.

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

Zaliczenie przedmiotu:

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

Technologie informacyjne (2) Zdzisław Szyjewski

Zarządzanie wolną przestrzenią

PAMIĘĆ OPERACYJNA...107

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

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

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

Systemy Operacyjne Pamięć wirtualna cz. 2

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

Mikroinformatyka. Wielozadaniowość

Zarządzanie partycjami

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

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

Wiadomości i umiejętności

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

ZADANIE nr 4 Sprawdzian z informatyki

1. Rola pamięci operacyjnej

NTFS omówienie systemu plików. autor: Julian Krzemiński Źródła:

Test z systemów operacyjnych

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

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

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

Systemy operacyjne System plików

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

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

Architektura Komputerów

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Transkrypt:

Rok akademicki 2009/2010, Wykład nr 6 2/52 Plan wykładu nr 6 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2009/2010 Wykład nr 6 (11.12.2009) Systemy plików: Zarządzanie pamięcią operacyjną: partycjonowanie statyczne i dynamiczne proste stronicowanie prosta segmentacja pamięć wirtualna stronicowanie pamięci wirtualnej segmentacja pamięci wirtualnej stronicowanie i segmentacja pamięci wirtualnej dr inż. Jarosław Forenc Rok akademicki 2009/2010, Wykład nr 6 3/52 Rok akademicki 2009/2010, Wykład nr 6 4/52 (New Technology File System) wersja 1.0 (połowa 1993 r.) - Windows NT 3.1 wersja 1.1 (jesień 1994 r.) - Windows NT 3.5 wersja 1.2 ( 4) - Windows NT 3.51 (1995 r.), Windows NT 4.0 (1996 r.) wersja 3.0 ( 5) - Windows 2000, dużo zmian w stosunku do poprzedniej wersji wersja 3.1 ( 5.1) - Windows XP, Server 2003, Vista, Windows 7 w systemie Windows 2000 obsługę 3.1 wprowadzono w SP1, zaś w systemie Windows NT 4.0 w SP4 teoretyczny rozmiar partycji 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) : 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 - kod bootstrap (426 bajtów) znacznik końca Boot Sectora - 55AAH (2 bajty)

Rok akademicki 2009/2010, Wykład nr 6 5/52 Rok akademicki 2009/2010, Wykład nr 6 6/52 - Struktura BPB i rozszerzonego BPB Bajty Rozmiar Zawartość 0BH-0CH 2 Rozmiar jednego sektora w bajtach (512 bajtów) 0DH 1 Liczba sektorów w jednostce alokacji plików (JAP) 0EH-0FH 2 Liczba sektorów zarezerwowanych na początku dysku - zawsze 0 10H-12H 3 Zawsze 0 13H-14H 2 Nieużywane w - zawsze 0 15H 1 Bajt identyfikacji nośnika (zawsze F8 - dysk twardy) 16H-17H 2 Zawsze 0 18H-19H 2 Liczba sektorów na ścieżce 1AH-1BH 2 Liczba głowic (stron) dysku 1CH-1FH 4 Liczba sektorów ukrytych 20H-23H 4 Nieużywane w 24H-27H 4 Nieużywane w 28H-2FH 8 Całkowita liczba sektorów 30H-37H 8 Numer klastra logicznego pliku $MFT 38H-3FH 8 Numer klastra logicznego pliku $MFTMirr 40H-43H 4 Liczba jednostek alokacji w rekordzie MFT 44H-47H 4 Wielkość indeksu MFT (liczba jednostek alokacji) 48H-4FH 8 Numer seryjny woluminu 50H-53H 4 Suma kontrolna struktura wolumenu (dysku) : BIOS Parameter Block (BPB) zawiera dane o systemie plików i geometrii dysku, pozwalające kodowi wykonywalnemu zawartemu w sektorze startowym na: odnalezienie pliku NTLDR załadowanie go do pamięci operacyjnej przekazanie mu kontroli celem uruchomienia systemu Windows rozszerzony BPB umożliwia odnalezienie MFT - jeśli uszkodzeniu ulegną klastry należące do MFT, to mogą one zostać przeniesione w inne miejsce dysku, a informacja o tym zostanie zapisana w rozszerzonym MFT Rok akademicki 2009/2010, Wykład nr 6 7/52 Rok akademicki 2009/2010, Wykład nr 6 8/52 - Metapliki w MFT (1/2) struktura wolumenu (dysku) : MFT (Master File Table) jest specjalnym plikiem, niewidoczny dla użytkownika, pełniącym rolę tablicy alokacji plików w systemie FAT - są w nim zapisane wszystkie dane niezbędne do odczytania pliku z dysku MFT jest hierarchiczną, obiektową bazą danych, składającą 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 ( 4) lub 26 ( 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. 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, 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 użyta do formatowania dysku. $AttrDef 4 Tabela nazw atrybutów, ich numerów i opisów. $ 5 Katalog główny.

Rok akademicki 2009/2010, Wykład nr 6 9/52 Rok akademicki 2009/2010, Wykład nr 6 10/52 - Metapliki w MFT (2/2) Plik systemowy Mapa bitowa klastrów Nazwa pliku Rekord MFT $Bitmap 6 Sektor startowy $Boot 7 Plik błędnych klastrów Plik zabezpieczeń Tabela wielkich znaków Plik rozszerzeń Funkcja pliku Reprezentacja woluminów, ilustrująca które klastry są zajęte. Jednemu klastrowi odpowiada jeden bit rekordu $Bitmap. Zawiera informacje używane podczas instalowania woluminu oraz dodatkowy kod ładujący, używany jeżeli wolumin jest startowy. $BadClus 8 Zawiera listę uszkodzonych klastrów w woluminie. $Secure 9 $UpCase 10 $Extend 11 Zawiera unikalne deskryptory zabezpieczeń dla wszystkich plików w woluminie, czyli mówiąc prościej - informacje o prawach dostępu. Służy do konwersji małych znaków na odpowiadające im wielkie znaki w standardzie Unicode. Wykorzystywany przez różnorodne opcjonalne rozszerzenia, takie jak przydziały, dane punktów specjalnych i identyfikatory obiektów. 12 15 Zarezerwowane dla przyszłych zastosowań. struktura wolumenu (dysku) : 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 Rok akademicki 2009/2010, Wykład nr 6 11/52 Rok akademicki 2009/2010, Wykład nr 6 12/52 - Wybrane atrybuty plików struktura wolumenu (dysku) : Kod atrybutu Typ atrybutu Numer atrybutu Opis $Standard_Information Informacje standardowe 16 / 0x10 Zawiera atrybuty pliku (R, S, A, H), liczniki aktualizacji i połączeń oraz znaczniki określające datę i czas utworzenia pliku, modyfikacji danych, modyfikacji atrybutów i ostatniego dostępu do pliku. W 5.1 są to także prawa dostępu. system 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 $Attribute_List Lista atrybutów 32 / 0x20 $File_Name Nazwa pliku 48 / 0x30 $Security_Descriptor Deskryptor zabezpieczeń 80 / 0x50 $Data Dane 128 / 0x80 Zawiera lokalizację wszystkich rekordów atrybutów, które nie mieszczą się w rekordzie MFT. Atrybut powtarzalny dla długich i skróconych nazw plików. Długa nazwa pliku może składać się z maksymalnie 255 znaków w standardzie Unicode. Skrócona nazwa pliku jest zapisywana w formacie 8.3 i niewrażliwa na wielkość znaków. Identyfikuje właściciela pliku oraz użytkowników, którzy mogą z danego pliku korzystać. Usunięty w 5.1. Dane pliku. System zezwala na występowanie wielu atrybutów danych dla jednego pliku: jeden nienazwany atrybut danych + jeden lub więcej nazwanych atrybutów danych, z których każdy posiada indywidualną składnię. Atrybut $Data jest zmieniany podczas kompresji i szyfrowania.

Rok akademicki 2009/2010, Wykład nr 6 13/52 Rok akademicki 2009/2010, Wykład nr 6 14/52 - Pliki - Pliki pliki w systemie 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 2009/2010, Wykład nr 6 15/52 Rok akademicki 2009/2010, Wykład nr 6 16/52 - 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 2009/2010, Wykład nr 6 17/52 Rok akademicki 2009/2010, Wykład nr 6 18/52 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 2009/2010, Wykład nr 6 19/52 Rok akademicki 2009/2010, Wykład nr 6 20/52 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 podczas inicjalizowania systemu, do pamięci wczytywane są deskryptory grup logicznych z pierwszej grupy fizycznych bloków dyskowych jeśli nie występują sytuacje wyjątkowe to system nie korzysta z bloków z deskryptorami i z bloku identyfikacyjnego z pozostałych grup fizycznych

Rok akademicki 2009/2010, Wykład nr 6 21/52 Rok akademicki 2009/2010, Wykład nr 6 22/52 - i-węzeł każda grupa fizyczna bloków zawiera informacje o jednej grupie logicznej, a ponadto pewne informacje o całym systemie plików 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 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 Rok akademicki 2009/2010, Wykład nr 6 23/52 Rok akademicki 2009/2010, Wykład nr 6 24/52 - i-węzeł - i-węzeł 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) /* 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 */

Rok akademicki 2009/2010, Wykład nr 6 25/52 Rok akademicki 2009/2010, Wykład nr 6 26/52 Zarządzanie pamięcią 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) podsystem zarządzania pamięcią powinien zapewnić: izolację procesu - system operacyjny nie może pozwolić na nadpisywanie obszarów pamięci jednych procesów przez inne procesy automatyczną alokację oraz zarządzanie - alokacja pamięci powinna być przezroczysta dla programistów obsługę modularnego oprogramowania - programiści powinni mieć możliwość definiowania modułów programów oraz ich dynamicznego tworzenia, usuwania i zmieniania rozmiaru zabezpieczenia oraz ochronę danych 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 */ } długoterminowe przechowywanie danych - również po wyłączeniu komputera (realizowane przez system plików i pamięć dyskową) Rok akademicki 2009/2010, Wykład nr 6 27/52 Rok akademicki 2009/2010, Wykład nr 6 28/52 Zarządzanie pamięcią Zarządzanie pamięcią w systemie komputerowym może być uruchomionych jednocześnie wiele programów (wiele procesów) rozmiar pamięci operacyjnej jest ograniczony i niewystarczający, aby przechowywać wszystkie programy oraz struktury danych potrzebne aktywnym procesom oraz systemowi operacyjnemu z powyższego powodu 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ą system zarządzania pamięcią musi sprostać pięciu wymogom: ochrona pamięci Współdzielenie odpowiednia struktura logiczna odpowiednia struktura fizyczna relokacja Ochrona pamięci: każdy proces powinien być chroniony przed niepożądanymi operacjami zapisu/odczytu innych procesów odwołanie do pamięci wygenerowane przez proces muszą być sprawdzane w trakcie działania procesu i wykonywane przez procesor Współdzielenie pamięci: mechanizmy ochrony muszą umożliwić dostęp kilku procesów do tego samego obszaru pamięci operacyjnej, np. kilka kopii programu korzysta z tego samego kodu Struktura logiczna: pamięć komputerowa oraz pomocnicza mają zazwyczaj postać liniową, co niekoniecznie jest zgodne ze strukturą programów, gdyż programy mogą być podzielone na moduły Struktura fizyczna: pamięć komputerowa składa się z m.in. dwóch poziomów: pamięci operacyjnej (bardzo szybka, wysoki koszt, przechowuje aktualnie używane programy i dane) oraz pamięci pomocniczej (wolniejsza, tańsza, trwale przechowuje programy i dane)

Rok akademicki 2009/2010, Wykład nr 6 29/52 Rok akademicki 2009/2010, Wykład nr 6 30/52 Zarządzanie pamięcią (relokacja) Zarządzanie pamięcią (sprzętowa obsługa relokacji) podczas wykonywania programu system operacyjny może przenosić program pomiędzy pamięcią operacyjną a pamięcią pomocniczą (dysk twardy) adres logiczny (logical address) - odniesienie do lokalizacji w pamięci niezależne od bieżącej alokacji danych w pamięci program przenoszony z dysku za każdym razem umieszczany jest w innym obszarze pamięci operacyjnej, dlatego konieczna jest relokacja procesu do tego obszaru pamięci w uproszczeniu proces w pamięci komputera ma składnię pokazaną na rysunku po załadowaniu procesu do pamięci system operacyjny zna położenie: bloku kontrolnego procesu, punktu wejścia do procesu oraz stosu w przypadku rozgałęzień rozkazów oraz odwołań do danych, system operacyjny oraz procesor muszą konwertować odwołania do pamięci znalezione w kodzie programu na rzeczywiste adresy pamięci fizycznej adres względny (relative address) - szczególny przypadek adresu logicznego, adres logiczny wyrażony jako lokalizacja względna wobec jakiegoś znanego punktu (zazwyczaj wartości w rejestrze) adres fizyczny (physical address) - rzeczywista lokalizacja w pamięci operacyjnej adres bezwzględny powstaje poprzez sumowanie adresu względnego i wartości z rejestru bazowego jeśli adres bezwzględny mieści się wewnątrz obszaru programu, to rozkaz może być wykonany, w przeciwnym wypadku generowane jest przerwanie z informacją o błędzie Rok akademicki 2009/2010, Wykład nr 6 31/52 Rok akademicki 2009/2010, Wykład nr 6 32/52 Zarządzanie pamięcią Partycjonowanie statyczne w nowoczesnych wieloprogramowych systemach operacyjnych zarządzanie pamięcią opiera się na bardzo zaawansowanych schematach nazywanych pamięcią wirtualną pamięć wirtualna bazuje na wykorzystaniu jednego lub obu podstawowych metod: segmentacji i stronicowania 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 metoda polegająca na podziale pamięci operacyjnej na obszary o takim samym lub różnym rozmiarze, ale 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 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

Rok akademicki 2009/2010, Wykład nr 6 33/52 Rok akademicki 2009/2010, Wykład nr 6 34/52 Partycjonowanie statyczne Partycjonowanie dynamiczne metoda polegająca na podziale pamięci operacyjnej na obszary o takim samym lub różnym rozmiarze, ale ustalanym podczas generowania systemu partycje są tworzone dynamicznie w ten sposób, że każdy proces jest ładowany do partycji o rozmiarze równym rozmiarowi procesu 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 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 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 2009/2010, Wykład nr 6 35/52 Rok akademicki 2009/2010, Wykład nr 6 36/52 Partycjonowanie dynamiczne Proste stronicowanie 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) pamięć operacyjna podzielona jest na jednakowe bloki o stałym niewielkim rozmiarze nazywane ramkami lub ramkami stron (page frames) 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 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 2009/2010, Wykład nr 6 37/52 Rok akademicki 2009/2010, Wykład nr 6 38/52 Proste stronicowanie Proste stronicowanie dla każdego procesu przechowywana jest tablica strony (page table) zawierająca lokalizację ramki dla każdej strony procesu 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: 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 Rok akademicki 2009/2010, Wykład nr 6 39/52 Rok akademicki 2009/2010, Wykład nr 6 40/52 Proste stronicowanie Prosta segmentacja zalety: brak fragmentacji zewnętrznej, stronicowanie nie jest widoczne dla programisty polega na podzieleniu programu i skojarzonych z nim danych na odpowiednią liczbę segmentów wady: niewielki stopień fragmentacji wewnętrznej segmenty mogą mieć różną długość, ale określony jest ich maksymalny rozmiar proces jest ładowany do pamięci poprzez wczytanie wszystkich jego segmentów do partycji dynamicznych, które nie muszą być partycjami ciągłymi segmentacja jest widoczna dla programisty i ma na celu wygodniejszą organizację programów i danych (programista decyduje o wielkości segmentu) 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

Rok akademicki 2009/2010, Wykład nr 6 41/52 Rok akademicki 2009/2010, Wykład nr 6 42/52 Prosta segmentacja Prosta segmentacja 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 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 Rok akademicki 2009/2010, Wykład nr 6 43/52 Rok akademicki 2009/2010, Wykład nr 6 44/52 Pamięć wirtualna pamięć wirtualna umożliwia przechowywanie stron/segmentów wykonywanego procesu w pamięci dodatkowej - pomocniczej (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: Pamięć wirtualna w przypadku stronicowania i segmentacji pamięci wirtualnej nie wszystkie strony/segmenty procesu muszą znajdować się w pamięci operacyjnej, aby proces mógł być uruchomiony - strony/segmenty mogą być odczytywane w miarę potrzeby odczytanie strony/segmentu i przeniesienie do pamięci operacyjnej może wymagać przeniesienia innej strony/segmentu do pamięci pomocniczej jeśli będzie dotyczyć to fragmentu, który miał być właśnie użyty, to będzie on musiał zostać przeniesiony z powrotem do pamięci operacyjnej zbyt częste powtarzanie takich operacji prowadzi do tzw. migotania - system operacyjny przeznacza większość czasu procesora na realizację operacji wymiany zamiast na wykonywanie rozkazów w pamięci operacyjnej może być przechowywanych więcej procesów proces może być większy od całej pamięci operacyjnej aby mechanizm pamięci wirtualnej był wydajny potrzebne są dwa składniki: wsparcie sprzętowe stronicowania i/lub segmentacji umieszczenie w systemie operacyjnym oprogramowania zarządzającego przenoszeniem stron/segmentów pomiędzy pamięcią operacyjną a pomocniczą

Rok akademicki 2009/2010, Wykład nr 6 45/52 Rok akademicki 2009/2010, Wykład nr 6 46/52 Stronicowanie pamięci wirtualnej Stronicowanie pamięci wirtualnej przy zastosowaniu stronicowania, adres wirtualny (logiczny) ma postać: odczytanie strony z pamięci wymaga translacji adresu wirtualnego na fizyczny Numer strony Przesunięcie mechanizm pamięci wirtualnej bazującej na stronicowaniu wymaga również tablicy stron, ale zapisy do tej tablicy są bardziej złożone niż w przypadku prostego stronicowania 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 2009/2010, Wykład nr 6 47/52 Rok akademicki 2009/2010, Wykład nr 6 48/52 Segmentacja pamięci wirtualnej Segmentacja pamięci wirtualnej w przypadku segmentacji, adres wirtualny ma postać: 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 2009/2010, Wykład nr 6 49/52 Rok akademicki 2009/2010, Wykład nr 6 50/52 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 2009/2010, Wykład nr 6 51/52 Rok akademicki 2009/2010, Wykład nr 6 52/52 Stronicowanie i segmentacja pamięci wirtualnej Koniec wykładu nr 6 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)