Zarządzanie pamięcią operacyjną

background image

Szymon Kuczaj

background image

Pamięć jest zasobem służący do
przechowywania danych i programów.

Z punktu widzenia systemu pamięć jest
zasobem

o strukturze hierarchicznej (począwszy od
rejestrów procesora, przez pamięć

podręczną,

pamięć główną, skończywszy na pamięci
masowej), w której na wyższym poziomie
przechowywane są dane, stanowiące

fragment

zawartości poziomu niższego.

Szymon Kuczaj

background image

Szymon Kuczaj

Pamięć I rzędu:

•rejestry

•Pamięć podręczna

•pamięć główna

Pamięć II rzędu:

•dysk magnetyczny

•taśmy dyski
optyczne

background image

Podział stały:

partycje o równym rozmiarze,

partycje o różnych rozmiarach

Podział dynamiczny.
Podział na bloki bliźniacze
(zwany też metodą sąsiedzkich stert).

Szymon Kuczaj

background image

Podział pamięci na stałe obszary (strefy,
partycje),których rozmiar i położenie
ustalane są na etapie konfiguracji systemu.

Przydział całego obszaru o rozmiarze
większym lub równym zapotrzebowaniu,
określonym w żądaniu.

Zalety: łatwość implementacji i zarządzania.

Wady: słaba efektywność wykorzystania
pamięci (fragmentacja wewnętrzna,
ograniczona odgórnie liczba jednocześnie
przydzielonych partycji).

Szymon Kuczaj

background image

Szymon Kuczaj

background image

partycje o równym rozmiarze

problem zbyt małych partycji

Partycje o różnych rozmiarach

Szymon Kuczaj

background image

Podział pamięci tworzony jest w czasie

pracy systemu stosownie do żądań

procesów.

Proces ładowany jest w obszar o

rozmiarze dosyć dokładnie

odpowiadającym jego wymaganiom.

Zalety:

lepsze wykorzystanie pamięci

(brak fragmentacji wewnętrznej).

Wady:

skomplikowane zarządzanie,

wynikające z konieczności utrzymywania

odpowiednich struktur danych w celu

identyfikacji obszarów zajętych oraz

wolnych.

Szymon Kuczaj

background image

Tworzenie obrazu:

– Kompilacja
– Konsolidacja
– Ładowanie kodu

• Relokacja

• Ochrona

• Współdzielenie

Szymon Kuczaj

background image

W wyniku translacji (kompilacja,
asemblacja) powstaje przemieszczalny
moduł wynikowy (relocatable object
module), w którym wszystkie adresy
liczone są względem adresu początku
modułu.

Gdyby program składał się z jednego
modułu, a jego docelowa lokalizacja w
pamięci była z góry znana, na etapie
translacji mogłyby zostać
wygenerowane adresy fizyczne.

Szymon Kuczaj

background image

Efektywność wykorzystania pamięci:

współdzielenie kodu programu,

współdzielenie kodu funkcji
bibliotecznych

Kooperacja procesów:

synchronizacja działań procesów,

komunikacja pomiędzy procesami
(współdzielenie danych).

Szymon Kuczaj

background image

Weryfikacja poprawności adresu pod
kątem zakresu dopuszczalności.

Weryfikacja praw dostępu:

– prawa zapisu,
– prawa odczytu,
– prawa wykonania.

Szymon Kuczaj

background image

Arbitralny podział pamięci fizycznej na ramki,

w któreladowane są odpowiednie strony

obrazu procesu.

Podział logicznej przestrzeni adresowej na

strony o takim samym rozmiarze, jak ramki w

pamięci fizycznej.

Zalety:

– brak problemu fragmentacji zewnętrznej,
– wspomaganie dla współdzielenia i ochrony

pamięci.

Wady:

– narzut czasowy przy transformacji adresu,
– narzut pamięciowy (na potrzeby tablicy stron),
– fragmentacja wewnętrzna (niewielka).

Szymon Kuczaj

background image

technika pamięci wirtualnej albo logicznej

(virtual/logical memory) pozwala, po

zaimplementowaniu w komputerze i jego

systemie operacyjnym, na wykorzystywanie

wielkich obszarow pamięci, większych od pamięci

fizycznej to pozornie paradoksalne zachowanie

się jest możliwe dzięki temu, że system mapuje

wirtualne adresy wykorzystywane przez

programistę w rzeczywiste adresy sprzętowe,

wykorzystując urządzenia o wielkiej pojemności,

takie jak dyski magnetyczne na pierwszy rzut oka

może się więc wydawać, że system udostępnia

więcej pamięci niż jej sam posiada przełączanie

(swapping) pomiędzy aktywną pamięcią (RAM) i

dyskiem lub innym urządzeniem, następuje w

porcjach nazywanych stronami (pages) o

rozmiarach od 1kB do wielu MB

Szymon Kuczaj

background image

wieloprogramowość (multiprogramming)
jest
szczątkową postacią przetwarzania
równoległego (parallel processing), czyli
jednoczesnego
uruchomienia wielu
programów na maszynie
jednoprocesorowej; ponieważ jednak
maszyna jest jednoprocesorowa, nie ma
mowy o naprawdę równoczesnym
przetwarzaniu, lecz jedynie o przełączaniu
procesora pomiędzy programami

Szymon Kuczaj

background image

ponadto programista, mając do czynienia z

utworzoną w technice pamięci wirtualnej pamięcią

logiczną o jednolitej i czytelnej strukturze, nie musi

tracić czasu na borykanie się z ograniczeniami

związanymi z akcydentalną strukturą pamięci

Fizycznej jak wspomniano, na pierwszy rzut oka

wydaje się nieuniknione umieszczenie

wykonywanego kodu w pamięci fizycznej - można na

przykład umieścić tam (o ile się zmieści) całą

logiczną przestrzeń adresową co jednak zrobić, jeśli

proces jest większy od dostępnych zasobow RAM?

jednym ze sposobow na to, aby proces mogł być

większy od przydzielonej mu pamięci, jest technika

nakładek (overlays) nakładkowanie polega na

przechowywaniu w pamięci tylko stale potrzebnych

rozkazow i danych; inne rozkazy wprowadzane są

tylko w razie potrzeby a następnie usuwane, gdy

okażą się (być może tylko chwilowo) zbyteczne

Szymon Kuczaj

background image

sposobem lepszego wykorzystania pamięci

jest ładowanie dynamiczne(dynamic loading)

podprogram jest tym razem wprowadzany do

pamięci dopiero wówczas, gdy zostanie

wywołany (podprogramy w formie

przemieszczalnej są przechowywane na

dysku) ładowanie dynamiczne, podobnie jak

nakładkowanie, nie wymaga specjalnego

wsparcia SO, oprocz być może dostarczania

procedur bibliotecznych do wykonania

zadania odpowiedni plan programu wykonuje

użytkownik/programista zarowno

nakładkowanie jak i ładowanie dynamiczne

pozwalają w zasadzie wykonywać programy

większe od rozmiaru pamięci fizycznej, jednak

kosztem dodatkowej pracy użytkownika

Szymon Kuczaj

background image

wspomnieliśmy przy okazji omawiania

nakładek, że nie cały program musi być w

pamięci w tym samym czasie zwykle tylko

część programu wymaga przebywania w

pamięci podczas wykonywania; oszczędzać

można miejsce między innymi dzięki temu,

że:

program może używać zajmujących dużo

miejsca a bardzo rzadko używanych

procedur obsługi bledów

programiści często z zapasem przydzielają

miejsce na tablice, listy, etc.

Nie które możliwości programu prawie

nigdy nie są wykorzystywane

Szymon Kuczaj


Document Outline


Wyszukiwarka

Podobne podstrony:
8 Systemy Operacyjne 21 12 2010 Zarządzanie Pamięcią Operacyjną
9 Systemy Operacyjne 04 01 2011 Zarządzanie Pamięcią Operacyjną2
Zarządzanie pamięcią operacyjną
2006 08 Zarządzanie pamięcią w systemach operacyjnych [Inzynieria Oprogramowania]
SO Zarządzanie pamięcią w systemach operacyjnych
Stacjonarne II rok I st. B Zarzadzanie i ewidencja operacji gospodarczych 00-00.00.2012
Przenoszenie plików systemowych do pamięci operacyjnej
zarządznie pamięcią
Zarządzanie strategiczne i operacyjne
Frontex, Frontex (Europejska Agencja Zarządzania Współpracą Operacyjną na Zewnętrznych Granicach Pań
PAMIECI OPERACYJNE QULCAZM6ZU7S Nieznany
C Wyklady, Zarzadzanie Pamiecia
Pamięć operacyjna
Katechizm WINDOWS, 11 Pamięć operacyjna

więcej podobnych podstron