DE69425640T2 - Verfahren und Vorrichtung zur selektiven Verwendung eines geeigneten Objektbesitzrechtsmodells - Google Patents
Verfahren und Vorrichtung zur selektiven Verwendung eines geeigneten ObjektbesitzrechtsmodellsInfo
- Publication number
- DE69425640T2 DE69425640T2 DE69425640T DE69425640T DE69425640T2 DE 69425640 T2 DE69425640 T2 DE 69425640T2 DE 69425640 T DE69425640 T DE 69425640T DE 69425640 T DE69425640 T DE 69425640T DE 69425640 T2 DE69425640 T2 DE 69425640T2
- Authority
- DE
- Germany
- Prior art keywords
- program
- type
- service
- operating system
- programs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 35
- 238000012806 monitoring device Methods 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 32
- 230000009471 action Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 150000001875 compounds Chemical class 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Description
- Die Erfindung betrifft allgemein ein Verfahren und System zur Gewährleistung der Kompatibilität eines Betriebssystems mit anderen Computerprogrammen und insbesondere ein Verfahren und System zur Gewährleistung der Kompatibilität eines Betriebssystems, das ein erstes Objekt Besitzerrechtsmodell aufweist, mit anderen Programmen, die für ein Betriebssystem entwickelt worden sind, das ein zweites, weniger rigoroses Objekt Besitzerrechtsmodell besitzt.
- Viele Betriebssysteme erlauben Programmen, Objekte für ihre Verwendung zuzuordnen.
- Während es viele unterschiedliche Definitionen für Objekte gibt, ist die Gruppe von Objekten, die hier erörtert ist, relativ inklusive. Ein Objekt, wie es hier erörtert ist, ist eines von mehreren Standarddatenstrukturen, jedes zur Speicherung von Daten über einen besonderen Aspekt eines Programms, wie ein Bild, auch als ein Pixelmuster bekannt, oder Menü. Ein Objekt kann auch Verfahren enthalten, die Programme zur Wechselwirkung mit den in dem Objekt enthaltenen Daten sind. Wenn ein Objekt zugeteilt wird, wird ein Speicherblock reserviert, um den Inhalt des Objekts zu halten. In vielen Betriebssystemen werden Objekte in verbundenen Listen gespeichert, so dass entweder alle Objekte einer gegebenen Art in derselben Liste sind oder alle Objekte, die von einem bestimmten Programm "in Besitz" sind (das Besitzrecht ist ausführlicher unten beschrieben) in derselben Liste sind.
- Um einen gewissen Zuverlässigkeitswert zu gewährleisten, führen viele Betriebssysteme ein Objektbesitzrechtssystem aus. In einem solchen System ordnet das Betriebssystem das Besitzrecht von jedem Objekt einigen Arten, wenn nicht von allen, einem bestimmten Programm zu. Ein System eines Objektbesitzrechts verhindert die unnötige Verwendung einiger Speicherbetriebsmittel, indem dem Betriebssystem erlaubt wird, die Zuweisung eines Objekts automatisch aufzuheben, wenn das Programm, dem sein Besitzrecht zugeordnet ist, endet. Ebenso ermöglicht ein System eines Objektbesitzrechts dem Betriebssystem, einen unberechtigten Zugriff auf ein Objekt zu verhindern, indem für jedes Objekt ein Programm gekennzeichnet wird, das festlegen kann, welche anderen Programme berechtigt sind, auf das Objekt zuzugreifen.
- Den Grad der Steuerung, den Programme über Objekte ausüben können, wenn sie mit einem bestimmten Betriebssystem verwendet werden, hängt von dem besonderen Objektbesitzrechtsmodell ab, das von dem Betriebssystem unterstützt wird. In einem Betriebssystem, das das Unbeeinflußtlassen von Objektbesitzrechtsmodellen unterstützt, werden Objekte nicht von irgendeinem Programm besessen. Auf ein Objekt kann deshalb zugegriffen werden (d. h., aus ihm gelesen, in es geschrieben oder in dem Fall eines Objekts, das Verfahren aufweist, aufgerufen werden) oder die Zuweisung durch irgendein Programm kann aufgehoben werden, das sich des Vorhandenseins des Objekts bewußt ist. Fig. 1 ist ein Blockdiagramm eines Objekts, wie es in einem Betriebssystem definiert ist, das das unbeeinflußbare Objektbesitzrechtsmodell unterstützt. Das Diagramm zeigt ein unbeeinflußbares Objekt 100, dessen einziger Inhalt Objektdaten 101 sind. In dem Fall eines Pixelmusterobjekts entsprechen die Objektdaten 101 dem Farbwert für jedes einer Anzahl angrenzender Pixel. Das unbeeinflußbare Objekt enthält keinerlei Angabe über die Identität des Programms, das dem Objekt zugeteilt ist, die Programme, die versuchen, das Objekt zu benutzen, die Programme, die versuchen, die Zuweisung des Objekts aufzuheben, oder das Programm, von dem man sagen kann, dass es der Besitzer des Objekts ist. Im Gegenteil, das Objekt hat keinen Besitzer.
- In Betriebssystemen, die das unbeeinflußbare Objekt Besitzerrechtsmodell unterstützen, können Programme informell ein Objekt gleichzeitig benutzen. Zwei Programme benutzen ein Objekt gleichzeitig, wenn sie das Objekt durch Übereinstimmung und ohne Kenntnis des Betriebssystems gemeinsam benutzen. Im allgemeinen umfasst dieser Prozess ein Programm, das ein zugeteiltes Objekt mitbenutzen möchte und deshalb dem Programm eine Nachricht schickt, das das Objekt zuteilte. Das Programm, das das Objekt zuteilte, antwortet, indem dem mitbenutzenden Programm ein Weg geschaffen wird, auf das Objekt zuzugreifen, wie ein Zeiger oder ein Griff.
- Fig. 2 ist ein Zeitdiagramm, das die informelle Mitbenutzung eines unbeeinflußbaren Objekts zeigt. Hier ist das Objekt ein Pixelmusterobjekt, das ein sichtbares Bild eines Werkzeugbalkens enthält, der durch ein Tabellenkalkulationsprogramm zugeteilt und von dem Tabellenkalkulationsprogramm und einem Textverarbeitungsprogramm gemeinsam genutzt wird. Das Zeitdiagramm zeigt eine Zeitskala 200 mit den folgenden Zeitunterteilungen; Zeit t&sub1;, Zeit t&sub2;, Zeit t&sub3;, Zeit t&sub4; und Zeit t&sub5;. Das Zeitdiagramm zeigt auch ein Laufintervall 210 für das Tabellenkalkulationsprogramm, währenddessen das Tabellenkalkulationsprogramm läuft, ein Laufintervall 230 für ein Textverarbeitungsprogramm, währenddessen das Textverarbeitungsprogramm läuft, und ein Zuteilungsintervall 220 für ein Pixelmusterobjekt, währenddessen das Werkzeugbalken-Pixelmusterobjekt zugeteilt ist.
- Ein Startknoten 211 eines Tabellenkalkulationsprogramm zeigt, dass das Tabellenkalkulationsprogramm zur Zeit t&sub1; gestartet wird. Der Start startet das Laufintervall 210 für das Tabellenkalkulationsprogramm. Ein Wirkungspfeil 212 und ein Objektzuteilungsknoten 221 zeigen zusammen, dass das Tabellenkalkulationsprogramm das Pixelmusterobjekt der Zeit t&sub2; zuteilt. Das Tabellenkalkulationsprogramm verwendet das Pixelmusterobjekt während des Objektbenutzungsbereiches 222 von der Zeit t&sub2; bis das Tabellenkalkulationsprogramm zur Zeit t&sub4; endet. Ein Startknoten 231 für ein Textverarbeitungsprogramm zeigt, dass das Textverarbeitungsprogramm zur Zeit t&sub3; gestartet wird. Der Start startet das Laufintervall 230 des Textverarbeitungsprogramms. Ein Objektbenutzungsbereich 223 zeigt, dass das Textverarbeitungsprogramm zur Zeit t&sub3; das Pixelmusterobjekt zu verwenden beginnt. Beide Objekte fahren fort, das Pixelmusterobjekt bis zur Zeit t&sub4; zu verwenden, d. h., gemeinsam zu benutzen. Das Tabellenkalkulationsprogramm endet zur Zeit t&sub4;, wie es durch einen Beendigungsknoten 213 für das Tabellenkalkulationsprogramm gezeigt ist. Da das Textverarbeitungsprogramm nicht geendet hat, das Pixelmusterobjekt zu verwenden, delegiert das Tabellenkalkulationsprogramm seine Verantwortung, die Zuweisung des Pixelmusterobjekts aufzuheben, an das Textverarbeitungsprogramm. Dieser Prozess beinhaltet, dass das Tabellenkalkulationsprogramm eine Nachricht an das Textverarbeitungsprogramm schickt, die angibt, dass das Textverarbeitungsprogramm nun verantwortlich ist, die Zuweisung des Pixelmusterobjekts aufzuheben. Das Textverarbeitungsprogramm fährt dann fort, das Pixelmusterobjekt zu verwenden, wie es durch den Objektbenutzungsbereich 223 gezeigt ist. Ein Beendigungsknoten 232 des Textverarbeitungsprogramms zeigt, dass das Textverarbei tungsprogramm zur Zeit t&sub5; endet. Ein Wirkungspfeil 233 und ein Knoten 224 zur Aufhebung der Zuweisung des Objekts zeigen zusammen, dass, weil keine anderen Programme das Pixelmusterobjekt benutzen, das Textverarbeitungsobjekt die Zuweisung des Pixelmusterobjekts aufhebt. Nachdem das Textverarbeitungsprogramm die Zuweisung des Pixelmusterobjekts zur Zeit t&sub5; aufhebt, besteht das Pixelmusterobjekt nicht länger und verbraucht keinen Speicherraum.
- In Betriebssystemen, die rigorose Objektbesitzerrechtsmodelle unterstützen, bei denen das Betriebssystem eine größere Kontrolle über die Objekte vornimmt, werden Objekte jeweils von irgendeinem Programm besessen. Fig. 3 ist ein Blockdiagramm eines Objekts, wie es in einem Betriebssystem definiert ist, das ein rigoroseres Objekt Besitzerrechtsmodell unterstützt. Das Diagramm zeigt ein rigoroses Objekt 300. Das Objekt 300 enthält Objektdaten 301 und ein Besitzerfeld 302. Das Besitzerfeld 302 enthält eine Angabe des Programms, dem das Besitzerrecht an dem Objekt zugeteilt ist, und wird typischerweise innerhalb des Objekts gespeichert, wie es gezeigt ist. Als eine Alternative dazu, das Besitzerfeld 302 mit dem Objekt 300 zu speichern, kann das Besitzerfeld zusammen mit den Besitzerfeldern von anderen Objekten an einem zentralen Ort gespeichert werden. Das Besitzerrecht eines Objekts wird in den meisten solcher Betriebssysteme anfangs dem Programm zugeteilt, das das Objekt zuteilte. Typischerweise kann das Besitzerrecht später von dem Zuteilungsprogramm auf ein anderes Programm übertragen werden.
- Ein bestehendes Betriebssystem zu überarbeiten, damit es den Satz von Objektarten erweitert, die in Besitz sind, erhöht weiter die Zuverlässigkeit des Betriebssystems. Beispielsweise kann ein Betriebssystem überarbeitet werden, damit eine neue Art Objekt in Besitz sein kann. Die Überarbeitung eines Betriebssystems, um die Möglichkeiten zu erweitern, mit denen das Betriebssystem die Steuerung über im Besitz befindliche Objekte ausübt, erhöht des weiteren die Zuverlässigkeit des Betriebssystems. Beispielsweise kann ein Betriebssystem die automatische Zuweisungsaufhebung im Besitz befindlicher Objekte ausführen oder kann die Gruppe von Benutzern oder Programmen kontrollieren, die auf im Besitz befindliche Objekte zugreifen können.
- Um Raum im Speicher zu beanspruchen, der von Objekten besetzt ist, die nicht länger benötigt werden, kann ein Betriebssystem eine automatische Zuweisungsaufhebung im Besitz befindlicher Objekte ausführen. In manchen Fällen versagt wegen eines Konstruktions- oder Ausführungsmangels das Zuweisungsprogramm, einen Code zu liefern, um die Zuweisung der Objekte aufzuheben, die es zugewiesen hat. In solchen Fällen versagt das Zuweisungsprogramm, jemals die Zuweisung solcher Objekte aufzuheben. Weil kein anderes Programm für die Zuweisungsaufhebung des Objekts verantwortlich ist, überlebt das Objekt fortwährend (d. h., bis das Betriebssystem erneut gestartet wird oder sonst wie seinen gesamten Arbeitsspeicher löscht), wodurch wertvoller Speicherraum besetzt wird. Auch kann in manchen Fällen das Zuweisungsprogramm anormal enden. Beispielsweise kann in vielen Betriebssystemen, wenn das Betriebssystem einen schwerwiegenden Fehler, wie eine allgemeine Schutzverletzung oder einen Seitenfehler, während der Ausführung eines Programms erfaßt, jener das Programm einseitig beenden. In solchen Fällen wird das Zuweisungsprogramm sofort ohne Mitteilung beendet. Eine sofortige Beendigung verhindert, dass das Zuweisungsprogramm irgendwelchen Code ausführt, den es aufweist, um die Zuweisung von Objekten aufzuheben, für die es die Verantwortung zur Zuweisungsaufhebung hat. In solchen Fällen einer anormalen Beendigung überleben die Objekte dauerhaft, für die das Zuweisungsprogramm die Verantwortung der Zuweisungsaufhebung besitzt und die zur Zeit der anormalen Beendigung vorhanden sind. Ein Betriebssystem, das die automatische Zuweisungsaufhebung von Objekten ausführt, überwindet diese Schwierigkeiten, indem sofort die Zuweisung irgendwelcher Objekte aufgehoben wird, die in Besitz des beendeten Programms sind. Dies beinhaltet üblicherweise, die verbundenen Listen zu durchmustern, die zugewiesene Objekte verbinden, und die Zuweisung von irgendwelchen Objekten aufzuheben, die in den verbundenen Listen erscheinen, deren Besitzerfeld 302 angibt, dass es im Besitz des beendeten Programms sind.
- Um die Sicherheit von Daten zu gewährleisten, die in Objekten enthalten sind, kann ein Betriebssystem die Gruppe von Benutzern oder Programmen kontrollieren, die auf im Besitz befindliche Objekte zugreifen können. Einige Computersysteme verwenden Objekte, die besondere Informationen enthalten, die für besondere, begrenzte Zwecke benutzt werden sollen, aber sonst anderen Programmen oder Benutzern nicht zur Verfügung stehen. Hierfür kann ein Betriebssystem überarbeitet werden, die Gruppe von Benutzern oder Programmen zu kontrollieren, die auf auf im Besitz befindliche Objekte zugreifen können. Fig. 4 ist ein Blockdiagramm eines Objekts, wie es in einem Betriebssystem definiert ist, das die Gruppe von Benutzern oder Programmen kontrolliert, die auf auf im Besitz befindliche Objekte zugreifen können. Das Objekt 400 enthält Objektdaten 401, ein Besitzerfeld 402 und einen Zeiger zu einer Zugriffssteuerliste 403. Das Besitzerfeld 402 enthält eine Angabe des Programms, wem Besitzrecht des Objekts zugeteilt ist. Der Zeiger zu einer Zugriffssteuerliste 403 zeigt auf eine Zugriffssteuerliste 410. Die Zugriffssteuerliste 410 enthält eine Reihe von Listeneinsprüngen, einschließlich der Listeneinsprünge 411 und 412. Jeder Listeneinsprung kennzeichnet ein Programm, das berechtigt ist, auf das Objekt 400 zuzugreifen. In einigen Betriebssystemen kann ein Listeneinsprung eine Gruppe von Programmen bezeichnen. Eine solche Gruppe kann die Gruppe von Programmen enthalten, die für einen bestimmten Benutzer ausgeführt werden. Auch kann in einigen Betriebssystemen ein Listeneinsprung die besondere Art von Zugriff festlegen, die von den bezeichneten Programmen erlaubt ist, z. B., Lesen, Schreiben oder Aufrufen. In einem solche Betriebssystem prüft, wenn ein Programm versucht, auf das Objekt 400 zuzugreifen, das Betriebssystem die Listeneinsprünge in der Zugriffssteuerliste 410, um zu bestimmen, ob das Programm berechtigt ist, auf das Objekt 400 zuzugreifen. Wenn das Betriebssystem einen Listeneinsprung antrifft, der das Programm berechtigt, auf das Objekt 400 zuzugreifen, dann versieht das Betriebssystem das Programm mit dem Zugriff auf das Objekt, sonst kehrt das Betriebssystem zurück, ohne einen Zugriff auf das Objekt bereitzustellen.
- Viele Betriebssysteme führen eine automatische Zuweisungsaufhebung an im Besitz befindlichen Objekten durch oder steuern die Gruppe von Benutzern oder Programmen, die auf im Besitz befindliche Objekte zugreifen können, da dies dazu neigt, das von einem Betriebssystem unterstützte Objektbesitzrechtsmodell rigoroser und deshalb das Betriebssystem zuverlässiger zu machen. Weil der Zweck, ein Objektbesitzrechtsmodell eines Betriebssystems rigoroser zu machen, ist, dem Betriebssystem mehr Kontrolle über Objekte zu geben, läßt ein rigoroseres Objektbesitzrechtsmodell notwendigerweise Programme zurück, die mit dem Betriebssystem mit weniger Kontrolle über die Objekte benutzt werden, mit denen sie wechselwirken. Entwickler von Programmen, die zur Verwendung mit einem Betriebssystem entwickelt werden, das ein rigoroses Objektbesitzerrechtsmodell unterstützt, können die Programme anpassen, damit sie weniger Kontrolle über die Objekte verlangen, mit denen sie wechselwirken. Jedoch weisen viele Programme, die bereits zur Verwendung mit einem Betriebssystem entwickelt worden sind, das ein weniger rigoroses Objektbesitzrechtsmodell unterstützt, Abhängigkeiten von der Fähigkeit auf und behalten sie bei, das Kontrollniveau über Objekte auszuüben, das in Verbindung mit dem Betriebssystem möglich ist, das ein weniger rigoroses Objektbesitzrechtsmodell unterstützt. Wenn diese "alten" Programme, die zur Verwendung mit einem ein weniger rigoroses Objektbesitzrechtsmodell unterstützenden Betriebssystem entwickelt wurden, mit einem "neuen" Betriebssystem verwendet werden, das ein rigoroseres Objektbesitzrechtsmodell unterstützt, werden diese Abhängigkeiten des alten Programms fortwährend verletzt. Dies tritt üblicherweise in Fällen auf, wenn die alten Programme, von denen ein höheres Kontrollniveau über Objekte angenommen wird, als von einem neuen Betriebssystem erlaubt, versuchen, informell ein Objekt gemeinsam zu benutzen.
- Fig. 5 ist ein Zeitdiagramm, das darstellt, wie ein neues Betriebssystem, das eine automatische Aufhebung der Objektzuweisung ausführt, die Versuche der alten Programme frustrieren kann, die für Betriebssysteme ohne automatische Aufhebung einer Objektzuweisung entwickelt worden sind, informell ein Objekt gemeinsam zu benutzen. Das Zeitdiagramm zeigt die Folgen der gleichen Reihe von Ereignissen in Verbindung mit alten Programmen, die in Fig. 2 gezeigt sind, bei einem Betriebssystem, das eine automatische Aufhebung der Objektzuweisung ausführt. Das Zeitdiagramm zeigt eine Zeitskala 500 mit den folgenden Zeitunterteilungen: Zeit t&sub1;, Zeit t&sub2;, Zeit t&sub3;, Zeit t&sub4; und Zeit t&sub5;. Das Zeitdiagramm zeigt auch ein Ablaufintervall 510 für ein Tabellenkalkulationsprogramm, währenddessen das Tabellenkalkulationsprogramm läuft, ein Ablaufintervall 530 für ein Textverarbeitungsprogramm, währenddessen das Textverarbeitungsprogramm läuft, und ein einem Pixelmusterobjekt zugeordnetes Intervall 520, währenddessen das Pixelmusterobjekt zugeordnet ist. Das Zeitdiagramm zeigt des weiteren ein Laufintervall 540 für ein automatisches System zur Zuweisungsaufhebung, das angibt, dass der Abschnitt des Betriebssystems, der für eine automatische Aufhebung der Objektzuweisung verantwortlich ist, stets läuft.
- Ein Startknoten 511 für ein Tabellenkalkulationsprogramm zeigt, dass das Tabellenkalkulationsprogramm zur Zeit t&sub1; gestartet wird. Der Start startet das Tabellenkalkulationsprogramm, das im Intervall 510 läuft. Ein Wirkungspfeil 512 und ein Objektzuweisungsknoten 521 zeigen zusammen, dass das Tabellenkalkulationsprogramm das Pixelmusterobjekt zur Zeit t&sub2; zuweist. Das Betriebssystem setzt das Besitzerfeld 302 des Pixelmusterobjekts, um anzugeben, dass das Tabellenkalkulationsprogramm das Pixelmusterobjekt besitzt, weil das Tabellenkalkulationsprogramm das Pixelmusterobjekt zuwies.
- Das Tabellenkalkulationsprogramm verwendet das Pixelmusterobjekt während des Objektbenutzbereiches 522 von der Zeit t&sub2; an bis das Tabellenkalkulationsprogramm zur Zeit t&sub4; endet. Ein Startknoten 531 für ein Textverarbeitungsprogramm zeigt, dass das Textverarbeitungsprogramm zur Zeit t&sub3; gestartet wird. Der Start startet das Laufintervall 530 des Textverarbeitungsprogramms. Ein Objektbenutzungsbereich 523 zeigt, dass das Textverarbeitungsprogramm unter Verwendung des Pixelmusterobjekts unmittelbar zur Zeit t&sub3; beginnt. Beide Objekte fahren fort, das Pixelmusterobjekt bis zur Zeit t&sub4; zu verwenden, d. h., gemeinsam zu benutzen. Ein Beendigungsknoten 513 für das Tabellenkalkulationsprogramm zeigt, dass das Tabellenkalkulationsprogramm zur Zeit t&sub4; endet. Obgleich das Tabellenkalkulationsprogramm versucht die Verantwortung für die Zuweisungsaufhebung des Pixelmusterobjekts an das Textverarbeitungsprogramm zu delegieren, zeigt der Wirkungspfeil 541, dass das automatische System zur Zuweisungsaufhebung die Zuweisung des Pixelmusterobjekts aufhebt, wenn das Tabellenkalkulationsprogramm bei t&sub4; endet, weil das Tabellenkalkulationsprogramm der Besitzer des Pixelmusterobjekts ist. Ein Objektbenutzungsbereich 523 zeigt, dass das Textverarbeitungsprogramm das Pixelmusterobjekt von t&sub3; an verwendet, bis das Tabellenkalkulationsprogramm bei t&sub4; endet. Ein Nichtbenutzungsbereich 533 für das Objekt zeigt, dass das Textverarbeitungsprogramm das Pixelmusterobjekt von t&sub4; an nicht verwenden kann, bis das Textverarbeitungsprogramm bei t&sub5; endet. Dies ergibt für das Textverarbeitungsprogramm einen frustrierten Versuch, das Objekt während des Nichtbenutzungsbereiches 533 des Objekts gemeinsam zu benutzen. Das gleiche Ergebnis tritt zu jeder Zeit auf, zu der das Programm, das ein Objekt zuwies, endet, bevor die gemeinsame Benutzung des Objekts geschlossen ist.
- Fig. 6 ist ein Zeitdiagramm, das darstellt, wie ein Betriebssystem, das eine Objektzugriffssteuerung ausführt, die Versuche alter Programme frustrieren kann, die für Betriebssysteme ohne Objektzugriffssteuerung entwickelt worden sind, um informell ein Objekt mitzubenutzen. Das Zeitdiagramm zeigt die Folgen der gleiche Reihen von Ereignissen in Verbindung mit alten Programmen, wie es in Fig. 2 gezeigt ist, in einem Betriebssystem, das eine Objektzugriffssteuerung ausführt. Das Zeitdiagramm zeigt eine Zeitskala 600, die die folgenden Zeitunterteilungen aufweist: Zeit t&sub1;, Zeit t&sub2;, Zeit t2,5, Zeit t&sub3;, Zeit t&sub4; und Zeit t&sub5;. Das Zeitdiagramm zeigt auch ein Laufintervall 610 für ein Tabellenkalkulationsprogramm, währenddessen das Tabellenkalkulationsprogramm läuft, ein Laufintervall 630 für ein Textverarbeitungsprogramm, währenddessen das Textverar beitungsprogramm läuft, und ein einem Pixelmuster zugewiesenes Intervall 620, währenddessen das Pixelmusterobjekt zugewiesen ist. Das Zeitdiagramm zeigt des weiteren ein Laufintervall 650 für ein Zugriffssteuersystem, das angibt, dass der Abschnitt des Betriebssystems, der für die Objektzugriffssteuerung verantwortlich ist, stets läuft.
- Ein Startknoten 611 für ein Tabellenkalkulationsprogramm zeigt, dass das Tabellenkalkulationsprogramm zur Zeit t&sub1; gestartet wird. Der Start startet das Laufintervall 610 für das Tabellenkalkulationsprogramm. Ein Wirkungspfeil 612 und ein Objektzuweisungsknoten 621 zeigen zusammen, dass ein Tabellenkalkulationsprogramm zur Zeit t&sub2; das Pixelmusterobjekt zuweist. Das Betriebssystem setzt das Besitzerfeld 402 des Pixelmusterobjekts, um anzugeben, dass das Tabellenkalkulationsprogramm, weil es das Pixelmusterobjekt zuwies, das Pixelmusterobjekt besitzt. Da das alte Tabellenkalkulationsprogramm nicht unter Berücksichtigung einer Zugriffssteuerung entwickelt wurde, bezeichnet es nicht explizit irgendwelche Zugriffssteuerlisteneinsprünge, um die Benutzung des Objekts durch andere Programme zu erlauben. Das Betriebssystem setzt jedoch den Zugriffssteuerlistenzeiger 403, um auf die Voreinstellungszugriffssteuerliste zu zeigen, die eine Zugriffsberechtigung nur für den Objektbesitzer, das Tabellenkalkulationsprogramm, angibt. Ein Wirkungspfeil 651 zeigt, dass zur Zeit t2,5 das Tabellenkalkulationsprogramm Zugriff auf das Objekt verlangt. Das Zugriffssteuersystem erhält die Anforderung und prüft die Listeneinsprünge in die Zugriffssteuerliste 410, um zu bestimmen, ob das Tabellenkalkulationsprogramm berechtigt ist, auf das Objekt 400 zuzugreifen. Ein Wirkungspfeil 652 zeigt, dass, weil das Zugriffssteuersystem einen Berechtigungszugriff auf einen Zugriffslisteneinsprung zu dem Objekt durch das Tabellenkalkulationsprogramm ortet, das Zugriffssteuersystem dem Tabellenkalkulationsprogramm einen Zugriff auf das Objekt bereitstellt. Das Tabellenkalkulationsprogramm verwendet das Pixelmusterobjekt während des Objektbenutzungsbereiches 622, der zur Zeit t2,5 beginnt. Ein Startknoten 631 für ein Textverarbeitungsprogramm zeigt, dass das Textverarbeitungsprogramm zur Zeit t&sub3; gestartet wird. Der Start startet das Laufintervall 630 für das Textverarbeitungsprogramm. Ein Wirkungspfeil 653 zeigt, dass zur Zeit t&sub3; das Textverarbeitungsprogramm Zugriff auf das Objekt verlangt, um das Objekt gemeinsam mitzubenutzen. Das Zugriffssteuersystem erhält die Anforderung und überprüft die Listeneinsprünge in der Zugriffssteuerliste 410, um zu bestimmen, ob dem Programm gestattet ist, auf das Objekt 400 zuzugreifen. Ein Wirkungspfeil 654 zeigt, dass das Zugriffssteuersystem ablehnt, den Programmzugriff auf das Objekt zu liefern, weil kein Zugriffssteuerlisteneinsprung in der Zugriffssteuerliste erscheint, der den Zugriff auf das Objekt durch das Textverarbeitungsprogramm erlaubt. Dies führt zu einem frustrierten Versuch des Textverarbeitungsprogramms, das Objekt während des Nichtbenutzungsbereiches 633 des Objekts mitzubenutzen. Das gleiche Ergebnis tritt immer dann auf, wenn ein Programm, das von einem verschieden ist, das ein Objekt zuwies, versucht, auf das Objekt zuzugreifen.
- Man sieht ohne weiteres aus den vorstehenden Beispielen, dass Programme, die für Betriebssysteme entwickelt worden sind, die ein unbeeinflußbares Objektbesitzrechtsmodell unterstützen, in unerwünschter Weise reagieren, wenn sie mit einem Betriebssystem verwendet werden, das ein rigoroseres Objektbesitzrechtsmodell unterstützt, wie eines, das eine automatische Objektzuweisungsaufhebung oder Objektzugriffssteuerung umfasst.
- Es ist die Zielsetzung der Erfindung, ein Verfahren, ein computerlesbares Medium und ein System zu schaffen, um die Kompatibilität eines Betriebssystems, das ein erstes Objektbesitzrechtsmodell aufweist, mit einem Programm zu gewährleisten, das ein zweites Objektbesitzrechtsmodell aufweist.
- Diese Zielsetzung wird durch das Verfahren, wie es im Anspruch 1 beansprucht ist, das computerlesbare Medium, wie es im Anspruch 11 beansprucht ist, und das System erreicht, wie es im Anspruch 12 beansprucht ist.
- Diese und andere Zielsetzungen, die deutlicher werden, wenn die Erfindung unten vollständiger beschrieben wird, werden durch ein Verfahren und ein System bereitgestellt, das ein geeignetes Objektbesitzrechtsmodell anwendet. Bei einer bevorzugten Ausführungsform wendet ein Betriebssystem selektiv ein Objektbesitzrechtsmodell an, mit dem laufende Programme verträglich sind. Dies ermöglicht Programmen, die zur Verwendung mit Betriebssystemen ausgelegt sind, die kein rigoroses Objektbesitzrechtsmodell anwenden, mit einem Betriebssystem verwendet zu werden, das ein rigoroses Objektbesitzrechtsmodell anwenden kann. Das Verfahren und das System weisen beide eine automatische Objektzuweisungsaufhebungsphase und eine Objektzugriffssteuerphase auf. In der automatischen Zuweisungsaufhebungssteuerphase schieben das Verfahren und das System die automatische Zuweisungsaufhebung von Objekten auf, die im Be sitz von Programmen sind, die mit einer automatischen Objektzuweisungsaufhebung unverträglich sind, auf einen späteren Zeitpunkt, zu dem keine solchen Programme noch laufen. Statt sofort die Zuweisung von Objekten aufzuheben, die von einem endenden Programm besessen werden, bezeichnet das Verfahren und System diese für eine aufgeschobene Zuweisungsaufhebung. Zu einem späteren Zeitpunkt prüfen das Verfahren und das System, um zusehen, ob irgendwelche Programme, die mit einer automatischen Objektzuweisungsaufhebung unverträglich sind, noch laufen, und wenn es keine gibt, heben das Verfahren und das System die Zuweisung aller Objekte auf, die für eine aufgeschobene Zuweisungsaufhebung bezeichnet worden sind. In der Objektzugriffssteuerphase erlauben das Verfahren und das System einen besonderen gestatteten Zugriff auf Objekte, die im Besitz von Programmen sind, die keinen Zugriff auf das Objekt von anderen Programmen gewähren können. Statt einen Zugriff von einem anfordernden Programm auf ein Objekt abzulehnen, das im Besitz eines Programms ist, das keinen Zugriff auf das Objekt von anderen Programmen gewähren kann, erlauben das Verfahren und das System dem anfordernden Programm, auf das Objekt zuzugreifen.
- Fig. 1 ist ein Blockdiagramm eines Objekts, wie es in einem Betriebssystem definiert ist, dass das unbeeinflußbare Objektbesitzrechtsmodell unterstützt.
- Fig. 2 ist ein Zeitdiagramm, dass das informelle gemeinsame Benutzen eines unbeeinflußbaren Objekts zeigt.
- Fig. 3 ist ein Blockdiagramm eines Objekts, wie es in einem Betriebssystem definiert ist, das ein rigoroseres Objektbesitzrechtsmodell unterstützt.
- Fig. 4 ist ein Blockdiagramm eines Objekts, wie es in einem Betriebssystem definiert ist, das die Gruppe von Benutzern oder Programmen steuert, die auf im Besitz befindliche Objekte zugreifen können.
- Fig. 5 ist ein Zeitdiagramm, das darstellt, wie ein neues Betriebssystem, das eine automatische Objektzuweisungsaufhebung ausführt, die Versuche alter Pro gramme frustrieren kann, die für Betriebssysteme ohne automatische Objektzuweisungsaufhebung, informell ein Objekt mitzubenutzen, entwickelt worden sind.
- Fig. 6 ist ein Zeitdiagramm, das darstellt, wie ein neues Betriebssystem, das eine Objektzugriffssteuerung ausführt, die Versuche alter Programme frustrieren kann, die für Betriebssysteme ohne Objektzugriffssteuerung, informell ein Objekt mitzubenutzen, entwickelt worden sind.
- Fig. 7 ist ein Blockdiagramm des Mehrzweckcomputersystems auf einer hohen Ebene, mit dem die Einrichtung bevorzugt arbeitet.
- Fig. 8 ist ein Flußdiagramm der Schritte, die von dem üblichen Programmstartdienst durchgeführt werden.
- Fig. 9 ist ein Flußdiagramm der Schritte, die von dem üblichen Programmbeendigungsdienst durchgeführt werden.
- Fig. 10 ist ein Zeitdiagramm, dass das informelle Mitbenutzen eines Objekts in einem Betriebssystem darstellt, das eine automatische Objektzuweisungsaufhebung aufweist und in Verbindung mit der Einrichtung läuft.
- Fig. 11 ist ein Flußdiagramm der Schritte, die von dem modifizierten Programmstartdienst durchgeführt werden.
- Fig. 12 ist ein Flußdiagramm der Schritte, die von dem modifizierten Programmbeendigungsdienst durchgeführt werden.
- Fig. 13 ist ein Flußdiagramm der Schritte, die von dem modifizierten Programmstartdienst für Teilaufgaben durchgeführt werden.
- Fig. 14 ist ein Flußdiagramm der Schritte, die durch den modifizierten Programmbeendigungsdienst für Teilaufgaben durchgeführt werden.
- Fig. 15 ist ein Flußdiagramm der Schritte, die durch den modifizierten Programmbeendigungsdienst für Module durchgeführt werden.
- Die bevorzugte Ausführungsform der vorliegenden Erfindung schafft ein Verfahren und System, um die Kompatibilität eines Betriebssystems, das ein erstes Objektbesitzrechtsmodell aufweist, mit anderen Programmen zu gewährleisten, die für ein Betriebssystem entwickelt wurden, das ein zweites, weniger rigoroses Objektbesitzrechtsmodell (alte Programme) aufweist. Eine Softwarekompatibilitätseinrichtung bestimmt, wenn das Betriebssystem dabei ist, sein rigoroseres Objektbesitzrechtsmodell auf ein Objekt anzuwenden. Wenn das Objekt von einem alten Programm benutzt wird, dann nimmt die Softwarekompatibilitätseinrichtung (die Einrichtung) die Anwendung des rigoroseren Objektbesitzrechtsmodell auf das Objekt in Beschlag, oder, wenn möglich, schiebt die Anwendung des rigoroseren Objektbesitzrechtsmodell auf das Objekt auf, bis das Objekt nicht mehr von einem alten Programm benutzt wird. Sonst erlaubt die Einrichtung dem Betriebssystem, das rigorosere Objektbesitzrechtsmodell auf das Objekt anzuwenden. Ausführungen der Einrichtungen sind beschrieben, die die Kompatibilität von Betriebssystemen, die die rigoroseren Objektbesitzrechtsmodelle unterstützen, die eine automatische Objektzuweisungsaufhebung oder Objektzugriffssteuerung aufweisen, mit Programmen gewährleisten, die für ein Betriebssystem mit einem weniger rigorosen Objektbesitzrechtsmodell entwickelt worden sind. Die Anpassung der Ausführungen auf Verbundprogramme, die aus zwei oder mehreren kleineren Unterprogrammen, Module genannt, bestehen, ist ebenfalls erörtert.
- Fig. 7 ist ein Blockdiagramm eines Mehrzweckcomputersystems (System) auf hoher Ebene, bei dem die Einrichtung vorzugsweise arbeitet. Das Computersystem 700 enthält eine zentrale Verarbeitungseinheit (CPU) 701, einen Computerspeicher (Speicher) 702 und Eingabe/Ausgabeeinrichtungen 703. Der Speicher 702 enthält das Betriebssystem 704, die Einrichtung 705 und andere Programme 706 und 707. Die Programme 704- 707, die in dem Speicher 702 gespeichert sind, werden auf der CPU 701 ausgeführt. Die Eingabe/Ausgabeeinrichtungen enthalten eine Speichereinrichtung 708, wie ein Festplattenlaufwerk. Programme können auch in der Speichereinrichtung 708 und seitenweise in dem Speicher 702 gespeichert werden, wie es notwendig ist. Bei einer bevor zugten Ausführungsform ist die Einrichtung in das Betriebssystem integriert. Das heißt, das Betriebssystem enthält einen modifizierten Programmstartdienst und Programmbeendigungsdienst, die die Einrichtung umfassen, und die unten beschrieben sind, und das Betriebssystem muß nicht abgeändert werden, um sie zu enthalten und zu verwenden. Ferner ist bei einer bevorzugten Ausführungsform das Betriebssystem eine verbesserte Version von Microsoft Windows, das mit Windows 3.0 und Windows 3.1. Anwendungen sowie mit Windows NT Anwendungen kompatibel ist.
- Bei einer bevorzugten Ausführung einer automatischen Objektzuweisungsaufhebung schiebt die Einrichtung die automatische Objektzuweisungsaufhebung auf, wenn es notwendig ist, um die Kompatibilität mit alten Programmen zu gewährleisten. Kurz gesagt, schiebt die Einrichtung die Zuweisungsaufhebung aller Objekte auf, die von einem beendeten alten Programm besessen sind, bis keine alten Programme mehr auf dem System laufen. Die Zuweisung dieser Objekte kann dann sicher aufgehoben werden, da keine alten Programme von dem fortwährenden Vorhandensein solcher Objekte abhängen, wenn keine alten Programme laufen. (Neue Programme verwenden entweder die Objekte nicht oder haben ein explizit angenommenes Besitzrecht.)
- Die Einrichtung arbeitet in Verbindung mit einem Betriebssystem, das eine automatische Objektzuweisungsaufhebung liefert. Unter anderem liefert das Betriebssystem vier Standarddienst, die andere Programme anfordern können: Starten eines Programms, Zuweisen eines Objekts, Änderung eines Objektbesitzers und Beenden eines Programms. Der Standardprogrammstartdienst lädt ein spezifiziertes Programm und führt es aus. Fig. 8 ist ein Flußdiagramm der Schritte, die von dem Standardprogrammstartdienst ausgeführt werden. Im Schritt 801 startet das Betriebssystem tatsächlich das spezifizierte Programm. Dies umfasst üblicherweise, das Programm aus der Speichereinrichtung in den Speicher zu laden und mit der Ausführung zu beginnen. Diese Schritte schließen dann ab. Der Standardobjektzuweisungsdienst weist Speicher einem Objekt eines bestimmten Typs zu und teilt das Besitzrecht des zugewiesenen Objekts dem anfordernden Programm zu. Der Standarddienst teilt zur Änderung eines Objektbesitzers das Besitzrecht an einem bestimmten Objekt von seinem gegenwärtigen Besitzer einem bestimmten Programm zu. Schließlich beendet der Standardprogrammbeendigungsdienst ein bestimmtes Programm, hebt dann die Zuweisung irgendwelcher Objekte auf, deren Besitzrecht dem beendeten Programm zugeteilt ist. Fig. 9 ist ein Flußdiagramm der Schritt, die von dem üblichen Programmbeendigungsdienst durchgeführt werden. Im Schritt 901 beendet das Betriebssystem das bestimmte Programm. Dies beinhaltet üblicherweise, das beendete Programme aus einer Liste gegenwärtig ausgeführter Programme zu entfernen, die von dem Betriebssystem geführt wird, sowie den gesamten Speicher wiederzugewinnen, der dem beendeten Programm zugeteilt war. Im Schritt 902 hebt das Betriebssystem die Zuweisung aller Objekte auf, die von dem beendeten Programm besessen waren. Dieser Schritt enthält, alle zugewiesenen Objekte zu überprüfen und jene zugewiesenen Objekte zu entfernen, die von dem beendeten Programm besessen waren. Diese Schritte schließen dann ab.
- Die Einrichtung ändert den Programmstart- und Programmbeendigungsdienst, um die automatische Zuweisungsaufhebung von Objekten, die von alten Programmen besessen werden, aufzuschieben, bis keine alten laufenden Programme übrig sind. Kurz gesagt, erhöht, wenn ein altes Programm gestartet wird, der Programmstartdienst einen Zähler laufender, alter Programme. Wenn ein altes Programm endet, erkennt der modifizierte Programmbeendigungsdienst die Objekte, die von dem Programm besessen sind, und bezeichnet, statt die Zuweisungen der Objekte sofort aufzuheben, die Objekte, die früher von einem alten Programm besessen waren. Wenn der Zählerwert angibt, dass das letzte alte Programm beendet wurde, hebt der modifizierte Programmbeendigungsdienst den Verweis zu jedem Objekt auf, das als ein vorhergehend von einem alten Programm im Besitz befindliches bezeichnet ist. Die modifizierten Dienste sind ausführlicher unten in Verbindung mit den Fig. 11 und 12 erörtert.
- Um die Arbeitsweise der modifizierten Dienste vollständig aufzuzeigen, werden sie in bezug auf ein Beispiel erörtert, in dem alte Programme informell ein Objekt mitbenutzen. Bei dem Beispiel weist ein Tabellenkalkulationsprogramm ein Werkzeugbalken-Pixelmusterobjekt zu, das es informell mit einem Textverarbeitungsprogramm mitbenutzt. Diese zwei Programme werden zu einer Zeit gestartet, wenn keine anderen alten Programme laufen.
- Fig. 10 ist ein Zeitdiagramm, das die informelle Mitbenutzung eines Objekts in einem Betriebssystem darstellt, das eine automatische Objektzuweisungsaufhebung besitzt, die in Verbindung mit der Einrichtung läuft. Das Zeitdiagramm zeigt die Folgen der Reihe von Ereignissen in Verbindung mit alten Programmen, wie es in Fig. 2 gezeigt ist, in einem Betriebssystem, das eine automatische Objektzuweisungsaufhebung ausführt, die in Verbindung mit der Einrichtung läuft. Das Zeitdiagramm zeigt eine Zeitskala 1000 mit den folgenden Zeitunterteilungen: Zeit t&sub1;, Zeit t&sub2;, Zeit t&sub3;, Zeit t&sub4; und Zeit t&sub5;. Das Zeitdiagramm zeigt auch ein Laufintervall 1010 für ein Tabellenkalkulationsprogramm, währenddessen das Tabellenkalkulationsprogramm läuft, ein Laufintervall 1030 für ein Textverarbeitungsprogramm, währenddessen das Textverarbeitungsprogramm läuft, und ein einem Pixelmusterobjekt zugeordnetes Intervall 1020, währenddessen ein Pixelmusterobjekt zugeordnet ist. Das Zeitdiagramm zeigt des weiteren ein Laufintervall 1040 für ein automatisches Zuweisungsaufhebungssystem, das angibt, dass der Abschnitt des Betriebssystems, der für eine automatische Objektzuweisungsaufhebung, in der die Einrichtung eingegliedert ist, stets läuft.
- Um das Tabellenkalkulationsprogramm zu laden und seine Ausführung zu starten, schickt ein Programm eine Anforderung an den Programmstartdienst, das Tabellenkalkulationsprogramm zu starten. In vielen Computersystemen ist das anfordernde Programm ein Programmverwalterprogramm, das ausgelegt ist, andere Programme in Antwort auf Benutzerbefehle zu starten. Ein Startknoten 1011 für das Tabellenkalkulationsprogramm zeigt, dass eine Anforderung, das Tabellenkalkulationsprogramm zu starten, zu einer Zeit t&sub1; gemacht wird. Fig. 11 ist ein Flußdiagramm der Schritte, die von dem modifizierten Programmstartdienst durchgeführt werden. Fig. 11 kann mit Fig. 8 verglichen werden, um die Abänderungen an dem Programmstartdienst des Betriebssystems zu unterscheiden, die notwendig sind, die Einrichtung auszuführen. Kurz gesagt, bildet zusätzlich dazu, das Programm wirklich zu starten, wenn das gestartete Programm ein altes Programm ist, der modifizierte Programmstartdienst den alten Programmzähler. Im Schritt 1101 führt die Einrichtung die Operationen aus, die verlangt werden, um das Tabellenkalkulationsprogramm wirklich zu starten, d. h., das Programm zu laden und mit seiner Ausführung zu beginnen. Wenn das gestartete Programm 1102 ein altes Programm ist, dann erhöht die Einrichtung im Schritt 1103 einen Zähler mit der Anzahl alter Programme, die gegenwärtig laufen, d. h., gestartet und nicht beendet sind (Altprogrammaufzähler). Die Einrichtung bestimmt, ob das gestartete Programm ein altes Programm ist, indem ein Feld in dem Anfangsabschnitt des gestarteten Programms geprüft wird, das von dem Kompilierer gesetzt wird, der verwendet, das alte Programm zu kompilieren, damit die Version des Betriebssystems angegeben wird, in der das Programm kompiliert wurde. Da das Tabellenkalkulationsprogramm ein altes Programm ist, erhöht die Einrichtung den laufenden Altprogrammaufzähler von null auf eins. Diese Schritte enden dann.
- Nachdem das Tabellenkalkulationsprogramm gestartet ist, verlangt es den Objektzuweisungsdienst, um ein Pixelmusterobjekt zuzuweisen. Der Objektzuweisungsdienst weist zur Zeit t&sub2; ein Pixelmusterobjekt zu, wie es durch einen Wirkungsteil 1012 und einen Objektzuweisungsknoten 1021 gezeigt ist. Der Objektzuweisungsdienst teilt des weiteren das Besitzrecht des Objekts dem Tabellenkalkulationsprogramm zu, indem das Besitzerfeld 302 des Pixelmusterobjekts gesetzt wird, um anzugeben, dass das Tabellenkalkulationsprogramm das Pixelmusterobjekt besitzt. Der Objektzuweisungsdienst gibt eine Zugriffsinformation, wie einen Zeiger, an das Tabellenkalkulationsprogramm zurück, die dem Tabellenkalkulationsprogramm erlaubt, auf das Pixelmusterobjekt zuzugreifen. Das Tabellenkalkulationsprogramm fährt dann fort, das Pixelmusterobjekt während eines Objektbenutzungsbereiches 1022 vom Zeitpunkt t&sub2; an zu benutzen, bis das Tabellenkalkulationsprogramm zur Zeit t&sub4; endet, wobei auf das Pixelmusterobjekt unter Verendung der Zugriffsinformation zugegriffen wird.
- Zur Zeit t&sub3; wird der Programmstartdienst angefordert, das Textverarbeitungsprogramm, wie es gezeigt ist, durch einen Startknoten 1031 für das Textverarbeitungsprogramm zu starten, und der Altprogrammaufzähler wird erneut von eins auf zwei erhöht. Der Start startet das Laufintervall 1030 des Textverarbeitungsprogramms. Nachdem das Textverarbeitungsprogramm gestartet ist, kommunizieren das Textverarbeitungsprogramm und das Tabellenkalkulationsprogramm, um das informelle gemeinsame Benutzen des Pixelmusterobjekts zu verhandeln. Als Teil des Verhandlungsprozesses gibt das Tabellenkalkulationsprogramm eine Kopie der Zugriffsinformationen auf das Pixelmusterobjekt an das Textverarbeitungsprogramm, damit das Textverarbeitungsprogramm das Objekt verwenden kann. Ein Objektbenutzungsbereich 1023 zeigt, dass das Textverarbeitungsprogramm unmittelbar zur Zeit t&sub3; beginnt, das Pixelmusterobjekt zu benutzen. Beide Objekte fahren mit der Benutzung fort, d. h., benutzen das Pixelmusterobjekt gemeinsam bis zur Zeit t&sub4;.
- Wenn das Tabellenkalkulationsprogramm bereit ist, unmittelbar vor der Zeit t&sub4; zu enden, teilt es dem Textverarbeitungsprogramm mit, dass das Textverarbeitungsprogramm nun die Verantwortung für eine Zuweisungsaufhebung für das Pixelmusterobjekt hat. Da je doch das Tabellenkalkulationsprogramm ein altes Programm ist und für ein Betriebssystem entwickelt wurde, das weder eine Kenntnis von einem Objektbesitzerrecht noch den Dienst zur Änderung eines Objektbesitzers hatte, verlangt das Tabellenkalkulationsprogramm nicht den Dienst zur Änderung eines Objektbesitzers, um das Besitzrecht des Pixelmusterobjekts dem Textverarbeitungsprogramm wieder zuzuteilen. Ein Beendigungsknoten 1013 für das Tabellenkalkulationsprogramm zeigt, dass das Tabellenkalkulationsprogramm dann den Programmbeendigungsdienst verlangt, um das Tabellenkalkulationsprogramm zur Zeit t&sub4; zu beenden.
- Fig. 12 ist ein Flußdiagramm der Schritte, die von dem modifizierten Programmbeendigungsdienst durchgeführt werden. Fig. 12 kann mit Fig. 9 verglichen werden, um die Abänderungen an dem Programmbeendigungsdienst zu erkennen, die notwendig sind, die Einrichtung auszuführen. Kurz gesagt, wenn das beendete Programm ein altes Programm ist, bezeichnet der modifizierte Programmbeendigungsdienst die Objekte, die von dem beendeten Programm besessen wurden, als von einem beendeten alten Programm besessen und hebt nur den Verweis auf diese Objekte zusammen mit anderen derart bezeichneten auf, wenn keine anderen alten Programm aktiv bleiben. Im Schritt 1201 führt die Einrichtung die Operationen durch, die verlangt werden, um gegenwärtig das Tabellenkalkulationsprogramm zu beenden und den Speicher freizugeben, in dem das Tabellenkalkulationsprogramm gespeichert ist. Im Schritt 1202 fährt dann, wenn das beendete Programm ein altes Programm ist, die Einrichtung beim Schritt 1203 fort, sonst fährt die Einrichtung beim Schritt 1207 fort, die Zuweisung von jedem Objekt aufzuheben, das von dem beendeten Programm besessen wurde. Da das Tabellenkalkulationsprogramm ein altes Programm ist, führt die Einrichtung beim Schritt 1203 fort. Im Schritt 1203 bezeichnet die Einrichtung jedes Objekt, das von dem beendeten Programm besessen wurde, als ein vorhergehend von einem beendeten, alten Programm im Besitz befindliches. Dieser Schritt umfasst, die verbundenen Listen zu durchqueren, die zugewiesene Objekte verbinden, um irgendwelche Objekte zu ordnen, die in den verbunden Listen erscheinen, deren Besitzerfelder 302 angeben, dass sie von dem beendeten Programm besessen wurden, und entweder die Bezeichnung bei jedem Objekt innerhalb des Objekts selbst vorzunehmen oder innerhalb einer zentralen Objektverwaltungsdatenstruktur. Der Abschluß des Schritts 1203 ist durch einen Objektbezeichnungsknoten 1025 gezeigt. Im Schritt 1204 verringert die Einrichtung den laufenden Altprogrammaufzähler von zwei auf eins. Im Schritt 1205 sind diese Schritte abgeschlos sen, wenn der Altprogrammaufzähler größer als null ist, sonst ist es sicher, die Zuweisung aller bezeichneter Objekte aufzuheben, und die Einrichtung fährt beim Schritt 1206 fort. Im Schritt 1206 hebt die Einrichtung die Zuweisung aller Objekte auf, die vorhergehend als von einem beendeten alten Programm besessen bezeichnet wurden. Dieser Schritt enthält, die Objektverbindungsliste oder die zentrale Objektverwaltungsdatenstruktur für bezeichnete Objekte zu suchen und deren Zuweisung aufzuheben. Diese Schritte schließen dann ab. Da der Altprogrammaufzähler nun gleich eins ist, ist er größer als null. Der Schritt 1206 wird deshalb nicht ausgeführt, und die Zuweisungsaufhebung des Pixelmusterobjekts wird aufgeschoben, wie es durch den Wirkungspfeil 1041 gezeigt ist. Dies erlaubt dem Textverarbeitungsprogramm, die Verwendung des Pixelmusterobjekts fortzusetzen.
- Ein Beendigungsknoten 1032 für ein Textverarbeitungsprogramm zeigt, dass das Textverarbeitungsprogramm von dem Programmbeendigungsdienst verlangt, das Textverarbeitungsprogramm zur Zeit t&sub5; zu beenden. Der Programmbeendigungsdienst verringert den laufenden Altprogrammaufzähler von eins auf null. Da das Pixelmusterobjekt als "früher einem alten Programm zugewiesen" markiert ist, ändert der Schritt 1203 das Feld 302 des Pixelmusterobjekts nicht. Da der Altprogrammaufzähler nun null ist, ist er nicht mehr größer als null. Der Schritt 1206 wird deshalb ausgeführt, und die Einrichtung hebt den Verweis auf das Pixelmusterobjekt auf, das als vorhergehend von einem beendeten, alten Programm besessen bezeichnet worden ist. Der Abschluß des Schritts 1206 ist durch einen Zuweisungsaufhebungsknoten 1024 für ein Pixelmusterobjekt gezeigt. Ein Objektbenutzungsbereich 1023 zeigt, dass das Textverarbeitungsprogramm das Pixelmusterobjekt von t&sub3; an benutzen kann, bis das Textverarbeitungsprogramm bei t&sub5; endet, wodurch das in Fig. 5 dargestellte Problem gelöst wird, bei dem das automatische Zuweisungsaufhebungssystem die Zuweisung des Pixelmusterobjekts aufhob, bevor das Textverarbeitungsprogramm, das das Pixelmusterobjekt mitbenutzte, die Verwendung des Pixelmusterobjekts beendete.
- Bei alternativen Ausführungsformen verwendet die Einrichtung unterschiedliche Verfahren zur Bestimmung, wann die Zuweisung bezeichnete Objekte sicher aufgehoben werden kann. Beispielsweise hält die Einrichtung in einem verteilten Verarbeitungssystem, das aus mehreren verbundenen Computersystemen besteht, statt einen Altprogrammaufzähler für jedes Computersystem in dem verteilten Verarbeitungssystem zu führen, vorzugsweise einen einzigen Altprogrammaufzähler für das gesamte verteilte Verarbeitungssystem aufrecht. Die Einrichtung hebt die Zuweisung eines bezeichneten Objekts nur auf, wenn der einzige Altprogrammaufzähler null erreicht. Als ein anderes Beispiel hält bei einem Mehrbenutzer-Computersystem, das von mehreren Benutzern aufeinmal verwendet werden kann, die Einrichtung vorzugsweise einen Altprogrammaufzähler für jeden Benutzer aufrecht, und, wenn ein Objekt als früher von einem beendeten, alten Programm im Besitz befindliches bezeichnet wird, wird auch der Benutzer bezeichnet, der das beendete, alte Programm startete. Wenn der Altprogrammaufzähler eines bestimmten Benutzers null erreicht, hebt die Einrichtung vorzugsweise die Objekte auf, die als vorhergehend von einem beendeten, alten Programm besessen bezeichnet worden sind, das von dem Benutzer gestartet wurde. Eine Methode mit mehreren Altprogrammaufzählern kann bei Programmgruppen irgendeiner Art angewendet werden, wie Gruppen von besonderen Programmarten. Andere Abänderungen sind auch möglich, die die Aufhebung der Zuweisung von bezeichneten Objekten umfassen, wenn kein laufendes, altes Programm jemals auf ein bezeichnetes Objekt zugegriffen hat, oder wenn eine bestimmte Zeitdauer vergangen ist, seit ein laufendes, altes Programm zuletzt auf ein bezeichnetes Objekt zugegriffen hat.
- Einige Betriebssysteme unterstützen Verbundprogramme. Ein Verbundprogramm ist ein Programm, das aus zwei oder mehreren kleinen Unterprogrammen besteht, die Module genannt werden. Verbundprogramme erleichtern die erneute Verwendung eines bestehenden Codes, indem erlaubt wird, dass ein bestehender Modul von einem neuen Verbundprogramm verwendet wird. Einige Module sind formal mitbenutzbar, was einer einzelnen Kopie von ihnen erlaubt, gleichzeitig von mehreren Verbundprogrammen benutzt zu werden. Betriebssysteme, die Verbundprogramme unterstützen, übersehen diese häufig, indem eine administrative Teilaufgabe (Teilaufgabe) für jedes laufende Verbundprogramm erzeugt wird, um Zustandsinformationen über jeden Modul des Verbundprogramms beizubehalten. Die Gesamtheit eines Verbundprogramms kann dann beendet werden, indem die Teilaufgabe des Verbundprogramms beendet wird. Einige Betriebssystem, die Verbundprogramme und Objektbesitzrecht unterstützen, wenden Objektbesitzrecht auf dem Teilaufgabenniveau an, wobei anfangs das Besitzrecht eines Objekts der Teilaufgabe zugeteilt wird, die den Modul übersieht, der es zugewiesen hat. Solche Betriebssysteme erlauben üblicherweise auch, dass das Besitzrecht entweder einem Modul oder einer anderen Teilaufgabe neu zugeteilt wird.
- Wenn die Einrichtung in Verbindung mit einem Betriebssystem verwendet wird, das Verbundprogramme unterstützt, wird das Besitzrecht von Objekten, die durch ein neues Modul zugewiesen werden, vorzugsweise der zuweisenden Modulteilaufgabe zugeordnet. Andererseits wird das Besitzrecht von Objekten, die durch ein altes Modul zugewiesen wurden, vorzugsweise dem zuweisenden Modul statt der zuweisenden Modulteilaufgabe zugeordnet. Die Zuordnung des Besitzrechts von Objekten, die durch alte Module zugewiesen wurden, verlangt, dass dieser Aspekt des Objektzuweisungsdienst verändert wird. Des weiteren behandeln der Programmstartdienst und der Programmbeendigungsdienst vorzugsweise jeden Modul und jede Teilaufgabe als ein getrenntes Programm. Der Programmstartdienst erhöht vorzugsweise den laufenden Altprogrammzählwert für jede alte Teilaufgabe oder alten, gestarteten Modul. Fig. 13 ist ein Flußdiagramm der Schritte, die von den modifizierten Programmstartdienst für Teilaufgaben durchgeführt werden. Fig. 13 kann mit Fig. 11 verglichen werden, um die Abänderungen an dem modifizierten Programmstartdienst für Programme zu erkennen, die notwendig sind, um den modifizierten Programmstartdienst für Teilaufgaben auszuführen. Kurz gesagt weist der modifizierte Programmstartdienst für Teilaufgaben zusätzliche Schritte auf, die den Altprogrammzähler für jeden Modul erhöhen, der während des Starts einer Teilaufgabe in der Schwebe war. Im Schritt 1301 führt die Einrichtung die Operationen durch, die verlangt werden, um das bestimmte Programm wirklich zu starten, d. h., das Programm zu laden und mit seiner Ausführung zu beginnen. Im Schritt 1302 erhöht die Einrichtung, wenn die gestartete Teilaufgabe eine alte Teilaufgabe ist, dann im Schritt 1303 den laufenden Altprogrammzähler. Im Schritt 1304 erhöht dann, wenn zumindest einer der Module, die für die Teilaufgabe im Schritt 1301 geladen wurden, ein alter Modul ist, die Einrichtung im Schritt 1305 den laufenden Altprogrammzähler einmal für jeden im Schritt 1301 geladenen alten Modul, sonst werden diese Schritte abgeschlossen. Diese Schritte enden dann.
- Auch verlangt, wenn der Programmbeendigungsdienst für die Aufgabe eines Verbundprogramms aufgerufen wird, der Programmbeendigungsdienst vorzugsweise selbst, jeden der Module des Verbundprogramms zu beenden. Wenn ein anderes Verbundprogramm einen gegebenen, formal mitbenutzbaren Modul des Verbundprogramms verwendet, dessen Aufgabe beendet wird, wird die Beendigung des Moduls abgebrochen. Wenn kein anderes Verbundprogramm den Modul verwendet und er kein alter Modul ist, dann wird sofort die Zuweisung aller Objekt, die von dem Modul besessen sind, aufgehoben. Wenn kein anderes Verbundprogramm den Modul verwendet und er ein alter Modul ist, dann werden alle Objekte, die von dem Modul besessen werden, als vorhergehend von einem alten Programm besessen bezeichnet und ihre Zuweisung wird nicht sofort aufgehoben.
- Fig. 14 ist ein Flußdiagramm der Schritte, die von dem modifizierten Programmbeendigungsdienst für Teilaufgaben durchgeführt werden. Fig. 14 kann mit Fig. 12 verglichen werden, um die Abänderungen an dem Programmbeendigungsdienst für Programme zu unterscheiden, die notwendig sind, den Programmbeendigungsdienst für Teilaufgaben ausführen. Kurz gesagt, fügt der Programmbeendigungsdienst für Teilaufgaben einen Schritt hinzu, in dem er jeden Modul individuell beendet, der zur Verwendung von der beendeten Teilaufgabe geladen wurde. Im Schritt 1401 führt die Einrichtung die Operationen durch, die verlangt werden, um gegenwärtig die Teilaufgabe zu beenden und den Speicher freizugeben, in dem die Teilaufgabe gespeichert ist. Im Schritt 1402 beendet die Einrichtung jedes Modul, das zur Verwendung durch die Teilaufgabe geladen wurde. Weitere Einzelheiten des Schrittes 1402 sind unten in Verbindung mit Fig. 15 erörtert. Im Schritt 1403 führt dann, wenn die beendete Teilaufgabe die alte Teilaufgabe ist, die Einrichtung einen Schritt 1404 durch, sonst fährt die Einrichtung beim Schritt 1408 fort, um die Zuweisung von jedem Objekt aufzuheben, das von dem beendeten Programm besessen wurde. Im Schritt 1404 bezeichnet die Einrichtung jedes Objekt, das von der beendeten Aufgabe besessen wurde, als vorhergehend von einem beendeten, alten Programm besessen. Im Schritt 1405 verringert die Einrichtung den laufenden Altprogrammzähler. Im Schritt 1406 werden, wenn der laufende Altprogrammzähler größer als null ist, dann diese Schritte abgeschlossen, sonst ist es sicher, die Zuweisung aller bezeichneter Objekte aufzuheben, und die Einrichtung fährt im Schritt 1407 fort. Im Schritt 1407 hebt die Einrichtung die Zuweisung aller Objekte auf, die als vorhergehend von einem beendeten, alten Programm besessen bezeichnet sind. Dieser Schritt enthält, die Objektverbindungsliste oder die zentrale Objektverwaltungsdatenstruktur für bezeichnete Objekte aufzusuchen und ihre Zuweisung aufzuheben. Diese Schritte schließen dann ab.
- Fig. 15 ist ein Flußdiagramm der Schritte, die von dem modifizierten Programmbeendigungsdienst für Module ausgeführt werden. Fig. 15 kann mit Fig. 14 verglichen werden, um die Modifikationen an dem modifizierten Programmbeendigungsdienst für Teilaufgaben zu unterscheiden, die notwendig sind, den modifizierten Programmbeendigungsdienst für Module auszuführen. Kurz gesagt enthält der modifizierte Programmbeendigungsdienst für Module zusätzliche Schritte, um den formal mitbenutzbaren Aspekt neuer Module zu verwalten. Das heißt, die neuen Module können formal von neuen Teilaufgaben mitbenutzt werden. Wenn ein Modul für eine Teilaufgabe geladen wird, wird, wenn der Modul bereits für eine andere Teilaufgabe geladen worden ist, der Modul nicht erneut für die gegenwärtige Teilaufgabe geladen. In beiden Fällen wird ein Aufrufzähler, der die Anzahl von Teilaufgaben wiedergibt, die gegenwärtig den Modul verwenden, erhöht, um zu zeigen, dass die gegenwärtige Teilaufgabe den Modul verwendet. Wenn ein Modul später in Verbindung mit einer Teilaufgabe beendet wird, wird der Aufrufzähler verringert und dann geprüft. Wenn der Aufrufzähler nach der Verringerung noch angibt, dass Teilaufgaben den Modul verwenden, wird der Modul nicht ausgeladen und die Zuweisung von ihm im Besitz befindlichen Objekte wird nicht aufgehoben.
- Die Schritte 1501 bis 1509 werden für jeden Modul ausgeführt, der für die Teilaufgabe geladen ist. Im Schritt 1501 fährt dann, wenn der beendete Modul ein alter Modul ist, die Einrichtung beim Schritt 1506 fort, sonst fährt die Einrichtung beim Schritt 1502 fort. Im Schritt 1502 verringert die Einrichtung den Aufrufzähler, der mit dem beendeten Modul verbunden ist. Im Schritt 1503 gibt es dann, wenn der mit dem beendeten Modul verbundene Aufrufzähler größer als null ist, andere Teilaufgaben, die den Modul weiterhin verwenden, und diese Schritte schließen ab, sonst fährt die Einrichtung beim Schritt 1504 fort, um die Zuweisung aller Objekte aufzuheben, die von dem Modul besessen sind. Dann lädt die Einrichtung den Modul beim Schritt 1505 aus und gibt den vom ihm besetzten Speicher frei. Diese Schritte schließen dann ab.
- Im Schritt 1506 bezeichnet die Einrichtung jedes Objekt, das von dem Modul besessen wird, als vorhergehend von einem beendeten, alten Programm besessen. Im Schritt 1507 verringert die Einrichtung den laufenden Altprogrammzähler. Im Schritt 1508 fährt dann, wenn der laufende Altprogrammzähler größer als null ist, die Einrichtung beim Schritt 1505 fort, um den Modul auszuladen, sonst fährt die Einrichtung beim Schritt 1509 fort, um die Zuweisung aller Objekte aufzuheben, die als vorhergehend von einem beendeten, alten Programm bezeichnet wurden. Nach dem Schritt 1509 fährt die Ein richtung beim Schritt 1505 fort, den Modul auszuladen. Diese Schritte schließen dann ab.
- Das Zugreifen auf ein Objekt umfasst, das Objekt zu lesen, in das Objekt zu schreiben oder ein Verfahren des Objekts aufzurufen. In Betriebssystemen, die eine Objektzugriffssteuerung unterstützen, kann das Programm, dem das Besitzrecht an dem Objekt zugeteilt ist, eine berechtigte Programmgruppe festlegen, der das Betriebssystem Zugriff auf das zugewiesene Objekt erlauben kann. Ein Objektzugriffsdienst des Betriebssystems verifiziert dann, dass jedes Programm, das Zugriff auf ein bestimmtes Objekt verlangt, berechtigt ist, auf das Objekt zuzugreifen. Da alte Programme keine Zugriffssteuerung oder Schritte zur Spezifizierung einer Zugriffssteuerliste vorsehen, modifiziert die Ausführung der Einrichtung vorzugsweise den Objektzugriffsdienst, um irgendeinem Programm zu erlauben, auf von alten Programmen im Besitz befindliche Objekte zuzugreifen. Wenn ein Objekt durch ein altes Programm zugewiesen wird, initialisiert die Einrichtung die Zugriffssteuerliste für die Objekte mit einer Voreinstellkonfiguration, z. B. einem vollen Zugriff für alle alten Programme und einen Nurlesezugriff für neue Programme in dem System. Bei einer alternativen Ausführungsform erfaßt der Sicherheitsverwalter, dass dies ein Objekt ist, das von einem alten Programm besessen wird und nimmt an, dass alle Programme vollen Zugriff auf das Objekt haben. Bei dieser Ausführungsform muß keine besondere Zugriffssteuerung initialisiert werden.
- Während dieser Erfindung unter Bezugnahme auf bevorzugte Ausführungsformen gezeigt und beschrieben worden ist, versteht der Durchschnittsfachmann auf dem Gebiet, dass verschiedene Änderungen oder Abänderungen bei der Form und Einzelheiten gemacht werden können, ohne von dem Bereich der Erfindung abzuweichen. Beispielsweise könnte die Einrichtung in Verbindung mit einem Speicherzuweisungs- und Zuweisungsaufhebungsmechanismus ausgeführt werden, der nicht in einem Betriebssystem enthalten ist.
Claims (16)
1. Verfahren zur Verwendung in einem Computersystem (700) zur
Gewährleistung der Kompatibilität eines Betriebssystems (704) einer ersten Art mit einem
Programm einer zweiten Art, wobei das Betriebssystem (704) der ersten Art ein
erstes Objektbesitzrechtsmodell zur Anwendung auf Objekte aufweist, die im
Besitz von Programmen (706, 707) in dem Computersystem (700) sind, das
Programm der zweiten Art für ein Betriebssystem einer zweiten Art entwickelt
ist, das Betriebssystem der zweiten Art ein zweites, weniger rigoroses
Objektbesitzrechtsmodell zur Anwendung auf Objekte aufweist und das
Betriebssystem der ersten Art Dienste für Programme (706, 707) in dem Computersystem
(700) bereitstellt und ein Merkmal aufweist, das mit dem Programm der zweiten
Art inkompatibel ist, wobei das Verfahren gekennzeichnet ist durch die
Schritte:
wenn ein Dienst bereitgestellt wird, Bestimmen, ob der Dienst für ein
Programm der zweiten Art bereitgestellt wird;
wenn der Dienst nicht für ein Programm der zweiten Art bereitgestellt
wird, Bereitstellen des Dienstes mit dem Merkmal unverändert; und
wenn der Dienst für ein Programm der zweiten Art bereitgestellt wird,
Bereitstellen des Dienstes mit dem Merkmal abgeändert, so dass
Kompatibilität gewährleistet wird.
2. Verfahren, wie in Anspruch 1 beansprucht, wobei
die Programme (706, 707) Objekte zuweisen und eine Beendigung
verlangen können;
ein Programm der ersten Art für das Betriebssystem (704) der ersten Art
entwickelt ist;
der Schritt zur Bereitstellung des Dienstes mit dem unveränderten
Merkmal die Schritte umfaßt:
unmittelbares Aufheben der Zuweisung von einem oder mehreren
Objekten, die von dem Programm der ersten Art zugewiesen wurden,
das eine Beendigung verlangt; und
der Schritt der Bereitstellung des Dienstes mit dem abgeänderten
Merkmal den Schritt umfasst:
Aufheben der Zuweisung von einem oder mehreren Objekten zu
einem späteren Zeitpunkt, die von dem Programm der zweiten Art
zugewiesen wurden, das eine Beendigung verlangt.
3. Verfahren, wie in Anspruch 1 beansprucht, wobei
das Betriebssystem (704) der ersten Art ein automatisches Schema zur
Objektzuweisungsaufhebung ausführt, das automatische Schema zur
Objektzuweisungsaufhebung bewirkt, dass das Betriebssystem (704) der
ersten Art, wenn ein Programm (706, 707) beendet wird, automatisch die
Zuweisung von jeglichen Objekten aufhebt, die von dem beendeten
Programm (706, 707) zugewiesen wurden;
das Programm der zweiten Art unter der Annahme arbeitet, dass jegliches
Objekt, das von dem Programm der zweiten Art zugewiesen wird und
dessen Zuweisung nicht nachfolgend durch das Programm der zweiten
Art aufgehoben wird, weiterhin besteht;
der Schritt zur Bestimmung, ob der Dienst für ein Programm der zweiten
Art vorgesehen ist, wenn ein Programm (706, 707) beendet wird, den
Schritt umfasst:
Bestimmen, ob das beendete Programm das Programm der zweiten
Art ist;
der Schritt zur Bereitstellung des Dienstes mit abgeändertem Merkmal,
wenn das beendete Programm als Programm der zweiten Art bestimmt
wird, den Schritt umfasst:
Bezeichnen einiger oder aller Objekte, die von dem beendeten
Programm zugewiesen wurden, für eine aufgeschobene
Zuweisungsaufhebung durch das Betriebssystem (704) der ersten Art; und
das Verfahren eine automatische Zuweisungsaufhebung durch das
Betriebssystem (704) der ersten Art von allen Objekten aufschiebt, die für
eine aufgeschobene Zuweisungsaufhebung bezeichnet worden sind, bis
jegliche Programme der zweiten Art beendet worden sind.
4. Verfahren, wie in Anspruch 3 beansprucht, wobei
das Programm (706, 707) ein Komponentenmodul eines
Verbundprogramms ist, das Verbundprogramm eine Verwaltungsteilaufgabe umfasst,
die das Betriebssystem (704) der ersten Art verwendet, um das
Verbundprogramm zu verwalten, das Verbundprogramm des weiteren einen oder
mehrere Komponentenmodule umfasst, wobei jedes Komponentenmodul
Code für das Verbundprogramm umfasst; und
der Bestimmungsschritt, ob der Dienst für ein Programm der zweiten Art
bereitgestellt wird, wenn die Verwaltungsteilaufgabe des
Verbundprogramms beendet ist, den Schritt umfasst:
Bestimmen, ob die Verwaltungsteilaufgabe von der zweiten Art ist.
5. Verfahren, wie in Anspruch 3 oder 4 beansprucht, wobei
das Programm (706, 707) eine Verwaltungsteilaufgabe eines
Verbundprogramms ist, das Verbundprogramm die Verwaltungsteilaufgabe
umfasst, die das Betriebssystem (704) der ersten Art verwendet, um das
Verbundprogramm zu verwalten, das Verbundprogramm des weiteren
einen oder mehrere Komponentenmodule umfasst, wobei jedes
Komponentenmodul Code für das Verbundprogramm umfasst; und
der Bestimmungsschritt, ob der Dienst für ein Programm der zweiten Art
bereitgestellt wird, wenn der Komponentenmodul des Verbundprogramms
beendet ist, den Schritt umfasst:
Bestimmen, ob der Komponentenmodul von der zweiten Art ist.
6. Verfahren, wie in Anspruch 1 beansprucht, wobei
ein Programm der ersten Art für das Betriebssystem (704) der ersten Art
entwickelt ist;
der Schritt zur Bereitstellung des Dienstes mit dem abgeänderten
Merkmal jedesmal, wenn ein Programm der zweiten Art gestartet wird, den
Schritt umfasst:
Erhöhen eines Zählers, der die Anzahl der laufenden Programme
der zweiten Art zählt;
der Schritt zur Bereitstellung des Dienstes mit dem unveränderten
Merkmal jedesmal, wenn ein Programm der ersten Art beendet wird, den
Schritt umfasst:
Aufheben der Zuweisung von jedem Objekt, das durch das beendete
Programm der ersten Art zugewiesen wurde;
der Schritt zur Bereitstellung des Dienstes mit dem abgeänderten
Merkmal jedesmal, wenn ein Programm der zweiten Art beendet wird, die
Schritte umfasst:
Bezeichnen eines jeden Objekts, das durch das beendete Programm
der zweiten Art zugewiesen wurde, als ein von einem beendeten
Programm der zweiten Art zugewiesenes, und
Verringern des Zählers; und
das Verfahren des weiteren den Schritt umfasst:
wenn der Zähler null erreicht, Aufheben der Zuweisung eines jeden
Objekts, das als ein durch ein beendetes Programm der zweiten Art
zugewiesenes bezeichnet ist.
7. Verfahren, wie in einem der Ansprüche 1 bis 6 beansprucht, wobei
die Programme (706, 707) Objekte zuweisen und Zugriff auf die Objekte
anfordern können;
ein Programm der ersten Art für das Betriebssystem (704) der ersten Art
entwickelt ist;
der Schritt zur Bereitstellung des Dienstes mit dem unveränderten
Merkmal, wenn das Programm der ersten Art Zugriff auf ein Objekt verlangt,
das das Programm der ersten Art nicht zugewiesen hat, den Schritt
umfasst:
Verweigern des Zugriffs auf das Objekt; und
der Schritt zur Bereitstellung des Dienstes mit dem abgeänderten
Merkmal, wenn das Programm der zweiten Art Zugriff auf ein Objekt verlangt,
das das Programm der zweiten Art nicht zugewiesen hat, den Schritt
umfasst:
Bereitstellen des Zugriffs auf das Objekt.
8. Verfahren, wie in einem der Ansprüche 1 bis 7 beansprucht, wobei
der Bestimmungsschritt, ob der Dienst für ein Programm der zweiten Art
vorgesehen ist, den Schritt umfasst:
Erfassen, wenn das Betriebssystem (704) der ersten Art dabei ist,
das erste Objektbesitzrechtsmodell auf ein Objekt anzuwenden;
der Schritt zur Bereitstellung des Dienstes mit dem abgeänderten
Merkmal, wenn das Objekt von dem Programm der zweiten Art verwendet wird,
den Schritt umfasst:
Voraus-Anwenden des ersten Objektbesitzrechtsmodells auf das
Objekt; und
der Schritt zur Bereitstellung des Dienstes mit dem unveränderten
Merkmal, wenn das Objekt nicht von dem Programm der zweiten Art verwendet
wird, den Schritt umfasst:
dem Betriebssystem (704) der ersten Art gestatten, das erste
Objektbesitzrechtsmodell auf das Objekt anzuwenden.
9. Verfahren, wie in einem der Ansprüche 1 bis 7 beansprucht, wobei
der Bestimmungsschritt, ob der Dienst für ein Programm der zweiten Art
vorgesehen ist, den Schritt umfasst:
Erfassen, wenn das Betriebssystem (704) der ersten Art dabei ist,
das erste Objektbesitzrechtsmodell auf ein Objekt anzuwenden;
der Schritt zur Bereitstellung des Dienstes mit abgeändertem Merkmal,
wenn das Objekt von dem Programm der zweiten Art verwendet wird, den
Schritt umfasst:
Aufschieben der Anwendung des ersten Objektbesitzrechtsmodells
auf das Objekt, bis das Objekt nicht mehr von dem Programm der
zweiten Art verwendet wird; und
der Schritt zur Bereitstellung des Dienstes bei unverändertem Merkmal,
wenn das Objekt nicht von dem Programm der zweiten Art verwendet
wird, den Schritt umfasst:
dem Betriebssystem (704) der ersten Art gestatten, das erste
Objektbesitzrechtsmodell auf das Objekt anzuwenden.
10. Verfahren, wie in einem der Ansprüche 1 bis 9 beansprucht, wobei
ein Programm der ersten Art für das Betriebssystem (704) der ersten Art
entwickelt ist, das Programm der ersten Art ein Objekt besitzt und eine
Gruppe von Programmen bezeichnen kann, die auf das Objekt zugreifen
können, um den Zugriff auf das Objekt zu beschränken, das im Besitz des
Programms der ersten Art ist;
das Programm der zweiten Art ein Objekt besitzt und unfähig ist, eine
Gruppe von Programmen zu bezeichnen, um den Zugriff auf das Objekt
zu beschränken, das im Besitz des Programms der zweiten Art ist;
der Bestimmungsschritt, ob der Dienst für ein Programm der zweiten Art
bereitgestellt wird, die Schritte umfasst:
Erhalten einer Anforderung von einem anfordernden Programm, auf
das sich im Besitz eines Programms (706, 707) befindende Objekt
zuzugreifen, und
Bestimmen, ob das Programm, das das Objekt besitzt, das
Programm der zweiten Art ist;
der Schritt zur Bereitstellung des Dienstes mit dem unveränderten
Merkmal, wenn das das Objekt besitzende Programm das Programm der
ersten Art ist, den Schritt umfasst:
wenn das anfordernde Programm aus der Gruppe von Programmen
ist, Gewähren der Anforderung nach Zugriff auf das Objekt; und
der Schritt zur Bereitstellung des Dienstes mit dem unveränderten
Merkmal, wenn das das Objekt besitzende Programm von der ersten Art ist,
den Schritt umfasst:
wenn das anfordernde Programm aus einer vorbestimmten
Voreinstellgruppe von Programmen ist, Gewähren der Anforderung nach
Zugriff auf das Objekt.
11. Computerlesbares Medium, das Befehle zur Ausführung des computerisierten
Verfahrens umfasst, wie es in einem der Ansprüche 1 bis 10 beansprucht ist.
12. Computersystem zur Gewährleistung der Kompatibilität eines Betriebssystems
(704) einer ersten Art mit einem Programm einer zweiten Art, wobei das
Betriebssystem (704) der ersten Art ein erstes Objektbesitzrechtsmodell zur
Anwendung auf Objekte aufweist, die im Besitz von Programmen (706, 707) in
dem Computersystem (700) sind, das Programm der zweiten Art für ein
Betriebssystem einer zweiten Art entwickelt ist, das Betriebssystem der zweiten
Art ein zweites, weniger rigoroses Objektbesitzrechtsmodell zur Anwendung
auf Objekte aufweist und das Betriebssystem der ersten Art Dienste für
Programme (706, 707) in dem Computersystem (700) bereitstellt und ein Merkmal
aufweist, das mit dem Programm der zweiten Art inkompatibel ist, wobei das
Computersystem (700) gekennzeichnet ist durch:
eine Einrichtung zur Bestimmung, wenn ein Dienst bereitgestellt wird, ob
der Dienst für ein Programm der zweiten Art bereitgestellt ist;
eine Einrichtung zur Bereitstellung des Dienstes mit dem Merkmal
unverändert, wenn der Dienst nicht für ein Programm der zweiten Art
bereitgestellt ist; und
eine Einrichtung zur Bereitstellung des Dienstes mit dem Merkmal
abgeändert, so dass Kompatibilität gewährleistet wird, wenn der Dienst für ein
Programm der zweiten Art bereitgestellt wird.
13. Computersystem, wie in Anspruch 12 beansprucht, wobei
die Programme (706, 707) gestartet und beendet werden können;
ein Programm der ersten Art für das Betriebssystem (704) der ersten Art
entwickelt ist;
das Computersystem (700) Speicher zurückfordert, der von Objekten
besetzt ist, die im Besitz von beendeten Programmen sind; und
das Computersystem (700) des weiteren umfasst:
einen Anzeigespeicher zur Speicherung einer Anzeige, ob ein
Programm der zweiten Art gestartet worden ist, das nachfolgend nicht
beendet worden ist, und
ein Objekterkennungssystem zum Erkennen der Objekte, die im
Besitz eines beendeten Programms der zweiten Art sind;
die Einrichtung zur Bereitstellung des Dienstes mit unverändertem
Merkmal umfasst:
eine erste Objektzuweisungsaufhebungseinrichtung zur
Zuweisungsaufhebung von einem oder mehreren Objekten, die im Besitz
des Programms der ersten Art sind, unmittelbar nach Beendigung
des Programms der ersten Art;
die Einrichtung zur Bereitstellung des Dienstes mit abgeändertem
Merkmal umfasst:
eine zweite Objektzuweisungsaufhebungseinrichtung zur
Zuweisungsaufhebung von einem oder mehreren Objekten, die durch das
Objekterkennungssystem als im Besitz des beendeten Programms
der zweiten Art erkannt werden, wenn der Anzeigespeicher anzeigt,
dass keine Programm der zweiten Art gestartet worden sind, die
nicht nachfolgend beendet wurden,
14. Computersystem, wie in Anspruch 12 oder 13 beansprucht, wobei
das Computersystem (700) des weiteren umfasst:
einen Objektverwalter zur Anwendung des ersten
Objektsbesitzerrechtsmodells auf in dem Computersystem gespeicherte Objekte;
die Bestimmungseinrichtung umfasst:
eine Objektverwalterüberwachungseinrichtung zum Erkennen eines
Objekts, bei dem das Betriebssystem (704) der ersten Art dabei ist,
das erste Objektbesitzrechtsmodell anzuwenden,
eine Objektbenutzungsüberwachungseinrichtung zum Erkennen von
jeglichen Programmen, die das von der
Objektverwalterüberwachungseinrichtung erkannte Objekt benutzen, und
eine Programmunterscheidungseinrichtung zur Bestimmung, ob
irgendwelche der von der Objektbenutzungsüberwachungseinrichtung
erkannten Programme das Programm der zweiten Art ist; und
die Einrichtung zur Bereitstellung des Dienstes mit abgeändertem Merkmal
umfasst:
eine Objektverwaltersteuerung zur Vorausführung der Operation des
Objektverwalters, wenn die Programmunterscheidungseinrichtung
bestimmt, dass irgendeines der von der
Objektbenutzungsüberwachungseinrichtung erkannten Programme das Programm der zweiten
Art ist.
15. Computersystem, wie in einem der Ansprüche 12 bis 14 beansprucht, wobei
die Programm (706, 707) Objekte zuweisen und Zugriff auf Objekte
anfordern können;
ein Programm der ersten Art für das Betriebssystem (704) der ersten Art
entwickelt ist, wobei das Programm der ersten Art ein Objekt besitzt und
den Zugriff auf das Objekt selektiv beschränkt;
die Bestimmungseinrichtung umfasst:
einen Zugriffsanforderungsempfänger, der von einem anfordernden
Programm eine Anforderung erhält, auf das Objekt im Besitz eines
Programms (706, 707) zuzugreifen, und
eine Programmunterscheidungseinrichtung, die bestimmt, ob das
Programm, das das Objekt besitzt, das Programm der ersten Art
oder das Programm der zweiten Art ist; und
das Computersystem (700) des weiteren umfasst:
eine Zugriffssteuereinrichtung, die die von dem
Zugriffsanforderungsempfänger erhaltene Anforderung gewährt, auf das Objekt
zuzugreifen, wenn das Programm, das das Objekt besitzt, in einer
dynamischen Gruppe von Programmen ist, wobei die dynamische
Gruppe entweder eine erste Programmgruppe, wenn die
Programmunterscheidungseinrichtung bestimmt, dass das Programm, das
das Objekt besitzt, das Programm der ersten Art ist, oder eine zweite
Programmgruppe umfasst, wenn die
Programmunterscheidungseinrichtung bestimmt, dass das Programm, das das Objekt besitzt, das
Programm der zweiten Art ist.
16. Computersystem, wie in Anspruch 15 beansprucht, wobei
das Programm, das das Objekt besitzt, Programme bezeichnen kann, die
auf das Objekt zugreifen können; und
das Computersystem (700) des weiteren umfasst:
eine Einrichtung zur Definition der ersten Programmgruppe und der
zweiten Programmgruppe, um eine vorbestimmte
Voreinstellungsgruppe von Programmen einzuschließen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/168,633 US5432924A (en) | 1993-12-15 | 1993-12-15 | Method and system for selectively applying an appropriate object ownership model |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69425640D1 DE69425640D1 (de) | 2000-09-28 |
DE69425640T2 true DE69425640T2 (de) | 2000-12-28 |
Family
ID=22612313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69425640T Expired - Lifetime DE69425640T2 (de) | 1993-12-15 | 1994-12-14 | Verfahren und Vorrichtung zur selektiven Verwendung eines geeigneten Objektbesitzrechtsmodells |
Country Status (5)
Country | Link |
---|---|
US (2) | US5432924A (de) |
EP (1) | EP0660232B1 (de) |
JP (1) | JP3459694B2 (de) |
CA (1) | CA2138093A1 (de) |
DE (1) | DE69425640T2 (de) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432924A (en) * | 1993-12-15 | 1995-07-11 | Microsoft Corporation | Method and system for selectively applying an appropriate object ownership model |
US5524238A (en) * | 1994-03-23 | 1996-06-04 | Breakout I/O Corporation | User specific intelligent interface which intercepts and either replaces or passes commands to a data identity and the field accessed |
US5564017A (en) * | 1994-06-30 | 1996-10-08 | International Business Machines Corporation | Procedure for safely terminating network programs during network logoff |
US5687370A (en) * | 1995-01-31 | 1997-11-11 | Next Software, Inc. | Transparent local and distributed memory management system |
US6571262B2 (en) * | 2000-02-14 | 2003-05-27 | Apple Computer, Inc. | Transparent local and distributed memory management system |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US5854890A (en) * | 1996-10-15 | 1998-12-29 | National Instruments Corporation | Fieldbus function block shell with user selectable data ownership |
US5903720A (en) * | 1996-12-13 | 1999-05-11 | Novell, Inc. | Object system capable of using different object authorization systems |
US5915253A (en) * | 1996-12-13 | 1999-06-22 | Novell, Inc. | Method and system for implementing objects in a storage system |
US6128772A (en) * | 1997-08-14 | 2000-10-03 | Unisys Corp. | Object-oriented apparatus and method in a computer system for establishing/altering the ownership relationship between objects |
US6535928B1 (en) * | 1997-12-01 | 2003-03-18 | Recursion Software, Inc. | Method of determining the timing for reclaiming a remote object |
US6385661B1 (en) * | 1998-10-19 | 2002-05-07 | Recursion Software, Inc. | System and method for dynamic generation of remote proxies |
US6823338B1 (en) | 1998-11-19 | 2004-11-23 | International Business Machines Corporation | Method, mechanism and computer program product for processing sparse hierarchical ACL data in a relational database |
US6922835B1 (en) * | 1999-01-22 | 2005-07-26 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges |
US7093122B1 (en) * | 1999-01-22 | 2006-08-15 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using shared object interfaces |
US6633984B2 (en) * | 1999-01-22 | 2003-10-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using an entry point object |
JP2000259417A (ja) * | 1999-03-12 | 2000-09-22 | Sony Corp | データ処理装置、データ処理方法及びプログラム提供媒体 |
US6947965B2 (en) | 1999-11-30 | 2005-09-20 | Recursion Software, Inc. | System and method for communications in a distributed computing environment |
US6678743B1 (en) | 1999-11-30 | 2004-01-13 | Recursion Software, Inc. | Method for moving objects in a distributed computing environment |
US7398532B1 (en) * | 2000-03-02 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | System and method for establishing a secure execution environment for a software process |
US20070100830A1 (en) * | 2005-10-20 | 2007-05-03 | Ganesha Beedubail | Method and apparatus for access control list (ACL) binding in a data processing system |
US8255887B2 (en) * | 2006-11-29 | 2012-08-28 | International Business Machines Corporation | Method and apparatus for re-using memory allocated for data structures used by software processes |
US8161403B2 (en) * | 2007-12-05 | 2012-04-17 | International Business Machines Corporation | Returning passed objects in a surface based computing environment using a virtual bungee |
US8332420B2 (en) * | 2010-01-20 | 2012-12-11 | Siemens Product Lifecycle Management Software Inc. | System and method for performing a database query |
US8326813B2 (en) * | 2010-01-20 | 2012-12-04 | Siemens Product Lifecycle Management Software, Inc. | System and method for data management |
US8290830B2 (en) | 2010-04-07 | 2012-10-16 | Siemens Product Lifecycle Management Software Inc. | System and method for visualization and comparison of physical assets using engineering design data |
US8458228B2 (en) | 2011-09-23 | 2013-06-04 | Siemens Product Lifecycle Management Software Inc. | Occurrence management in product data management systems |
US8533237B2 (en) | 2011-09-23 | 2013-09-10 | Siemens Product Lifecycle Management Software Inc. | Data structure partitioning in product data management systems |
US9652495B2 (en) | 2012-03-13 | 2017-05-16 | Siemens Product Lifecycle Management Software Inc. | Traversal-free updates in large data structures |
US9122740B2 (en) | 2012-03-13 | 2015-09-01 | Siemens Product Lifecycle Management Software Inc. | Bulk traversal of large data structures |
US9874914B2 (en) | 2014-05-19 | 2018-01-23 | Microsoft Technology Licensing, Llc | Power management contracts for accessory devices |
US9717006B2 (en) * | 2014-06-23 | 2017-07-25 | Microsoft Technology Licensing, Llc | Device quarantine in a wireless network |
US10290287B1 (en) * | 2014-07-01 | 2019-05-14 | Xilinx, Inc. | Visualizing operation of a memory controller |
FR3035239B1 (fr) * | 2015-04-17 | 2017-03-31 | Morpho | Procede de gestion d'une memoire de carte electronique |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60215250A (ja) * | 1984-08-29 | 1985-10-28 | Hitachi Ltd | デ−タ処理装置 |
JP2523653B2 (ja) * | 1987-07-08 | 1996-08-14 | 株式会社日立製作所 | 仮想計算機システム |
IL88165A (en) * | 1987-12-21 | 1993-01-31 | Honeywell Bull | Apparatus and method for a data processing system having a peer relationship among a plurality of central processing units |
JPH0296833A (ja) * | 1988-10-03 | 1990-04-09 | Nec Corp | 異機種ジョブ制御方式 |
US5136712A (en) * | 1989-06-29 | 1992-08-04 | Digital Equipment Corporation | Temporary object handling system and method in an object based computer operating system |
US5187790A (en) * | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
US5075845A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Type management and control in an object oriented memory protection mechanism |
US5423023A (en) * | 1990-06-25 | 1995-06-06 | Prime Computer, Inc. | Method and apparatus for providing a user configurable system which integrates and manages a plurality of different task and software tools |
JPH04302339A (ja) * | 1991-03-29 | 1992-10-26 | Nec Corp | 共有メモリエリア管理機構 |
US5210872A (en) * | 1991-06-28 | 1993-05-11 | Texas Instruments Inc. | Critical task scheduling for real-time systems |
US5274804A (en) * | 1991-11-20 | 1993-12-28 | Parcplace Systems | Automatic storage-reclamation postmortem finalization process |
JPH05233358A (ja) * | 1992-02-18 | 1993-09-10 | Sharp Corp | コンピュータ装置 |
KR930020263A (ko) * | 1992-03-06 | 1993-10-19 | 윌리암 에이취. 뉴콤 | 프로그램 로딩 및 기억방법 |
US5483647A (en) * | 1992-12-17 | 1996-01-09 | Bull Hn Information Systems Inc. | System for switching between two different operating systems by invoking the server to determine physical conditions to initiate a physical connection transparent to the user |
US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
US5432924A (en) * | 1993-12-15 | 1995-07-11 | Microsoft Corporation | Method and system for selectively applying an appropriate object ownership model |
-
1993
- 1993-12-15 US US08/168,633 patent/US5432924A/en not_active Expired - Lifetime
-
1994
- 1994-12-14 DE DE69425640T patent/DE69425640T2/de not_active Expired - Lifetime
- 1994-12-14 CA CA002138093A patent/CA2138093A1/en not_active Abandoned
- 1994-12-14 EP EP94119772A patent/EP0660232B1/de not_active Expired - Lifetime
- 1994-12-15 JP JP31184394A patent/JP3459694B2/ja not_active Expired - Lifetime
-
1995
- 1995-01-05 US US08/368,666 patent/US5717902A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CA2138093A1 (en) | 1995-06-16 |
US5717902A (en) | 1998-02-10 |
EP0660232B1 (de) | 2000-08-23 |
EP0660232A2 (de) | 1995-06-28 |
JP3459694B2 (ja) | 2003-10-20 |
DE69425640D1 (de) | 2000-09-28 |
EP0660232A3 (de) | 1998-01-28 |
JPH07319714A (ja) | 1995-12-08 |
US5432924A (en) | 1995-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69425640T2 (de) | Verfahren und Vorrichtung zur selektiven Verwendung eines geeigneten Objektbesitzrechtsmodells | |
DE3789215T2 (de) | Gesteuerter dynamischer Belastungsausgleich für ein Multiprozessorsystem. | |
DE69428972T2 (de) | System und Verfahren für die Eigentumerverwaltung eines freigegebenen Synchronisationsmechanismus | |
DE69936162T2 (de) | Verfahren und Gerät für ein objektorientiertes Unterbrechungssystem | |
DE69802836T2 (de) | Anwendungsprogramierungsschnittstelle zum ermöglichen der zuordnung eines physikalischen speichers in einem virtuellen speicher zur steuerung von anwendungsprogrammen | |
DE69608673T2 (de) | Rechnersicherungssystem mit offenen dateien | |
DE3856030T2 (de) | Vorrichtung und Verfahren zur Durchführung von änderbarer Betriebsmittelaufteilung in einem Datenverarbeitungssystem mit zentralen Datenverarbeitungseinheiten mit verschiedenen Betriebssystemen | |
DE69802437T2 (de) | Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen | |
DE69715556T2 (de) | Verfahren und Gerät zur Fädensynchronisierung in objektbasierten Systemen | |
DE69023499T2 (de) | Rechner mit erweitertem virtuellem Speicher. | |
DE69737709T2 (de) | Verfahren und Vorrichtung für Informationsverarbeitung und Speicherzuordnungsanordnung | |
DE69329047T2 (de) | Verfahren und System zur Verminderung der Speicherzuordnungsanforderungen | |
DE69428848T2 (de) | Mehrsprachige Standardressourcen | |
DE69731998T2 (de) | Informationsverarbeitungsvorrichtung und Verfahren | |
DE102005022893B3 (de) | Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte | |
DE3751446T2 (de) | Multiprozessor-Speicherbetriebsverfahren und -vorrichtung. | |
DE3586912T2 (de) | Datenverarbeitungsanlage mit geschuetzten systemdateien. | |
DE60034170T2 (de) | Protokoll zum Koordinieren der Verteilung von gemeinsamem Speicher | |
DE69930855T2 (de) | Verfahren und vorrichtung zur durchführung einer deterministischen speicherzuordnungsantwort in einem computer-system | |
DE69324840T2 (de) | Verfahren zum Speichern von Programmen | |
DE69400406T2 (de) | System und methode zur lokalisierung von geteilten bibliotheken | |
DE69738101T2 (de) | Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen | |
DE69620062T2 (de) | Datenzugriffimplementierung von Gerätetreiberschnittstelle | |
DE68916853T2 (de) | Unabhängige Programmlader für virtuelle Maschinenarchitektur. | |
DE69932964T2 (de) | Verfahren, System und Rechnerprogrammprodukt zur Initialisierung einer Datenstruktur beim ersten Gebrauch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |