SlideShare a Scribd company logo
1 of 14
Zarządzanie
      pamięcią, pamięć
    operacyjna, pamięć
wirtualna w systemach
                Mac OS
Pamięć operacyjna
       Pamięć operacyjna - pamięć o dostępie swobodnym,
umieszczona na płycie głównej komputera jest pamięcią
przechowywującą tymczasowe informacje, wykorzystywane w
trakcie działania systemu operacyjnego oraz programów. Dla
systemów komputerowych jednoprocesorowych lub systemów
SMP pamięć operacyjna to jedyny rodzaj pamięci bezpośrednio
dostępnej dla procesora, wszystkie inne rodzaje pamięci muszą
być obsługiwane jako urządzenia zewnętrzne. Dla systemów
komputerowych o architekturze NUMA lub ASMP pamięć
operacyjna poszczególnych procesorów lub węzłów może być
dostępna dla pozostałych procesorów lub węzłów wyłącznie
przez urządzenia zewnętrzne lub porty. Po wyłączeniu zasilania
komputera najczęściej jej zawartość ginie bezpowrotnie, jest
więc pamięcią tymczasową. Ilość dostępnej pamięci operacyjnej
może w znaczącym stopniu wpłynąć na wydajność systemu
komputerowego w szczególności kiedy system operacyjny z
powodu wyczerpania pamięci operacyjnej musi wykorzystywać
pamięć wirtualną umiejscowioną na znacząco wolniejszych
urządzeniach takich jak dyski twarde. W starszych systemach
komputerowych jako pamięć operacyjną wykorzystywano także
pamięć o dostępie cyklicznym: bębnową i na akustycznych
liniach opóźniających, np. rtęciową. Wykorzystywano również
zarzucone     obecnie    typy    pamięci   RAM,    inne    niż
półprzewodnikowe, np. ferrytową.
Uruchamianie systemu
Macintosh
      Kiedy system operacyjny Macintosh
uruchamia się, dzieli dostępną pamięć RAM
na dwie znaczące części. Pierwszą część
począwszy         od     najniższego      bajtu
adresowanej pamięci (adres 0) system
rezerwuję      dla    samego     siebie(System
partycji). Pozostała reszta jest dostępna dla
aplikacji    lub     pozostałych    elementów
oprogramowania. Począwszy od Mac OS
7.0,    gdzie     mamy      do   czynienia    z
MultiFinderem 5.0 możemy otwierać wiele
aplikacji na raz. System przypisuje każdej
aplikacji fragment pamięci znany jako
patrycja aplikacji. Podsumowując aplikacja
korzysta jedynie z pamięci zawartej w jej
własnej partycji aplikacji.

      Obok schemat organizacji pamięci dla
kilku aplikacji
System partition
       Główną część partycji systemowej stanowi obszar znany jako System
 heap. Kopiec zarezerwowany jest wyłącznie do użytku przez system
 operacyjny i inne komponenty oprogramowania systemowego, które ładują
 się przy starcie systemu.
       System zmiennych globalnych: Najniższa cześć pamięci jest zajęta
 przez zbiór zmiennych globalnych o nazwie System global variables.
 System operacyjny używa tych zmiennych do utrzymania informacji o
 działającym środowisku. Np. the Ticks global variable zawiera liczbę
 tyknięć(16/s), które upłynęły od uruchomienia systemu. ApplZone –
 pierwszy bajt aktywnej aplikacji na partycji. ApplLimit – adres ostatniego
 bajtu danej aplikacji. CurrentA5 zawiera adres granicy pomiędzy
 parametrami aplikacji a zmiennymi globalnymi aktywnej aplikacji.
Application Partition
     Kiedy aplikacja jest uruchamiana,
system operacyjny przydziela dla niej
partycje pamięci o nazwie aplikacji oraz dzieli
partycje na 3 części
   Application stack(stos)
   Application heap(kopiec)
   Application global variables and A5 world
Application stack and heap
       Stos jest obszarem pamięci w partycji aplikacji, które mogą rosnąć lub
 kurczyć się na jednym końcu, podczas gdy drugi koniec pozostaje stały.
 Oznacza to że przestrzeń na stosie jest zawsze alokowana i zwalniania w
 LIFO.
       Kopiec jest obszarem pamięci w którym przestrzeń jest dynamicznie
 alokowania i zwalniana na żądanie. Kopiec zawiera praktycznie wszystkie
 elementy które nie są przydzielone na stosie. Kopiec zawiera np. fragmenty
 kodu aplikacji, oraz jego zasoby które są aktualnie załadowane do pamięci.
 W kopcu mieszczą się również takie elementy jak okna, rekordy, dane
 dokumentów itd. Mamy tutaj do czynienia z fragmentacja kopca (zajęte
 miejsca w sposób nie uporządkowany) oraz z prasowaniu kopca (łączeniu
 kilku wolnych bloków w jeden)
Application A5 world
      Zmienne      globalne     są
 przechowywane w górnej części
 pamięci. Partycja aplikacji znana
 jako A5 world zawiera 4 rodzaje
 danych.
    Application global variables
    Application QuickDraw global variables
    Application parameters
    Application’s jump table
Application A5 world
       Każdy z tych elementów ma stały rozmiar, chociaż rozmiary
 zmiennych globalnych i tabela skoku może się różnić od aplikacji.
       Do globalnego systemu zmiennych CurrentA5 wskazuje na pogranicze
 aktualnych zmiennych globalnych aplikacji oraz jego parametry. Ta granica
 jest ważna ponieważ System używa jej aby uzyskać dostęp do
 następujących        informacji        z         aplikacji:       zmiennych
 globalnych, QuickDraw, parametrach aplikacji i tabeli skoku.
       W QuickDraw aplikacja przechowuje informacje na temat portu
 graficznego
       Tabela skoku zawiera wpis dla każdej aplikacji procedur. Menedżer
 segmentu korzysta z tabeli skoku aby określić adres jakiegokolwiek
 zewnętrznego odwołania procedury wywołanego przez segment kodu
       Parametry aplikacji są przechowywane w 32 bajtowej pamięci
 umieszczonej nad zmiennymi globalnymi. Są przeznaczone do użytku przez
 system operacyjny. Pierwsze długie słowo to wskaźnik do QuickDraw
Temporary memory
   W wielozadaniowym środowisku
    Macintosh, każda aplikacja jest
    ograniczona do partycji pamięci.
    Wielkość partycji pamięci stawia
    pewne ograniczenia na rozmiar
    kopca aplikacji a co za tym idzie
    na wielkość buforów i innych
    struktur   danych       z których
    aplikacja     korzysta.   Ogólnie
    ujmując można określić rozmiar
    partycji aplikacji aby pomieściła
    wszystkie potrzebne jej zasoby.
    Czasami aplikacja może poprosić
    o dodatkowy przydział pamięci.
Virtual memory
      Pamięć wirtualna jest techniką zarządzania pamięcią, która pozwala
 programowi używania przestrzeni adresowej pamięci nie koniecznie
 przywiązanej do komputera (np. RAM) Zwykle chodzi tutaj o dysk twardy.
      Począwszy od wersji Mac Os 7.0 użytkownicy mogą skorzystać z opcji
 zmiany systemu korzystającego z pamięci wirtualnej, przez co maszyny
 posiadają logiczna przestrzeń adresową, która rozciąga się poza granice
 dostępnej pamięci fizycznej
      Mimo, że pamięć wirtualna skutecznie zwiększa wydajność pamięci to
 dostęp do dysku jest znacznie wolniejszy niż pamięci fizycznej.
Addressing Modes
      Na odpowiednio wyposażonych komputerach Macintosh, system
 operacyjny obsługuje 32-bitowe adresowanie, wcześniejsze wersje systemu
 wykorzystywały jedynie 24-bitowe adresowanie. Dzięki nowemu
 adresowaniu maksymalna przestrzeń adresowa programu wynosi 1GB
Mac OS X nowy spojrzenie na
świat
       W Mac OS X przydział pamięci jest troszeczkę inny niż w poprzednich
 wersjach. Wszystkie programy mogą korzystać z nieograniczonej ilości
 pamięci, która jest przeznaczona do stosowania w miarę potrzeb. System
 hojnie przydziela programom całą pamięć RAM, a nawet te części które nie
 mogą być obecnie użyte. To może zawyżać kwotę rzeczywistej pamięci
 RAM używanej przez system. Gdy RAM jest potrzebna, system zamienia
 nie potrzebne bądź nie używane strony. Gdy zachodzi potrzeba dodatkowej
 pamięci, system sam przydziela pamięć wirtualną.
       Mac OS 10.4(Tiger) minimalna ilość RAM wynosi 256MB, jednak
 zalecane jest 512MB
       Mac OS 10.5(Leopard) wymaga co najmniej 512MB. Jednak
 użytkownicy mogą się przekonać że do płynnej pracy potrzeba 1GB RAMU.
Bibliografia
   http://www.mindfiresolutions.com/mindfire/Mac_Memory_Manager.pdf
   http://8help.osu.edu/cat_macos.html
   http://guides.macrumors.com/Virtual_memory
Memory on Mac

More Related Content

Similar to Memory on Mac

Similar to Memory on Mac (20)

2
22
2
 
3
33
3
 
Badanie ciśnienia systemu - resource monitor
Badanie ciśnienia systemu - resource monitorBadanie ciśnienia systemu - resource monitor
Badanie ciśnienia systemu - resource monitor
 
Programowanie
ProgramowanieProgramowanie
Programowanie
 
Programowanie
ProgramowanieProgramowanie
Programowanie
 
Piz07 12
Piz07 12Piz07 12
Piz07 12
 
Rodzaje i funkcje systemów operacyjnych
Rodzaje i funkcje systemów operacyjnychRodzaje i funkcje systemów operacyjnych
Rodzaje i funkcje systemów operacyjnych
 
Mikroprocesory
MikroprocesoryMikroprocesory
Mikroprocesory
 
His
His His
His
 
Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?
 
Budowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej KomputeraBudowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej Komputera
 
budowa jednostki centralnej
budowa jednostki centralnejbudowa jednostki centralnej
budowa jednostki centralnej
 
Wprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache SparkWprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache Spark
 
Praca Dyplomowa
Praca DyplomowaPraca Dyplomowa
Praca Dyplomowa
 
Praca Dyplomowa
Praca DyplomowaPraca Dyplomowa
Praca Dyplomowa
 
exec_2.0
exec_2.0exec_2.0
exec_2.0
 
1
11
1
 
Współczesne procesory
Współczesne procesoryWspółczesne procesory
Współczesne procesory
 
Współczesne procesory
Współczesne procesoryWspółczesne procesory
Współczesne procesory
 
[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System
 

Memory on Mac

  • 1. Zarządzanie pamięcią, pamięć operacyjna, pamięć wirtualna w systemach Mac OS
  • 2. Pamięć operacyjna Pamięć operacyjna - pamięć o dostępie swobodnym, umieszczona na płycie głównej komputera jest pamięcią przechowywującą tymczasowe informacje, wykorzystywane w trakcie działania systemu operacyjnego oraz programów. Dla systemów komputerowych jednoprocesorowych lub systemów SMP pamięć operacyjna to jedyny rodzaj pamięci bezpośrednio dostępnej dla procesora, wszystkie inne rodzaje pamięci muszą być obsługiwane jako urządzenia zewnętrzne. Dla systemów komputerowych o architekturze NUMA lub ASMP pamięć operacyjna poszczególnych procesorów lub węzłów może być dostępna dla pozostałych procesorów lub węzłów wyłącznie przez urządzenia zewnętrzne lub porty. Po wyłączeniu zasilania komputera najczęściej jej zawartość ginie bezpowrotnie, jest więc pamięcią tymczasową. Ilość dostępnej pamięci operacyjnej może w znaczącym stopniu wpłynąć na wydajność systemu komputerowego w szczególności kiedy system operacyjny z powodu wyczerpania pamięci operacyjnej musi wykorzystywać pamięć wirtualną umiejscowioną na znacząco wolniejszych urządzeniach takich jak dyski twarde. W starszych systemach komputerowych jako pamięć operacyjną wykorzystywano także pamięć o dostępie cyklicznym: bębnową i na akustycznych liniach opóźniających, np. rtęciową. Wykorzystywano również zarzucone obecnie typy pamięci RAM, inne niż półprzewodnikowe, np. ferrytową.
  • 3. Uruchamianie systemu Macintosh Kiedy system operacyjny Macintosh uruchamia się, dzieli dostępną pamięć RAM na dwie znaczące części. Pierwszą część począwszy od najniższego bajtu adresowanej pamięci (adres 0) system rezerwuję dla samego siebie(System partycji). Pozostała reszta jest dostępna dla aplikacji lub pozostałych elementów oprogramowania. Począwszy od Mac OS 7.0, gdzie mamy do czynienia z MultiFinderem 5.0 możemy otwierać wiele aplikacji na raz. System przypisuje każdej aplikacji fragment pamięci znany jako patrycja aplikacji. Podsumowując aplikacja korzysta jedynie z pamięci zawartej w jej własnej partycji aplikacji. Obok schemat organizacji pamięci dla kilku aplikacji
  • 4. System partition Główną część partycji systemowej stanowi obszar znany jako System heap. Kopiec zarezerwowany jest wyłącznie do użytku przez system operacyjny i inne komponenty oprogramowania systemowego, które ładują się przy starcie systemu. System zmiennych globalnych: Najniższa cześć pamięci jest zajęta przez zbiór zmiennych globalnych o nazwie System global variables. System operacyjny używa tych zmiennych do utrzymania informacji o działającym środowisku. Np. the Ticks global variable zawiera liczbę tyknięć(16/s), które upłynęły od uruchomienia systemu. ApplZone – pierwszy bajt aktywnej aplikacji na partycji. ApplLimit – adres ostatniego bajtu danej aplikacji. CurrentA5 zawiera adres granicy pomiędzy parametrami aplikacji a zmiennymi globalnymi aktywnej aplikacji.
  • 5. Application Partition Kiedy aplikacja jest uruchamiana, system operacyjny przydziela dla niej partycje pamięci o nazwie aplikacji oraz dzieli partycje na 3 części  Application stack(stos)  Application heap(kopiec)  Application global variables and A5 world
  • 6. Application stack and heap Stos jest obszarem pamięci w partycji aplikacji, które mogą rosnąć lub kurczyć się na jednym końcu, podczas gdy drugi koniec pozostaje stały. Oznacza to że przestrzeń na stosie jest zawsze alokowana i zwalniania w LIFO. Kopiec jest obszarem pamięci w którym przestrzeń jest dynamicznie alokowania i zwalniana na żądanie. Kopiec zawiera praktycznie wszystkie elementy które nie są przydzielone na stosie. Kopiec zawiera np. fragmenty kodu aplikacji, oraz jego zasoby które są aktualnie załadowane do pamięci. W kopcu mieszczą się również takie elementy jak okna, rekordy, dane dokumentów itd. Mamy tutaj do czynienia z fragmentacja kopca (zajęte miejsca w sposób nie uporządkowany) oraz z prasowaniu kopca (łączeniu kilku wolnych bloków w jeden)
  • 7. Application A5 world Zmienne globalne są przechowywane w górnej części pamięci. Partycja aplikacji znana jako A5 world zawiera 4 rodzaje danych.  Application global variables  Application QuickDraw global variables  Application parameters  Application’s jump table
  • 8. Application A5 world Każdy z tych elementów ma stały rozmiar, chociaż rozmiary zmiennych globalnych i tabela skoku może się różnić od aplikacji. Do globalnego systemu zmiennych CurrentA5 wskazuje na pogranicze aktualnych zmiennych globalnych aplikacji oraz jego parametry. Ta granica jest ważna ponieważ System używa jej aby uzyskać dostęp do następujących informacji z aplikacji: zmiennych globalnych, QuickDraw, parametrach aplikacji i tabeli skoku. W QuickDraw aplikacja przechowuje informacje na temat portu graficznego Tabela skoku zawiera wpis dla każdej aplikacji procedur. Menedżer segmentu korzysta z tabeli skoku aby określić adres jakiegokolwiek zewnętrznego odwołania procedury wywołanego przez segment kodu Parametry aplikacji są przechowywane w 32 bajtowej pamięci umieszczonej nad zmiennymi globalnymi. Są przeznaczone do użytku przez system operacyjny. Pierwsze długie słowo to wskaźnik do QuickDraw
  • 9. Temporary memory  W wielozadaniowym środowisku Macintosh, każda aplikacja jest ograniczona do partycji pamięci. Wielkość partycji pamięci stawia pewne ograniczenia na rozmiar kopca aplikacji a co za tym idzie na wielkość buforów i innych struktur danych z których aplikacja korzysta. Ogólnie ujmując można określić rozmiar partycji aplikacji aby pomieściła wszystkie potrzebne jej zasoby. Czasami aplikacja może poprosić o dodatkowy przydział pamięci.
  • 10. Virtual memory Pamięć wirtualna jest techniką zarządzania pamięcią, która pozwala programowi używania przestrzeni adresowej pamięci nie koniecznie przywiązanej do komputera (np. RAM) Zwykle chodzi tutaj o dysk twardy. Począwszy od wersji Mac Os 7.0 użytkownicy mogą skorzystać z opcji zmiany systemu korzystającego z pamięci wirtualnej, przez co maszyny posiadają logiczna przestrzeń adresową, która rozciąga się poza granice dostępnej pamięci fizycznej Mimo, że pamięć wirtualna skutecznie zwiększa wydajność pamięci to dostęp do dysku jest znacznie wolniejszy niż pamięci fizycznej.
  • 11. Addressing Modes Na odpowiednio wyposażonych komputerach Macintosh, system operacyjny obsługuje 32-bitowe adresowanie, wcześniejsze wersje systemu wykorzystywały jedynie 24-bitowe adresowanie. Dzięki nowemu adresowaniu maksymalna przestrzeń adresowa programu wynosi 1GB
  • 12. Mac OS X nowy spojrzenie na świat W Mac OS X przydział pamięci jest troszeczkę inny niż w poprzednich wersjach. Wszystkie programy mogą korzystać z nieograniczonej ilości pamięci, która jest przeznaczona do stosowania w miarę potrzeb. System hojnie przydziela programom całą pamięć RAM, a nawet te części które nie mogą być obecnie użyte. To może zawyżać kwotę rzeczywistej pamięci RAM używanej przez system. Gdy RAM jest potrzebna, system zamienia nie potrzebne bądź nie używane strony. Gdy zachodzi potrzeba dodatkowej pamięci, system sam przydziela pamięć wirtualną. Mac OS 10.4(Tiger) minimalna ilość RAM wynosi 256MB, jednak zalecane jest 512MB Mac OS 10.5(Leopard) wymaga co najmniej 512MB. Jednak użytkownicy mogą się przekonać że do płynnej pracy potrzeba 1GB RAMU.
  • 13. Bibliografia  http://www.mindfiresolutions.com/mindfire/Mac_Memory_Manager.pdf  http://8help.osu.edu/cat_macos.html  http://guides.macrumors.com/Virtual_memory