Zarządzanie pamięcią w systemie operacyjnym



Podobne dokumenty
Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

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

Od programu źródłowego do procesu

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

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

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

Zarządzanie zasobami pamięci

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

Schematy zarzadzania pamięcia

Technologie informacyjne (2) Zdzisław Szyjewski

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Systemy operacyjne III

Architektura komputerów

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

dr inż. Jarosław Forenc

Architektura komputerów

Przed wykonaniem program musi być pobrany z dysku i. Tam działa a jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z

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

System plików. Warstwowy model systemu plików

Systemy Operacyjne Pamięć wirtualna cz. 2

Sprzętowe wspomaganie pamięci wirtualnej

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Zarz arz dzanie pam dzanie ięci ę ą

ARCHITEKTURA PROCESORA,

Stronicowanie w systemie pamięci wirtualnej

Systemy Operacyjne Zarządzanie pamięcią operacyjną

Mikroprocesory rodziny INTEL 80x86

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Programowanie współbieżne Wykład 2. Iwona Kochańska

Od programu źródłowego do procesu

Zarządzanie pamięcią. Zarządzanie pamięcią. Podstawy. Podsystem zarządzania pamięcią. Zadania podsystemu: W systemie wielozadaniowym:

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Zarz arz dzanie pam dzanie ięci ę ą

Zarządzanie pamięcią operacyjną i pamięć wirtualna

Organizacja typowego mikroprocesora

Celem wykładu jest przedstawienie podejść do zarządzania jednym z kluczowych zasobów systemu komputerowego pamięcią operacyjną. Ponieważ zarządzanie

WYKŁAD. Zarządzanie pamięcią operacyjną

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

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

Pamięć wirtualna. A gdyby tak w pamięci przebywała tylko ta część programu, która jest aktualnie wykonywana?

Struktura i działanie jednostki centralnej

Podstawy. Podsystem zarządzania pamięcią - zadania: Wiązanie (binding) rozkazów i danych z adresami pamięci. W systemie wielozadaniowym:

Nakładki. Kod przebiegu 2: 80 kb Tablica symboli: 20 kb wspólne podprogramy: 30 kb Razem: 200 kb

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

Architektura komputerów

Mikroinformatyka. Tryb wirtualny

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

4. Procesy pojęcia podstawowe

Architektura komputerów

Mikroprocesor Operacje wejścia / wyjścia

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

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

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Budowa systemów komputerowych

Hierarchia pamięci w systemie komputerowym

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

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

Logiczny model komputera i działanie procesora. Część 1.

Programowanie w asemblerze Środowiska 64-bitowe

4. Procesy pojęcia podstawowe

Zarz¹dzanie pamiêci¹

Programowanie Niskopoziomowe

Wybrane zagadnienia elektroniki współczesnej

1.1 Definicja procesu

Systemy Operacyjne Pamięć wirtualna cz. 1

Mikroinformatyka. Wielozadaniowość

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Współpraca procesora ColdFire z pamięcią

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Podstawowe zagadnienia informatyki

Działanie systemu operacyjnego

LEKCJA TEMAT: Zasada działania komputera.

Architektura systemów informatycznych

Struktura systemów komputerowych

Działanie systemu operacyjnego

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

Materiały pomocnicze 1

Rys. 1. Podłączenie cache do procesora.

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

Działanie systemu operacyjnego

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

UKŁADY MIKROPROGRAMOWALNE

Budowa i zasada działania komputera. dr Artur Bartoszewski

Architektura systemu komputerowego

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

System pamięci. Pamięć wirtualna

Podstawy programowania w języku C++

Transkrypt:

Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej pamięci, symulowanie pamięci fizycznej w urządzeniach pamięci masowej (pamięć wirtualna). Pamięć operacyjna to tablica tzw. słów identyfikowanych ich adresem. Adres fizyczny odpowiada poziomowi dostępu do pamięci fizycznej (adresowanie modułów pamięci fizycznej) Adres logiczny adres, którym posługujemy się w programie Adres liniowy adres w przestrzeni adresowej widzianej przez system operacyjny Sekwencja przekształceń: Adr. logiczny -> Adr.liniowy -> Adr. fizyczny Obszary adresowane przez program użytkownika: Obszar kodu, Obszar danych, Obszar stosu, Obszar zmiennych dynamicznych Przestrzeń adresów logicznych zaczyna się zwykle od 0 i kończy na rozmiarze pamięci aktualnie przydzielonej programowi. Moduł ładowalny zawsze adresuje te same pozycje przestrzeni logicznej niezależnie od faktycznego położenia w obszarze liniowym. Mówimy wówczas o relokowalnym module wykonywalnym.

Przekształcenie adresu logicznego w fizyczny zachodzi na poziomie sprzętu z wykorzystaniem tzw. rejestru bazowego.

rejestr bazowy zawiera adres przestrzeni liniowej odpowiadający pierwszemu słowu przydzielonemu programowi. Ochrona pamięci zapewniona jest przez sprzętowe porównanie adresu logicznego z zawartością rejestru granicznego.

Przydział pamięci procesom wykonywanym W wyniku wielokrotnych przydziałów dochodzi do segmentacji liniowej przestrzeni pamięci. Powstają trudne do wykorzystania dziury. Taktyki przydziału obszaru dla nowego procesu: pierwszy wystarczający, najmniejszy z większych, największy. Fragmentacja zjawisko polegające na powstawaniu wielu niewielkich wolnych obszarów pamięci. Pomimo istnienia wystarczającej ilości wolnej pamięci nie można zrealizować przydziału większego bloku pamięci dla nowo tworzonego procesu. Aby uniknąć fragmentacji stosuje się relokowanie modułów w pamięci. Relokacja wymaga:

przepisania obszarów w pamięci operacyjnej, modyfikacji zawartości rejestrów bazowych. Operacja przepisywania bloków w pamięci jest czasochłonna. Dlatego też stosuje sie technikę zwaną stronnicowaniem pamięci. Stronnicowanie jest wspomagane sprzętowo na poziomie procesora. Przestrzeń adresowa pamięci fizycznej i liniowej podzielone są na bloki o stałej długości zwane stronami (np. w procesorach Intel 80x86 i Pentium rozmiar strony wynosi 4kb). Adres liniowy dzielony jest na dwie części: część starsza wyznacza numer strony w liniowej przestrzeni adresowej, część młodsza wyznacza przesunięcie względem początku strony. Istnieje tablica stron, która dla strony o określonym numerze w przestrzeni liniowej określa jej położenie (nr strony) w przestrzeni adresowej pamięci fizycznej.

Procesom przydzielana jest pamięć będąca wielokrotnością rozmiaru strony (problem tzw. fragmentacji wewnętrznej). Nie ma problemu z koniecznością przemieszczania modułów wykonywalnych w pamięci wystarcza tylko zmiana zapisu w tablicy stron przydzielonych programowi.

Pełna tablica stron może zajmować wiele miejsca i dlatego przechowywana jest w określonej lokalizacji pamięci fizycznej. Jednak dla przyspieszenia operacji dostępu do pamięci fizycznej część tablicy stron buforowana jest w szybkich rejestrach procesora tworzących pamięć asocjacyjna (np w Intel Pentium- 32 ostatnio wykorzystywane strony).

W przypadku gdy rozmiar pamięci fizycznej jest mniejszy niż rozmiar pamięci liniowej zachodzi konieczność nadzorowania i zarządzania dostępnością strony. Wykorzystuje się do tego tzw. bit poprawności.

Segmentacja podział obszaru przydzielonego procesowi na rozłączne fragmenty w obszarze pamięci liniowej. Deskryptory segmentów przechowywane są w tablicy deskryptorów. Tablica deskryptorów znajduje się w pamięci operacyjnej. Deskryptory mogą być lokalne (dla segmentów będących własnością procesu) lub globalne (dla segmentów dzielonych pomiędzy procesami). Adres logiczny jest parą: numer segmentu, przemieszczenie względem początku segmentu W przeciwieństwie do stron segmenty mogą być różnej długości. Zarządzanie pamięcią w architekturze Intel IA-32 Wykorzystywane są obydwie koncepcje segmentacji i stronnicowania. Adres logiczny jest parą: selektor (16 bitów) przesunięcie wewnątrz segmentu (32 bity). Struktura selektora: numer selektora w tablicy deskryptorów - 13 bitów wybór tablicy deskryptorów 1 bit dane o ochronie segmentu 3 bity Selektor zawiera: adres bazowy segmentu w przestrzeni liniowej, długość segmentu informacje o typie, użyciu. W dowolnym momencie pracy procesu dostępny jest 6 segmentów. Ich selektory znajdują się w 6 rejestrach: 1 dla kodu, 1 dla stosu, 4 dla danych. Z rejestrami tymi stowarzyszone są ukryte rejestry zawierające odpowiednie selektory z tablicy selektorów.

Pamięć wirtualna Umożliwia symulowanie bardzo dużej pamięci liniowej przy niewielkiej objętości pamięci fizycznej. Tylko niewielka część stron pamięci liniowej znajduje się w danej chwili w pamięci fizycznej. Sprzęt sprawdza czy adres liniowy do którego odwołuje się wykonywany rozkaz znajduje się na stronie obecnej w pamięci. Jeśli nie przerywa

wykonanie programu i przekazuje sterowanie do SO, który dokonuje wymiany stron. Tablica stron jest zwykle elementem bloku kontrolnego procesu. W zależności od przyjętej koncepcji i typu procesu SO może dopuszczać przydzielanie dowolnej liczby stron pamięci fizycznej procesowi lub nakładać na tę ilość ograniczenia (aby np. zapobiegać wywłaszczaniu z pamięci fizycznej innych procesów w szczególności systemowych) Istnieją dwie główne koncepcje przydziału stron fizycznych procesowi sprowadzanemu do pamięci liniowej: o załadowanie możliwie dużej liczby stron uzywanych przez startujący proces (rys. poniżej) rzadko stosowana o sprowadzanie stron na życzenie gdy nastąpi odwołanie do nich.

Wymiana stron w pamięci jest kosztowna. SO musi zapewnić odpowiednie zarządzanie pamięcią wirtualną minimalizujące koszty wymiany stron.