Model pamięci w systemie Linux

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

Download "Model pamięci w systemie Linux"

Transkrypt

1 Model pamięci w systemie Linux Patryk Konopka Paweł Piecyk Wydział Fizyki i Informatyki Stosowanej

2 Plan prezentacji 1. Tryb rzeczywisty i segmentowy model pamięci 2. Tryb chroniony i płaski model pamięci 3. Pamięć wirtualna Stronicowanie Physical Address Extension Swapowanie Mapowanie pamięci logicznej na fizyczną Problemy dynamicznej alokacji pamięci Pamięć współdzielona 4. Przydatne narzędzia

3 Trochę historii tryb rzeczywisty (real mode) Tryb, który nie zapewnia ochrony pamięci ani wielozadaniowości Procesor pracuje tak jak Intel bitowa szyna danych można zaadresować max. 1MiB pamięci Wszystkie procesory od 286 do obecnie stosowanych konstrukcji startują w real mode w celu zapewnienia kompatybilności 640K ought to be enough for anybody Charakterystyczny dla MS-DOS

4 Trochę historii segmentowy model pamięci Program ma wydzielone w pamięci 3 segmenty: kodu, danych i stos (+ opcjonalne dodatkowe segmenty danych) Adres dwie 16-bitowe liczby: numer segmentu (segment) + przemieszczenie względem początku segmentu (offset) PhysicalAddress = Segment * 16 + Offset Format adresu segment:offset Segmenty mogą na siebie nachodzić przez to wiele adresów logicznych może wskazywać na jeden adres fizyczny (dokładnie 4096) Wszystkie procesory od 286 do obecnie stosowanych konstrukcji startują w real mode w celu zapewnienia kompatybilności

5 Protected mode Tryb pracy mikroprocesorów x86 wprowadzony w mikroprocesorze Intel Umożliwienie adresowania pamięci przekraczającej 1MB. Wprowadzenie wielozadaniowości Podstawowy tryb pracy dla systemów Linux, Windows i BSD

6 Protected mode W rejestrze segmentowym przechowujemy selektor segmentu : Do dyspozycji mamy dwie tablice: -GDT Global Descriptor Table Jedna w systemie zawiera informacje o kodzie OS i jego danych, dostępna dla wszystkich procesów -LDT Local Descriptor Table Osobna dla każdego zadania deskryptorów globalnych deskryptorów lokalnych Physical or

7 Protected mode deskryptor segmentu Limit segmentu wielkość segmentu, połączenie obu pól (20 bitowa liczba) Adres bazowy oraz Baza offset segmentu, połączenie trzech pól (32 bitowa liczba) Typ prawa dostępu do segmentu (Write / Read / Execute) DPL poziom uprzywilejowania segmentu S typ deskryptora, jeżeli 0 to opisuje segment systemowy, w przeciwnym wypadku segment danych lub kodu G ziarnistość (0 ziarnistość 1B, 1 ziarnistość 4kB) P informuje czy segment jest załadowany do pamięci

8 Protected mode

9 Protected mode To system musi zarządzać trybem chronionym. Programy nie mają dostępu do danych lub kodu z wyższym priorytetem. Stosowane w obecnych systemach operacyjnych.

10 Pamięć wirtualna Pamięć wirtualna mechanizm zarządzania pamięcią komputera zapewniający procesowi wrażenie pracy w jednym dużym, ciągłym obszarze pamięci operacyjnej podczas gdy fizycznie może być ona pofragmentowana, nieciągła i częściowo przechowywana na urządzeniach pamięci masowej. Implementacja w systemie Linux: segmentacja + stronicowanie

11 Stronicowanie Przestrzeń adresowa segmentu jest podzielona na równe części strony Rozmiar strony 4kB dla procesora Intel Pamięć fizyczna podzielona jest na części o tej samej wielkości co strony nazywane ramkami Adres logiczny jest tłumaczony na adres fizyczny z wykorzystaniem tablic stron

12 Stronicowanie wielopoziomowe tablice stron Jeśli używalibyśmy prostych jednopoziomowych tablic stron to musiałyby one zawierać 2^20 wpisów (4 bajty na wpis = 4 MB pamięci RAM dla każdego procesu) Dwupoziomowe tablice stron redukują tą ilość przez tworzenie tablic stron tylko dla tych obszarów pamięci wirtualnej, które są aktualnie używane Każdy aktywny proces ma przypisany Page Directory Adres fizyczny PD aktualnie używanego procesu jest przechowywany w rejestrze cr3

13 Stronicowanie wielopoziomowe tablice stron

14 PAE Disabled PAE Enabled PAE Physical Address Extension Rozszerzenie umożliwiające procesorom x86 (32-bit) dostęp do fizycznej przestrzeni adresowej (RAM) o rozmiarze większym niż 4 GB. Rejestr cr3 wskazuje na PDPT, który zawiera wskaźniki do 4 PD Rozszerzenie to nie powiększa liniowej przestrzeni adresowej procesu, więc operowanie na pamięci > 4GB jest możliwe tylko z poziomu kernela

15 Linux paging model 32bit używane 2 poziomy. Nie używamy PUD i PMD 32bit z PAE używane są 3 poziomy. Nie używamy PUD 64bit używane 3 lub 4 poziomy w zależności od architektury procesora

16 Swapping Realizowane przez kswapd kernel swap daemon (kernel thread) kswapd jest inicjalizowany przy uruchamianiu systemu i jest uruchamiany okresowo zgodnie z licznikiem zwanym kernel swap timer Przy każdym uruchomieniu kswapd sprawdza czy ilość wolnej pamięci nie jest zbyt niska, jeśli tak to stara się ją zwolnić Do wyznaczenia stron, które mogą być zapisane na dysk używany jest algorytm postarzania Każda strona ma licznik określający jej wiek Licznik przy alokacji ustawiany jest domyślnie na 3 Przy każdym użyciu strony licznik+=3 (maksymalnie 20) Co pewien czas licznik-- dla każdej ze stron Gdy licznik = 0 dana strona jest dobrym kandydatem do zapisania na dysk

17 Swapping Podczas projektowania aplikacji działającej w obrębie systemu czasu rzeczywistego chcemy zminimalizować czas dostępu do pamięci. Nie chcemy, aby nasza pamięć była swap owana, swap = długi czas odczytu pamięci. Jak się uchronić przed swap owaniem? mlock() lub mlockall() gwarancja na to, że nasza pamięć pozostanie w pamięci fizycznej (nie będzie swap owana) #include <sys/mman.h> int mlock(const void *addr, size_t len); int munlock(const void *addr, size_t len); int mlockall(int flags); int munlockall(void);

18 MMU Memory Management Unit User space Kernel space

19 MMU Memory Management Unit Układ realizujący dostęp do pamięci fizycznej żądanej przez CPU Realizacja translacji pamięci wirtualnej do pamięci fizycznej (hardware owo) Ochrona pamięci Pamięć podręczna Dzielenie pamięci wirtualnej na strony o Motorola MMU dla procesora Motorola w postaci osobnego układu rozmiarze 2 N

20 MMU Memory Management Unit TLB Translation Lookaside Buffer Tablica buforująca strony Szybki dostęp do stron MMU: Odpowiedzialny za Segmentation fault! Sygnał SIGSEGV

21 Segmentation fault - Dereferencja wskaźników wskazujących na NULL - Próba dostępu do pamięci do której nie mamy uprawnień - Próba dostępu do nieistniejącego adresu w pamięci - Próba zapisu do pamięci typu read-only - Przepełnienie bufora - Użycie niezainicjalizowanego wskaźnika - Próba odpalenia źle skompilowanego programu

22 Text segment

23 Text segment Zawiera kod maszynowy przeznaczony do wykonania przez procesor komputera. Segment kodu jest wskazywany przez rejestr segmentowy CS. Pamięć oznaczona przez system jako read-only dane nie mogą być modyfikowane przez proces. Procesy mogą współdzielić kod, w momencie gdy uruchomiona jest kopia programu. Można wyłączyć współdzielenie kodu w momencie kompilacji za pomocą flagi N.

24 Data segment

25 Data segment Miejsce, w którym przechowywane są : -zmienne globalne z przypisaną wartością int i = 1; int main() {} - zmienne statyczne z przypisaną wartością int main() { static char *text = Hello ; }

26 BSS segment

27 BSS segment Wykorzystywane przez kompilatory i linkery w celu przechowywania zaalokowanych, ale niezainicjowanych zmiennych statycznych. void dummy() { static int i; } Przechowywanie niezainicjowanych zmiennych globalnych. int i; int main() {} Język C: int i; == int i = 0; Rozmiar początkowy BSS segment 4 lub 8 bajtów.

28 Funkcje sbrk() oraz brk()

29 Funkcje sbrk() oraz brk() Podstawowe funkcje do zarządzania pamięcią w systemach Unix Kontrolowanie rozmiaru dostępnej pamięci konkretnego procesu w sekcji Heap Funkcje wysokopoziomowe Funkcje wykorzystywane przez malloc() Kiedyś w systemach Unix owych: jedyny sposób na zażądanie dostępu do dodatkowej pamięci.

30 Funkcje sbrk() oraz brk() Program brake wskazuje na pierwszy adres, który jest niedostępny dla procesu (w kontekście sterty). #include <unistd.h> int brk(void *end_data_segment) - ustawia Program brake na adres, który wskazuje end_data_segment i zmienia rozmiar dostępnej pamięci. void *sbrk(intptr_t increment) przesuwa Program brake o ilość bajtów przekazaną w parametrze increment. void * ptr = sbrk(0); zwróci bieżący adres, na który wskazuje Program break.

31 Wywołanie systemowe mmap()

32 Wywołanie systemowe mmap() mmap() wywołanie systemowe, które nakazuje systemowi operacyjnemu odwzorowanie danej części wybranego pliku w przestrzeni adresowej procesu. Do obszaru pliku odnosimy się jak do zwykłej tablicy bajtów w pamięci. Eliminacja wywołań systemowych typu read/write. Przyspieszenie działania na dużych plikach.

33 Wywołanie systemowe mmap() #include <sys/mman.h> void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); start - określa adres, w którym chcemy widzieć odwzorowanie pliku. Nie jest wymagane zazwyczaj 0. length - ilość bajtów jaką chcemy odwzorować w pamięci. prot - flagi określające uprawnienia jakie chcemy nadać obszarowi pamięci. PROT_READ PROT_WRITE PROT_EXEC PROT_NONE flags - dodatkowe flagi określające sposób działania wywołania mmap. MAP_SHARED MAP_PRIVATE MAP_ANONYMOUS fd - deskryptor pliku, który chcemy odwzorować w pamięci. offset - liczba określająca od którego miejsca w pliku chcemy rozpocząć

34 Wywołanie systemowe mmap() void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); Wartość zwracana: Sukces zwrócenie wskaźnika na odwzorowaną pamięć. Porażka zwrócenie MAP_FAILED == (void*)-1.

35 Wywołanie systemowe munmap() munmap() - Wywołanie systemowe nakazujące zlikwidowanie odwzorowania pliku w pamięci. int munmap(void *start, size_t length); start - określa adres odwzorowania do skasowania. length - liczba bajtów zajmowana przez odwzorowanie. Wartość zwracana: Sukces zwrócenie 0. Porażka zwrócenie -1.

36 Problem dynamicznej alokacji pamięci Funkcja malloc() alokuje pamięć z wykorzystaniem dwóch funkcji: - sbrk() - mmap() Alokacja pamięci za pomocą sbrk(), gdy n < MMAP_THRESHOLD Alokacja pamięci za pomocą mmap(), gdy n >= MMAP_THRESHOLD, gdzie n rozmiar w bajtach Możliwość zmiany MMAP_THRESHOLD za pomocą funkcji mallopt(). int result = mallopt(m_mmap_threshold, 128*1024); - wartość domyślna

37 Problem dynamicznej alokacji pamięci Pojedynczy blok pamięci to tzw. chunk Puste (zwolnione) bloki pamięci tworzą listę Ważne: wywołanie malloc(96) wcale nie zaalokuje bloku pamięci o rozmiarze 96 bajtów!!!

38 Wywołanie malloc() Chunk size Pointer to next free chunk Data Rys 1. Pojedynczy chunk Rys 2. Przykład wywołania malloc(96);

39 Wywołanie free() Rys 3. Przykład wywołania free(ptr);

40 Negatywne skutki dynamicznej alokacji - fragmentacja Problem pośredni: długi czas przejścia listy w celu znalezienia odpowiedniego chunk a

41 Fragmentacja rozwiązanie problemu Zastosowanie innego algorytmu alokacji np. Best-Fit Allocation Przed: Po: Czas działania algorytmu O(n), gdzie n ilość wolnych bloków

42 Stos

43 Stos Liniowa struktura danych, w której dane są dokładane na wierzch stosu. Dwie operacje: - push umieszczenie wartości na szczycie stosu, czyli przesunięcie rejestru ESP o odpowiednią ilość bajtów do tyłu i wpisanie tam wartości - pop zdjęcie wartości ze stosu, czyli przesunięcie ESP do przodu Odpowiedzialne rejestry: SS rejestr segmentowy, wskazujący na początek stosu ESP rejestr wskazujący na element znajdujący się na szczycie stosu

44 Stos Jak sprawdzić maksymalny rozmiar stosu? Wywołanie: ulimit -s

45 Kernel space

46 Kernel space Przechowuje: Kod kernela Dane wykorzystywane przez kernel Page tables Kernel też potrzebuje swojej przestrzeni adresowej! Cała pamięć (1GB) jest od razu mapowana na pamięć fizyczną. Komunikacja tylko za pomocą wywołań systemowych.

47 Pamięć współdzielona Pamięć współdzielona pamięć do której może mieć jednoczesny dostęp kilka procesów Gdzie może się przydać: - komunikacja między procesami (inter-process communication) - współdzielenie bibliotek

48 Pamięć współdzielona komunikacja między procesami int segment_id = shmget(segment_id, size, flags) - alokuje pamięć współdzieloną void* shmat(segment_id, NULL, flags) - mapuje pamięć współdzieloną do przestrzeni pamięci procesu void shmdt(adress) odłącza pamięć współdzieloną shmctl() - służy m.in. do zwalniania pamięci współdzielonej Przydatne narzędzia: ipcs pozwala uzyskać informacje dotyczące pamięci współdzielonej ipcrm pozwala usuwać obiekty związane z IPC

49 Przydatne narzędzia - top top narzędzie do monitorowania systemu W kontekście pamięci najbardziej powinny interesować nas kolumny: VIRT ilość pamięci do której proces ma dostęp w aktualnym momencie, czyli suma pamięci aktualnie używanej, plików z HDD, która są do niej zmapowane oraz pamięci współdzielonej. RES określa ile pamięci fizycznej jest używane przez proces. SHR określa jaka część pamięci z kolumny VIRT jest współdzielona.

50 Przydatne narzędzia - /proc/pid/status free proste narzędzie do statystyki, wyświetla ilość dostępnej/zajętej pamięci w systemie. /proc/pid/status interesujące informacje z przedrostkiem Vm VmPeak maksymalny rozmiar pamięci użyty przez proces w ciągu jego życia, VmSize rozmiar pamięci wirtualnej, VmLck ilość zablokowanej pamięci, VmHWM High water mark, maksymalny rozmiar pamięci fizycznej użyty przez proces, VmRSS aktualny rozmiar wykorzystywanej pamięci fizycznej, VmData, VmStk, VmExe poszczególne segmenty, VmPTE rozmiar tablic stron VmLib rozmiar kodu bibliotek współdzielonych

51 Przydatne narzędzia - pmap pmap -x pid wyświetla mapę pamięci procesu Kolumny: Address adres początku mapy Kbytes rozmiar mapy RSS rozmiar zajmowanej pamięci fizycznej Dirty - dirty pages (both shared and private) Mode - uprawnienia: read, write, execute, shared, private (kopia przy zapisie) Mapping plik z którego pochodzi mapa, lub '[ anon ]' dla zaalokowanej pamięci, lub '[ stack ]' dla stosu procesu

52 Przydatne narzędzia pmap przykładowy wynik $ pmap -x :./process1 Address Kbytes RSS Dirty Mode Mapping r-x-- process r---- process rw--- process f770aae r-x-- libc-2.17.so 00007f770aca libc-2.17.so 00007f770aea r---- libc-2.17.so 00007f770aea rw--- libc-2.17.so 00007f770aeaa rw--- [ anon ] 00007f770aeaf r-x-- ld-2.17.so 00007f770b0a rw--- [ anon ] 00007f770b0c rw-s- [ shmid=0x2e0001 ] 00007f770b0ce rw--- [ anon ] 00007f770b0d r---- ld-2.17.so 00007f770b0d rw--- ld-2.17.so 00007fff rw--- [ stack ] 00007fff621fe r-x-- [ anon ] ffffffffff r-x-- [ anon ] total kb

53 Analiza pamięci - narzędzia Valgrind narzędzie do debugowania pamięci, wykrywania wycieków pamięci oraz profilowania aplikacji. Geneza nazwy: nazwa głównego wejścia do Valhali w nordyckiej mitologii. Współpraca z gdb: 1. valgrind --vgdb=yes --vgdb-error=0./small_app 2. gdb./small_app 3. (gdb) target remote vgdb --pid=xxxx 4. (gdb) monitor leak_check full reachable any

54 Bibliografia Best-Fit Algorithm 4. Understanding Memory Linux man pages

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

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

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

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

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

Mikroinformatyka. Tryb wirtualny

Mikroinformatyka. Tryb wirtualny Mikroinformatyka Tryb wirtualny Tryb wirtualny z ochroną Wprowadzony w 80286. Rozbudowany w 80386. - 4 GB pamięci fizycznej, - 64 TB przestrzeni wirtualnej, - pamięć podzielona na segmenty o rozmiarze

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

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

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

Sprzętowe wspomaganie pamięci wirtualnej

Sprzętowe wspomaganie pamięci wirtualnej Sprzętowe wspomaganie pamięci wirtualnej Stanisław Skonieczny 6 grudnia 2002 Spis treści 1 Intel 2 1.1 Tryby pracy procesora............................... 2 1.2 Adresowanie liniowe................................

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

Wybrane zagadnienia elektroniki współczesnej

Wybrane zagadnienia elektroniki współczesnej Wybrane zagadnienia elektroniki współczesnej y pracy, Marika Kuczyńska Fizyka Techniczna IV rok 20-03-2013, AGH prezentacji y pracy 1 2 y pracy 3 4 5 6 Jednostka wykonawcza, instrukcje (Marika) Rodzina

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

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

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

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 4: Architektura i zarządzanie pamięcią IA-32 Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Tryby pracy Rejestry

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

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

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

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

Podstawowe zagadnienia informatyki

Podstawowe zagadnienia informatyki 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

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

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

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

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

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

Architektura systemów informatycznych

Architektura systemów informatycznych Architektura systemów informatycznych Architektura i organizacja pamięci Literatura: Hyde R. 2005, Zrozumieć komputer, Profesjonalne programowanie Część 1, Helion, Gliwice Podstawowe elementy systemu komputerowego

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Optymalizacja programów Open-Source. Pamięć część 1. Krzysztof Lichota

Optymalizacja programów Open-Source. Pamięć część 1. Krzysztof Lichota Optymalizacja programów Open-Source Pamięć część 1 Krzysztof Lichota lichota@mimuw.edu.pl Dlaczego pamięć jest ważna Współczesne systemy operacyjne stosują wirtualizację pamięci i symulują większą pamięć

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

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

Tryb rzeczywisty to tryb pracy mikroprocesorów z rodziny procesorów x86, w którym procesor pracuje tak jak procesor Intel 8086.

Tryb rzeczywisty to tryb pracy mikroprocesorów z rodziny procesorów x86, w którym procesor pracuje tak jak procesor Intel 8086. T: Tryb rzeczywisty i chroniony procesora. Tryb rzeczywisty to tryb pracy mikroprocesorów z rodziny procesorów x86, w którym procesor pracuje tak jak procesor Intel 8086. W trybie tym brak ochrony pamięci

Bardziej szczegółowo

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ PRZYDZIAŁ PAMIĘCI OPERACYJNEJ dr inż. Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Wstęp Pamięć komputera wielka tablica słów (bajtów)

Bardziej szczegółowo

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna System pamięci Pamięć wirtualna Pamięć wirtualna Model pamięci cache+ram nie jest jeszcze realistyczny W rzeczywistych systemach działa wiele programów jednocześnie Każdy może używać tej samej przestrzeni

Bardziej szczegółowo

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit. Architektura 8086 8086 posiada 4 rejestry ogólnego użytku AX, BX, CX, DX, 2 rejestry indeksowe SI, DI, 3 rejestry wskaźnikowe SP, BP, IP, 4 rejestry segmentowe CS, DS, SS i ES oraz rejestr flag FLAG AH

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

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

Kompilator języka C na procesor 8051 RC51 implementacja

Kompilator języka C na procesor 8051 RC51 implementacja Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub

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

Podstawy programowania komputerów

Podstawy programowania komputerów Podstawy programowania komputerów Wykład 10: Sterowanie pamięcią w C Pamięć na stosie!każdy program napisany w języku C ma dostęp do dwóch obszarów pamięci - stosu i sterty, w których może być przechowywana

Bardziej szczegółowo

Hierarchia pamięci w systemie komputerowym

Hierarchia pamięci w systemie komputerowym Hierarchia pamięci w systemie komputerowym Aby procesor mógł do końca wykorzystać swą wysoką częstotliwość taktowania musi mieć możliwość odpowiednio szybkiego pobierania danych do przetworzenia. Pamięć

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

Pamięć współdzielona

Pamięć współdzielona Pamięć współdzielona Systemy Operacyjne 2 Piotr Zierhoffer 17 listopada 2011 Mechanizmy IPC IPC Inter Process Communication kolejki komunikatów, pamięć współdzielona semafory polecenia bash: ipcs, ipcrm

Bardziej szczegółowo

Wykład 10 Zarządzanie pamięcią

Wykład 10 Zarządzanie pamięcią Wykład 10 Zarządzanie pamięcią część pierwsza: pamięć jądra Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Sprzeczności przy projektowaniu systemu zarządzania pamięcią Implementuj możliwie

Bardziej szczegółowo

Mikroinformatyka. Mechanizmy ochrony pamięci

Mikroinformatyka. Mechanizmy ochrony pamięci Mikroinformatyka Mechanizmy ochrony pamięci Mechanizmy ochrony pamięci Ochrona na poziomie segmentów: - limit - typ segmentu - selektor zerowy - poziom uprzywilejowania Ochrona na poziomie stronicowania:

Bardziej szczegółowo

Programowanie Systemów Wbudowanych

Programowanie Systemów Wbudowanych Programowanie Systemów Wbudowanych Zarzadzanie pamięcia Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG April 19, 2017 Pamięć fizyczna - liniowa ( flat ) wszystkie procesy współdziela ten

Bardziej szczegółowo

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie

Bardziej szczegółowo

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Architektura systemu komputerowego

Architektura systemu komputerowego Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie

Bardziej szczegółowo

WOJSKOWA AKADEMIA TECHNICZNA

WOJSKOWA AKADEMIA TECHNICZNA WOJSKOWA AKADEMIA TECHNICZNA SYSTEMY WBUDOWANE Prowadzący: Paweł Janicki Autor sprawozdania: Pol Grzegorz Grupa szkoleniowa: I7X3S1 Numer ćwiczenia: Data oddania: 14.06.2009r. 1. Treść zadania Dokonać

Bardziej szczegółowo

Procesory rodziny x86. Dariusz Chaberski

Procesory rodziny x86. Dariusz Chaberski Procesory rodziny x86 Dariusz Chaberski 8086 produkowany od 1978 magistrala adresowa - 20 bitów (1 MB) magistrala danych - 16 bitów wielkość instrukcji - od 1 do 6 bajtów częstotliwośc pracy od 5 MHz (IBM

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

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

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24 Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.

Bardziej szczegółowo

Mikroprocesory rodziny INTEL 80x86

Mikroprocesory rodziny INTEL 80x86 Mikroprocesory rodziny INTEL 80x86 Podstawowe wła ciwo ci procesora PENTIUM Rodzina procesorów INTEL 80x86 obejmuje mikroprocesory Intel 8086, 8088, 80286, 80386, 80486 oraz mikroprocesory PENTIUM. Wprowadzając

Bardziej szczegółowo

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

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.

Bardziej szczegółowo

Wykład 10 10. Tryby adresowania i modele pamięci adres_logiczny = segment : offset. 10.1. Tryb adresowania rzeczywistego

Wykład 10 10. Tryby adresowania i modele pamięci adres_logiczny = segment : offset. 10.1. Tryb adresowania rzeczywistego Wykład 10 10. Tryby adresowania i modele pamięci 10.1. Tryb adresowania rzeczywistego 10.2. Tryb adresowania wirtualnego 10.3. Interpretacja pamięci 10.4. Stronicowanie pamięci 10.5. Modele pamięci 10.6.

Bardziej szczegółowo

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku Systemy plików i zarządzanie pamięcią pomocniczą Koncepcja pliku Metody dostępu Organizacja systemu plików Metody alokacji Struktura dysku Zarządzanie dyskiem Struktura pliku Prosta sekwencja słów lub

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

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,

Bardziej szczegółowo

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików: Pliki W celu wykonania jakiejkolwiek operacji na istniejącym pliku, plik ten musi zostać otwarty, natomiast jeśli plik jeszcze nie istnieje, to musi zostać utworzony. Plik może zostać otwarty w trybie:

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

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

Wykład 12. Zarządzanie pamięcią (część III) oraz urządzenia sieciowe. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Wykład 12. Zarządzanie pamięcią (część III) oraz urządzenia sieciowe. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Wykład 12 Zarządzanie pamięcią (część III) oraz urządzenia sieciowe Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Funkcja mmap na pliku specjalnym Funkcje systemową mmap możemy również

Bardziej szczegółowo

Adam Kotynia, Łukasz Kowalczyk

Adam Kotynia, Łukasz Kowalczyk Adam Kotynia, Łukasz Kowalczyk Dynamiczna alokacja pamięci Alokacja pamięci oraz dezalokacja pamięci jest to odpowiednio przydział i zwolnienie ciągłego obszaru pamięci. Po uruchomieniu, proces (program)

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

Systemy operacyjne Zarządzanie pamięcią

Systemy operacyjne Zarządzanie pamięcią Systemy operacyjne Zarządzanie pamięcią [] Zarządzanie pamięcią Czego programiści oczekują od pamięci systemu: by była duża, by była szybka, by była nieulotna. Hierarchia pamięci: mała szybka droga pamięć

Bardziej szczegółowo

Przedmowa... 7. Wstęp...9. 1. Wprowadzenie podstawowe pojęcia... 15

Przedmowa... 7. Wstęp...9. 1. Wprowadzenie podstawowe pojęcia... 15 Spis treści Przedmowa... 7 Wstęp...9 1. Wprowadzenie podstawowe pojęcia... 15 Programowanie systemowe 15 API i ABI 18 Standardy 20 Pojęcia dotyczące programowania w Linuksie 23 Początek programowania systemowego

Bardziej szczegółowo

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011 Obsługa plików Systemy Operacyjne 2 laboratorium Mateusz Hołenko 25 września 2011 Plan zajęć 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach otwieranie i zamykanie zapis i odczyt

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego J. Ułasiewicz Komputerowe systemy sterowania 1 1 Architektura PC 1.1. Ogólna struktura systemu jednoprocesorowego Już systemy jednoprocesorowe mogą być środowiskiem, w którym wykonywane jest wiele programów

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

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

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

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

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

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17 Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski

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

KURS C/C++ WYKŁAD 6. Wskaźniki

KURS C/C++ WYKŁAD 6. Wskaźniki Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można

Bardziej szczegółowo

Organizacja pamięci wewnętrznej komputerów

Organizacja pamięci wewnętrznej komputerów Organizacja pamięci wewnętrznej komputerów 1. Własności systemów pamięci 2. Hierarchia pamięci. 3. Półprzewodnikowa pamięć główna 4. Pamięć cache. 5. Pamięć wirtualna. Własności systemów pamięci Położenie

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

Wstęp. do języka C na procesor 8051. (kompilator RC51)

Wstęp. do języka C na procesor 8051. (kompilator RC51) Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje

Bardziej szczegółowo

Struktury. Przykład W8_1

Struktury. Przykład W8_1 Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

Wskaźniki w C. Anna Gogolińska Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik

Bardziej szczegółowo

Laboratorium 6: Dynamiczny przydział pamięci. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 6: Dynamiczny przydział pamięci. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 6: Dynamiczny przydział pamięci dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 15 maja 2015 1. Wprowadzenie Instrukcja poświęcona jest dynamicznemu przydziałowi i zwalnianiu pamięci w

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

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

Jak Windows zarządza pamięcią?

Jak Windows zarządza pamięcią? Jak Windows zarządza pamięcią? System Windows definiuje dwa typy pamięci, często mylone przez użytkowników. Pamięć fizyczna (pamięc RAM zainstalowana w komputerze) Pamięć widziana przez daną aplikację

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

System operacyjny MACH

System operacyjny MACH Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów

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

Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak

Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak Laboratorium z systemów operacyjnych System plików - funkcje systemowe Anna Wojak 1 Zagadnienia do samodzielnego przygotowania: podstawowe polecenia linux, podstawy programowania w jezyku C, deskryptor

Bardziej szczegółowo