Wykład nr 9: Zarządzanie pamięcią

Slides:



Advertisements
Podobne prezentacje
Wirtualizacja zasobów w systemach operacyjnych
Advertisements

Sieci komputerowe Protokół TCP/IP.
Podstawy Informatyki (4)
SYSTEMY OPERACYJNE ·       SO : zestaw programów zarządzających zasobami komputera i wspomagających jego użytkowanie zarządzanie zasobami.
Moduł 2. Struktury Systemów Komputerowych
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ
Systemy rozproszone W. Bartkiewicz
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
PROGRAMOWANIE STRUKTURALNE
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ
1 Linux jako system wielozadaniowy i wielodostępny.
Systemy plików FAT12, FAT16, FAT32, NTFS.
Systemy plików FAT i FAT 32
Systemy plików UNIX Krzysztof Ratkowski Mateusz Wosiński.
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 10: Pamięć wirtualna
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Biblioteki i przestrzenie nazw
Systemy operacyjne.
Magistrala & mostki PN/PD
Systemy plików Bibliografia:
Systemy operacyjne Bibliografia:
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Pamięć wspólna Przegląd stosowanych rozwiązań Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
Systemy plików.
Systemy plików FAT12, FAT16, FAT32, NTFS.
Architektura komputerów
Podstawy programowania II
System operacyjny. System operacyjny Co to jest system operacyjny: jest szczególnym rodzajem programu, którego zadaniem jest koordynowanie pracy.
Instytut Tele- i Radiotechniczny WARSZAWA
Architektura komputerów
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Zasada działania komputera
Budowa systemu komputerowego
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Architektura komputerów
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Systemy plików FAT, FAT32, NTFS
Przerwanie ang. interrupt.
Maszyna wirtualna ang. virtual machine, VM.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Elementy zestawu komputerowego
Etapy uruchamiania systemu Pliki konfiguracyjne
Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji
Algorytmy przydziału pamięci - ćwiczenia
Wykład 9 Zarządzanie pamięcią operacyjną
Systemy plików Bibliografia: Windows XP. Komendy i polecenia. Praktyczne przykłady, P. Czarny Windows XP. Naprawa i optymalizacja, B. Danowski Windows.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Podstawy programowania
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
System plików.
Adam Łożyński IVi System plików NTFS listy kontroli dostępu (ACL)
Procesor, pamięć, przerwania, WE/WY, …
Pamięć RAM Pamięć RAM.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Platforma .Net.
Systemy operacyjne - Budowa systemu komputerowego i jego zadania
SYSTEM PLIKÓW Źródło: Systemy operacyjne i sieci komputerowe - HELION.
Podział sieci IP na podsieci w ramach CISCO
S KANER TĘCZÓWKI OKA Praca dyplomowa inżynierska – Maciej Stępski
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Organizacja i Architektura Komputerów
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Wykład nr 9: Zarządzanie pamięcią Systemy operacyjne Wykład nr 9: Zarządzanie pamięcią Piotr Bilski

Pojęcia podstawowe W momencie tworzenia procesu, obraz binarny pliku jest kopiowany do pamięci Kolejka wejściowa – kolejka procesów na dysku czekających na przeniesienie do pamięci Ogólnie proces może znajdować się w dowolnym miejscu w pamięci System wiąże adresy bezwzględne (fizyczne) z względnymi (logicznymi)

Przetwarzanie programu źródłowy Kompilator lub asembler Faza kompilacji Moduł wynikowy Inne moduły Konsolidator Biblioteka systemowa Moduł ładowalny Faza ładowania Ładowacz Biblioteka DLL Obraz binarny Faza wykonania

Miejsca wiązania adresów Faza kompilacji – kod bezwzględny (pliki COM) Faza ładowania – kod przemieszczany (zmiana względem adresu początkowego) Faza wykonania – przemieszczanie programu w czasie wykonywania, najbardziej uniwersalna

Pamięć logiczna a fizyczna Adres logiczny (wirtualny) – adres na poziomie programu, generowany przez procesor Adres fizyczny – adres sprzętowy lokacji w pamięci Odwzorowywanie przestrzeni adresowych wykonuje MMU (z użyciem rejestrów przemieszczenia) MS-DOS działa z czterema rejestrami przemieszczenia

Ilustracja działania MMU Pamięć Rejestr przemieszczenia Adres fizyczny: 16971 Adres logiczny: 471 Procesor + 16500 MMU

Ładowanie dynamiczne Program składa się z niezależnych modułów (podprogramów) Moduły są ładowane do pamięci dopiero, gdy są potrzebne Odpowiada za to program łączący i ładujący Korzyść – zmniejszenie efektywnej wielkości programu Ładowanie dynamiczne nie wymaga wsparcia systemu operacyjnego

Biblioteki dołączane dynamicznie Działanie oparte na opóźnieniu konsolidacji System operacyjny udostępnia własny zestaw bibliotek Program użytkownika ma tylko odwołanie do funkcji z biblioteki, tzw. namiastkę Możliwa jest przezroczysta aktualizacja bibliotek Konsolidacja wymaga wsparcia systemu operacyjnego

Nakładki Umożliwiają uruchamianie niezależnych fragmentów kodu, których łączny rozmiar przekracza dostępną wielkość pamięci Nakładki przechowywane są na dysku w postaci obrazów gotowych do ładowania Wsparcie systemu operacyjnego nie jest wymagane Potrzebny moduł obsługi nakładek

Moduł obsługi nakładek Ilustracja nakładek Tablica symboli 20KB Wspólne podprogramy 30KB Moduł obsługi nakładek 10KB 80KB 70KB Przebieg 1 Przebieg 2 Dostępna pamięć: 150 KB

Wymiana Proces przenoszenia programu z pamięci głównej do pomocniczej (wytaczanie) i odwrotnie (wtaczanie) W systemie z podziałem czasu wytaczanie i wtaczanie powinno trwać znacznie krócej, niż praca procesu Kolejka procesów gotowych musi obejmować gotowe procesy w pamięci pomocniczej Wymiana a operacje wejścia-wyjścia

Przydział ciągły pamięci Pamięć jest podzielona na dwie części –dla systemu operacyjnego (dolną) i programów użytkownika Procesy muszą zajmować zwarte fragmenty pamięci Problem zabezpieczania obszarów pamięci przydzielonych do różnych procesów

Realizacja sprzętowego zabezpieczenia przestrzeni adresowej Pamięć Rejestr graniczny Rejestr przemieszczenia Adres logiczny Adres fizyczny < TAK Procesor + NIE Pułapka: błąd adresowania

Metody przydziału pamięci Metoda wielu obszarów (IBM OS/360) Obszary (partycje) o ustalonym rozmiarze Każdy proces dysponuje jednym obszarem Metoda zmiennej liczby zadań Obszary o dowolnym rozmiarze, przydzielane w zależności od zapotrzebowania procesu Problem zajmowania dziur dla procesów Algorytmy zajmowania wolnej przestrzeni Pierwsze dopasowanie Najlepsze dopasowanie Najgorsze dopasowanie

Problem fragmentacji Fragmentacja zewnętrzna – pozostałe wolne obszary są niespójne i za małe, aby zmieścić nowy proces Fragmentacja wewnętrzna – część przydzielonego procesowi obszaru jest niewykorzystana Unikanie fragmentacji zewnętrznej – upakowanie

Stronicowanie Schemat zarządzania pamięcią dopuszczający nieciągłość pamięci przydzielonej procesowi Pamięć fizyczna podzielona jest na małe fragmenty o stałej długości – ramki Pamięć programu podzielona jest na małe fragmenty o stałej długości - strony

Realizacja stronicowania Pamięć fizyczna Adres logiczny Adres fizyczny s o r o Procesor s r Tablica stron

Model stronicowania Pamięć logiczna Tablica stron Pamięć fizyczna 1 2 1 2 3 4 5 6 7 8 Strona 0 Strona 0 1 2 3 1 Strona 2 Strona 1 8 Strona 2 3 Strona 3 6 Pamięć logiczna Tablica stron Strona 3 Strona 1 Pamięć fizyczna

Cechy stronicowania Rozmiar strony (512B-16MB) zależy od sprzętu Eliminacja zewnętrznej fragmentacji – zostaje wewnętrzna! Duże strony – duża fragmentacja wewnętrzna Małe strony – duża tablica stron Numer strony Odległość na stronie s o m-n n 2m – rozmiar logicznej przestrzeni adresowej 2n – rozmiar strony

Problemy stronicowania System musi wiedzieć, które ramki są wolne – tablica ramek Rozmiar pozycji w tablicy stron zależy od wielkości pamięci i liczby stron Strony procesów mają być widoczne tylko dla nich samych Problemy zabezpieczeń

Wsparcie sprzętowe stronicowania PCB przechowuje wskaźnik do tablicy stron Tablica stron może być: zestawem rejestrów (tylko dla małych programów) Częścią pamięci operacyjnej (wskazywanej przez rejestr bazowy tablicy stron PTBR) Bufor translacji adresów stron (TLB) – pamięć podręczna dla stronicowania

Realizacja stronicowania z TLB Adres logiczny Adres fizyczny Pamięć fizyczna s o r o Nr strony Nr ramki trafienie Procesor s r chybienie

Aspekty działania TLB Niewielki rozmiar (do 1024 pozycji) Zastępowanie wpisów, gdy TLB pełny (z wyłączeniem pozycji przypiętych) Przechowywanie identyfikatorów przestrzeni adresowej (AISD) Współczynnik trafień TLB powinien dążyć do 100 procent Efektywny czas dostępu do pamięci:

Ochrona stronicowania Bity ochrony przypisane do każdej ramki określają tryb dostępu (zapis/odczyt lub odczyt) Bit poprawności określa, czy strona należy do przestrzeni adresowej procesu Rejestr długości tablicy stron (PTLR) zapobiega tworzeniu tablicy stron na całej przestrzeni dostępnej dla procesu, gdy zajmuje on mniejszy rozmiar

Stronicowanie hierarchiczne Konieczne dla dużych przestrzeni adresowych (np. rzędu 232 słów) Stronicowanie dwupoziomowe: Np. w fizycznej przestrzeni 32-bitowej strona może mieć 4KB (212), więc tablica musiałaby zajmować 220 wpisów Zamiast tego tworzy się dwie tablice o długości po 10 bitów Numer strony Odległość na stronie s1 s2 o n1 n2 m

Wstępnie odwzorowana tablica stron 1 1 2 300 Pamięć fizyczna 300 2 Zewnętrzna tablica stron Tablica stron

Hashowana tablica stron Stronicowanie hierarchiczne w przestrzeniach adresowych większych niż 32-bitowe jest nieefektywne Hashowana tablica stron zawiera wpisy – powiązane listy elementów składających się z trzech elementów: Numer strony wirtualnej Wartość odwzorowanej ramki strony Wskaźnik do następnego elementu na liście

Działanie hashowanej tablicy stron Adres logiczny Adres fizyczny Pamięć fizyczna s o r o Funkcja hashująca s r s r Tablica z hashowaniem …

Odwrócona tablica stron Alternatywne rozwiązanie do tablicy stron, gdy procesów jest bardzo dużo lub są one bardzo duże Każda pozycja to odwzorowanie ramki na stronę (odwrotnie!) Istnieje jedna tablica dla wszystkich procesów Adres logiczny ma wówczas postać: Problem: długi czas przeszukiwania <identyfikator-procesu, numer-strony, odległość>

Działanie odwróconej tablicy stron Adres logiczny Adres fizyczny Pamięć fizyczna s o PID i o Przeglądanie PID s Procesor Tablica stron

Strony dzielone Realizacja współdzielenia kodu przez procesy Kod wznawialny (reentrant code) może być używany przez różnych użytkowników i programy (systemy z podziałem czasu) Kod wznawialny nie może zmieniać się w czasie wykonania (jest tylko do czytania) Każdy użytkownik korzysta z tej samej kopii programu i własnej kopii danych

<numer-segmentu, odległość> Segmentacja Logiczna przestrzeń adresowa dzielona jest na obszary o różnej wielkości przypisywane poszczególnym programom i ich fragmentom Każdy segment ma nazwę i długość Segmenty są numerowane Adres logiczny ma postać: <numer-segmentu, odległość>

Sprzęt do segmentacji Odwzorowanie adresu logicznego na fizyczny zapewnia tablica segmentów Każdy wpis zawiera bazę segmentu i jego granicę Segmentacja jest widoczna dla programisty Występuje tu problem zewnętrznej segmentacji

Ilustracja sprzętu do segmentacji Przeglądanie s Pamięć fizyczna Granica Baza s o Tablica segmentów Procesor < Tak + Nie Pułapka: błąd adresowania

Ochrona i współużytkowanie Segmentacja zapewnia ochronę danych i rozkazów tylko do odczytu (bity ochrony) Umieszczenie tego samego identyfikatora w dwóch różnych tablicach umożliwia dzielenie danych lub kodu

Ilustracja współużytkowania Granica Baza 0 25286 43062 1 4425 68348 Edytor Dane 1 Segment 0 Segment 1 Pamięć logiczna procesu P1 43062 68348 72773 90003 98553 Edytor Dane 1 Edytor Dane 2 Segment 0 Segment 1 Pamięć logiczna procesu P2 Granica Baza 0 25286 43062 1 8850 90003 Dane 2 Pamięć fizyczna

Segmentacja ze stronicowaniem Rozwiązanie stosowane w procesorach Intela Wsparcie większości systemów operacyjnych (OS/2, Windows, Linux) Przestrzeń adresów logicznych podzielona jest na dwie strefy, opisywane przez tablicę lokalnych deskryptorów (LDT) oraz tablicę globalnych deskryptorów (GDT)

Adresowanie w segmentacji Adres logiczny jest parą <selektor,odległość> Selektor ma format: s – numer segmentu g – lokalizacja segmentu w LDT lub GDT p – tryb ochrony Każdy segment jest stronicowany (w przestrzeni 32-bitowej stronicowanie dwupoziomowe) s g p

Rejestr bazowy katalogu stron Schemat adresowania s o + kat strona odl Deskryptor segmentu Adres fizyczny Wpis katalogowy Pozycja tablicy stron Rejestr bazowy katalogu stron