SlideShare ist ein Scribd-Unternehmen logo
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Ă€uïŹge 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 herausïŹnden? 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

Weitere Àhnliche Inhalte

Ähnlich wie Addressroom

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
Andreas Schreiber
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
Stefan Marr
 
EinfĂŒhrung in .NET
EinfĂŒhrung in .NETEinfĂŒhrung in .NET
EinfĂŒhrung in .NET
Andreas Heil
 

Ähnlich wie 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