1 / 23

SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA. PAMI ĘĆ OPERACYJNA tablica ponumerowanych słów lub bajtów (każdy element tablicy ma swój adres), adresowana przez system operacyjny bezpośrednio (pamięć swobodnego dostępu -

lupita
Download Presentation

SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SYSTEMY OPERACYJNEZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

  2. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • PAMIĘĆ OPERACYJNA • tablica ponumerowanych słów lub bajtów (każdy • element tablicy ma swój adres), • adresowana przez system operacyjny • bezpośrednio (pamięć swobodnego dostępu - • RAM), • - programy oraz ich dane muszą znajdować się w pamięci operacyjnej. • Jeśli programy nie mieszczą się w pamięci operacyjnej, to system operacyjny gromadzi je w pamięci pomocniczej.

  3. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA WIĄZANIE ADRESÓW program źródłowy – adresy symboliczne kompilator – adresy symboliczne + adresy względne (relokowalne) linker – adresy względne + adresy bezwzględne (absolutne) konkretnych komórek pamięci

  4. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA WIĄZANIE ADRESÓW Powiązanie adresów rozkazów i danych z adresami komórek pamięci - faza kompilacji (compile time) – generowanie kodu bezwzględnego - faza ładowania (load time) – generowanie kodu relokowalnego - faza wykonywania (run time) – wiązanie adresów na etapie wykonywania (procesy przemieszczane w pamięci).

  5. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA WIĄZANIE ADRESÓW ØKompilator wiąże adresy symboliczne z adresami bezwzględnymi lub względnymi (przenaszalnymi, relokowalnymi), tj. adresami liczonymi względem początku danego bloku (modułu) programu. Kompilator może tworzyć kod wynikowy z adresami bezwzględnymi (np. pliki .COM w systemie MS-DOS). ØProgramłączący/ładujący wiąże adresy względne z adresami bezwzględnymi.

  6. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA WIĄZANIE ADRESÓW ØŁadowanie dynamiczne - podprogram jest wprowadzany do pamięci dopiero wówczas, kiedy jest potrzebny (został wywołany). ØŁączenie dynamiczne (dotyczy głównie bibliotek systemowych) powoduje odroczenie łączenia do czasu konieczności odwołania się do danej funkcji bibliotecznej (w odpowiednim miejscu kodu programu umieszcza się zakładkę do tej funkcji)..

  7. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA WIĄZANIE ADRESÓW (address binding) PRZEMIESZCZANIE PROCESÓW Relokacja statyczna – dwa rejestry graniczne – początek i koniec strefy zajmowanej przez program, Relokacja dynamiczna – dwa rejestry: limit – długość strefy adresów logicznych base – wartość minimalnego adresu fizycznego obszaru z załadowanym zadaniem.

  8. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • WYMIATANIE (swapping) • przesyłanie procesu pomiędzy pamięcią • operacyjną a dyskową; • (wyrzucanie procesów na dysk, gdy w PAO brakuje miejsca) • CEL: zwiększenie liczby zadań jednocześnie przetwarzanych przez system; • ścisła zależność • techniki wymiatania z techniką wiązania adresów

  9. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA ORGANIZACJA PAMIĘCI JEDEN SPÓJNY OBSZAR PAMIĘĆ STRONICOWANA PAMIĘĆ SEGMENTOWANA PAMIĘĆ WIRTUALNA

  10. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA JEDEN SPÓJNY OBSZAR Rejestr bazowy – r. przemieszczenia (relokacji) Rejestr graniczny Pamięć podzielona na obszary (strefy, partycje) – statyczne i dynamiczne Fragmentacja pamięci wewnętrzna – część strefy nie wykorzystana przez proces (pamięć przydzielana jest nieco większa niż zamawiana), zewnętrzna – strefy nie wykorzystane, bo za małe dla potrzeb procesu (duża liczba małych dziur).

  11. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • JEDEN SPÓJNY OBSZAR • ALGORYTMY WYSZUKIWANIA WOLNYCH MIEJSC • W PAMIĘCI • pierwsza pasująca (first fit) - algorytm bardzo szybki, • - następna pasująca (next fit); • najlepiej pasująca (best fit) – lepsze wykorzystanie pamięci.

  12. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • Wykonywanie programu większego niż pamięćfizyczna: • nakładkowanie: wymaga to dokładnej znajomości struktury programu i starannego zaprojektowania nakładek, • wymiana procesów - jeden lub wiele procesów jest przenoszonych do pamięci pomocniczej, aby zrobić miejsce procesowi, któremu planista przydzielił kolejny kwant czasu, • stronicowanie (paging) - skuteczny sposób przydziału pamięci procesom z wykorzystaniem nieciągłych obszarów pamięci.

  13. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA PAMIĘĆ STRONICOWANA przestrzeń adresowa dzielona na strony (page), pamięć fizyczna dzielona na ramki (frame). MMU (memory management unit) – jednostka zarządzania pamięcią – przekształca adres wirtualny na adres fizyczny na podstawie tablic stron. program użytkownika  adres logiczny  MMU   translacja na adres fizyczny  szyna adresowa Zaleta p. stronicowanej: możliwość współdzielenia kodu programu w systemach wielodostępnych

  14. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • PAMIĘĆ STRONICOWANA • stronicowanie pozwala na implementację mechanizmu dzielenia stron przez dwa lub więcej procesów • w celu zwiększenia bezpieczeństwa wprowadza się bity ochrony stron (stronazaznaczona np. tylko do odczytu); próba jej zapisu spowoduje wygenerowanie odpowiedniej pułapki i przejęcie kontroli przez system operacyjny, • stronicowanie pozwala na dynamiczne ładowanie potrzebnych fragmentów programów na żądanie.

  15. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA PAMIĘĆ STRONICOWANA Metody implementacji pamięci stronicowanej: - pojedyncza tablica z rejestrami; zaleta: odwołania do szybkich rejestrów zamiast do PAO, wada: ograniczona liczba rejestrów – 256, - tablica stron w całości w PAO; wada: konieczność dodatkowej operacji dostępu do pamięci w celu odczytania numeru ramki;  dostęp do tablicy stron (w PAO) na podstawie rejestru bazowego, następnie właściwa operacja dostępu do pamięci

  16. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • PAMIĘĆ STRONICOWANA • W tablicy stron – przechowywane alokacje wszystkich stron, wykorzystywane tylko niektóre.  pamięć asocjacyjna: pamięć adresowana zawartością. • - przechowuje się tylko opisy stron aktywnych, • - równoległe na wszystkich adresach przeszukiwanie • komórek pamięci wg argumentów, •  znacznie szybszy dostęp do pamięci.

  17. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • PAMIĘĆ SEGMENTOWANA • - każdy segment – liniowa sekwencja komórek, • - dynamiczna długość segmentów, • adres logiczny złożony z numeru segmentu i • przesunięcia w segmencie, • - każdy segment w dowolnym miejscu pamięci, • Zalety: • - łatwiejsza i bardziej elastyczna ochrona pamięci, • - zróżnicowanie praw dostępu dla każdego segmentu, • - możliwość współdzielenia segmentów.

  18. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA PAMIĘĆ STRONICOWANA I SEGMENTOWANA

  19. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA PAMIĘĆ WIRTUALNA Suma wielkości przestrzeni adresowych wszystkich zadań przekracza wielkość pamięci fizycznej   w PAO - jedynie część przestrzeni adresowej zadania  wrażenie wykorzystywania nieograniczonej PAO. Pamięć wirtualna jest abstrakcyjną pamięcią główną w postaci wielkiej, jednorodnej tablicy, która jest logicznie oddzielona od pamięci fizycznej.

  20. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA PAMIĘĆ WIRTUALNA Adresy generowane w trakcie wykonywania programu są adresami w przestrzeni wirtualnej (adresy liniowe). Są one tłumaczone przez dedykowany układ elektroniczny (Memory Managment Unit, MMU) na adresy w pamięci fizycznej (adresy fizyczne).

  21. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA Zalety pamięci wirtualnej: - jednocześnie może być wykonywanych wiele programów, - możliwe jest wykonywanie programów większych niż dostępna pamięć fizyczna, - procesy mogą wykonywać programy, których kod jest ładowany do pamięci tylko częściowo, -każdy proces może uzyskać dostęp do części dostępnej pamięci fizycznej, - procesy mogą współdzielić w pamięci pojedynczy obraz biblioteki, programu, - programy są relokowalne, - można tworzyć kod niezależny od urządzenia.

  22. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • PAMIĘĆ WIRTUALNA • Wymagania: • oddzielenie wirtualnej przestrzeni adresowej od przestrzeni pamięci fizycznej; • stronicowanie przestrzeni adresowej; • mechanizm odwzorowania adresów(MMU, tablice stron); • - odpowiednie moduły SO obsługujące wymianę części zadań pomiędzy PAO a dyskiem.

  23. SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA • PAMIĘĆ WIRTUALNA - ZASTĘPOWANIE STRON • - dwukrotne przesyłanie stron (jedna na dysk, druga z dysku), • wydłużony efektywny czas dostępu. • ALGORYTMY ZASTĘPOWANIA STRON: • - FIFO – usuwana strona najdłużej przebywająca w PAO, • - LRU (least recently used)– usuwana strona najdawniej używana, • - algorytm drugiej szansy – FIFO  zmiana bitu odniesienia na 0, ponowne sprawdzanie w następnej kolejce, • - LFU (least frequently used)– usuwana strona najrzadziej używana. • Ώ

More Related