SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Wirtualizacja zasobów w systemach operacyjnych
Sieci komputerowe Protokół TCP/IP.
Podstawowe pojęcia programowania współbieżnego
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 SYSTEMY PLIKÓW
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ
Systemy rozproszone W. Bartkiewicz
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Kamil Smitkiewicz Bezpieczeństwo w PHP.
Systemy plików FAT12, FAT16, FAT32, NTFS.
Tablice.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 10: Pamięć wirtualna
Wykład nr 9: Zarządzanie pamięcią
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Biblioteki i przestrzenie nazw
Pamięci RAM Brodziak Czubak.
Magistrala & mostki PN/PD
Systemy operacyjne Bibliografia:
Temat nr 10: System przerwań
Autorzy: Łukasz Sztandarski Bartłomiej Granat
ZARZĄDZANIE PROCESAMI
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Systemy plików.
Układy wejścia-wyjścia
Systemy plików FAT12, FAT16, FAT32, NTFS.
Architektura komputerów
Podstawy programowania II
Architektura komputerów
Systemy operacyjne.
Zasada działania komputera
Solphy Polska Prezentacja Produktu Solphy Home Storage.
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Systemy plików FAT, FAT32, NTFS
Przerwanie ang. interrupt.
Maszyna wirtualna ang. virtual machine, VM.
Buforowanie D e f i n i c j a.
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.
Architektura PC.
Spis treści Architektura systemu windows Pamięć wirtualna Plik wymiany
Elementy zestawu komputerowego
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
W ą t e k (lekki proces) thread.
Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji
Algorytmy przydziału pamięci - ćwiczenia
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Wykład 9 Zarządzanie pamięcią operacyjną
Podstawy programowania
System plików.
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
Pamięć RAM Pamięć RAM.
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
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.
Struktura systemu operacyjnego
Systemy operacyjne - Budowa systemu komputerowego i jego zadania
Tryby adresowania i formaty rozkazów mikroprocesora
SYSTEM PLIKÓW Źródło: Systemy operacyjne i sieci komputerowe - HELION.
C++ WYKŁAD 12 ( ) Własne biblioteki. S PIS TREŚCI Kompilacja i łączenie Moduły Biblioteki Biblioteka statyczna Biblioteka współdzielona Biblioteka.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Format rozkazu Tryby adresowania.
Zapis prezentacji:

SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

SYSTEMY OPERACYJNE – 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.

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

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).

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.

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). .

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.

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

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

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).

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.

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.

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

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 (strona zaznaczona 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.

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

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.

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.

SYSTEMY OPERACYJNE – PAMIĘĆ OPERACYJNA PAMIĘĆ STRONICOWANA I SEGMENTOWANA STRONICO-WANIE SEGMEN-TACJA Czy użytkownik jest świadomy, że taka technika jest w systemie stosowana ? NIE TAK Ile jest liniowych przestrzeni adresowych ? 1 WIELE Czy przestrzeń adresowa może przekroczyć rozmiar pamięci fizycznej ? Czy kod i dane w pamięci mogą być w łatwy sposób chronione osobno ? Czy łatwo zarządzać tablicami o zmiennym rozmiarze ? Czy łatwo jest współdzielić fragmenty kodu ?

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.

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).

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.

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.

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. Ώ