Wykonywanie programów Adam Gudynowski

Transkrypt

Wykonywanie programów Adam Gudynowski
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Wykonywanie programów
Adam Gudynowski
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
1
Wstęp
2
Podział pamięci wirtualnej
3
Pamięć użytkownika
Segment jądra
Stos
Segment odwzorowań
Sterta
BSS
Segment danych
Segment kodu
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Pamięć systemu i pamięć użytkownika
W systemach 32-biotwych możemy zaadresować maksymalnie 4GB
pamięci:
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Segment
Stos
Segment
Sterta
BSS
Segment
Segment
jądra
odwzorowań
danych
kodu
Schemat podziału pamięci wirtualnej
segment pamięci to tylko przedział adresów
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Segment
Stos
Segment
Sterta
BSS
Segment
Segment
jądra
odwzorowań
danych
kodu
Segment jądra - Kernel space
dostęp do segmentu jądra
programy użytkownika nie mają tu żadnych praw dostępu
(segmentation fault)
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Segment
Stos
Segment
Sterta
BSS
Segment
Segment
jądra
odwzorowań
danych
kodu
Stos - Stack
LIFO (prosta struktura - tylko wskaźnik na początek)
każdy proces ma swój stos
ramki wywołań, argumenty funkcji, zmienne lokalne
stack overflow
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Segment
Stos
Segment
Sterta
BSS
Segment
Segment
jądra
odwzorowań
danych
kodu
Segment odwzorowan - Memory Mapping Segment
mapowanie plików (odwzorowane pliki są uaktualniane na
dysku)
anonimowe mapowanie pamięci (mmap(), malloc())
biblioteki dynamiczne
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Sterta - Heap
dynamiczna pamięć programu
C: malloc itp
C#: new, grabage collector
fragmentacja pamięci
Segment
Stos
Segment
Sterta
BSS
Segment
Segment
jądra
odwzorowań
danych
kodu
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Segment
Stos
Segment
Sterta
BSS
Segment
Segment
jądra
odwzorowań
danych
kodu
BSS - Block Started by Symbol
pamięć zerowana
niezainicjalizowane zmienne statyczne
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Segment
Stos
Segment
Sterta
BSS
Segment
Segment
jądra
odwzorowań
danych
kodu
Segment danych - Data Segment
statyczne zmienne zainicjalizowane
odwzorowane pliki nie są uaktualniane
Wstęp
Podział pamięci wirtualnej
Pamięć użytkownika
Segment
Stos
Segment
Sterta
BSS
Segment
Segment
jądra
odwzorowań
danych
kodu
Segment kodu - Text Segment
Binarna reprezentacja wykonywanego procesu

Podobne dokumenty