SlideShare une entreprise Scribd logo
1  sur  30
PROZESSADRESSRAUM
        BETRIEBSSYSTEME
DATUM
        10.11.2008        JÖRG KOST
Vom Programm zum
Prozess
Ausführbare Binärdatei (Binary) enthält den
passenden Programmcode für das Betriebssystem
und den Prozessor

Das Format beschreibt alle benötigten
Informationen, die das System zum Laden und
Starten des Programmes benötigt

Linux: Executable and Linking Format (ELF)
Windows: Portable Executable (PE)
Alte UNIXe: a.out (Assembler Out)
Das Text-Segment
Enthält den eigentlichen Programmcode mit all seinen
Funktionen und Anweisungen

Liegt in Maschinensprache vor

Wird in der Regel in Assembler angezeigt
Das Data-Segment
Initialisierter schreibbarer Speicher

Nutzung und Größe ist bereits vor der Laufzeit
festgelegt

Häufige Nutzung: Globale Verfügbarkeit über
Funktionsgrenzen und Aufrufe hinaus

Allerdings auch: Feste Inhalte und Startwerte
Das BSS-Segment

Nicht initialisierter schreibbarer Speicher

Größe ist bereits vor der Laufzeit festgelegt

Wird in C mit 0 „initialisiert“
Das Heap-Segment
            DATEN X              DATEN Y




Die Halde

Dynamischer Speicher: Programm fordert bei Bedarf
„Heap“ beim Betriebssystem an

Zusammensetzung bei GLIBC aus einer „Double Linked
List“, einer doppelt verketteten Liste
Das Stack-Segment
           Der „Stapel“ - Speicher

           Funktionsweise nach LIFO
           (Last In, First Out)

           „Push“ und „Pop“

           Speicherort für
           Umgebungsvariablen,
           Parameter und lokale
           Funktionsvariablen
Virtueller Speicheraufbau
Beispiel Programm in C
Beispiel Programm in C
Beispiel Programm in C
Beispiel Programm in C
Beispiel Programm in C
Beispiel Programm in C
Beispiel Programm in C
Beispiel Programm in C
Beispiel Programm in C
Weiterführende Übungen
Auftrag: Ein Programm in „C“ schreiben, das die
virtuellen Adressen aller Segmente oder Variablen
auf der Konsole ausgibt

Frage: Wie kann man aus einer Binärdatei die
Adressen und die Größen der statischen
Datenbereiche und des Anweisungsbereiches
vorher herausfinden? Tipp: objdump

Frage: Wo liegt der Unterschied bei dynamisch
und bei statisch gelinkten Programmen im Aufbau
des Text - Segments? Tipp: ldd
FIN & ACK
DANKE FÜR IHRE AUFMERKSAMKEIT

Contenu connexe

Similaire à Addressroom

C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtAndreas Schreiber
 
Python, Plone und Zope in der Luft- und Raumfahrtforschung
Python, Plone und Zope in der Luft- und RaumfahrtforschungPython, Plone und Zope in der Luft- und Raumfahrtforschung
Python, Plone und Zope in der Luft- und RaumfahrtforschungAndreas Schreiber
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareAndreas Schreiber
 
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007derDoc
 
B3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsB3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsAndreas Schulte
 
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDASchulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDAJörn Dinkla
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicateUlrich Krause
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Jürg Stuker
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und ReflectionStefan Marr
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartOSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartNETWAYS
 
Einführung in .NET
Einführung in .NETEinführung in .NET
Einführung in .NETAndreas Heil
 
SQL 2012: Reporting Services – Reporting und die Infrastruktur
SQL 2012: Reporting Services – Reporting und die InfrastrukturSQL 2012: Reporting Services – Reporting und die Infrastruktur
SQL 2012: Reporting Services – Reporting und die InfrastrukturDigicomp Academy AG
 
Das neue Windows 8 UI und wichtige Apps
Das neue Windows 8 UI und wichtige AppsDas neue Windows 8 UI und wichtige Apps
Das neue Windows 8 UI und wichtige AppsDigicomp Academy AG
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtB1 Systems GmbH
 

Similaire à Addressroom (20)

C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
 
Python, Plone und Zope in der Luft- und Raumfahrtforschung
Python, Plone und Zope in der Luft- und RaumfahrtforschungPython, Plone und Zope in der Luft- und Raumfahrtforschung
Python, Plone und Zope in der Luft- und Raumfahrtforschung
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
 
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007
 
B3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsB3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite Applications
 
PLUX.NET – SOFTWAREKOMPOSITION DURCH PLUG & PLAY
PLUX.NET – SOFTWAREKOMPOSITION DURCH PLUG & PLAYPLUX.NET – SOFTWAREKOMPOSITION DURCH PLUG & PLAY
PLUX.NET – SOFTWAREKOMPOSITION DURCH PLUG & PLAY
 
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDASchulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
Bit WiSe 2013 | Basisinformationstechnologie I - 08: Programmiersprachen I
Bit WiSe 2013 | Basisinformationstechnologie I - 08: Programmiersprachen IBit WiSe 2013 | Basisinformationstechnologie I - 08: Programmiersprachen I
Bit WiSe 2013 | Basisinformationstechnologie I - 08: Programmiersprachen I
 
[DE] Glossar zu Dokumenten-Technologien | PROJECT CONSULT | Hamburg 2010
 [DE] Glossar zu Dokumenten-Technologien | PROJECT CONSULT | Hamburg 2010 [DE] Glossar zu Dokumenten-Technologien | PROJECT CONSULT | Hamburg 2010
[DE] Glossar zu Dokumenten-Technologien | PROJECT CONSULT | Hamburg 2010
 
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartOSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
 
Einführung in .NET
Einführung in .NETEinführung in .NET
Einführung in .NET
 
SQL 2012: Reporting Services – Reporting und die Infrastruktur
SQL 2012: Reporting Services – Reporting und die InfrastrukturSQL 2012: Reporting Services – Reporting und die Infrastruktur
SQL 2012: Reporting Services – Reporting und die Infrastruktur
 
Das neue Windows 8 UI und wichtige Apps
Das neue Windows 8 UI und wichtige AppsDas neue Windows 8 UI und wichtige Apps
Das neue Windows 8 UI und wichtige Apps
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 

Addressroom