PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Wielkość: px
Rozpocząć pokaz od strony:

Download "PRZYDZIAŁ PAMIĘCI OPERACYJNEJ"

Transkrypt

1 PRZYDZIAŁ PAMIĘCI OPERACYJNEJ dr inż. Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl

2 Wstęp Pamięć komputera wielka tablica słów (bajtów) oznaczonych adresami Wykonanie programu: proces jest ładowany do pamięci procesor pobiera rozkazy z pamięci stosownie do wartości licznika rozkazów Typowy cykl wykonania rozkazu pobranie rozkazu z pamięci dekodowanie rozkazu pobranie z pamięci dodatkowych argumentów wyniki są przechowywane w pamięci

3 Wstęp Pamięć komputera wielka tablica słów (bajtów) oznaczonych adresami Wykonanie programu: proces jest ładowany do pamięci procesor pobiera rozkazy z pamięci stosownie do wartości licznika rozkazów Typowy cykl wykonania rozkazu pobranie rozkazu z pamięci dekodowanie rozkazu pobranie z pamięci dodatkowych argumentów wyniki są przechowywane w pamięci

4 Wstęp Pamięć komputera wielka tablica słów (bajtów) oznaczonych adresami Wykonanie programu: proces jest ładowany do pamięci procesor pobiera rozkazy z pamięci stosownie do wartości licznika rozkazów Typowy cykl wykonania rozkazu pobranie rozkazu z pamięci dekodowanie rozkazu pobranie z pamięci dodatkowych argumentów wyniki są przechowywane w pamięci

5 Wiązanie adresów Wiązanie adresów może być wykonywane podczas: 1 kompilacji sposób ten jest używany w sytuacjach kiedy znane jest miejsce ulokowania procesu w pamięci. Generowany jest tzw. kod bezwzględny. Jeżeli adres początkowy ulegnie zmianie to program należy przekompilować 2 ładowania sposób ten jest używany wtedy, gdy podczas kompilacji nie wiadomo gdzie będzie umieszczony proces. Kompilator wytwarza tzw. kod przemieszczalny i wiązanie adresów jest dokonywane podczas ładowania procesu do pamięci. Jeżeli adres początkowy ulegnie zmianie to wystarczy ponownie załadować program z uwzględnieniem nowej wartości adresu początkowego 3 wykonania jeśli proces będzie ulegał przemieszczeniom z jednego miejsca pamięci do innego to należy zaczekać z wiązaniem adresów aż do czasu jego wykonania. Wymagane jest tutaj zastosowanie dodatkowego sprzętu

6 Wiązanie adresów Wiązanie adresów może być wykonywane podczas: 1 kompilacji sposób ten jest używany w sytuacjach kiedy znane jest miejsce ulokowania procesu w pamięci. Generowany jest tzw. kod bezwzględny. Jeżeli adres początkowy ulegnie zmianie to program należy przekompilować 2 ładowania sposób ten jest używany wtedy, gdy podczas kompilacji nie wiadomo gdzie będzie umieszczony proces. Kompilator wytwarza tzw. kod przemieszczalny i wiązanie adresów jest dokonywane podczas ładowania procesu do pamięci. Jeżeli adres początkowy ulegnie zmianie to wystarczy ponownie załadować program z uwzględnieniem nowej wartości adresu początkowego 3 wykonania jeśli proces będzie ulegał przemieszczeniom z jednego miejsca pamięci do innego to należy zaczekać z wiązaniem adresów aż do czasu jego wykonania. Wymagane jest tutaj zastosowanie dodatkowego sprzętu

7 Wiązanie adresów Wiązanie adresów może być wykonywane podczas: 1 kompilacji sposób ten jest używany w sytuacjach kiedy znane jest miejsce ulokowania procesu w pamięci. Generowany jest tzw. kod bezwzględny. Jeżeli adres początkowy ulegnie zmianie to program należy przekompilować 2 ładowania sposób ten jest używany wtedy, gdy podczas kompilacji nie wiadomo gdzie będzie umieszczony proces. Kompilator wytwarza tzw. kod przemieszczalny i wiązanie adresów jest dokonywane podczas ładowania procesu do pamięci. Jeżeli adres początkowy ulegnie zmianie to wystarczy ponownie załadować program z uwzględnieniem nowej wartości adresu początkowego 3 wykonania jeśli proces będzie ulegał przemieszczeniom z jednego miejsca pamięci do innego to należy zaczekać z wiązaniem adresów aż do czasu jego wykonania. Wymagane jest tutaj zastosowanie dodatkowego sprzętu

8 Przetwarzanie programu użytkownika program Ÿród³owy modu³y wynikowe kompilator modu³ wynikowy czas kompilacji biblioteki systemowe konsolidator modu³ ³adowalny czas ³adowania biblioteki ³adowane dynamicznie program ³aduj¹cy obraz binarny w pamiêci czas wykonywania

9 Ładowanie dynamiczne Podprogramy nie są ładowane do pamięci dopóki nie zostaną wywołane Do pamięci zostaje załadowany tylko program główny. W przypadku potrzeby wywołania podprogramu: sprawdzamy czy ten podprogram znajduje się w pamięci jeżeli nie to wywoływany jest tzw. program łączący program łączący wprowadza żądany podprogram do pamięci oraz uaktualnia tablicę adresów sterowanie zostaje przekazane do ładowanego podprogramu

10 Ładowanie dynamiczne Podprogramy nie są ładowane do pamięci dopóki nie zostaną wywołane Do pamięci zostaje załadowany tylko program główny. W przypadku potrzeby wywołania podprogramu: sprawdzamy czy ten podprogram znajduje się w pamięci jeżeli nie to wywoływany jest tzw. program łączący program łączący wprowadza żądany podprogram do pamięci oraz uaktualnia tablicę adresów sterowanie zostaje przekazane do ładowanego podprogramu

11 Ładowanie dynamiczne Podprogramy nie są ładowane do pamięci dopóki nie zostaną wywołane Do pamięci zostaje załadowany tylko program główny. W przypadku potrzeby wywołania podprogramu: sprawdzamy czy ten podprogram znajduje się w pamięci jeżeli nie to wywoływany jest tzw. program łączący program łączący wprowadza żądany podprogram do pamięci oraz uaktualnia tablicę adresów sterowanie zostaje przekazane do ładowanego podprogramu

12 Ładowanie dynamiczne Podprogramy nie są ładowane do pamięci dopóki nie zostaną wywołane Do pamięci zostaje załadowany tylko program główny. W przypadku potrzeby wywołania podprogramu: sprawdzamy czy ten podprogram znajduje się w pamięci jeżeli nie to wywoływany jest tzw. program łączący program łączący wprowadza żądany podprogram do pamięci oraz uaktualnia tablicę adresów sterowanie zostaje przekazane do ładowanego podprogramu

13 Ładowanie dynamiczne Podprogramy nie są ładowane do pamięci dopóki nie zostaną wywołane Do pamięci zostaje załadowany tylko program główny. W przypadku potrzeby wywołania podprogramu: sprawdzamy czy ten podprogram znajduje się w pamięci jeżeli nie to wywoływany jest tzw. program łączący program łączący wprowadza żądany podprogram do pamięci oraz uaktualnia tablicę adresów sterowanie zostaje przekazane do ładowanego podprogramu

14 Zalety nigdy nie zostanie załadowany podprogram, którego się nie używa metoda nie wymaga specjalnego wsparcia ze strony systemu operacyjnego Podsumowanie Użytkownicy są odpowiedzialni za zaprojektowanie programów, aby mogły korzystać z ładowania dynamicznego System operacyjny może dostarczyć bibliotek do realizacji tej metody

15 Zalety nigdy nie zostanie załadowany podprogram, którego się nie używa metoda nie wymaga specjalnego wsparcia ze strony systemu operacyjnego Podsumowanie Użytkownicy są odpowiedzialni za zaprojektowanie programów, aby mogły korzystać z ładowania dynamicznego System operacyjny może dostarczyć bibliotek do realizacji tej metody

16 Konsolidacja dynamiczna Wady W obrazie binarnym programu znajduje się tylko namiastka procedury bibliotecznej Ten fragment kodu pozwala zlokalizować odpowiedni podprogram w pamięci, bądź załadować bibliotekę z dysku Aktualizacja bibliotek biblioteka może zostać zastąpiona nową ulepszoną wersją Wszystkie programy odwołujące się do biblioteki będą automatycznie korzystały z nowej wersji wymagana pomoc ze strony systemu operacyjnego sprawdzanie czy dany podprogram znajduje się w pamięci innych procesów kontrola nad dostępem różnych procesów do tych samych komórek pamięci

17 Konsolidacja dynamiczna Wady W obrazie binarnym programu znajduje się tylko namiastka procedury bibliotecznej Ten fragment kodu pozwala zlokalizować odpowiedni podprogram w pamięci, bądź załadować bibliotekę z dysku Aktualizacja bibliotek biblioteka może zostać zastąpiona nową ulepszoną wersją Wszystkie programy odwołujące się do biblioteki będą automatycznie korzystały z nowej wersji wymagana pomoc ze strony systemu operacyjnego sprawdzanie czy dany podprogram znajduje się w pamięci innych procesów kontrola nad dostępem różnych procesów do tych samych komórek pamięci

18 Konsolidacja dynamiczna Wady W obrazie binarnym programu znajduje się tylko namiastka procedury bibliotecznej Ten fragment kodu pozwala zlokalizować odpowiedni podprogram w pamięci, bądź załadować bibliotekę z dysku Aktualizacja bibliotek biblioteka może zostać zastąpiona nową ulepszoną wersją Wszystkie programy odwołujące się do biblioteki będą automatycznie korzystały z nowej wersji wymagana pomoc ze strony systemu operacyjnego sprawdzanie czy dany podprogram znajduje się w pamięci innych procesów kontrola nad dostępem różnych procesów do tych samych komórek pamięci

19 Konsolidacja dynamiczna Wady W obrazie binarnym programu znajduje się tylko namiastka procedury bibliotecznej Ten fragment kodu pozwala zlokalizować odpowiedni podprogram w pamięci, bądź załadować bibliotekę z dysku Aktualizacja bibliotek biblioteka może zostać zastąpiona nową ulepszoną wersją Wszystkie programy odwołujące się do biblioteki będą automatycznie korzystały z nowej wersji wymagana pomoc ze strony systemu operacyjnego sprawdzanie czy dany podprogram znajduje się w pamięci innych procesów kontrola nad dostępem różnych procesów do tych samych komórek pamięci

20 Konsolidacja dynamiczna Wady W obrazie binarnym programu znajduje się tylko namiastka procedury bibliotecznej Ten fragment kodu pozwala zlokalizować odpowiedni podprogram w pamięci, bądź załadować bibliotekę z dysku Aktualizacja bibliotek biblioteka może zostać zastąpiona nową ulepszoną wersją Wszystkie programy odwołujące się do biblioteki będą automatycznie korzystały z nowej wersji wymagana pomoc ze strony systemu operacyjnego sprawdzanie czy dany podprogram znajduje się w pamięci innych procesów kontrola nad dostępem różnych procesów do tych samych komórek pamięci

21 Konsolidacja dynamiczna Wady W obrazie binarnym programu znajduje się tylko namiastka procedury bibliotecznej Ten fragment kodu pozwala zlokalizować odpowiedni podprogram w pamięci, bądź załadować bibliotekę z dysku Aktualizacja bibliotek biblioteka może zostać zastąpiona nową ulepszoną wersją Wszystkie programy odwołujące się do biblioteki będą automatycznie korzystały z nowej wersji wymagana pomoc ze strony systemu operacyjnego sprawdzanie czy dany podprogram znajduje się w pamięci innych procesów kontrola nad dostępem różnych procesów do tych samych komórek pamięci

22 Konsolidacja dynamiczna Wady W obrazie binarnym programu znajduje się tylko namiastka procedury bibliotecznej Ten fragment kodu pozwala zlokalizować odpowiedni podprogram w pamięci, bądź załadować bibliotekę z dysku Aktualizacja bibliotek biblioteka może zostać zastąpiona nową ulepszoną wersją Wszystkie programy odwołujące się do biblioteki będą automatycznie korzystały z nowej wersji wymagana pomoc ze strony systemu operacyjnego sprawdzanie czy dany podprogram znajduje się w pamięci innych procesów kontrola nad dostępem różnych procesów do tych samych komórek pamięci

23 Nakładki W pamięci przechowywane są tylko te rozkazy i dane, które są stale potrzebne Inne rozkazy są wprowadzane w miarę zapotrzebowania na miejsce zajmowane przez zbędne już rozkazy Zalety nakładki nie wymagają specjalnego wsparcia ze strony SO mogą być zrealizowane poprzez czytanie plików do pamięci oraz skoków w określone miejsca pamięci szybsze ładowanie danych

24 Nakładki W pamięci przechowywane są tylko te rozkazy i dane, które są stale potrzebne Inne rozkazy są wprowadzane w miarę zapotrzebowania na miejsce zajmowane przez zbędne już rozkazy Zalety nakładki nie wymagają specjalnego wsparcia ze strony SO mogą być zrealizowane poprzez czytanie plików do pamięci oraz skoków w określone miejsca pamięci szybsze ładowanie danych

25 Nakładki W pamięci przechowywane są tylko te rozkazy i dane, które są stale potrzebne Inne rozkazy są wprowadzane w miarę zapotrzebowania na miejsce zajmowane przez zbędne już rozkazy Zalety nakładki nie wymagają specjalnego wsparcia ze strony SO mogą być zrealizowane poprzez czytanie plików do pamięci oraz skoków w określone miejsca pamięci szybsze ładowanie danych

26 Nakładki W pamięci przechowywane są tylko te rozkazy i dane, które są stale potrzebne Inne rozkazy są wprowadzane w miarę zapotrzebowania na miejsce zajmowane przez zbędne już rozkazy Zalety nakładki nie wymagają specjalnego wsparcia ze strony SO mogą być zrealizowane poprzez czytanie plików do pamięci oraz skoków w określone miejsca pamięci szybsze ładowanie danych

27 Wady wolniejsze działanie - dodatkowe operacje czytania kodu jednej nakładki w miejsce innej Przykład Dwuprzebiegowy asembler. Przebieg 1 konstrukcja tablicy symboli, przebieg 2 generacja kodu maszynowego Kod przebiegu 1 Kod przebiegu 2 Tablica symboli Wspólne podprogramy RAZEM 70kB 80kB 20KB 30kB 200kB dostępna pamięć 150kB moduł obsługi nakładek 10kB

28 Wady wolniejsze działanie - dodatkowe operacje czytania kodu jednej nakładki w miejsce innej Przykład Dwuprzebiegowy asembler. Przebieg 1 konstrukcja tablicy symboli, przebieg 2 generacja kodu maszynowego Kod przebiegu 1 Kod przebiegu 2 Tablica symboli Wspólne podprogramy RAZEM 70kB 80kB 20KB 30kB 200kB dostępna pamięć 150kB moduł obsługi nakładek 10kB

29 Przebieg 1 70kB Tablica 20kB symboli Wspólne podprogramy 30kB Modu³ obs³ugi 10kB nak³adek Przebieg 2 80kB Rozmiary nakładek: Nakładka A (przebieg 1): 20kB+30kB+70kB=120kB Nakładka B (przebieg 2): 20kB+30kB+80kB=130kB

30 Przydział ciągły pamięci operacyjnej Przydział pojedynczego obszaru Załóżmy, że system operacyjny znajduje się w pamięci dolnej, a procesy użytkownika w górnej Zadania algorytmu przydziału pamięci: ochrona kodu i danych systemu operacyjnego przed zmianami pochodzącymi od procesów użytkownika ochrona procesów użytkownika przed zmianami spowodowanymi przez inne procesy użytkownika Rejestr graniczny Rejestr przemieszczenia CPU adres logiczny < Tak + adres fizyczny Pamiêæ operacyjna Nie Pu³apka: b³¹d adresowania

31 Przydział ciągły pamięci operacyjnej Przydział pojedynczego obszaru Załóżmy, że system operacyjny znajduje się w pamięci dolnej, a procesy użytkownika w górnej Zadania algorytmu przydziału pamięci: ochrona kodu i danych systemu operacyjnego przed zmianami pochodzącymi od procesów użytkownika ochrona procesów użytkownika przed zmianami spowodowanymi przez inne procesy użytkownika Rejestr graniczny Rejestr przemieszczenia CPU adres logiczny < Tak + adres fizyczny Pamiêæ operacyjna Nie Pu³apka: b³¹d adresowania

32 Rejestr przemieszczenia wartość najmniejszego adresu fizycznego Rejestr graniczny zakres adresów logicznych Planista CPU wybiera proces do wykonania, wtedy ekspedytor nadaje odpowiednie wartości rejestrom Przydział wielu obszarów Maksymalne wykorzystanie pamięci wiele procesów użytkowych może być załadowanych do pamięci w tym samym czasie Cała dostępna pamięć traktowana jest jak jeden wielki blok dziura Dla procesu z zapotrzebowaniem na pamięć szukana jest odpowiednio duża dziura

33 Rejestr przemieszczenia wartość najmniejszego adresu fizycznego Rejestr graniczny zakres adresów logicznych Planista CPU wybiera proces do wykonania, wtedy ekspedytor nadaje odpowiednie wartości rejestrom Przydział wielu obszarów Maksymalne wykorzystanie pamięci wiele procesów użytkowych może być załadowanych do pamięci w tym samym czasie Cała dostępna pamięć traktowana jest jak jeden wielki blok dziura Dla procesu z zapotrzebowaniem na pamięć szukana jest odpowiednio duża dziura

34 Rejestr przemieszczenia wartość najmniejszego adresu fizycznego Rejestr graniczny zakres adresów logicznych Planista CPU wybiera proces do wykonania, wtedy ekspedytor nadaje odpowiednie wartości rejestrom Przydział wielu obszarów Maksymalne wykorzystanie pamięci wiele procesów użytkowych może być załadowanych do pamięci w tym samym czasie Cała dostępna pamięć traktowana jest jak jeden wielki blok dziura Dla procesu z zapotrzebowaniem na pamięć szukana jest odpowiednio duża dziura

35 Przykład Mamy pamięć o rozmiarze 2560 kb i system operacyjny zajmujący 400kB. Rozplanować pamięć biorąc pod uwagę kolejkę z tabeli Proces Pamięć Faza procesora P 1 600kB 10 P kB 5 P 3 300kB 20 P 4 700kB 8 P 5 500kB 15 planowanie zadań - metoda FCFS przydział CPU - metoda rotacyjna (kwant=1)

36 Wybór wolnych obszarów: strategie pierwszego bądź najlepszego dopasowania

37 FRAGMENTACJA Fragmentacja zewnętrzna Przestrzeń wolnej pamięci zostaje podzielona na małe kawałki. Suma wolnych obszarów może wystarczyć na spełnienie pewnego zamówienia, lecz nie tworzą one spójnego obszaru Badania statystyczne pokazały, że w strategii pierwszego dopasowania na N przydzielonych bloków z powodu fragmentacji będzie ginąć 0.5N innych bloków (1/3 pamięci bezużyteczna! reguła 50%) Fragmentacja wewnętrzna Bezużyteczny kawałek pamięci wewnątrz obszaru pamięci przydzielonego dla pewnego procesu

38 FRAGMENTACJA Fragmentacja zewnętrzna Przestrzeń wolnej pamięci zostaje podzielona na małe kawałki. Suma wolnych obszarów może wystarczyć na spełnienie pewnego zamówienia, lecz nie tworzą one spójnego obszaru Badania statystyczne pokazały, że w strategii pierwszego dopasowania na N przydzielonych bloków z powodu fragmentacji będzie ginąć 0.5N innych bloków (1/3 pamięci bezużyteczna! reguła 50%) Fragmentacja wewnętrzna Bezużyteczny kawałek pamięci wewnątrz obszaru pamięci przydzielonego dla pewnego procesu

39 FRAGMENTACJA Fragmentacja zewnętrzna Przestrzeń wolnej pamięci zostaje podzielona na małe kawałki. Suma wolnych obszarów może wystarczyć na spełnienie pewnego zamówienia, lecz nie tworzą one spójnego obszaru Badania statystyczne pokazały, że w strategii pierwszego dopasowania na N przydzielonych bloków z powodu fragmentacji będzie ginąć 0.5N innych bloków (1/3 pamięci bezużyteczna! reguła 50%) Fragmentacja wewnętrzna Bezużyteczny kawałek pamięci wewnątrz obszaru pamięci przydzielonego dla pewnego procesu

40 UPAKOWANIE Upakowanie rozwiązanie problemu zewnętrznej fragmentacji Poprzemieszczanie zawartości pamięci tak, aby cała wolna pamięć znalazła się w jednym wielkim bloku Uwagi! należy zmienić wewnętrzne adresy przesuwanych procesów upakowanie nie jest możliwe, gdy nadawanie adresów jest statyczne (podczas kompilacji lub ładowania) upakowanie jest możliwe gdy nadawanie adresów jest dynamiczne (podczas wykonania programu) należy oszacować koszt upakowania (jakie procesy i gdzie należy przemieszczać)

41 UPAKOWANIE Upakowanie rozwiązanie problemu zewnętrznej fragmentacji Poprzemieszczanie zawartości pamięci tak, aby cała wolna pamięć znalazła się w jednym wielkim bloku Uwagi! należy zmienić wewnętrzne adresy przesuwanych procesów upakowanie nie jest możliwe, gdy nadawanie adresów jest statyczne (podczas kompilacji lub ładowania) upakowanie jest możliwe gdy nadawanie adresów jest dynamiczne (podczas wykonania programu) należy oszacować koszt upakowania (jakie procesy i gdzie należy przemieszczać)

42 UPAKOWANIE Upakowanie rozwiązanie problemu zewnętrznej fragmentacji Poprzemieszczanie zawartości pamięci tak, aby cała wolna pamięć znalazła się w jednym wielkim bloku Uwagi! należy zmienić wewnętrzne adresy przesuwanych procesów upakowanie nie jest możliwe, gdy nadawanie adresów jest statyczne (podczas kompilacji lub ładowania) upakowanie jest możliwe gdy nadawanie adresów jest dynamiczne (podczas wykonania programu) należy oszacować koszt upakowania (jakie procesy i gdzie należy przemieszczać)

43 UPAKOWANIE Upakowanie rozwiązanie problemu zewnętrznej fragmentacji Poprzemieszczanie zawartości pamięci tak, aby cała wolna pamięć znalazła się w jednym wielkim bloku Uwagi! należy zmienić wewnętrzne adresy przesuwanych procesów upakowanie nie jest możliwe, gdy nadawanie adresów jest statyczne (podczas kompilacji lub ładowania) upakowanie jest możliwe gdy nadawanie adresów jest dynamiczne (podczas wykonania programu) należy oszacować koszt upakowania (jakie procesy i gdzie należy przemieszczać)

44 UPAKOWANIE Upakowanie rozwiązanie problemu zewnętrznej fragmentacji Poprzemieszczanie zawartości pamięci tak, aby cała wolna pamięć znalazła się w jednym wielkim bloku Uwagi! należy zmienić wewnętrzne adresy przesuwanych procesów upakowanie nie jest możliwe, gdy nadawanie adresów jest statyczne (podczas kompilacji lub ładowania) upakowanie jest możliwe gdy nadawanie adresów jest dynamiczne (podczas wykonania programu) należy oszacować koszt upakowania (jakie procesy i gdzie należy przemieszczać)

45 UPAKOWANIE Upakowanie rozwiązanie problemu zewnętrznej fragmentacji Poprzemieszczanie zawartości pamięci tak, aby cała wolna pamięć znalazła się w jednym wielkim bloku Uwagi! należy zmienić wewnętrzne adresy przesuwanych procesów upakowanie nie jest możliwe, gdy nadawanie adresów jest statyczne (podczas kompilacji lub ładowania) upakowanie jest możliwe gdy nadawanie adresów jest dynamiczne (podczas wykonania programu) należy oszacować koszt upakowania (jakie procesy i gdzie należy przemieszczać)

46 Przykład Rozważmy przydział pamięci poniżej 0 System 0 System 0 System 0 System Operacyjny 300kB Operacyjny 300kB Operacyjny 300kB Operacyjny 300kB P 1 P 1 P 1 P 1 500kB 500kB 500kB 500kB P 600kB 2 P 600kB 2 P 600kB 2 600kB P kB 1500kB 800kB P 4 P kB 1200kB 1200kB 1200kB 1900kB 2100kB P kB P 4 P kB Przydzia³ pocz¹tkowy 2100kB P 3 Przemieszczono 600kB 2100kB P 3 Przemieszczono 400kB 2100kB P 3 Przemieszczono 200kB Problemy: przemieszczenia można dokonać na wiele sposobów wybranie optymalnej strategii jest trudne

47 Przykład Rozważmy przydział pamięci poniżej 0 System 0 System 0 System 0 System Operacyjny 300kB Operacyjny 300kB Operacyjny 300kB Operacyjny 300kB P 1 P 1 P 1 P 1 500kB 500kB 500kB 500kB P 600kB 2 P 600kB 2 P 600kB 2 600kB P kB 1500kB 800kB P 4 P kB 1200kB 1200kB 1200kB 1900kB 2100kB P kB P 4 P kB Przydzia³ pocz¹tkowy 2100kB P 3 Przemieszczono 600kB 2100kB P 3 Przemieszczono 400kB 2100kB P 3 Przemieszczono 200kB Problemy: przemieszczenia można dokonać na wiele sposobów wybranie optymalnej strategii jest trudne

48 Przykład Rozważmy przydział pamięci poniżej 0 System 0 System 0 System 0 System Operacyjny 300kB Operacyjny 300kB Operacyjny 300kB Operacyjny 300kB P 1 P 1 P 1 P 1 500kB 500kB 500kB 500kB P 600kB 2 P 600kB 2 P 600kB 2 600kB P kB 1500kB 800kB P 4 P kB 1200kB 1200kB 1200kB 1900kB 2100kB P kB P 4 P kB Przydzia³ pocz¹tkowy 2100kB P 3 Przemieszczono 600kB 2100kB P 3 Przemieszczono 400kB 2100kB P 3 Przemieszczono 200kB Problemy: przemieszczenia można dokonać na wiele sposobów wybranie optymalnej strategii jest trudne

49 STRONICOWANIE S tronicowanie (ang. paging) jest metodą pozwalającą na rozwiązanie problemu zewnetrznej fragmentacji. Pozwala się na to, aby procesowi można było przydzielać dowolne dostępne miejsca w pamięci fizycznej Metoda podstawowa Pamięć fizyczną dzieli się na bloki o stałej długości (ramki) Pamięć logiczną dzieli się na bloki o takiej samej długości (strony) Adres logiczny składa się z dwóch części: 1 numer strony (ang. page address) s 2 odległość na stronie (ang. page offset) o numer strony s m-n odleg³oœæ na stronie o n

50 STRONICOWANIE S tronicowanie (ang. paging) jest metodą pozwalającą na rozwiązanie problemu zewnetrznej fragmentacji. Pozwala się na to, aby procesowi można było przydzielać dowolne dostępne miejsca w pamięci fizycznej Metoda podstawowa Pamięć fizyczną dzieli się na bloki o stałej długości (ramki) Pamięć logiczną dzieli się na bloki o takiej samej długości (strony) Adres logiczny składa się z dwóch części: 1 numer strony (ang. page address) s 2 odległość na stronie (ang. page offset) o numer strony s m-n odleg³oœæ na stronie o n

51 STRONICOWANIE S tronicowanie (ang. paging) jest metodą pozwalającą na rozwiązanie problemu zewnetrznej fragmentacji. Pozwala się na to, aby procesowi można było przydzielać dowolne dostępne miejsca w pamięci fizycznej Metoda podstawowa Pamięć fizyczną dzieli się na bloki o stałej długości (ramki) Pamięć logiczną dzieli się na bloki o takiej samej długości (strony) Adres logiczny składa się z dwóch części: 1 numer strony (ang. page address) s 2 odległość na stronie (ang. page offset) o numer strony s m-n odleg³oœæ na stronie o n

52 STRONICOWANIE S tronicowanie (ang. paging) jest metodą pozwalającą na rozwiązanie problemu zewnetrznej fragmentacji. Pozwala się na to, aby procesowi można było przydzielać dowolne dostępne miejsca w pamięci fizycznej Metoda podstawowa Pamięć fizyczną dzieli się na bloki o stałej długości (ramki) Pamięć logiczną dzieli się na bloki o takiej samej długości (strony) Adres logiczny składa się z dwóch części: 1 numer strony (ang. page address) s 2 odległość na stronie (ang. page offset) o numer strony s m-n odleg³oœæ na stronie o n

53 STRONICOWANIE S tronicowanie (ang. paging) jest metodą pozwalającą na rozwiązanie problemu zewnetrznej fragmentacji. Pozwala się na to, aby procesowi można było przydzielać dowolne dostępne miejsca w pamięci fizycznej Metoda podstawowa Pamięć fizyczną dzieli się na bloki o stałej długości (ramki) Pamięć logiczną dzieli się na bloki o takiej samej długości (strony) Adres logiczny składa się z dwóch części: 1 numer strony (ang. page address) s 2 odległość na stronie (ang. page offset) o numer strony s m-n odleg³oœæ na stronie o n

54 STRONICOWANIE S tronicowanie (ang. paging) jest metodą pozwalającą na rozwiązanie problemu zewnetrznej fragmentacji. Pozwala się na to, aby procesowi można było przydzielać dowolne dostępne miejsca w pamięci fizycznej Metoda podstawowa Pamięć fizyczną dzieli się na bloki o stałej długości (ramki) Pamięć logiczną dzieli się na bloki o takiej samej długości (strony) Adres logiczny składa się z dwóch części: 1 numer strony (ang. page address) s 2 odległość na stronie (ang. page offset) o numer strony s m-n odleg³oœæ na stronie o n

55 Definicja adresu fizycznego adres bazowy strony w pamięci r odległość na stronie o adres bazowy r odleg³oœæ na stronie o Idea stronicowania pamięci CPU adres adres logiczny fizyczny s o r o s {... r... Tablica stron Pamiêæ operacyjna

56 Definicja adresu fizycznego adres bazowy strony w pamięci r odległość na stronie o adres bazowy r odleg³oœæ na stronie o Idea stronicowania pamięci CPU adres adres logiczny fizyczny s o r o s {... r... Tablica stron Pamiêæ operacyjna

57 Definicja adresu fizycznego adres bazowy strony w pamięci r odległość na stronie o adres bazowy r odleg³oœæ na stronie o Idea stronicowania pamięci CPU adres adres logiczny fizyczny s o r o s {... r... Tablica stron Pamiêæ operacyjna

58 numer strony jest indeksem w tablicy stron tablica stron zawiera adresy bazowe wszystkich stron w pamięci Strona 0 Strona 1 Strona 2 Strona 3 Pamiêæ logiczna Tablica stron 0 1 Strona Strona 2 4 Strona Strona 3 Pamiêæ fizyczna rozmiar strony (zarazem ramki) określa sprzęt rozmiar ten jest zwykle potęgą dwójki: 2 m rozmiar przestrzeni logicznej 2 n rozmiar strony

59 numer strony jest indeksem w tablicy stron tablica stron zawiera adresy bazowe wszystkich stron w pamięci Strona 0 Strona 1 Strona 2 Strona 3 Pamiêæ logiczna Tablica stron 0 1 Strona Strona 2 4 Strona Strona 3 Pamiêæ fizyczna rozmiar strony (zarazem ramki) określa sprzęt rozmiar ten jest zwykle potęgą dwójki: 2 m rozmiar przestrzeni logicznej 2 n rozmiar strony

60 numer strony jest indeksem w tablicy stron tablica stron zawiera adresy bazowe wszystkich stron w pamięci Strona 0 Strona 1 Strona 2 Strona 3 Pamiêæ logiczna Tablica stron 0 1 Strona Strona 2 4 Strona Strona 3 Pamiêæ fizyczna rozmiar strony (zarazem ramki) określa sprzęt rozmiar ten jest zwykle potęgą dwójki: 2 m rozmiar przestrzeni logicznej 2 n rozmiar strony

61 numer strony jest indeksem w tablicy stron tablica stron zawiera adresy bazowe wszystkich stron w pamięci Strona 0 Strona 1 Strona 2 Strona 3 Pamiêæ logiczna Tablica stron 0 1 Strona Strona 2 4 Strona Strona 3 Pamiêæ fizyczna rozmiar strony (zarazem ramki) określa sprzęt rozmiar ten jest zwykle potęgą dwójki: 2 m rozmiar przestrzeni logicznej 2 n rozmiar strony

62 numer strony jest indeksem w tablicy stron tablica stron zawiera adresy bazowe wszystkich stron w pamięci Strona 0 Strona 1 Strona 2 Strona 3 Pamiêæ logiczna Tablica stron 0 1 Strona Strona 2 4 Strona Strona 3 Pamiêæ fizyczna rozmiar strony (zarazem ramki) określa sprzęt rozmiar ten jest zwykle potęgą dwójki: 2 m rozmiar przestrzeni logicznej 2 n rozmiar strony

63 Podsumowanie stronicowanie jest odmianą dynamicznego przemieszczenia. Przypomina używanie tablicy rejestrów bazowych - po jednym na każdą ramkę pamięci stronicowanie eliminuje zewnętrzną fragmentację stronicowanie wprowadza wewnętrzną fragmentację np. rozmiar strony 2048B, rozmiar procesu 72766B wewnętrzna fragmentacja 962B wyraźne rozdzielenie pamięci widzianej przez użytkownika od pamięci fizycznej stronicowanie wydłuża czas przełączania kontekstu. Przechowuje kopie tablicy stron, licznika rozkazów i zawartości rejestrów

64 Podsumowanie stronicowanie jest odmianą dynamicznego przemieszczenia. Przypomina używanie tablicy rejestrów bazowych - po jednym na każdą ramkę pamięci stronicowanie eliminuje zewnętrzną fragmentację stronicowanie wprowadza wewnętrzną fragmentację np. rozmiar strony 2048B, rozmiar procesu 72766B wewnętrzna fragmentacja 962B wyraźne rozdzielenie pamięci widzianej przez użytkownika od pamięci fizycznej stronicowanie wydłuża czas przełączania kontekstu. Przechowuje kopie tablicy stron, licznika rozkazów i zawartości rejestrów

65 Podsumowanie stronicowanie jest odmianą dynamicznego przemieszczenia. Przypomina używanie tablicy rejestrów bazowych - po jednym na każdą ramkę pamięci stronicowanie eliminuje zewnętrzną fragmentację stronicowanie wprowadza wewnętrzną fragmentację np. rozmiar strony 2048B, rozmiar procesu 72766B wewnętrzna fragmentacja 962B wyraźne rozdzielenie pamięci widzianej przez użytkownika od pamięci fizycznej stronicowanie wydłuża czas przełączania kontekstu. Przechowuje kopie tablicy stron, licznika rozkazów i zawartości rejestrów

66 Podsumowanie stronicowanie jest odmianą dynamicznego przemieszczenia. Przypomina używanie tablicy rejestrów bazowych - po jednym na każdą ramkę pamięci stronicowanie eliminuje zewnętrzną fragmentację stronicowanie wprowadza wewnętrzną fragmentację np. rozmiar strony 2048B, rozmiar procesu 72766B wewnętrzna fragmentacja 962B wyraźne rozdzielenie pamięci widzianej przez użytkownika od pamięci fizycznej stronicowanie wydłuża czas przełączania kontekstu. Przechowuje kopie tablicy stron, licznika rozkazów i zawartości rejestrów

67 Podsumowanie stronicowanie jest odmianą dynamicznego przemieszczenia. Przypomina używanie tablicy rejestrów bazowych - po jednym na każdą ramkę pamięci stronicowanie eliminuje zewnętrzną fragmentację stronicowanie wprowadza wewnętrzną fragmentację np. rozmiar strony 2048B, rozmiar procesu 72766B wewnętrzna fragmentacja 962B wyraźne rozdzielenie pamięci widzianej przez użytkownika od pamięci fizycznej stronicowanie wydłuża czas przełączania kontekstu. Przechowuje kopie tablicy stron, licznika rozkazów i zawartości rejestrów

68 SEGMENTACJA Segmentacja w prosty sposób oddziela sposób widzenia pamięci przez użytkownika od pamięci rzeczywistej. W odróżnieniu od stronicowania pozwala na dopasowanie sposobu wyobrażenia pamięci przez użytkownika na pamięć fizyczną Metoda podstawowa Programista nie wyobraża sobie pamięci jako liniowej tablicy bitów, widzi pamięć jako zbiór segmentów o zróżnicowanych wymiarach Idea segmentacji Podprogram Logiczna przestrzeñ adresowa Funkcja SQRT Program g³ówny Tablica symboli STOS

69 SEGMENTACJA Segmentacja w prosty sposób oddziela sposób widzenia pamięci przez użytkownika od pamięci rzeczywistej. W odróżnieniu od stronicowania pozwala na dopasowanie sposobu wyobrażenia pamięci przez użytkownika na pamięć fizyczną Metoda podstawowa Programista nie wyobraża sobie pamięci jako liniowej tablicy bitów, widzi pamięć jako zbiór segmentów o zróżnicowanych wymiarach Idea segmentacji Podprogram Logiczna przestrzeñ adresowa Funkcja SQRT Program g³ówny Tablica symboli STOS

70 każdy segment ma swoją nazwę i długość adresy określają nazwę segmentu i odległość wewnątrz segmentu adres segment-offset określony jest za pomocą dwu wielkości: <numer segmentu, odległość> Podczas tłumaczenia programu kompilator automatycznie konstruuje segmenty odpowiadające np.: 1 programowi głównemu 2 zmiennym lokalnym 3 zmiennym globalnym 4 poszczególnym procedurom i funkcjom, etc.

71 każdy segment ma swoją nazwę i długość adresy określają nazwę segmentu i odległość wewnątrz segmentu adres segment-offset określony jest za pomocą dwu wielkości: <numer segmentu, odległość> Podczas tłumaczenia programu kompilator automatycznie konstruuje segmenty odpowiadające np.: 1 programowi głównemu 2 zmiennym lokalnym 3 zmiennym globalnym 4 poszczególnym procedurom i funkcjom, etc.

72 każdy segment ma swoją nazwę i długość adresy określają nazwę segmentu i odległość wewnątrz segmentu adres segment-offset określony jest za pomocą dwu wielkości: <numer segmentu, odległość> Podczas tłumaczenia programu kompilator automatycznie konstruuje segmenty odpowiadające np.: 1 programowi głównemu 2 zmiennym lokalnym 3 zmiennym globalnym 4 poszczególnym procedurom i funkcjom, etc.

73 każdy segment ma swoją nazwę i długość adresy określają nazwę segmentu i odległość wewnątrz segmentu adres segment-offset określony jest za pomocą dwu wielkości: <numer segmentu, odległość> Podczas tłumaczenia programu kompilator automatycznie konstruuje segmenty odpowiadające np.: 1 programowi głównemu 2 zmiennym lokalnym 3 zmiennym globalnym 4 poszczególnym procedurom i funkcjom, etc.

74 każdy segment ma swoją nazwę i długość adresy określają nazwę segmentu i odległość wewnątrz segmentu adres segment-offset określony jest za pomocą dwu wielkości: <numer segmentu, odległość> Podczas tłumaczenia programu kompilator automatycznie konstruuje segmenty odpowiadające np.: 1 programowi głównemu 2 zmiennym lokalnym 3 zmiennym globalnym 4 poszczególnym procedurom i funkcjom, etc.

75 każdy segment ma swoją nazwę i długość adresy określają nazwę segmentu i odległość wewnątrz segmentu adres segment-offset określony jest za pomocą dwu wielkości: <numer segmentu, odległość> Podczas tłumaczenia programu kompilator automatycznie konstruuje segmenty odpowiadające np.: 1 programowi głównemu 2 zmiennym lokalnym 3 zmiennym globalnym 4 poszczególnym procedurom i funkcjom, etc.

76 każdy segment ma swoją nazwę i długość adresy określają nazwę segmentu i odległość wewnątrz segmentu adres segment-offset określony jest za pomocą dwu wielkości: <numer segmentu, odległość> Podczas tłumaczenia programu kompilator automatycznie konstruuje segmenty odpowiadające np.: 1 programowi głównemu 2 zmiennym lokalnym 3 zmiennym globalnym 4 poszczególnym procedurom i funkcjom, etc.

77 Sprzęt s{ granica baza Tak CPU s o < Adres Nie logiczny Pu³apka: B³¹d adresowania Tablica segmentów + Pamiêæ operacyjna adres użytkownika dwuwymiarowy pamięć fizyczna jednowymiarowy ciąg bitów odwzorowanie adresów tablica segmentów

78 Sprzęt s{ granica baza Tak CPU s o < Adres Nie logiczny Pu³apka: B³¹d adresowania Tablica segmentów + Pamiêæ operacyjna adres użytkownika dwuwymiarowy pamięć fizyczna jednowymiarowy ciąg bitów odwzorowanie adresów tablica segmentów

79 Sprzęt s{ granica baza Tak CPU s o < Adres Nie logiczny Pu³apka: B³¹d adresowania Tablica segmentów + Pamiêæ operacyjna adres użytkownika dwuwymiarowy pamięć fizyczna jednowymiarowy ciąg bitów odwzorowanie adresów tablica segmentów

80 Tablica segmentów jest wykazem par rejestrów bazy i granicy Elementy tablicy segmentów: baza segmentu początkowy adres fizyczny segmentu w pamięci granica segmentu określa długość segmentu Odległość o: przedział < 0, granica segmentu > Adres fizyczny: dodanie odległości do bazy segmentu

81 Tablica segmentów jest wykazem par rejestrów bazy i granicy Elementy tablicy segmentów: baza segmentu początkowy adres fizyczny segmentu w pamięci granica segmentu określa długość segmentu Odległość o: przedział < 0, granica segmentu > Adres fizyczny: dodanie odległości do bazy segmentu

82 Tablica segmentów jest wykazem par rejestrów bazy i granicy Elementy tablicy segmentów: baza segmentu początkowy adres fizyczny segmentu w pamięci granica segmentu określa długość segmentu Odległość o: przedział < 0, granica segmentu > Adres fizyczny: dodanie odległości do bazy segmentu

83 Tablica segmentów jest wykazem par rejestrów bazy i granicy Elementy tablicy segmentów: baza segmentu początkowy adres fizyczny segmentu w pamięci granica segmentu określa długość segmentu Odległość o: przedział < 0, granica segmentu > Adres fizyczny: dodanie odległości do bazy segmentu

84 Tablica segmentów jest wykazem par rejestrów bazy i granicy Elementy tablicy segmentów: baza segmentu początkowy adres fizyczny segmentu w pamięci granica segmentu określa długość segmentu Odległość o: przedział < 0, granica segmentu > Adres fizyczny: dodanie odległości do bazy segmentu

85 Przykład Rozważmy następującą przestrzeń logiczną Funkcja SQRT Segment 1 Podprogram Segment 0 Program g³ówny Segment 2 Tablica symboli Segment 4 STOS Segment 3 Tablica segmentów Granica Baza segmentów numerowanych 0,1,...,4 odwołanie do komórki 53 segmentu 2: =4353 odwołanie do komórki 852 segmentu 3: =4052 odwołanie do komórki 1222 segmentu 0: błąd adresowania

86 Przykład Rozważmy następującą przestrzeń logiczną Funkcja SQRT Segment 1 Podprogram Segment 0 Program g³ówny Segment 2 Tablica symboli Segment 4 STOS Segment 3 Tablica segmentów Granica Baza segmentów numerowanych 0,1,...,4 odwołanie do komórki 53 segmentu 2: =4353 odwołanie do komórki 852 segmentu 3: =4052 odwołanie do komórki 1222 segmentu 0: błąd adresowania

87 Przykład Rozważmy następującą przestrzeń logiczną Funkcja SQRT Segment 1 Podprogram Segment 0 Program g³ówny Segment 2 Tablica symboli Segment 4 STOS Segment 3 Tablica segmentów Granica Baza segmentów numerowanych 0,1,...,4 odwołanie do komórki 53 segmentu 2: =4353 odwołanie do komórki 852 segmentu 3: =4052 odwołanie do komórki 1222 segmentu 0: błąd adresowania

88 Przykład Rozważmy następującą przestrzeń logiczną Funkcja SQRT Segment 1 Podprogram Segment 0 Program g³ówny Segment 2 Tablica symboli Segment 4 STOS Segment 3 Tablica segmentów Granica Baza segmentów numerowanych 0,1,...,4 odwołanie do komórki 53 segmentu 2: =4353 odwołanie do komórki 852 segmentu 3: =4052 odwołanie do komórki 1222 segmentu 0: błąd adresowania

89 Fragmentacja planista musi znaleźć i przydzielić pamięć wszystkim segmentom programu mamy do czynienia z dynamicznym przydziałem pamięci: metoda pierwszego dopasowania, metoda najlepszego dopasowania segmentacja powoduje zewnętrzną fragmentację problem stanowi dobór średniego rozmiaru segmentu każdy proces stanowi jeden segment stronicowanie upraszcza się do ciągłego przydziału pamięci każdy bajt zapisany jest w osobnym segmencie unika się całkowicie zewnętrznej fragmentacji, ALE każdy bajt potrzebuje swojego rejestru bazowego. W efekcie podwaja się zużycie pamięci segmentacja likwiduje całkowicie wewnętrzną fragmentację

90 Fragmentacja planista musi znaleźć i przydzielić pamięć wszystkim segmentom programu mamy do czynienia z dynamicznym przydziałem pamięci: metoda pierwszego dopasowania, metoda najlepszego dopasowania segmentacja powoduje zewnętrzną fragmentację problem stanowi dobór średniego rozmiaru segmentu każdy proces stanowi jeden segment stronicowanie upraszcza się do ciągłego przydziału pamięci każdy bajt zapisany jest w osobnym segmencie unika się całkowicie zewnętrznej fragmentacji, ALE każdy bajt potrzebuje swojego rejestru bazowego. W efekcie podwaja się zużycie pamięci segmentacja likwiduje całkowicie wewnętrzną fragmentację

91 Fragmentacja planista musi znaleźć i przydzielić pamięć wszystkim segmentom programu mamy do czynienia z dynamicznym przydziałem pamięci: metoda pierwszego dopasowania, metoda najlepszego dopasowania segmentacja powoduje zewnętrzną fragmentację problem stanowi dobór średniego rozmiaru segmentu każdy proces stanowi jeden segment stronicowanie upraszcza się do ciągłego przydziału pamięci każdy bajt zapisany jest w osobnym segmencie unika się całkowicie zewnętrznej fragmentacji, ALE każdy bajt potrzebuje swojego rejestru bazowego. W efekcie podwaja się zużycie pamięci segmentacja likwiduje całkowicie wewnętrzną fragmentację

92 Fragmentacja planista musi znaleźć i przydzielić pamięć wszystkim segmentom programu mamy do czynienia z dynamicznym przydziałem pamięci: metoda pierwszego dopasowania, metoda najlepszego dopasowania segmentacja powoduje zewnętrzną fragmentację problem stanowi dobór średniego rozmiaru segmentu każdy proces stanowi jeden segment stronicowanie upraszcza się do ciągłego przydziału pamięci każdy bajt zapisany jest w osobnym segmencie unika się całkowicie zewnętrznej fragmentacji, ALE każdy bajt potrzebuje swojego rejestru bazowego. W efekcie podwaja się zużycie pamięci segmentacja likwiduje całkowicie wewnętrzną fragmentację

93 Fragmentacja planista musi znaleźć i przydzielić pamięć wszystkim segmentom programu mamy do czynienia z dynamicznym przydziałem pamięci: metoda pierwszego dopasowania, metoda najlepszego dopasowania segmentacja powoduje zewnętrzną fragmentację problem stanowi dobór średniego rozmiaru segmentu każdy proces stanowi jeden segment stronicowanie upraszcza się do ciągłego przydziału pamięci każdy bajt zapisany jest w osobnym segmencie unika się całkowicie zewnętrznej fragmentacji, ALE każdy bajt potrzebuje swojego rejestru bazowego. W efekcie podwaja się zużycie pamięci segmentacja likwiduje całkowicie wewnętrzną fragmentację

94 Fragmentacja planista musi znaleźć i przydzielić pamięć wszystkim segmentom programu mamy do czynienia z dynamicznym przydziałem pamięci: metoda pierwszego dopasowania, metoda najlepszego dopasowania segmentacja powoduje zewnętrzną fragmentację problem stanowi dobór średniego rozmiaru segmentu każdy proces stanowi jeden segment stronicowanie upraszcza się do ciągłego przydziału pamięci każdy bajt zapisany jest w osobnym segmencie unika się całkowicie zewnętrznej fragmentacji, ALE każdy bajt potrzebuje swojego rejestru bazowego. W efekcie podwaja się zużycie pamięci segmentacja likwiduje całkowicie wewnętrzną fragmentację

95 Fragmentacja planista musi znaleźć i przydzielić pamięć wszystkim segmentom programu mamy do czynienia z dynamicznym przydziałem pamięci: metoda pierwszego dopasowania, metoda najlepszego dopasowania segmentacja powoduje zewnętrzną fragmentację problem stanowi dobór średniego rozmiaru segmentu każdy proces stanowi jeden segment stronicowanie upraszcza się do ciągłego przydziału pamięci każdy bajt zapisany jest w osobnym segmencie unika się całkowicie zewnętrznej fragmentacji, ALE każdy bajt potrzebuje swojego rejestru bazowego. W efekcie podwaja się zużycie pamięci segmentacja likwiduje całkowicie wewnętrzną fragmentację

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

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów

Bardziej szczegółowo

Od programu źródłowego do procesu

Od programu źródłowego do procesu Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów

Bardziej szczegółowo

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

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com Pamięć Jan Tuziemski Źródło części materiałów: os-book.com Cele wykładu Przedstawienie sposobów organizacji pamięci komputera Przedstawienie technik zarządzania pamięcią Podstawy Przed uruchomieniem program

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci

Bardziej szczegółowo

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

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Zarządzanie pamięcią operacyjną zagadnienia podstawowe Zarządzanie pamięcią operacyjną zagadnienia podstawowe Pamięć jako zasób systemu komputerowego Pamięć jest zasobem służący do przechowywania danych. Z punktu widzenia systemu pamięć jest zasobem o strukturze

Bardziej szczegółowo

KOMPONENTY SYSTEMÓW OPERACYJNYCH

KOMPONENTY SYSTEMÓW OPERACYJNYCH KOMPONENTY SYSTEMÓW OPERACYJNYCH dr hab. inż. Krzysztof Patan, prof. PWSZ Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa w Głogowie k.patan@issi.uz.zgora.pl PRZYDZIAŁ CZASU PROCESORA Cel: Stałe

Bardziej szczegółowo

Zarządzanie zasobami pamięci

Zarządzanie zasobami pamięci Zarządzanie zasobami pamięci System operacyjny wykonuje programy umieszczone w pamięci operacyjnej. W pamięci operacyjnej przechowywany jest obecnie wykonywany program (proces) oraz niezbędne dane. Jeżeli

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

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

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem. Zarządzanie pamięcią Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem. Zarządzanie pamięcią podstawy pamięć operacyjna (główna) (main memory,

Bardziej szczegółowo

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ Wiązanie adresów adr.symbol -> adr. względne ->adresy pamięci kompilacja; kod bezwzględny (*.com) ładowanie; kod przemieszczalny wykonanie adr.względne -> adr. bezwzględne

Bardziej szczegółowo

Systemy Operacyjne Zarządzanie pamięcią operacyjną

Systemy Operacyjne Zarządzanie pamięcią operacyjną Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 4 stycznia 2007 1 Zagadnienia podstawowe 1 Wiązanie adresów 2 Ładowanie dynamiczne 3 Łączenie dynamiczne 4 Nakładki 2 3 Przydział ciągłych

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

Przed wykonaniem program musi być pobrany z dysku i. Tam działa a jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z

Przed wykonaniem program musi być pobrany z dysku i. Tam działa a jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany adowany do pamięci. Tam działa a jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większo kszość

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 12 Wspomaganie systemu operacyjnego: pamięć wirtualna Partycjonowanie Pamięć jest dzielona, aby mogło korzystać z niej wiele procesów. Dla jednego procesu przydzielana jest

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego

Bardziej szczegółowo

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

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

Stronicowanie w systemie pamięci wirtualnej

Stronicowanie w systemie pamięci wirtualnej Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni

Bardziej szczegółowo

Budowa systemów komputerowych

Budowa systemów komputerowych Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa

Bardziej szczegółowo

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

architektura komputerów w. 8 Zarządzanie pamięcią architektura komputerów w. 8 Zarządzanie pamięcią Zarządzanie pamięcią Jednostka centralna dysponuje zwykle duża mocą obliczeniową. Sprawne wykorzystanie możliwości jednostki przetwarzającej wymaga obecności

Bardziej szczegółowo

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

Wykład 7. Zarządzanie pamięcią Wykład 7 Zarządzanie pamięcią -1- Świat idealny a świat rzeczywisty W idealnym świecie pamięć powinna Mieć bardzo dużą pojemność Mieć bardzo krótki czas dostępu Być nieulotna (zawartość nie jest tracona

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

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

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pamięć wirtualna Stronicowanie na żądanie większość współczesnych systemów

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego

Bardziej szczegółowo

Technologie informacyjne (2) Zdzisław Szyjewski

Technologie informacyjne (2) Zdzisław Szyjewski Technologie informacyjne (2) Zdzisław Szyjewski Technologie informacyjne Technologie pracy z komputerem Funkcje systemu operacyjnego Przykłady systemów operacyjnych Zarządzanie pamięcią Zarządzanie danymi

Bardziej szczegółowo

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego

Bardziej szczegółowo

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]

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] Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386 Budowa procesora 80386 Struktura wewnętrzna logiczna procesora 80386 Pierwszy prawdziwy procesor 32-bitowy. Zawiera wewnętrzne 32-bitowe rejestry (omówione zostaną w modułach następnych), pozwalające przetwarzać

Bardziej szczegółowo

Zarz arz dzanie pam dzanie ięci ę ą

Zarz arz dzanie pam dzanie ięci ę ą Zarządzanie pamięcią Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci.

Bardziej szczegółowo

Zarz arz dzanie pam dzanie ięci ę ą

Zarz arz dzanie pam dzanie ięci ę ą Zarządzanie pamięcią Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci.

Bardziej szczegółowo

Od programu źródłowego do procesu

Od programu źródłowego do procesu Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2009/2010 Wykład nr 8 (29.01.2009) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

dr inŝ. Jarosław Forenc

dr inŝ. Jarosław Forenc Rok akademicki 2009/2010, Wykład nr 8 2/19 Plan wykładu nr 8 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2009/2010

Bardziej szczegółowo

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

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1 Tryb chroniony cz. 1 Moduł zarządzania pamięcią w trybie chronionym (z ang. PM - Protected Mode) procesorów IA-32 udostępnia: - segmentację, - stronicowanie. Segmentacja mechanizm umożliwiający odizolowanie

Bardziej szczegółowo

Systemy Operacyjne Pamięć wirtualna cz. 2

Systemy Operacyjne Pamięć wirtualna cz. 2 Systemy Operacyjne Pamięć wirtualna cz. 2 Arkadiusz Chrobot Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 20 stycznia 2007 1 1 Wstęp 2 Minimalna liczba ramek 3 Algorytmy przydziału

Bardziej szczegółowo

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

Zarządzanie pamięcią. Zarządzanie pamięcią. Podstawy. Podsystem zarządzania pamięcią. Zadania podsystemu: W systemie wielozadaniowym: W systemie wielozadaniowym: Wpamięci wiele procesów jednocześnie Każdy proces potrzebuje pamięci na: Instrukcje (kod lub tekst) Dane statyczne (w programie) Dane dynamiczne (sterta, stos). System operacyjny

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

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

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22 ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH struktury procesorów ASK SP.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 Maszyny wirtualne 2 3 Literatura c Dr inż. Ignacy

Bardziej szczegółowo

Zarz¹dzanie pamiêci¹

Zarz¹dzanie pamiêci¹ Zarz¹dzanie pamiêci¹ Wykonywaæ mo na jedynie program umieszczony w pamiêci g³ównej. Wi¹zanie instrukcji i danych z ami w pamiêci mo e siê odbywaæ w czasie: kompilacji: jeœli s¹ znane a priori y w pamiêci,

Bardziej szczegółowo

2.1 Wstęp Kryteria planowania Algorytmy planowania Systemy wieloprocesorowe i czasu rzeczywistego...

2.1 Wstęp Kryteria planowania Algorytmy planowania Systemy wieloprocesorowe i czasu rzeczywistego... Plan prezentacji Spis treści 1 Planowanie przydziału procesora 1 1.1 Wstęp................................................... 1 1.2 Kryteria planowania............................................ 2 1.3

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

Podstawy Informatyki Języki programowania c.d.

Podstawy Informatyki Języki programowania c.d. Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład

Bardziej szczegółowo

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

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski Układ sterowania, magistrale i organizacja pamięci Dariusz Chaberski Jednostka centralna szyna sygnałow sterowania sygnały sterujące układ sterowania sygnały stanu wewnętrzna szyna danych układ wykonawczy

Bardziej szczegółowo

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

Zarządzanie pamięcią operacyjną i pamięć wirtualna Zarządzanie pamięcią operacyjną i pamięć wirtualna Pamięć jako zasób systemu komputerowego. Wsparcie dla zarządzania pamięcią na poziomie architektury komputera. Podział i przydział pamięci. Obraz procesu

Bardziej szczegółowo

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Systemy operacyjne wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Plan wykładów 1. Wprowadzenie, 2. Procesy, wątki i zasoby, 3. Planowanie przydziału procesora, 4. Zarządzanie pamięcią operacyjną,

Bardziej szczegółowo

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

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom). Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154

Bardziej szczegółowo

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów

Bardziej szczegółowo

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

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

Nakładki. Kod przebiegu 2: 80 kb Tablica symboli: 20 kb wspólne podprogramy: 30 kb Razem: 200 kb

Nakładki. Kod przebiegu 2: 80 kb Tablica symboli: 20 kb wspólne podprogramy: 30 kb Razem: 200 kb Pamięć wirtualna Nakładki Nakładki są potrzebne jeśli proces jest większy niż ilość dostępnej pamięci. Przykład - dwuprzebiegowy asembler mamy do dyspozycji 150 kb pamięci, a poszczególne elementy zadania

Bardziej szczegółowo

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

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com Pamięć wirtualna Jan Tuziemski Źródło części materiałów: os-book.com Pamięć wirtualna Na poprzednich wykładach omówiono sposoby zarządzania pamięcią Są one potrzebne ponieważ wykonywane rozkazy procesów

Bardziej szczegółowo

ARCHITEKTURA PROCESORA,

ARCHITEKTURA PROCESORA, ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy

Bardziej szczegółowo

1.1 Definicja procesu

1.1 Definicja procesu 1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Współpraca procesora ColdFire z pamięcią

Współpraca procesora ColdFire z pamięcią Współpraca procesora ColdFire z pamięcią 1 Współpraca procesora z pamięcią zewnętrzną (1) ROM Magistrala adresowa Pamięć programu Magistrala danych Sygnały sterujące CS, OE Mikroprocesor FLASH, SRAM, DRAM

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

Zarządzanie procesami i wątkami

Zarządzanie procesami i wątkami SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły

Bardziej szczegółowo

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna Architektura komputerów. Literatura: 1. Piotr Metzger, Anatomia PC, wyd. IX, Helion 2004 2. Scott Mueller, Rozbudowa i naprawa PC, wyd. XVIII, Helion 2009 3. Tomasz Kowalski, Urządzenia techniki komputerowej,

Bardziej szczegółowo

Schematy zarzadzania pamięcia

Schematy zarzadzania pamięcia Schematy zarzadzania pamięcia Segmentacja podział obszaru pamięci procesu na logiczne jednostki segmenty o dowolnej długości. Postać adresu logicznego: [nr segmentu, przesunięcie]. Zwykle przechowywana

Bardziej szczegółowo

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

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.

Bardziej szczegółowo

Mikroinformatyka. Wielozadaniowość

Mikroinformatyka. Wielozadaniowość Mikroinformatyka Wielozadaniowość Zadanie Tryb chroniony przynajmniej jedno zadanie (task). Segment stanu zadania TSS (Task State Segment). Przestrzeń zadania (Execution Space). - segment kodu, - segment

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

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

Podstawy. Podsystem zarządzania pamięcią - zadania: Wiązanie (binding) rozkazów i danych z adresami pamięci. W systemie wielozadaniowym: W systemie wielozadaniowym: W pamięci wiele procesów jednocześnie Każdy proces potrzebuje pamięci na: Instrukcje (kod lub tekst) Dane statyczne (w programie) Dane dynamiczne (sterta, stos). System operacyjny

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Budowa i zasada działania komputera. dr Artur Bartoszewski

Budowa i zasada działania komputera. dr Artur Bartoszewski Budowa i zasada działania komputera 1 dr Artur Bartoszewski Jednostka arytmetyczno-logiczna 2 Pojęcie systemu mikroprocesorowego Układ cyfrowy: Układy cyfrowe służą do przetwarzania informacji. Do układu

Bardziej szczegółowo

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

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

1. Rola pamięci operacyjnej

1. Rola pamięci operacyjnej 1. Rola pamięci operacyjnej Pamięć operacyjna jest jedną z podstawowych części systemu komputerowego. Do niej trafiają niemal wszystkie dane programów (a także i same programy - zostanie to wyjaśnione

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

Podstawy. Pamięć wirtualna. (demand paging)

Podstawy. Pamięć wirtualna. (demand paging) Pamięć wirtualna Podstawy Podstawy Stronicowanie na żądanie Wymiana strony Przydział ramek Szamotanie (thrashing) Pamięć wirtualna (virtual memory) oddzielenie pamięci logicznej użytkownika od fizycznej.

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

Bardziej szczegółowo

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

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej

Bardziej szczegółowo

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 9 Zarządzanie pamięcią. Toruń, 2004 Działanie systemu Peryferia Komputer Procesy Pamięć System Sterowanie Linie komunikacyjne Wejście- Wyjście

Bardziej szczegółowo

Pytania do treści wykładów:

Pytania do treści wykładów: Pytania do treści wykładów: Wprowadzenie: 1. Jakie zadania zarządzania realizowane są dla następujących zasobów: a) procesor, b) pamięć, c) plik? 2. W jaki sposób przekazywane jest sterowanie do jądra

Bardziej szczegółowo

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

Bardziej szczegółowo

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

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4 Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,

Bardziej szczegółowo

DYNAMICZNE PRZYDZIELANIE PAMIECI

DYNAMICZNE PRZYDZIELANIE PAMIECI DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces Procesy pojęcia podstawowe 1 1.1 Jak kod źródłowy przekształca się w proces W języku wysokiego poziomu tworzy się tak zwany kod źródłowy który po zapisaniu będzie plikiem z programem źródłowym. Plik źródłowy

Bardziej szczegółowo

Zarządzanie procesorem

Zarządzanie procesorem Zarządzanie procesorem 1. Koncepcja procesu 2. Blok kontrolny procesu 3. Planowanie (szeregowanie) procesów! rodzaje planistów! kryteria planowania 4. Algorytmy planowania! FCFS! SJF! RR! planowanie priorytetowe!

Bardziej szczegółowo

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

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++ Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka

Bardziej szczegółowo

Systemy Operacyjne Pamięć wirtualna cz. 1

Systemy Operacyjne Pamięć wirtualna cz. 1 Systemy Operacyjne Pamięć wirtualna cz. 1 Arkadiusz Chrobot Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 4 stycznia 2007 1 1 Zasady lokalności czasowej i przestrzennej 2 Pamięć wirtualna

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017 Wykład nr 7 (11.01.2017) Rok akademicki 2016/2017, Wykład

Bardziej szczegółowo