Browse Prior Art Database

Dynamische Verwaltung von GDT/LDT Slotsa fuer OS-Objekte

IP.com Disclosure Number: IPCOM000011497D
Original Publication Date: 2003-Mar-25
Included in the Prior Art Database: 2003-Mar-25
Document File: 1 page(s) / 63K

Publishing Venue

Siemens

Related People

Juergen Carstens: CONTACT

Abstract

Telefonsysteme, die auf der 16 Bit Technologie basieren und das zugehoerige Operating System – kurz OS – (Betriebssystembasis Intel RMX286), arbeiten im 16 Bit Modus der Intel Prozessoren. In diesem Modus wird ein Speicher (Code/Daten) ueber einen sogenannten Selektor: Offset adressiert, wobei der Selektor einen Index in den Deskriptortabellen des Prozessors darstellt. In dem Deskriptor-Eintrag steht die 32 Bit physikalische Basisadresse. Zu dieser wird ein 16 Bit Offset addiert, d.h. mit einem Selektor koennen maximal 64 KB des Speichers adressiert werden. Bei Telefonsystemen, wird zusaetz-lich der Speicherschutz der Deskriptoren ausgenutzt, d.h. jedes Modul (Code/Daten) und jedes OS-Objekt belegt einen Selektor und der Prozessor prueft, ob der Offset innerhalb der vorgegeben Groesse liegt. Auf Grund der Architektur stehen nur 16.384 Selektoren zur Verfuegung, wobei die Selektoren im Laufe der Zeit immer knapper werden, da mehr Module (neuer Code) und mehr OS-Objekte (mehr Meldungsbuffer, Timer) benoetigt wurden. Die Idee besteht darin, durch eine dynamische Zuweisung von Selektoren die Anzahl der OS-Objekte erhoehen zu koennen, ohne dafuer mehr Selektoren zu benoetigen. Die Kernidee ist, dass im Operating System die Verwaltung der OS-Objekte nicht unbedingt ueber feste Selektoren erfolgen muss. Speziell bei Buffer-Pools fuer Timer, welche die meiste Zeit unter der Verwaltung des Operating Systems stehen (Buffer verfuegbar im Pool, Timer laeuft gerade), kann durch ein dynamisches Zuweisen von vorreservierten Selektoren die Anzahl der benoetigten Selektoren drastisch reduziert werden. Da nur die Selektoren und nicht der physikalische Speicher dynamisch zugewiesen wird, ist der Performanceverlust durch den neuen dynamischen Aspekt minimal, d.h. der Vorteil, dass der Speicher fuer alle Buffer bereits allokiert ist, bleibt erhalten. Bei allen OS-Aufrufen bei denen eine Applikations-Software einen freien Buffer aus einem Pool anfordert bzw. beim Empfangen von Meldungen, stellt das Operating System einen Selektor auf den Buffer ein und uebergibt diesen als Pointer an den Anwender. Diesen Pointer kann die Applikations-Software benutzen, um Daten in dem Buffer zu bearbeiten, wobei der volle Speicherschutz gewaehrleistet ist. Sobald mit diesem Buffer eine andere OS-Funktion (z.B. Timer aufziehen, Freigeben des Buffers) aufgerufen wird, steht der dyna-misch zugewiesene Selektor wieder zur Verfuegung, da der Buffer jetzt wieder unter der Verwaltung des Operating Systems ist. Dabei ist es von Vorteil, wenn die Verwaltungsstrukturen der Buffer eines Pools innerhalb des Pool-Selektors liegen, so dass das Operating System ohne dynamische Selektor-Zuweisung auf die Verwaltungsstrukturen effizient zugreifen kann. Ein wesentlicher Vorteil der Idee besteht darin, dass von den Aenderungen im Wesentlichen nur Teile des Operating System betroffen sind.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 50% of the total text.

Page 1 of 1

S

© SIEMENS AG 2003 file: 2002J20110.doc page: 1

Dynamische Verwaltung von GDT/LDT Slotsa fuer OS-Objekte

Idea: Gerd Spahl, DE-Muenchen; Peter Eckert, DE-Muenchen

Telefonsysteme, die auf der 16 Bit Technologie basieren und das zugehoerige Operating System - kurz OS - (Betriebssystembasis Intel RMX286), arbeiten im 16 Bit Modus der Intel Prozessoren. In diesem Modus wird ein Speicher (Code/Daten) ueber einen sogenannten Selektor: Offset adressiert, wobei der Selektor einen Index in den Deskriptortabellen des Prozessors darstellt. In dem Deskriptor- Eintrag steht die 32 Bit physikalische Basisadresse. Zu dieser wird ein 16 Bit Offset addiert, d.h. mit einem Selektor koennen maximal 64 KB des Speichers adressiert werden. Bei Telefonsystemen, wird zusaetzlich der Speicherschutz der Deskriptoren ausgenutzt, d.h. jedes Modul (Code/Daten) und jedes OS-Objekt belegt einen Selektor und der Prozessor prueft, ob der Offset innerhalb der vorgegeben Groesse liegt. Auf Grund der Architektur stehen nur 16.384 Selektoren zur Verfuegung, wobei die Selektoren im Laufe der Zeit immer knapper werden, da mehr Module (neuer Code) und mehr OS-Objekte (mehr Meldungsbuffer, Timer) benoetigt wurden.

Die Idee besteht darin, durch eine dynamische Zuweisung von Selektoren die Anzahl der OS-Objekte erhoehen zu koennen, ohne dafuer mehr Selektoren zu benoetigen.

Die Kernidee ist, dass im Operating System die Verwaltung der OS-Objekte nicht unbedingt ueber feste Selektoren erfolgen muss. Speziell bei Buffer-Pools fuer Timer, welche die meiste Zeit unter der Verwaltung des Operating Systems stehen (Buffer verfuegbar im Pool, Timer laeuft gerade), kann durch ein dynamisches Zuweisen von vorreservierten Selektoren die Anzahl der benoetigten Selektoren drastisch reduziert werden. Da nur die Selektoren und nicht der physikalische Speicher dynamisch zugewiesen wird, ist der Performanceverlust durch den neuen dynamischen Aspekt minimal, d.h. der Vorteil, dass der Speicher fuer alle Buffer bereits allokiert ist, bleibt erhalten. Bei allen OS-Aufrufen bei denen eine Applikations-Software einen freien Buffer aus einem Pool anfordert bzw. beim Empfangen von Meldungen, stellt das Operating System einen Selektor auf den Buffer ein und uebergibt diesen als Pointer an den Anwender. Diesen Pointer kann die Applikations-Software benutzen, um Daten in dem Buffer zu bearbeiten, wobei der volle Speicherschutz gewaehrleistet ist. Sobald mit die...