Dynamisches Binden in Multics - cs.fau.de · Etablierungsstatus im Etikett des 0-Wortes FT2:...

38

Transcript of Dynamisches Binden in Multics - cs.fau.de · Etablierungsstatus im Etikett des 0-Wortes FT2:...

Dynamisches Binden in Multics

AKSS Seminarvortrag

Daniel Götz

Friedrich-Alexander-Universität Erlangen-Nürnberg

Lehrstuhl für Informatik 4

Verteilte Systeme und Betriebssysteme

14.12.15

Motivation

Welche Vorteile bietet dynamisches Binden gegenüber

statischem Binden?

Programmcode wird nicht kopiert

Programm muss nicht neu kompiliert werden, um andere Versionen

zu benutzen

Seit 2010 allein 21.000 wissenschaftliche Papiere zum Thema

dynamisches Binden auf ACM

Daniel Götz AKSS Seminarvortrag Motivation 3

Motivation

Warum sollte man sich mit dynamischem Binden in Multics

beschäftigen?

Multics als e�zientes Mehrbenutzerbetriebssystem wegweisender

Konzepte

Dynamisches Binden als innovative Kernkomponente

Bis heute relevantes Konzept?

The establishing of links at reference time on an as-needed basis is a

fundamental service of Multics

Organick, The Multics System: An Examination of Its Structure, S.55

Daniel Götz AKSS Seminarvortrag Motivation 4

Motivation

In heutigen Betriebssystemen intensiv genutzt

Windows: DLLs

Unix/Mac OS X: Shared Libraries

Daniel Götz AKSS Seminarvortrag Motivation 5

Gliederung

Motivation

Konzept

Vor- und Nachteile

Fazit

Daniel Götz AKSS Seminarvortrag Motivation �Gliederung 6

Gliederung

Motivation

Konzept

Vor- und Nachteile

Fazit

Daniel Götz AKSS Seminarvortrag Konzept 7

Konzept

Dynamisches Binden enthält keinen kopierten Code, sondern Zeiger

Aufgabe des dynamischen Binders ist die Au�ösung zur Laufzeit

call 0x8000

foo: ... foo: ...

call ptr foo

ptr foo: 0xabc

0x8000 0xabc

Daniel Götz AKSS Seminarvortrag Konzept 8

Konzept

Dynamisches Binden als Hinzufügen von Daten und Algorithmen zurLaufzeit

Was wird gebunden?

Wann wird gebunden?

Wie funktioniert das Binden?

Daniel Götz AKSS Seminarvortrag Konzept 9

Konzept

Was wird gebunden?

Daniel Götz AKSS Seminarvortrag Konzept �Was wird gebunden? 10

Multics Adressraum

Seitennummerierte Segmentierung

Prozess besteht aus beliebiger Anzahl von Segmenten

Adressierung von Daten- oder Prozedursegmenten über

generalisierte Adresse (Segmentnummer|Wortnummer)

Multics bindet auf Segmentebene

Daniel Götz AKSS Seminarvortrag Konzept �Was wird gebunden? 11

Deskriptorsegment übersetzt,vgl. GE-Manual S.22

Datenstruktur für Segmentinformation: Deskriptorsegment

Daniel Götz AKSS Seminarvortrag Konzept �Was wird gebunden? 12

Deskriptorsegment

Deskriptorsegment enthält Deskriptor für alle bekannten Segmente

eines Prozesses

Zentrale Datenstruktur des Prozesses zur Umsetzung der

generalisierten Adressen

Kritisch für das Binden: Zur Laufzeit erweiterbar

Daniel Götz AKSS Seminarvortrag Konzept �Was wird gebunden? 13

Konzept

Wann wird gebunden?

Daniel Götz AKSS Seminarvortrag Konzept �Wann wird gebunden? 14

Konzept

1. Befehle können Referenzen auf segmentfremde Operanden enthalten

LOAD <Foo>|[x] ↔ LOAD Link#4,bs

2. Generierung von Verknüpfungen für dynamische Referenzen

LOAD Link#4,bs → Link#4:Ref(Foo|x)

3. Bindevorgang bei Benutzung einer unetablierten Verknüpfung

Link#4:Ref(Foo|x) → ?

Daniel Götz AKSS Seminarvortrag Konzept �Wann wird gebunden? 15

Befehlsformat

1. Befehle können Referenzen auf segmentfremde Operanden enthalten

LOAD <Foo>|[x] ↔ LOAD Link#4,bs

BR: Auswahl eines Adressbasisregisters (ABR)

B: Setzen des B-Flags, um Nutzung des ABRs zu signalisieren

TM/TD: Setzen des korrekten Modus für den indirekten Zugri�

Daniel Götz AKSS Seminarvortrag Konzept �Wann wird gebunden? 16

Adressbasisregister

4 Adressbasisregisterpaare

Inhalt wird als generalisierte Adresse interpretiert

Enthalten u.a. Ort der Verknüpfungen bzw. des Bindungssegments

����

����������������

����

���

���

������������

������������ �

���

������������

������������

����������������

���

�������

���

���

���

���

5

3

1

segment number

segment number

segment number

word number

word number

0

0

0

0

paired address base register

SP

LP

BP

AP

6

4

0

2

1

1

1

7

3

5

1

0

0

00

0

word number

segment number 7 0 0 word number 1 0

Daniel Götz AKSS Seminarvortrag Konzept �Wann wird gebunden? 17

Bindungssegment

2. Generierung von Verknüpfungen für dynamische Referenzen

Bindungssegment enthält Verknüpfungen für alle Referenzen

Maschinenbefehl referenziert nur die Verknüpfung

Verknüpfung umgesetzt durch ITS-Zeiger

Daniel Götz AKSS Seminarvortrag Konzept �Wann wird gebunden? 18

Indirekte Zeiger

Bestehen aus jeweils 2 36-Bit Worten

Verknüpfung zu Segment inklusive Versatz

ITS-Zeiger (Indirect to Segment)

Verweist fest auf verknüpftes Segment

Adressierung über generalisierte Adresse

ITB-Zeiger (Indirect to Base)

Verweist über Adressbasisregister auf beliebiges Segment

Adressierung über Wortnummer und Auswahl eines Adressbasisregisters

Daniel Götz AKSS Seminarvortrag Konzept �Wann wird gebunden? 19

ITS-Zeiger

3. Bindevorgang bei Benutzung einer unetablierten Verknüpfung

Vor der Etablierung Kennzeichnung des Segments durch

symbolischen Namen

Enthält nach Etablierung Segment- und Wortnummer

↪→ generalisierte Adresse

Etablierungsstatus im Etikett des 0-Wortes

FT2: Aktivierung des Binders

ITS: Zugri� über etablierte Verknüpfung

SEGMENT# UNBENUTZT UUU ETIKETTWort 0

18 Bit 9 Bit 3 Bit 6 Bit

ADRESSE UNBENUTZT UUU ETIKETTWort 1

18 Bit 9 Bit 3 Bit 6 Bit

Daniel Götz AKSS Seminarvortrag Konzept �Wann wird gebunden? 20

Konzept

Wie funktioniert das Binden?

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 21

Konzept

1. Maschinenbefehl referenziert ITS-Zeiger

2. Verknüpfung im Bindungssegment ist unetabliert und löst einen

Bindefehler aus

3. Segment wird im Speicher des aufrufenden Prozesses eingeblendet

4. Verknüpfung wird etabliert

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 22

1. Maschinenbefehl

1. Maschinenbefehl referenziert ITS-Zeiger

Adressbasisregister�agge und BR-Feld gesetzt

Adressbasisregister spezi�ziert ITS-Zeiger

Etikett wählt indiziert-indirekten Zugri�

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 23

ABR-Adressierung Quelle: W. Schröder-Preikschat, Betriebssystemtechnik

����

����������������

����

���

���

������������

������������ �

���

������������

������������

����������������

���

�������

���

���

���

���

������������

+

+

5

descriptor segment

ABR address opcode tag field

3

1

segment number

segment number

segment number

word number

word number

information segment

generalized address

instruction word

index register

1

0

0

0

0

paired address base register

SP

LP

BP

AP

6

4

0

2

1

1

1

7

3

5

1

0

0

00

0

DBR

word number

offset

segment number 7 0 0 word number 1 0

word numbersegment number

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 24

2. Unetablierte Verknüpfung

2. Verknüpfung im Bindungssegment ist unetabliert und löst einen

Bindefehler aus

Symbolischer Name im Dateisystem statt generalisierter Adresse

Magic Bytes �FT2� im Etikett lösen Bindefehler aus

Finden des Segmentes über Suchregeln

SEGMENTNAME UNBENUTZT UUU FT2Wort 0

18 Bit 9 Bit 3 Bit 6 Bit

EINTRITTSPUNKT UNBENUTZT UUU TAGWort 1

18 Bit 9 Bit 3 Bit 6 Bit

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 25

3. Einblendung

3. Segment wird im Speicher des aufrufenden Prozesses eingeblendet

Betriebssystem lädt Segment in Hauptspeicher, falls nötig

Deskriptorsegmenteintrag unter nächster freier Nummer

Nummer unterschiedlich je nach Zeitpunkt der Etablierung

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 26

4. Etablierung

4. Verknüpfung wird etabliert

Generalisierte Adresse ersetzt symbolischen Namen

FT2-Etikett auswechseln durch ITS

Erneute Durchführung des Befehls

SEGMENT# UNBENUTZT UUU ITSWort 0

18 Bit 9 Bit 3 Bit 6 Bit

ADRESSE UNBENUTZT UUU ETIKETTWort 1

18 Bit 9 Bit 3 Bit 6 Bit

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 27

Gra�sche Darstellung des Bindevorgangs vgl. GE-Manual S.26

1. Maschinenbefehl referenziert ITS-Zeiger

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 28

Gra�sche Darstellung des Bindevorgangs vgl. GE-Manual S.26

2. Verknüpfung im Bindungssegment ist unetabliert und löst einen

Bindefehler aus

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 29

Gra�sche Darstellung des Bindevorgangs vgl. GE-Manual S.26

3. Segment wird im Speicher des aufrufenden Prozesses eingeblendet

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 30

Gra�sche Darstellung des Bindevorgangs vgl. GE-Manual S.26

4. Verknüpfung wird etabliert

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 31

Prozedurbindung

Prinzipiell analog zur Datensegmentbindung

Prozeduren können wiederum Referenzen enthalten

Beim Binden eines Prozedursegments wird ein Prototyp der

Bindungssektion kopiert

Für den nutzenden Prozess werden die Verknüpfungen dann jeweils

etabliert

Daniel Götz AKSS Seminarvortrag Konzept �Wie funktioniert das Binden? 32

Gliederung

Motivation

Konzept

Vor- und Nachteile

Fazit

Daniel Götz AKSS Seminarvortrag Vor- und Nachteile 33

Vorteile für Multics

+ Sparen von Speicher

+ Automatisiertes, einfaches Binden über symbolischen Namen

+ Mehrfache Indirektionen möglich für Prozeduren

+ Leichtes Austauschen/Auswählen von Bibliotheken möglich

Daniel Götz AKSS Seminarvortrag Vor- und Nachteile 34

Nachteile für Multics

- Eventuelle Sicherheitslücken im Binder

- Namenskon�ikte relativ wahrscheinlich bei generischen Namen (z.B.

�error� für Prozedur)

- Keine Bindungssektion für Datensegmente

- Etablieren von Verknüpfungen teuer

- Eventuell viele Bindungssektionen pro Prozess

Daniel Götz AKSS Seminarvortrag Vor- und Nachteile 35

Gliederung

Motivation

Konzept

Vor- und Nachteile

Fazit

Daniel Götz AKSS Seminarvortrag Fazit 36

Fazit

Dynamisches Binden ist Schlüsselkonzept für Programmierung für

Multics

Sinnvolle Automatismen und Freiheiten für Entwickler

Nachteile zu dieser Zeit vertretbar

Konzept bis heute sehr relevant

Daniel Götz AKSS Seminarvortrag Fazit 37

Diskussion

Diskussion

Daniel Götz AKSS Seminarvortrag Fazit �Diskussion 38