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

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. systemy plików (NTFS, ext2)

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

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

Sektor. Systemy Operacyjne

System plików przykłady. implementacji

System plików przykłady implementacji

Systemy plików FAT, FAT32, NTFS

dr inż. Jarosław Forenc

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

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

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

16MB - 2GB 2MB - 128MB

dr inŝ. Jarosław Forenc

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

dr inż. Jarosław Forenc

System plików. Definicje:

Zarządzanie pamięcią operacyjną

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

Wbudowane systemy operacyjne

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

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

Architektura komputerów

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

Struktura dysku. Dyski podstawowe i dynamiczne

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

System plików. Warstwowy model systemu plików

Schematy zarzadzania pamięcia

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

Informatyka 2. Wykład nr 6 ( ) Plan wykładu nr 6. Politechnika Białostocka. - Wydział Elektryczny

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

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

System plików Linuksa

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

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

1. Pliki i ich organizacja

System plików warstwa logiczna

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

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

Zarządzanie pamięcią w systemie operacyjnym

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

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

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

Systemy operacyjne III

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

dr inŝ. Jarosław Forenc

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

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

Od programu źródłowego do procesu

Zarządzanie zasobami pamięci

Tworzenie partycji i dysków logicznych

Stronicowanie w systemie pamięci wirtualnej

Charakterystyka systemów plików

WINDOWS NT. Diagram warstw systemu Windows NT

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

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

PROJEKTOWANIE SYSTEMÓW KOMPUTEROWYCH

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

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

Zarządzanie wolną przestrzenią

PAMIĘĆ OPERACYJNA...107

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

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Narzędzie konfiguracji rozruchu

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

Technologie informacyjne (2) Zdzisław Szyjewski

Zarządzanie partycjami

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

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Systemy liczenia. 333= 3*100+3*10+3*1

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

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

Systemy operacyjne System plików

Zaliczenie przedmiotu:

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

ZADANIE nr 4 Sprawdzian z informatyki

PR P E R Z E E Z N E T N A T C A JA C JA KO K RP R O P RA R C A Y C JN Y A JN ACTINA DATA MANAGER

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Zarządzanie wolną przestrzenią

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia

sprowadza się od razu kilka stron!

Mikroinformatyka. Wielozadaniowość

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

HARD DISK MANAGER PORÓWNANIE EDYCJI

Materiały pomocnicze do wykładu: Systemy Operacyjne i Sieci Komputerowe

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

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

Wiadomości i umiejętności

Transkrypt:

Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2008/2009 Wykład nr 7 (21.01.2009)

Rok akademicki 2008/2009, Wykład nr 7 2/48 Plan wykładu nr 7 Wybrane systemy plików: NTFS ext2 Zarządzanie pamięcią operacyjną: partycjonowanie statyczne i dynamiczne proste stronicowanie prosta segmentacja pamięć wirtualna stronicowanie pamięci wirtualnej segmentacja pamięci wirtualnej

Rok akademicki 2008/2009, Wykład nr 7 3/48 NTFS (New Technology File System) Windows NT 3.1 (1993 r.) - wersja 1.0 (pierwsza wersja NTFS) Windows NT 3.51 i Windows NT 4.0 - wersja 1.2 (niektóre źródła podają numer 1.1), znana teŝ jako NTFS 4.0 Windows 2000 - wprowadzenie NTFS 5.0 (nazywany teŝ 3.0), duŝo zmian w stosunku do wcześniejszej wersji Windows XP, Windows Server 2003, Windows Vista - system NTFS 5.1 (3.1) w systemie Windows 2000 obsługę NTFS 5.1 wprowadzono w SP1, zaś w systemie Windows NT 4.0 w SP4 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)

Rok akademicki 2008/2009, Wykład nr 7 4/48 NTFS 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 - kod bootstrap (426 bajtów) znacznik końca Boot Sectora - 55AAH (2 bajty)

Rok akademicki 2008/2009, Wykład nr 7 5/48 NTFS - Struktura BPB i rozszerzonego BPB Bajty 0BH-0CH 0DH 0EH-0FH 10H-12H 13H-14H 15H 16H-17H 18H-19H 1AH-1BH 1CH-1FH 20H-23H 24H-27H 28H-2FH 30H-37H 38H-3FH 40H-43H 44H-47H 48H-4FH 50H-53H Rozmiar 2 1 2 3 2 1 2 2 2 4 4 4 8 8 8 4 4 8 4 Zawartość Rozmiar jednego sektora w bajtach (512 bajtów) Liczba sektorów w jednostce alokacji plików (JAP) Liczba sektorów zarezerwowanych na początku dysku - zawsze 0 Zawsze 0 NieuŜywane w NTFS - zawsze 0 Bajt identyfikacji nośnika (zawsze F8 - dysk twardy) Zawsze 0 Liczba sektorów na ścieŝce Liczba głowic (stron) dysku Liczba sektorów ukrytych NieuŜywane w NTFS NieuŜywane w NTFS Całkowita liczba sektorów Numer klastra logicznego pliku $MFT Numer klastra logicznego pliku $MFTMirr Liczba jednostek alokacji w rekordzie MFT Wielkość indeksu MFT (liczba jednostek alokacji) Numer seryjny woluminu Suma kontrolna

Rok akademicki 2008/2009, Wykład nr 7 6/48 NTFS struktura wolumenu (dysku) NTFS: 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 2008/2009, Wykład nr 7 7/48 NTFS struktura wolumenu (dysku) NTFS: 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 (NTFS 4) lub 26 (NTFS 5) rekordów jest zarezerwowane dla tzw. metaplików

Rok akademicki 2008/2009, Wykład nr 7 8/48 NTFS - Metapliki w MFT (1/2) Plik systemowy Nazwa pliku Rekord MFT Funkcja pliku Główna tablica plików $Mft 0 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. Główna tablica plików 2 $MftMirr 1 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. Plik dziennika (log operacji dyskowych) $LogFile 2 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. Wolumin $Volume 3 Zawiera informacje o woluminie, takie jak jego etykieta, rozmiar i wersja NTFS uŝyta do formatowania dysku. Definicje atrybutów $AttrDef 4 Tabela nazw atrybutów, ich numerów i opisów. Indeks katalogu głównego $ 5 Katalog główny.

Rok akademicki 2008/2009, Wykład nr 7 9/48 NTFS - Metapliki w MFT (2/2) Plik systemowy Nazwa pliku Rekord MFT Funkcja pliku Mapa bitowa klastrów $Bitmap 6 Reprezentacja woluminów, ilustrująca które klastry są zajęte. Jednemu klastrowi odpowiada jeden bit rekordu $Bitmap. Sektor startowy $Boot 7 Zawiera informacje uŝywane podczas instalowania woluminu oraz dodatkowy kod ładujący, uŝywany jeŝeli wolumin jest startowy. Plik błędnych klastrów $BadClus 8 Zawiera listę uszkodzonych klastrów w woluminie. Plik zabezpieczeń $Secure 9 Zawiera unikalne deskryptory zabezpieczeń dla wszystkich plików w woluminie, czyli mówiąc prościej - informacje o prawach dostępu. Tabela wielkich znaków $UpCase 10 SłuŜy do konwersji małych znaków na odpowiadające im wielkie znaki w standardzie Unicode. Plik rozszerzeń NTFS $Extend 11 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ń.

Rok akademicki 2008/2009, Wykład nr 7 10/48 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

Rok akademicki 2008/2009, Wykład nr 7 11/48 NTFS struktura wolumenu (dysku) NTFS: 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 2008/2009, Wykład nr 7 12/48 NTFS - Wybrane atrybuty plików Kod atrybutu Typ atrybutu Numer atrybutu $Standard_Information Informacje standardowe 16 / 0x10 $Attribute_List Lista atrybutów 32 / 0x20 $File_Name Nazwa pliku 48 / 0x30 $Security_Descriptor Deskryptor zabezpieczeń 80 / 0x50 $Data Dane 128 / 0x80 Opis 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 NTFS 5.1 są to takŝe prawa dostępu. 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 NTFS 5.1. Dane pliku. System NTFS 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 2008/2009, Wykład nr 7 13/48 NTFS - Pliki pliki w systemie NTFS są reprezentowane w MFT przez rekord zawierający atrybuty: $Standard_Information $File_Name $Security_Descriptor $Data w przypadku małych plików wszystkie jego atrybuty zapisywane są bezpośrednio w 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 2008/2009, Wykład nr 7 14/48 NTFS - Pliki 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 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

Rok akademicki 2008/2009, Wykład nr 7 15/48 NTFS - Katalogi katalogi reprezentowane są przez rekordy zawierające trzy takie same atrybuty jak pliki: $Standard_Information $File_Name $Security_Descriptor zamiast atrybutu $Data umieszczone są trzy atrybuty przeznaczone do tworzenia list, sortowania oraz lokalizowania plików i podkatalogów $Index_Root $Index_Allocation $Bitmap

Rok akademicki 2008/2009, Wykład nr 7 16/48 ext2 pierwszy system plików w Linuxie: Minix (14-znakowe nazwy plików i maksymalny rozmiar wynoszący 64 MB) system Minix zastąpiono nowym systemem nazwanym rozszerzonym systemem plików - ext (ang. extended file system), a ten, w styczniu 1993 r., systemem ext2 (ang. second extended file system) w systemie ext2 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 2008/2009, Wykład nr 7 17/48 ext2 Boot Sector (blok startowy) przechowuje informacje wykorzystywane przez system operacyjny podczas jego uruchamiania 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

Rok akademicki 2008/2009, Wykład nr 7 18/48 ext2 kaŝda grupa fizyczna bloków zawiera informacje o jednej grupie logicznej, a ponadto pewne informacje o całym systemie plików 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 2008/2009, Wykład nr 7 19/48 ext2 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

Rok akademicki 2008/2009, Wykład nr 7 20/48 ext2 kaŝda grupa fizyczna bloków zawiera informacje o jednej grupie logicznej, a ponadto pewne informacje o całym systemie plików 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 2008/2009, Wykład nr 7 21/48 ext2 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

Rok akademicki 2008/2009, Wykład nr 7 22/48 ext2 - 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

Rok akademicki 2008/2009, Wykład nr 7 23/48 ext2 - 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)

Rok akademicki 2008/2009, Wykład nr 7 24/48 ext2 - i-węzeł /* Structure of an inode on the disk */ struct ext2_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 2008/2009, Wykład nr 7 25/48 ext2 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 ext2_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 2008/2009, Wykład nr 7 26/48 Zarządzanie pamięci cią 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 długoterminowe przechowywanie danych - równieŝ po wyłączeniu komputera (realizowane przez system plików i pamięć dyskową)

Rok akademicki 2008/2009, Wykład nr 7 27/48 Zarządzanie pamięci 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 struktura logiczna struktura fizyczna relokacja

Rok akademicki 2008/2009, Wykład nr 7 28/48 Zarządzanie pamięci cią 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 2008/2009, Wykład nr 7 29/48 Zarządzanie pamięci cią (relokacja) podczas wykonywania programu system operacyjny moŝe przenosić program pomiędzy pamięcią operacyjną a pamięcią pomocniczą (dysk twardy) 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

Rok akademicki 2008/2009, Wykład nr 7 30/48 Zarządzanie pamięci cią (sprzętowa obsługa relokacji) adres logiczny (logical address) - odniesienie do lokalizacji w pamięci niezaleŝne od bieŝącej alokacji danych w pamięci adres względny (relative address) - 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 2008/2009, Wykład nr 7 31/48 Zarządzanie pamięci 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 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

Rok akademicki 2008/2009, Wykład nr 7 32/48 Partycjonowanie statyczne 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 - rozwiązanie: nakładkowanie 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 2008/2009, Wykład nr 7 33/48 Partycjonowanie statyczne metoda polegająca na podziale pamięci operacyjnej na obszary o takim samym lub róŝnym rozmiarze, ale ustalanym podczas generowania systemu 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 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 2008/2009, Wykład nr 7 34/48 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

Rok akademicki 2008/2009, Wykład nr 7 35/48 Partycjonowanie dynamiczne 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 2008/2009, Wykład nr 7 36/48 Proste stronicowanie 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

Rok akademicki 2008/2009, Wykład nr 7 37/48 Proste stronicowanie dla kaŝdego procesu przechowywana jest tablica strony (page table) zawierająca lokalizację ramki dla kaŝdej strony procesu

Rok akademicki 2008/2009, Wykład nr 7 38/48 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: 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 2008/2009, Wykład nr 7 39/48 Proste stronicowanie zalety: brak fragmentacji zewnętrznej, stronicowanie nie jest widoczne dla programisty wady: niewielki stopień fragmentacji wewnętrznej

Rok akademicki 2008/2009, Wykład nr 7 40/48 Prosta segmentacja polega na podzieleniu programu i skojarzonych z nim danych na odpowiednią liczbę segmentów 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 2008/2009, Wykład nr 7 41/48 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

Rok akademicki 2008/2009, Wykład nr 7 42/48 Prosta segmentacja 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 2008/2009, Wykład nr 7 43/48 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: 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 2008/2009, Wykład nr 7 44/48 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 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 2008/2009, Wykład nr 7 45/48 Stronicowanie pamięci wirtualnej przy zastosowaniu stronicowania, adres wirtualny ma postać: 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 2008/2009, Wykład nr 7 46/48 Stronicowanie pamięci wirtualnej odczytanie strony z pamięci wymaga translacji adresu wirtualnego na fizyczny

Rok akademicki 2008/2009, Wykład nr 7 47/48 Segmentacja pamięci wirtualnej w przypadku segmentacji, adres wirtualny ma postać: 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 2008/2009, Wykład nr 7 48/48 Segmentacja pamięci wirtualnej mechanizm odczytania słowa z pamięci obejmuje translację adresu wirtualnego na fizyczny za pomocą tablicy segmentu