Podstawowe zagadnienia informatyki

Podobne dokumenty
Wykład 7. Zarządzanie pamięcią

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Zarządzanie pamięcią operacyjną

dr inż. Jarosław Forenc

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Architektura komputerów

Systemy operacyjne III

Architektura komputerów

Zarządzanie pamięcią operacyjną

Architektura systemów informatycznych

Stronicowanie w systemie pamięci wirtualnej

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

dr inŝ. Jarosław Forenc

Zarządzanie zasobami pamięci

dr inż. Jarosław Forenc

Zarządzanie pamięcią. Zarządzanie pamięcią. Podstawy. Podsystem zarządzania pamięcią. Zadania podsystemu: W systemie wielozadaniowym:

Schematy zarzadzania pamięcia

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem.

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

architektura komputerów w. 8 Zarządzanie pamięcią

dr inż. Jarosław Forenc

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Od programu źródłowego do procesu

Programowanie w C Wartości pseudolosowe i pomiar czasu

Podstawy. Podsystem zarządzania pamięcią - zadania: Wiązanie (binding) rozkazów i danych z adresami pamięci. W systemie wielozadaniowym:

System pamięci. Pamięć wirtualna

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Sprzętowe wspomaganie pamięci wirtualnej

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).

Architektura systemów informatycznych

Hierarchia pamięci w systemie komputerowym

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

ZASADY PROGRAMOWANIA KOMPUTERÓW

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

System pamięci. Pamięć wirtualna

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

WYKŁAD. Zarządzanie pamięcią operacyjną

Logiczny model komputera i działanie procesora. Część 1.

Celem wykładu jest przedstawienie podejść do zarządzania jednym z kluczowych zasobów systemu komputerowego pamięcią operacyjną. Ponieważ zarządzanie

System pamięci. Pamięć wirtualna

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Organizacja typowego mikroprocesora

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Systemy Operacyjne Pamięć wirtualna cz. 2

Wybrane zagadnienia elektroniki współczesnej

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Technologie informacyjne (2) Zdzisław Szyjewski

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Podstawy. Pamięć wirtualna. (demand paging)

4. Procesy pojęcia podstawowe

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

ARCHITEKTURA PROCESORA,

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Informatyka 2. Wykład nr 10 ( ) Plan wykładu nr 10. Politechnika Białostocka. - Wydział Elektryczny. ext2. ext2. dr inŝ.

Programowanie współbieżne Wykład 2. Iwona Kochańska

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Mikroprocesory rodziny INTEL 80x86

Techniki multimedialne

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Architektura komputerów

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Zarządzanie dyskowymi operacjami we-wy. Zarządzanie pamięcią operacyjną. dr inż. Jarosław Forenc. systemy plików (NTFS, ext2)

Programowanie niskopoziomowe

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

System plików. Warstwowy model systemu plików

Współpraca procesora ColdFire z pamięcią

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

L6.1 Systemy liczenia stosowane w informatyce

Pamięć wirtualna w AS/400

Pytania do treści wykładów:

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Zarządzanie pamięcią operacyjną i pamięć wirtualna

Struktury systemów operacyjnych

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

Rys. 1. Podłączenie cache do procesora.

4. Procesy pojęcia podstawowe

Lab 9 Podstawy Programowania

Transkrypt:

Podstawowe zagadnienia informatyki Artur Opaliński (pokój E112) e-mail: (p. wykład administracyjny) URL: (p. wykład administracyjny) Obsługa pamięci

Treść wykładu Adresowanie pamięci Architektury pamięci Adresacja Adresowanie bajtów a słów Endianess Dopasowanie (Data Alignment) Zarządzanie pamięcią przez OS Zadania Podział pamięci miedzy procesy Podział przestrzeni pamięci procesu Mechanizm stronicowania Pamięć wirtualna 2

Support for Yoda Master Slajdy nie były przygotowane z myślą o samodzielnej nauce. Przyjdź na wykład, żeby je lepiej zrozumieć! Zdobądź punkty bonusowe: Korzystając z informacji z wykładu, Internetu, własnych doświadczeń, itp. - opisz myśli z tej prezentacji dokładniej i złóż na Wiki! Zaznacz, które numery slajdów omawiasz 3

Adresowanie pamięci Architektura von Neumanna Wspólna pamięć na dane i kod Architektura harwardzka Pamięć danych i kodu rozdzielona Oddzielna przestrzeń adresowa Oddzielne ścieżki pamięć CPU Pamięć kodu jest tylko do odczytu Zmodyfikowana architektura harwardzka Z pamięci kodu można czytać dane Zmodyfikowana architektura von Neumana Oddzielne pamięci cache na dane i instrukcje 4

Test Która architektura jest najlepsza? von Neumanna harwardzka zmodyfikowana harwardzka zmodyfikowana von Neumana 5

Adresowanie pamięci Komórka (cell) najmniejsza jednostka pamięci którą CPU może odczytać lub zapisać. Typowo bajt (byte) Słowo jednostka pamięci, którą CPU może sprzętowo w całości odczytać lub zapisać; przeważnie większe od komórki Przeważnie wielokrotność 2 n, ze względu na ominięcie mnożenia/dzielenia Obecnie przeważnie 32, 64 lub 128 bitów Intel: double word (dword), quadruple word (qword), double quadruple word (dqword) M$: octuple word (oword) 6

Adresowanie pamięci Każda komórka pamięci ma swój niepowtarzalny adres Liczba całkowita Przylegające do siebie (logicznie) komórki maja adresy różniące się o 1 CPU podaje adres pamięci komórki, żeby się do niej dostać Przestrzeń adresowa CPU to zakres możliwych adresów Zazwyczaj liczb całkowitych od 0 do (2 n -1) 7

Adresowanie pamięci Adresowanie bajtów 8

Adresowanie pamięci (c) www.masters-of-the-void.com 9

Adresowanie pamięci Adresowanie słów wielobajtowych 10

Adresowanie pamięci Kolejność bajtów Big-Endian najbardziej znaczący bajt (najstarszy, skrajny lewy) ma najniższy adres Zatem adres słowa to adres najstarszego bajtu Np. procesory RISC: SPARC, PowerPC, PA-RISC, MIPS Little-Endian najmniej znaczący bajt (najmłodszy, skrajny prawy) ma najniższy adres Zatem adres słowa to adres najmłodszego bajtu np. procesory Intel 80x86 11

Adresowanie pamięci Kolejność bajtów 12

Adresowanie pamięci Kolejność bajtów Interpretacja struktur danych większych niż bajt Łańcuch: cele 0x63 0x65 0x6C 0x65 (big-endian) 0x65 0x6C 0x65 0x63 (little-endian) Ale: 0x65 0x6C 0x65 0x63 elec (big-endian) unsigned int, 32 bity: 0x01 02 03 04 = 16 909 060 (big-endian) Ale: 0x04 03 02 01 = 67 305 985 (little-endian) Istotne przy transferze danych między odmiennymi architekturami 13

Test Jak zapewnić transfer danych w Internecie, gdzie komunikują się urządzenia o różnych -endianess? 14

Adresowanie pamięci Dopasowanie do komórek (alignment) W przypadku adresowania słów wielobajtowych, dane idealnie powinny zawsze zaczynać się i kończyć na granicy słowa Dane nie zawsze są wielokrotnością słowa... Jeżeli kończą się wcześniej (pod niższym adresem niż koniec słowa), można uzupełnić komórki pamięci dowolnymi wartościami (padding) Jeżeli (stanowiące słowo) starsze i młodsze bajty danych nie byłyby zapisane w jednym słowie pamięci trzeba pobierać ich ciąg dalszy z kolejnych słów Pogorszona wydajność Utrata atomowości dostępu do słowa Padding w C realizowany jest automatycznie 15

Zarządzanie pamięcią przez system operacyjny Systemy jednozadaniowe jeden program dysponował prawie całymi zasobami np. pamięci komputera aż do swojego zakończenia Systemy wielozadaniowe z podziałem czasu (time shared multitasking) Lepsze wykorzystanie czas procesora Mniejszy wpływ opóźnień I/O Wiele zadań/programów realizowanych jest we wspólnej pamięci w tym samym czasie System operacyjny (OS) zarządza wspólną pamięcią 16

Zarządzanie pamięcią przez OS Zadania Ochrona procesy zasadniczo nie powinny mieć dostępu do pamięci używanej przez inne procesy Identyfikacja jeżeli procesy wspólnie użytkują pewną cześć pamięci (współdzielenie), ta wspólna część pamięci powinna mieć swój jednoznaczny identyfikator Przejrzystość zasadniczo procesy nie powinny zajmować się technicznymi szczegółami współdzielenia, lecz korzystać z niego Wydajność zarządzanie pamięcią nie może znacząco obciążać systemu 17

Zarządzanie pamięcią przez OS Podział pamięci między procesy Pamięć dynamicznie alokowana procesom Proces zgłasza zapotrzebowanie na określoną ilość pamięci OS wyszukuje wolny obszar pamięci i przydziela go dla procesu Proces zgłasza zwolnienie niepotrzebnych obszarów pamięci Zwalnianie niepotrzebnych obszarów pamięci prowadzi do fragmentacji np. przydzielono pamięć dla procesów A,B,C, a następnie proces B zwolnił przydzieloną sobie pamięć Strategie alokacji Best fit Worst fit First fit Next fit 18

Zarządzanie pamięcią przez OS Podział pamięci między procesy Strategia Best fit Proces uzyskuje pamięć z najmniejszego blok nieprzydzielonej nikomu pamięci, który ma wystarczającą wielkość Trzeba w tym celu przejrzeć wszystkie wolne bloki Fragmentacja najbardziej uciążliwa, gdyż pozostają drobne fragmenciki pamięci, które nie wystarczają dla żadnego z procesów (fragmentacja zewnętrzna) ew. czasami przydziela się procesowi większy blok, niż żądano (ukrywanie fragmentacji) 19

Zarządzanie pamięcią przez OS Podział pamięci między procesy Strategia Worst fit Proces uzyskuje pamięć w największym bloku nieprzydzielonej nikomu pamięci Zapobiega drobnym fragmencikom tworzonym przez Best fit Trzeba w tym celu przejrzeć wszystkie wolne bloki 20

Zarządzanie pamięcią przez OS Podział pamięci między procesy Strategia First fit Proces uzyskuje pamięć w pierwszym bloku nieprzydzielonej nikomu pamięci, który ma wystarczającą wielkość Menedżer pamięci nie musi przeglądać wszystkich bloków Z czasem na początku listy wolnych bloków pozostają już tylko bloki małe, mało przydatne Fragmentacja mniejsza niż w Best fit 21

Zarządzanie pamięcią przez OS Podział pamięci między procesy Strategia Next fit Proces uzyskuje pamięć w pierwszym bloku nieprzydzielonej nikomu pamięci, który ma wystarczającą wielkość Menedżer pamięci nie musi przeglądać wszystkich bloków Przeglądanie listy wolnych bloków zaczyna się od miejsca, gdzie menedżer znalazł pasujący blok poprzednio Małe bloki nie akumuluja się na początku listy 22

Test Która strategia jest najefektywniejsza? Best fit Worst fit First fit Next fit 23

Zarządzanie pamięcią przez OS Podział pamięci między procesy Defragmentacja (compaction) Usuwanie fragmentacji poprzez przesunięcie przydzielonych bloków pamięci w jeden koniec przestrzeni pamięci Tym samym wolne fragmenty łączą się w drugim końcu pamięci Wady: Koszt kopiowania bloków pamięci Problem uaktualnienia informacji o nowych adresach bloków w poszczególnych procesach 24

Podział przestrzeni pamięci procesu Stos historycznie lokalizowany na końcu pamięci, stąd przyrastający w dół, aż do wyznaczonej granicy (stack overflow). Wielkość stosu zmienia się dynamicznie w trakcie wykonania programu. W Windows XP 32 stos jest na początku pamięci Sterta (heap) obszar pamięci z którego pamięć jest przydzielana (alokowana) dynamicznie, przeważnie wyraźnie większymi porcjami niż na stosie, i w sposób bardziej złożony BSS (historycznie: Block Started by Symbol) Segment zawierający zmienne początkowo wypełnione zerami, które istnieję przez cały czas życia procesu (zmienne globalne, zmienne statyczne niezainicjalizowane lub zainicjalizowane zerami) 25

Podział przestrzeni pamięci procesu Sekcja stałych (rodata) Zawiera dane tylko do odczytu (stałe) Segment kodu (text segment) Do odczytu i z prawami wykonywania 26

Mechanizm stronicowania Pamięć fizyczna podzielona na fragmenty o stałych rozmiarach ramki stron (page frames) Do procesu prezentowana abstrakcyjna, jednolita, liniowa przestrzeń adresowa OS dzieli przestrzeń adresową aplikacji na fragmenty o stałych rozmiarach strony (pages) Ramki stron i strony mają ten sam rozmiar typowo kilka, kilkanaście KB, czasem kilka MB potęgi liczby 2 Strony przechowywane są w ramkach Adresy generowane przez proces są dynamicznie tłumaczone na tę fizyczną ramkę, która przechowuje zawartość potrzebnej strony 27

Mechanizm stronicowania Mapowanie stron na ramki Przestrzeń adresowa procesu Strona 3 Strona 2 Strona 1 Strona 0 Ramka 11 Ramka 10 Ramka 9 Ramka 8 Ramka 7 Ramka 6 Ramka 5 Ramka 4 Ramka 3 Ramka 2 Ramka 1 Ramka 0 Pamięć fizyczna podstawowa 28

Mechanizm stronicowania Mapowanie stron na ramki Przestrzeń adresowa procesu Strona 3 Strona 2 Strona 1 Strona 0 Ramka 11 Ramka 10 Ramka 9 Ramka 8 Ramka 7 Ramka 6 Ramka 5 Ramka 4 Ramka 3 Ramka 2 Ramka 1 Ramka 0 Pamięć fizyczna podstawowa 29

Mechanizm stronicowania Mapowanie stron na ramki Strona 11 Strona 10 Strona 9 Strona 8 Strona 7 Strona 6 Strona 5 Strona 4 Strona 3 Strona 2 Strona 1 Strona 0 Przestrzeń adresowa procesu Pamięć fizyczna podstawowa Ramka 5 Ramka 4 Ramka 3 Ramka 2 Ramka 1 Ramka 0 30

Mechanizm stronicowania Adresacja wirtualna Adresy, którymi posługuje się proces, nie są fizyczne, lecz wirualne Wirtualne adresy trzeba tłumaczyć na fizyczne Podzielić na numer strony oraz na offset na stronie Przetłumaczyć numer strony na identyfikator fizycznej ramki Dotrzeć do danych w fizycznej ramce pod podanym offsetem Ramka N ::::::::: Offset Ramka N-1 31

Mechanizm stronicowania Tłumaczenie stron (page( translation) Zamiana numeru strony na identyfikator ramki Proste rozwiązanie: tablica stron (page table) Liniowa tablica identyfikatorów ramek Indeksowana numerem strony Kontrola czy numer strony mieści się w zakresie przestrzeni adresowej procesu Odnalezienie identyfikatora ramki w tablicy stron Dodanie offsetu do adresu ramki 32

Mechanizm stronicowania Zalety Zapobiega fragmentacji tzw. zewnętrznej, omawianej poprzednio Wciąż występuje fragmentacja wewnętrzna: proces dostaje pamięć w rozmiarze wielokrotności strony, a być może potrzebuje mniej Znacząco upraszcza algorytm alokacji bloków pamięci OS przechowuje listę używanych i wolnych stron Na żądanie procesu OS przydziela mu strony z listy wolnych Łatwa forma ochrony pamięci Proces ma dostęp do ramki tylko wtedy, jeżeli jest tam jego strona pamięci Tym samym procesy nie mają dostępu do pamięci innych procesów 33 Umożliwia stosowanie wtórnej pamięci fizycznej

Mechanizm stronicowania Wady Tłumaczenie stron musi zachodzić przy każdym dostępie do pamięci Pobraniu każdej instrukcji do wykonania Pobraniu każdej danej dla instrukcji Realizuje Memory Management Unit (urządzenie między CPU a cache) Wielkość tablicy stron na każdy proces przy np. 32-bitowej adresacji, stronie 4kB, i 4 bajtach na wpis w tablicy? Kilka MB (razy ilość procesów) Przy 64-bitowej adresacji z konieczności dobiera się strony np. 2MB Gdzie przechowywać tak wielką tablicę z szybkim dostępem? 34 Dysk, RAM, cache CPU?

Mechanizm stronicowania Zawartość wpisu w tablicy stron Identyfikator fizycznej ramki Bit: obecna/nieobecna (strona w ramce) Zakres ochrony strony (odczyt, zapis, wykonanie) Znacznik modyfikacji strony zaznaczany, jeżeli nastąpi zapis do strony pamięci Znacznik użycia strony odświeżany przy każdym odwołaniu do strony 35

Pamięć wirtualna Proces prawie nigdy nie odwołuje się w krótkim czasie do całej swojej przestrzeni adresowej Większość stron przestrzeni adresowej pozostaje zawsze nieużywana Nieużywane strony pamięci procesu nie muszą zajmować miejsca w podstawowej pamięci fizycznej Wtórna pamięć fizyczna Obszar dysku (swap space, swap file, plik wymiany) Plik na dysku W razie potrzeby system operacyjny pobierze stronę zapisana na dysk do ramki ew. wcześniej zapisując poprzednią zawartość ramki na dysk 36

Pamięć wirtualna Zalety Pojemność pamięci wirtualnej to suma pamięci podstawowej (np. RAM) i wtórnej (np.swap space) W pamięci wirtualnej można uruchamiać programy, które nie zmieściłyby się w RAM W pamięci wirtualnej można uruchamiać wiele programów, które w sumie nie zmieściłyby się w RAM Wsparcie dla wielozadaniowości Dla wszystkich procesów adresy w pamięci wirtualnej można łatwo przestawić jako zaczynające się od 0 37

Mechanizm stronicowania Rozwiązania Przechowywanie tablic stron w RAM Tablice wielopoziomowe: jeżeli program używa tylko trochę kodu, danych i stosu, wystarczy mu tylko kilka wpisów z tablicy najwyższego poziomu np. przy 32-bitowej wirtualnej przestrzeni adresowej można rozbić tablice na 10+10+12 bitów Tablice stron też podlegają wyrzucaniu na dysk (paging) Wykorzystanie lokalności czasowej i przestrzennej Większość programów odwołuje się głównie do niewielkiej ilości stron Zakłada się, że w przyszłości proces będzie odwoływał się do tych samych co poprzednio lub pobliskich elementów pamięci 38

Co trzeba umieć? Pojęcie przestrzeni adresowej, adresu i adresacji Znaczenie kolejności bajtów w słowie (endianess) Przeznaczenie dopasowania danych (data alignment) Zakres i zasady zarządzania pamięcią przez wielozadaniowy system operacyjny Rozumieć podział przestrzeni adresowej procesu Zasadę działania oraz wady i zalety mechanizmu stronicowania, adresacji wirtualnej 39