KSO -projekt zarządzanie pamięcią - referat.doc

(39 KB) Pobierz
KOMPUTEROWE SYSTEMY OPERACYJNE

KOMPUTEROWE SYSTEMY OPERACYJNE

 

 

Pendel Kamil                                                                                 Radom 20.11.2007r.

Grupa SSP a

 

 

 

Temat: Zarządzanie pamięcią

 

 

1.Podstawy

 

          Pamięć ma zasadnicze znaczenie dla działania nowoczesnego systemu komputerowego. Pamięć jest wielką tablicą oznaczonych adresami słów lub bajtów. Jednostka centralna pobiera rozkazy pamięci stosownie do wartości  licznika rozkazów. Rozkazy te, mogą  powodować dodatkowe operacje pobrania i przechowania odnoszące się do określonych adresów.

 

a) Wiązanie adresów.

       Program na ogół rezyduje na dysku jako binarny, wykonywalny plik. Aby nastąpiło wykonanie programu, należy go wprowadzić do pamięci operacyjnej i zaliczyć do odpowiadającego mu procesu. Jeśli sposób zarządzania pamięcią mu na to pozwala, to wykonywany proces może być przemieszczany między dyskiem a pamięcią operacyjną. Zbiór procesów czekających na dysku na wprowadzenie do pamięci w celu wykonania tworzy kolejkę wejściową. Następnie jeden z procesów zostaje wybrany i załadowany do pamięci. Podczas wykonywania proces pobiera rozkazy i dane z pamięci. Po pewnym czasie proces kończy działanie i zajmowana przez niego pamięć staje się ponownie dostępna. Większość systemów pozwala procesowi użytkowemu przebywać w dowolnej części pamięci fizycznej. Choć przestrzeń adresów komputera

zaczyna się od 00000, pierwszy adres procesu użytkownika nie musi wynosić

00000. Wpływa to na zakres adresów dostępnych dla programu użytkownika.

 

b) Ładowanie dynamiczne

 

        Ładowanie dynamiczne służy do lepszego wykorzystania obszaru pamięci. Przy ładowaniu dynamicznym podprogram nie jest wprowadzany do pamięci, dopóki nie zostanie wywołany. Do pamięci wprowadza się program główny i tam jest on wykonywany. Gdy jakiś program chce wywołać inny podprogram, musi najpierw sprawdzić, czy ten podprogram znajduje się w pamięci. Jeżeli go tam nie ma , to trzeba wywołać program łączący i ładujący moduły przemieszczalne, który wprowadzi do pamięci potrzebny podprogram, aby odzwierciedlić tę zmianę. Następuje wówczas przekazanie sterownia do nowo załadowanego podprogramu. Ładowanie dynamiczne nie wymaga specjalnego wsparcia ze strony systemu operacyjnego. Użytkownik jest odpowiedzialny za takie zaprogramowanie programów, aby mogły one korzystać z tej metody.

 

c) Konsolidacja dynamiczna

           Większość systemów operacyjnych umożliwia tylko statyczną konsolidację, w której systemowe biblioteki języków programowania są traktowane jak każdy inny moduł wynikowy i dołączane przez program ładujący do binarnego obrazu programu. Zamiast odwlekania ładowania do czasu wykonania, opóźnia się konsolidację. Cecha ta zwykle dotyczy bibliotek systemowych. Jeżeli system nie ma tej właściwości, to wszystkie programy muszą mieć dołączoną  do swoich obrazów binarnych kopię biblioteki języka. W przypadku konsolidacji dynamicznej w obrazie binarnym, w miejscu odwołania bibliotecznego znajduje się tylko namiastka procedury, która jest małym fragmentem kodu, wskazującym jak odnaleźć odpowiedni podprogram biblioteczny bądź jak załadować bibliotekę. Wykonanie namiastki procedury wykonuje sprawdzenie, czy potrzebny podprogram znajduje się już w pamięci. Jeżeli podprogramu nie ma w pamięci, to zostanie on przez program do niej sprowadzony. W każdym przypadku namiastka procedury wprowadza na swoje miejsce adres potrzebnego podprogramu i powoduje jego wykonanie. Dzięki temu, gdy po raz kolejny sterowanie dojdzie do danego fragmentu kodu, wówczas podprogram biblioteczny zostanie wykonany bezpośrednio, bez ponoszenia kosztów na jego dynamiczne dołączanie.

 

d) Nakładki

       

        Nakładka jest to zwiększenie wymiarów procesu ponad ilość przydzielonej mu pamięci.

Idea nakładek polega na przechowywaniu w pamięci tylko tych rozkazów i danych które są potrzebne. Inne rozkazy są wprowadzane w miarę zapotrzebowania na miejsce zajmowane uprzednio przez rozkazy już zbyteczne.

 

 

 

2 Logiczna i fizyczna przestrzeń adresowa.

 

             Adres wytworzony przez procesor jest zazwyczaj nazywany adresem logicznym a adres oglądany przez jednostkę pamięci nazywa się adresem fizycznym.

            Schemat ustalania adresów podczas kompilacji oraz ładowania tworzą środowisko, w którym adresy logiczne i fizyczne są takie same. Natomiast schemat wiązania adresów podczas wykonywania rozkazów prowadzą do środowiska, w którym adresy logiczne i fizyczne są różne. W tym przypadku określamy adres logiczny jako adres wirtualny. Zbiór wszystkich adresów logicznych generowanych przez program jest nazywany logiczną przestrzenią adresową. Zbiór wszystkich adresów fizycznych odpowiadającym tym adresom logicznym nazywa się fizyczną przestrzenią adresową. Odwzorowanie adresów wirtualnych na fizyczne , odbywające się podczas działania programu, jest dokonywane przez jednostkę zarządzania pamięcią.

 

 

3 Wymiana

 

             Wykonanie procesu jest możliwe wtedy, gdy jest on w pamięci. Proces może być tymczasowo wymieniany, czyli odsyłany z pamięci operacyjnej do pamięci pomocniczej i z powrotem- w celu kontynuowania działania. Jeżeli mamy do czynienia z wieloprogramowym środowiskiem sterowanym rotacyjnym algorytmem planowania przydziału procesora. Po wyczerpaniu kwantu czasu zarządca pamięci rozpoczyna wymianę procesu, który na razie zakończył działanie, na proces, który zajmie zwolnione miejsce w pamięci. W między czasie planista przydziału procesora przydzieli kwant czasu innemu procesowi w pamięci. Każdy proces po zużyciu kwantu czasu zostanie wymieniony z innym procesem. W idealnych warunkach zarządca pamięci może wymieniać procesy wystarczająco szybko, aby w pamięci były zawsze procesy gotowe do wykonania wtedy, kiedy planista przydziału procesora zechce dokonać kolejnego jego przydziału. Kwant czasu musi być duży, aby między kolejnymi wymianami można było dokonać sensowną porcję obliczeń.

              Proces, który ulega wymianie, powraca do pamięci w to samo miejsce, w którym przebywał. Ograniczenie to jest podyktowane metodą wiązania adresów. Jeśli wiązanie jest wykonywane podczas tłumaczenia lub ładowania, to procesie może być przesunięty w inne miejsce. Jeśli adresy ustala się podczas wykonania, to istnieje możliwość sprowadzenia procesu do innego obszaru pamięci, ponieważ adresy fizyczne są obliczane na bieżąco.

             Do wymiany jest potrzebna pamięć pomocnicza. Jest nią szybki dysk. Musi być wystarczająco pojemny, aby pomieścić wszystkie kopie obrazów pamięci wszystkich użytkowników. Powinien także umożliwiać bezpośredni dostęp do tych obrazów pamięci. System utrzymuje kolejką procesów gotowych, składającą się ze wszystkich procesów, których obrazy pamięci są w pamięci pomocniczej lub operacyjnej i które są gotowe do działania

 

.

4 Przydział ciągły

 

              Pamięć operacyjna musi pomieścić zarówno systemy operacyjne jak i rozmaite procesy użytkownika. Jest ona zazwyczaj podzielona na dwie części. Jedną dla systemu operacyjnego, drugą dla procesów użytkownika. System operacyjny można umieścić w pamięci dolnej albo w pamięci górnej. Na decyzję w tej sprawie wpływa głównie lokalizacja wektora przerwań.

3

 

Zgłoś jeśli naruszono regulamin