DE112012004294T5 - Starten eines Prozesses - Google Patents

Starten eines Prozesses Download PDF

Info

Publication number
DE112012004294T5
DE112012004294T5 DE112012004294.8T DE112012004294T DE112012004294T5 DE 112012004294 T5 DE112012004294 T5 DE 112012004294T5 DE 112012004294 T DE112012004294 T DE 112012004294T DE 112012004294 T5 DE112012004294 T5 DE 112012004294T5
Authority
DE
Germany
Prior art keywords
cache
file object
kernel
position information
file
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.)
Withdrawn
Application number
DE112012004294.8T
Other languages
English (en)
Inventor
Wei Wei
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Publication of DE112012004294T5 publication Critical patent/DE112012004294T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Gemäß einem Beispiel umfasst ein Verfahren folgendes: Bevor ein erster Prozess beendet wird, empfängt ein Kernel eine einen Dateideskriptor (FD) tragende Verbindungshalteanfrage, die vom ersten Prozess gesendet wurde, wobei für den von der Verbindungshalteanfrage getragenen FD der Kernel eine Referenzzählung eines Dateiobjekts erhöht, das dem FD entspricht, und das Dateiobjekt in einen Cache setzt, wobei der Kernel eine Cachepositionsinformation zum ersten Prozess zurück sendet, so dass der erste Prozess eine entsprechende Beziehung zwischen der Cachepositionsinformation und Kennungsinformation einer Kommunikationsverbindung, auf die durch den FD hingezeigt wird, in einem vordefinierten Speicherbereich setzt; wenn ein zweiter Prozess gestartet wird, empfängt der Kernel eine FD-Erhaltungsanfrage, die die vom zweiten Prozess gesendete Cachepositionsinformation trägt, liest das Dateiobjekt aus dem Cache, weist einen neuen FD für das Dateiobjekt zu und sendet den neuen FD zum zweiten Prozess zurück.

Description

  • HINTERGRUND
  • In einem Betriebssystem, das einen Unix/Linux-Kernel verwendet, läuft eine große Menge von Systemdiensten im User-Space als Daemon. Daher wird ein besserer Dienst durch ein Upgrade eines Prozesses anstelle eines Maschinenneustarts bereitgestellt.
  • Ein Prozess kann mit einem anderen Prozess oder einem Kernel auf verschiedene Weise kommunizieren. Zum Beispiel können Prozesse in der gleichen Maschine miteinander über eine Inter Prozess Communication(IPC)-Technik kommunizieren. Prozesse in verschiedenen Maschinen können miteinander über das Transmission Control Protocol(TCP)/User Datagram Protocol (UDP) kommunizieren. Zusätzlich kann ein Prozess mit einem Kernel über ein Netlink-Socket kommunizieren. In einem Unix/Linux-Kernel können diese Kommunikationseinheiten als Dateideskriptoren (FD) interpretiert werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale der vorliegenden Offenbarung werden beispielhaft und nicht einschränkend in den folgenden Figur(en) dargestellt, in denen gleiche Bezugsziffern gleiche Elemente angeben, in denen:
  • 1 ist ein Flussdiagramm, das ein Verfahren zum Starten eines Prozesses gemäß einem Beispiel der vorliegenden Offenbarung zeigt.
  • 2 ist ein Flussdiagramm, das ein Verfahren zum Upgraden eines Prozesses gemäß einem Beispiel der vorliegenden Offenbarung zeigt.
  • 3-1 ist ein schematisches Diagramm, das einen Zustand eines alten Prozesses und einen Kernel, bevor der alte Prozess beendet wird, gemäß einem Beispiel der vorliegenden Offenbarung zeigt.
  • 3-2 ist ein schematisches Diagramm, das einen Zustand des alten Prozesses und den Kernel, nachdem der alte Prozess beendet wird, gemäß einem Beispiel der vorliegenden Offenbarung zeigt.
  • 3-3 ist ein schematisches Diagramm, das einen Zustand eines neuen Prozesses und den Kernel, wenn der neue Prozess beginnt, gemäß einem Beispiel der vorliegenden Offenbarung zeigt.
  • 3-4 ist ein schematisches Diagramm, das einen Zustand des neuen Prozesses und den Kernel, nachdem der Prozess erfolgreich geupgradet wird, gemäß einem Beispiel der vorliegenden Offenbarung zeigt.
  • 4 ist ein schematisches Diagramm, das eine Struktur eines Kernels gemäß einem Beispiel der vorliegenden Offenbarung zeigt.
  • 5 ist ein schematisches Diagramm, das eine Struktur eines maschinenlesbaren Speichermediums gemäß einem Beispiel der vorliegenden Offenbarung zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Nachstehend wird die vorliegende Offenbarung in weiteren Einzelheiten unter Bezugnahme auf die beigefügten Zeichnungen und Beispiele beschrieben, um die technische Lösung und die Vorteile darin deutlicher zu machen.
  • Für Vereinfachungs- und Erläuterungszwecke ist die vorliegende Offenbarung durch Bezugnahme hauptsächlich auf ein Beispiel davon beschrieben. In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Offenbarung bereitzustellen. Es wird jedoch ohne Weiteres ersichtlich sein, dass die vorliegende Offenbarung ohne eine Beschränkung auf diese spezifischen Details ausgeführt werden kann. In anderen Fällen wurden einige Verfahren und Strukturen nicht im Detail beschrieben, um nicht unnötigerweise die vorliegende Offenbarung unverständlich zu machen. Wie hierin verwendet, bedeutet der Ausdruck ”umfasst” umfasst ohne Einschränkung, wobei der Ausdruck ”umfasst” ohne Einschränkung umfasst bedeutet. Der Ausdruck ”basierend auf” bedeutet zumindest teilweise basierend auf. Darüber hinaus sollen die Ausdrücke ”ein, eine” mindestens eines aus einem bestimmten Element bedeuten.
  • Während des Upgradens eines Prozesses wird der Prozess neu gestartet und ein FD durch einen Kernel geschlossen. Somit wird ein Kommunikationsendknoten eine Verbindungsunterbrechung erkennen und dann eine entsprechende Verarbeitung auslösen. Andererseits können Datenänderungen des Kommunikationsendknotens diesem Ende nicht bekannt sein. Nachdem der Prozess neu gestartet wird, muss daher der Kommunikationsendknoten alle Daten erneut senden.
  • Ein Border Gateway Protocol(BGP)-Prozess auf einem Router wird als Beispiel genommen. Wenn ein BGP-Prozess auf einer lokalen Maschine geupgradet wird, wird ein Nachbar die Verbindungsunterbrechung erkennen. Wenn Graceful Restart (GR) nicht aktiviert ist, wird der Nachbar alle BGP-Routen von der lokalen Maschine löschen. Wenn GR aktiviert ist, löscht der Nachbar die BGP-Routen nicht. Nachdem der BGP-Prozess neu gestartet wird, müssen jedoch alle Nachbarn die BGP-Routen zur lokalen Maschine erneut senden.
  • Das konventionelle Upgraden eines Prozesses hat einen großen Einfluss und kann Turbulenzen verursachen.
  • In einer praktischen Anwendung kann das BGP eine Non-Stopping Routing(NSR)-Technik anwenden, um das Upgraden eines Prozesses ohne Unterbrechung einer TCP-Verbindung zu implementieren. Jedoch ist die TOP-NSR-Technik kompliziert und muss eine große Datenmenge sichern, die die Systemleistung zu einem gewissen Grad beeinträchtigt. Zusätzlich, außer TOP, stellt das NSR nicht ausreichend Schemata für andere Kommunikationsprotokolle, wie UDP, IPC, Netlink usw., bereit. Daher kann die NSR-Technik nicht allgemein verwendet werden.
  • Im Gegensatz zu oben stellen Beispiele der vorliegenden Offenbarung ein Verfahren und ein Gerät zum Starten eines Prozesses bereit, um die Komplexität beim Starten des Prozesses ohne Verbindungsunterbrechung zu reduzieren.
  • 1 ist ein Flussdiagramm, das ein Verfahren zum Starten eines Prozesses gemäß einem Beispiel der vorliegenden Offenbarung zeigt. Wie in 1 gezeigt ist, weist das Verfahren die folgenden Vorgänge auf.
  • Block 101, bevor ein erster Prozess beendet wird, empfängt ein Kernel eine Verbindungshalteanfrage, die einen vom ersten Prozess gesendeten Dateideskriptor (FD) trägt. Für den von der Verbindungshalteanfrage getragenen FD erhöht der Kernel eine Referenzzählung eines Dateiobjekts, das dem FD entspricht, setzt das Dateiobjekt in einen Cache und sendet eine Cachepositionsinformation zum ersten Prozess zurück, so dass der erste Prozess eine entsprechende Beziehung zwischen der Cachepositionsinformation und Kennungsinformation einer Kommunikationsverbindung, auf die durch den FD hingezeigt wird, in einen vordefinierten Speicherbereich setzt.
  • Block 102, wenn ein zweiter Prozess gestartet wird, empfängt der Kernel eine FD-Erhaltungsanfrage, die die vom zweiten Prozess gesendete Cachepositionsinformation trägt, liest das Dateiobjekt aus dem Cache, weist einen neuen FD für das Dateiobjekt zu und sendet den neuen FD zum zweiten Prozess zurück.
  • Für das Upgraden des Prozesses ist der erste Prozess ein Prozess einer alten Version und der zweite Prozess ist ein Prozess einer neuen Version.
  • Für das Neustarten des Prozesses ist der erste Prozess und der zweite Prozess der gleiche Prozess.
  • Im Vergleich zu den herkömmlichen Systemen implementiert die durch das Beispiel der vorliegenden Offenbarung bereitgestellte technische Lösung das Upgraden oder Neustarten eines Prozesses ohne Kommunikationsunterbrechung. Die Prozedur ist einfach und hat geringe Auswirkungen auf die Systemleistung. Die Lösung ist für durch einen FD beschriebene Kommunikationsverbindungen passend und kann breit angewendet werden.
  • Nachfolgend wird das durch die vorliegende Offenbarung bereitgestellte Verfahren zum Starten eines Prozesses detaillierter beschrieben, indem das Upgraden eines Prozesses als Beispiel genommen wird.
  • 2 ist ein Flussdiagramm, das ein Verfahren zum Upgraden eines Prozesses gemäß einem Beispiel der vorliegenden Offenbarung zeigt. Wie in 2 gezeigt ist, umfasst das Verfahren die folgenden Vorgänge.
  • Block 201, drei Systemrufschnittstellen mit einer Verbindungshalteschnittstelle, einer FD-Erhaltungsschnittstelle und einer Freigabeschnittstelle sind in einem Kernel im Voraus hinzugefügt.
  • Beispielsweise kann die Verbindungshalteschnittstelle int holdFd(int fd), die FD-Erhaltungsschnittstelle int getFd(int key) und die Freigabeschnittstelle int putFd(int key) sein.
  • Block 202, bevor ein alter Prozess beendet wird, ruft der alte Prozess die Verbindungshalteschnittstelle auf und sendet zum Kernel einen FD, der jeder Kommunikationsverbindung entspricht, die gehalten werden soll. Für jeden FD erhöht der Kernel eine Referenzzählung eines Dateiobjekts, das dem FD entspricht, weist für den FD einen eindeutigen Index zu, führt eine Hash-Berechnung am Index durch, wählt einen Cachebereich gemäß einem Hash-berechneten Ergebnis, setzt das Dateiobjekt in den Cachebereich und sendet den Index zum alten Prozess zurück. Der alte Prozess setzt eine entsprechende Beziehung zwischen dem Index und Kennungsinformation einer Kommunikationsverbindung, auf die durch den FD hingezeigt wird, in einer vorbestimmten Datei. Dann wird der alte Prozess beendet.
  • Da der Kernel die Referenzzählung des Dateiobjekts, das dem FD entspricht, erhöht, wenn der alte Prozess zerstört wird, wird die durch den Kernel gehaltene Kommunikationsverbindung, auf die durch den FD hingezeigt wird, nicht geschlossen, da die Referenzzählung nicht 0 ist.
  • Block 203, ein neuer Prozess wird gestartet. Der neue Prozess liest die entsprechende Beziehung zwischen dem Index und der Kennungsinformation der Kommunikationsverbindung, auf die durch den FD hingezeigt wird. Für jeden Index ruft der neue Prozess die FD-Erhaltungsschnittstelle auf und sendet den Index zum Kernel. Der Kernel führt eine Hash-Berechnung am Index durch, liest das Dateiobjekt aus dem entsprechenden Cachebereich gemäß dem Hash-berechneten Ergebnis und weist einen neuen FD für das Dateiobjekt zu und sendet den neuen FD zum neuen Prozess zurück.
  • Wenn das Upgraden des Prozesses fehlgeschlagen ist, wird der Prozess in der alten Version wiederhergestellt. Zu diesem Zeitpunkt kann der Prozess der alten Version den neuen FD jeder Kommunikationsverbindung vom Kernel über eine ähnliche Weise wie der neue Prozess in Block 203 erhalten.
  • Das Dateiobjekt ist für den Prozess unsichtbar, aber die Kommunikationsverbindung ist für den Prozess sichtbar.
  • Block 204, der Prozess wird erfolgreich geupgradet. Für jeden Index, der aus der vordefinierten Datei gelesen wurde, ruft der neue Prozess die Freigabeschnittstelle auf und sendet den Index zum Kernel. Der Kernel führt eine Hash-Berechnung am Index durch, liest das Dateiobjekt aus dem entsprechenden Cachebereich gemäß dem Hash-berechneten Ergebnis, führt einen Wiederherstellungsvorgang bei der Referenzzählung jedes Dateiobjekts durch, löscht jedes Dateiobjekt im Cache und gibt jeden Index frei.
  • Hier ist für jedes Dateiobjekt in Block 204 das Ziel der Durchführung eines Wiederherstellungsvorgangs bei der Referenzzählung des Dateiobjekts, die Referenzzählung des Dateiobjekts auf einen Wert wiederherzustellen, bevor der alte Prozess beendet wird.
  • Es sei darauf hingewiesen, dass die Beispiele der vorliegenden Offenbarung auch für eine Neustartprozedur eines Prozesses anwendbar sind. Diesmal ist der Unterschied zwischen der Neustartprozedur eines Prozesses und dem in 1 gezeigten Beispiel, dass der alte Prozess und der neue Prozess nicht mehr zu unterscheiden sind. Blöcke 201 bis 204 sind auf den gleichen Prozess gerichtet und Block 204 ist auf einen Prozess gerichtet, nachdem der Prozess erfolgreich gestartet wird.
  • Nachstehend wird ein anderes Beispiel gegeben, um die Prozedur des Upgradens eines Prozesses der vorliegenden Offenbarung weiter zu beschreiben.
  • 3-1 ist ein schematisches Diagramm, das einen Zustand eines alten Prozesses und einen Kernel, bevor der alte Prozess beendet wird, gemäß einem Beispiel der vorliegenden Offenbarung zeigt. Wie in 3-1 gezeigt ist, wird angenommen, dass es zwei wichtige Kommunikationsverbindungen gibt: Kommunikationsverbindungen 1 und 2 müssen vor dem Upgraden eines Prozesses gehalten werden, wobei ein FD, der der Kommunikationsverbindung 1 entspricht, fd1 ist, ein FD, der der Kommunikationsverbindung 2 entspricht, fd2 ist, ein Dateiobjekt im Kernel, das fd1 entspricht, Datei 1 ist, und ein Dateiobjekt im Kernel, das fd2 entspricht, Datei 2 ist. Die Prozedur des Upgradens eines Prozesses ist wie folgt.
  • 01: Bevor der Prozess geupgradet wird, ruft der alte Prozess eine Verbindungshalteschnittstelle auf, sendet fd1 und fd2 zum Kernel. Der Kernel addiert 1 zur Referenzzählung der Datei 1, die fd1 entspricht, addiert 1 zur Referenzzählung der Datei 2, die fd2 entspricht, weist einen Indexschlüssel 1 für fd1 zu, weist einen Indexschlüssel 2 für fd2 zu, führt eine Hash-Berechnung am Schlüssel 1 durch, wählt einen Cachebereich 1 gemäß einem berechneten Ergebnis 1 aus, setzt Datei 1 in den Cachebereich 1, führt eine Hash-Berechnung am Schlüssel 2 durch, wählt einen Cachebereich 2 gemäß einem berechneten Ergebnis 2 aus, setzt Datei 2 in den Cachebereich 2 und sendet Schlüssel 1 und Schlüssel 2 zum alten Prozess zurück. Der alte Prozess setzt eine entsprechende Beziehung zwischen Schlüssel 1 und Kommunikationsverbindung 1 und eine entsprechende Beziehung zwischen Schlüssel 2 und Kommunikationsverbindung 2 in eine vordefinierte Datei. Der alte Prozess wird beendet.
  • 3-2 ist ein schematisches Diagramm, das einen Zustand des alten Prozesses und den Kernel, nachdem der alte Prozess beendet wird, gemäß einem Beispiel der vorliegenden Offenbarung zeigt. Wie in 3-2 gezeigt ist, werden, nachdem der alte Prozess beendet wird, fd1 und fd2 geschlossen.
  • 02: Ein neuer Prozess wird gestartet. Der neue Prozess liest die entsprechende Beziehung zwischen Schlüssel 1 und Kommunikationsverbindung 1 und die entsprechende Beziehung zwischen Schlüssel 2 und Kommunikation 2 aus der vordefinierten Datei, ruft die FD-Erhaltungsschnittstelle auf und sendet Schlüssel 1 und Schlüssel 2 zum Kernel. Der Kernel führt eine Hash-Berechnung am Schlüssel 1 durch, liest Datei 1 aus dem Cachebereich 1 gemäß dem berechneten Ergebnis 1, weist fd1' für Datei 1 zu, führt eine Hash-Berechnung am Schlüssel 2 durch, liest Datei 2 aus dem Cachebereich 2 gemäß dem berechneten Ergebnis 2, weist fd2' für Datei 2 zu und sendet fd1' und fd2' zum neuen Prozess zurück.
  • 3-3 ist ein schematisches Diagramm, das einen Zustand des neuen Prozesses und den Kernel, nachdem der neue Prozess gestartet wird, gemäß einem Beispiel der vorliegenden Offenbarung zeigt. Wie in 3-3 gezeigt ist, erhält, wenn der neue Prozess gestartet wird, der neue Prozess fd1' der Kommunikationsverbindung 1 und fd2' der Kommunikationsverbindung 2.
  • 03: Der Prozess wird erfolgreich geupgradet. Der neue Prozess ruft die Freigabeschnittstelle auf und sendet Schlüssel 1 und Schlüssel 2 zum Kernel. Der Kernel führt eine Hash-Berechnung am Schlüssel 1 durch, erhält Datei 1 aus dem Cachebereich 1 gemäß dem berechneten Ergebnis 1, führt eine Hash-Berechnung am Schlüssel 2 durch, erhält Datei 2 aus dem Cachebereich 2 gemäß dem berechneten Ergebnis 2, subtrahiert 1 von den Referenzzählungen von Datei 1 und Datei 2, löscht Datei 1 aus dem Cachebereich 1, löscht Datei 2 aus dem Cachebereich 2 und gibt Schlüssel 1 und Schlüssel 2 frei.
  • 3-4 ist ein schematisches Diagramm, das einen Zustand des neuen Prozesses und den Kernel, nachdem der Prozess erfolgreich geupgradet wurde, gemäß einem Beispiel der vorliegenden Offenbarung zeigt. Wie in 3-4 gezeigt ist, werden, nachdem der Prozess erfolgreich geupgradet wurde, Schlüssel 1 und Schlüssel 2 freigegeben.
  • 4 ist ein schematisches Diagramm, das eine Struktur eines Kernels gemäß einem Beispiel der vorliegenden Offenbarung zeigt. Wie in 4 gezeigt ist, enthält der Kernel hauptsächlich: ein Verbindungshalteverarbeitungsmodul 41, ein FD-Erhaltungsmodul 42. Das Verbindungshalteverarbeitungsmodul 41 ist zum Empfangen, bevor ein erster Prozess beendet wird, einer Verbindungshalteanfrage, die einen FD trägt, der einer Kommunikationsverbindung entspricht, die gehalten werden soll, die vom ersten Prozess gesendet wurde, für den in der Verbindungshalteanfrage getragenen FD, Erhöhen einer Referenzzählung eines Dateiobjekts, das dem FD entspricht, und Setzen des Dateiobjekts in einen Cache und Zurücksenden einer Cachepositionsinformation zum ersten Prozess, so dass der erste Prozess eine entsprechende Beziehung zwischen der Cachepositionsinformation und Kennungsinformation einer Kommunikationsverbindung, auf die durch den FD hingezeigt wird, in einen vordefinierten Speicherbereich setzt.
  • Das FD-Erhaltungsmodul 42 ist zum Empfangen, wenn ein zweiter Prozess gestartet wird, einer FD-Erhaltungsanfrage, die die vom zweiten Prozess gesendete Cachepositionsinformation des Dateiobjekts trägt, und Lesen des Dateiobjekts aus dem Cache, Zuweisen eines neuen FD für das Dateiobjekt und Zurücksenden des neuen FD zum zweiten Prozess.
  • Für das Upgraden eines Prozesses ist der erste Prozess ein Prozess einer alten Version und der zweite Prozess ist ein Prozess einer neuen Version. Für das Neustarten eines Prozesses ist der erste Prozess und der zweite Prozess der gleiche Prozess.
  • Das Verbindungshalteverarbeitungsmodul 41 ist ferner zum, für den in der Verbindungshalteanfrage getragenen FD, Zuweisen eines Index für den FD, Durchführen einer Hash-Berechnung am Index, Auswählen eines Cachebereichs gemäß dem berechneten Ergebnis und Setzen des Dateiobjekts, das dem FD entspricht, in den Cachebereich, und wenn ein Index in der vom zweiten Prozess gesendeten FD-Erhaltungsanfrage empfangen wurde, betreffend den Index, Durchführen einer Hash-Berechnung am Index, Auswählen eines Cachebereichs gemäß dem berechneten Ergebnis und Lesen des Dateiobjekts aus dem Cachebereich.
  • Der Kernel beinhaltet ferner ein Freigabemodul 43 zum Empfangen, nachdem der zweite Prozess erfolgreich gestartet wurde, einer die Cachepositionsinformation tragenden Freigabeanfrage, die vom zweiten Prozess gesendet wurde, und Lesen des Dateiobjekts aus dem Cache, Wiederherstellen der Referenzzählung des Dateiobjekts und Löschen des Dateiobjekts im Cache und Freigeben von jedem Index.
  • Ein Beispiel der vorliegenden Offenbarung umfasst ferner ein maschinenlesbares Speichermedium, wie in 5 gezeigt ist. Das maschinenlesbare Speichermedium ist mit einem Prozessor verbunden und speichert maschinenlesbare Anweisungen, umfassend Beendigungsanweisungen 51 für einen ersten Prozess, die durch den Prozessor ausführbar sind, zum Senden, bevor der erste Prozess beendet wird, eines FD, der einer Kommunikationsverbindung entspricht, die gehalten werden soll, in einer Verbindungshalteanfrage und Senden der Verbindungshalteanfrage zu einem Kernel und Empfangen einer Cachepositionsinformation eines Dateiobjekts, das der Kommunikationsverbindung entspricht, die vom Kernel gesendet wurde, und Setzen einer entsprechenden Beziehung zwischen der Cachepositionsinformation und Kennungsinformation einer Kommunikationsverbindung, auf die durch den FD hingezeigt wird, in einen vordefinierten Speicherbereich. Die maschinenlesbaren Anweisungen umfassen Startanweisungen 52 für einen zweiten Prozess, die durch den Prozessor ausführbar sind, zum Lesen, wenn der zweite Prozess gestartet wurde, der entsprechenden Beziehung zwischen der Cachepositionsinformation und Kennungsinformation der Kommunikationsverbindung, auf die durch den FD hingezeigt wird, aus dem vordefinierten Speicherbereich und Senden der Cachepositionsinformation zum Kernel, um einen neuen FD für die Kommunikationsverbindung zu erhalten.
  • Was hierin beschrieben und veranschaulicht wurde, ist ein Beispiel der Offenbarung zusammen mit einigen Variationen davon. Die Begriffe, Beschreibungen und Figuren, die hierin verwendet wurden, sind nur zur Veranschaulichung dargelegt und sind nicht als Einschränkungen gemeint. Viele Variationen sind im Wesen und Umfang der Offenbarung möglich, die durch die folgenden Ansprüche – und ihre Äquivalente – definiert werden soll, in denen alle Begriffe in ihrem breitesten vernünftigen Sinn gemeint sind, sofern nicht anders angegeben.
  • Die obigen Beispiele können durch Hardware, Software oder Firmware oder eine Kombination davon implementiert werden. Zum Beispiel können die verschiedenen Verfahren, Prozesse und Funktionsmodule, die hierin beschrieben sind, durch einen Prozessor implementiert werden (der Begriff Prozessor ist breit zu interpretieren, so dass eine CPU, Verarbeitungseinheit, ASIC, Logikeinheit, ein programmierbares Gate Array usw. umfasst wird). Die Prozesse, Verfahren und Funktionsmodule können alle von einem einzigen Prozessor ausgeführt werden oder zwischen mehreren Prozessoren aufgeteilt sein; eine Bezugnahme in dieser Offenbarung oder den Ansprüchen auf einen 'Prozessor' sollte somit als 'einen oder mehrere Prozessoren' bedeutend interpretiert werden. Die Prozesse, Verfahren und Funktionsmodule können als maschinenlesbare Anweisungen implementiert werden, die von einem oder mehreren Prozessoren, Hardware-Logikschaltkreis von einem oder mehreren Prozessoren oder einer Kombination davon ausführbar sind. Ferner kann die hierin enthaltene Offenbarung in Form eines Computersoftwareprodukts implementiert werden. Das Computersoftwareprodukt ist in einem nicht flüchtigen Speichermedium gespeichert und umfasst eine Vielzahl von Anweisungen, um zu bewirken, dass ein Computergerät (das ein Personalcomputer, ein Server oder ein Netzwerkgerät, wie ein Router, Switch, Zugangspunkt usw. sein kann) das in den Beispielen der vorliegenden Offenbarung rezitierte Verfahren implementiert.
  • Die Figuren sind nur Darstellungen eines Beispiels, wobei die in den Figuren gezeigten Module oder Prozeduren für die Implementierung der vorliegenden Offenbarung nicht notwendigerweise wesentlich sind. Die Module in den zuvor genannten Beispielen können zu einem Modul kombiniert oder weiter auf eine Vielzahl von Untermodulen aufgeteilt werden.

Claims (14)

  1. Ein Verfahren zum Starten eines Prozesses, umfassend: bevor ein erster Prozess beendet wird, Empfangen, durch einen Kernel, einer einen Dateideskriptor (FD) tragenden Verbindungshalteanfrage, die vom ersten Prozess gesendet wurde; für den von der Verbindungshalteanfrage getragenen FD, Erhöhen, durch den Kernel, einer Referenzzählung eines Dateiobjekts, das dem FD entspricht, und Setzen des Dateiobjekts in einen Cache; Zurücksenden, durch den Kernel, einer Cachepositionsinformation zum ersten Prozess, so dass der erste Prozess eine entsprechende Beziehung zwischen der Cachepositionsinformation und Kennungsinformation einer Kommunikationsverbindung, auf die durch den FD hingezeigt wird, in einem vordefinierten Speicherbereich setzt; und wenn ein zweiter Prozess gestartet wird, Empfangen, durch den Kernel, einer FD-Erhaltungsanfrage, die die vom zweiten Prozess gesendete Cachepositionsinformation trägt, Lesen des Dateiobjekts aus dem Cache, Zuweisen eines neuen FD für das Dateiobjekt und Zurücksenden des neuen FD zum zweiten Prozess.
  2. Das Verfahren nach Anspruch 1, wobei: der erste Prozess ein Prozess einer alten Version ist; und der zweite Prozess ein Prozess einer neuen Version ist.
  3. Das Verfahren nach Anspruch 1, wobei der erste Prozess und der zweite Prozess der gleiche Prozess ist.
  4. Das Verfahren nach Anspruch 1, wobei das Setzen des Dateiobjekts in den Cache durch den Kernel folgendes umfasst: Zuweisen, durch den Kernel, eines Index für den FD, Durchführen einer Berechnung am Index gemäß einem vordefinierten Algorithmus, Auswählen eines Cachebereichs gemäß einem berechneten Ergebnis und Setzen des Dateiobjekts, das dem FD entspricht, in den Cachebereich; wobei die Cachepositionsinformation der Index ist; und wobei das Lesen des Dateiobjekts aus dem Cache durch den Kernel folgendes umfasst: für den in der FD-Erhaltungsanfrage getragenen Index, die vom zweiten Prozess gesendet wurde, Durchführen, durch den Kernel, einer Berechnung am Index gemäß dem vordefinierten Algorithmus, Auswählen des Cachebereichs gemäß dem berechneten Ergebnis und Lesen des Dateiobjekts aus dem Cachebereich.
  5. Das Verfahren nach Anspruch 1, ferner umfassend: nachdem der Kernel den neuen FD zum zweiten Prozess zurücksendet und nachdem der zweite Prozess erfolgreich gestartet wurde, Empfangen, durch den Kernel, einer die Cachepositionsinformation tragenden Freigabeanfrage, die vom zweiten Prozess gesendet wurde, Lesen des Dateiobjekts aus dem Cache, Wiederherstellen der Referenzzählung des Dateiobjekts und Freigeben des Cache.
  6. Das Verfahren nach Anspruch 1, wobei der erste Prozess und zweite Prozess Border Gateway Protocol(BGP)-Prozesse sind.
  7. Ein Gerät, umfassend einen Prozessor, ein nicht-flüchtiges maschinenlesbares Speichermedium, das Anweisungen speichert, die durch den Prozessor zum Implementieren eines Kernels ausführbar sind, wobei der Kernel folgendes umfasst: ein Verbindungshalteverarbeitungsmodul und ein FD-Erhaltungsmodul, wobei: das Verbindungshalteverarbeitungsmodul ist zum: Empfangen, bevor ein erster Prozess beendet wird, einer Verbindungshalteanfrage, die einen FD trägt, der einer Kommunikationsverbindung entspricht, die gehalten werden soll, die vom ersten Prozess gesendet wurde; für den in der Verbindungshalteanfrage getragenen FD, Erhöhen einer Referenzzählung eines Dateiobjekts, das dem FD entspricht, und Setzen des Dateiobjekts in einen Cache und Zurücksenden einer Cachepositionsinformation zum ersten Prozess, so dass der erste Prozess eine entsprechende Beziehung zwischen der Cachepositionsinformation und Kennungsinformation einer Kommunikationsverbindung, auf die durch den FD hingezeigt wird, in einem vordefinierten Speicherbereich setzt; und das FD-Erhaltungsmodul ist zum: Empfangen, wenn ein zweiter Prozess gestartet wird, einer FD-Erhaltungsanfrage, die die vom zweiten Prozess gesendete Cachepositionsinformation des Dateiobjekts trägt, und Lesen des Dateiobjekts aus dem Cache, Zuweisen eines neuen FD für das Dateiobjekt und Zurücksenden des neuen FD zum zweiten Prozess.
  8. Das Gerät nach Anspruch 7, wobei: der erste Prozess ein Prozess einer alten Version ist; und der zweite Prozess ein Prozess einer neuen Version ist.
  9. Das Gerät nach Anspruch 7, wobei der erste Prozess und der zweite Prozess der gleiche Prozess ist.
  10. Das Gerät nach Anspruch 7, wobei das Verbindungshalteverarbeitungsmodul ferner ist zum: für den in der Verbindungshalteanfrage getragenen FD, Zuweisen eines Index für den FD, Durchführen einer Berechnung am Index gemäß einem vordefinierten Algorithmus, Auswählen eines Cachebereichs gemäß dem berechneten Ergebnis und Setzen des Dateiobjekts, das dem FD entspricht, in den Cachebereich; für den in der FD-Erhaltungsanfrage getragenen Index, die vom zweiten Prozess gesendet wurde, Durchführen einer Berechnung am Index gemäß dem vordefinierten Algorithmus, Auswählen des Cachebereichs gemäß dem berechneten Ergebnis und Lesen des Dateiobjekts aus dem Cachebereich.
  11. Das Gerät nach Anspruch 7, ferner umfassend ein Freigabemodul zum: Empfangen, nachdem der zweite Prozess erfolgreich gestartet wurde, einer die Cachepositionsinformation tragenden Freigabeanfrage, die vom zweiten Prozess gesendet wurde, Lesen des Dateiobjekts aus dem Cache, Wiederherstellen der Referenzzählung des Dateiobjekts und Freigeben des Cache.
  12. Das Gerät nach Anspruch 6, wobei der erste Prozess und der zweite Prozess Border Gateway Protocol(BGP)-Prozesse sind.
  13. Das Gerät nach Anspruch 6, wobei das Gerät ein Router ist.
  14. Ein maschinenlesbares Speichermedium, das kommunikativ mit einem Prozessor verbunden ist und maschinenlesbare Anweisungen speichert, umfassend: Beendigungsanweisungen für einen ersten Prozess, die durch den Prozessor ausführbar sind, zum: Empfangen, bevor ein erster Prozess beendet wird, einer einen Dateideskriptor (FD) tragenden Verbindungshalteanfrage, die vom ersten Prozess gesendet wurde; Erhöhen, bezüglich dem von der Verbindungshalteanfrage getragenen FD, einer Referenzzählung eines Dateiobjekts, das dem FD entspricht, und Setzen des Dateiobjekts in einen Cache; und Zurücksenden einer Cachepositionsinformation zum ersten Prozess, so dass der erste Prozess eine entsprechende Beziehung zwischen der Cachepositionsinformation und Kennungsinformation einer Kommunikationsverbindung, auf die durch den FD hingezeigt wird, in einem vordefinierten Speicherbereich setzt; und Startanweisungen für einen zweiten Prozess, die durch den Prozessor ausführbar sind, zum: Empfangen, wenn ein zweiter Prozess gestartet wird, einer FD-Erhaltungsanfrage, die die vom zweiten Prozess gesendete Cachepositionsinformation trägt; Lesen des Dateiobjekts aus dem Cache; und Zuweisen eines neuen FD für das Dateiobjekt und Zurücksenden des neuen FD zum zweiten Prozess.
DE112012004294.8T 2011-10-12 2012-09-26 Starten eines Prozesses Withdrawn DE112012004294T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110308533.2A CN102508713B (zh) 2011-10-12 2011-10-12 进程启动方法及装置
CN201110308533.2 2011-10-12
PCT/CN2012/081991 WO2013053289A1 (en) 2011-10-12 2012-09-26 Starting a process

Publications (1)

Publication Number Publication Date
DE112012004294T5 true DE112012004294T5 (de) 2014-07-31

Family

ID=46220805

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004294.8T Withdrawn DE112012004294T5 (de) 2011-10-12 2012-09-26 Starten eines Prozesses

Country Status (5)

Country Link
US (1) US9864630B2 (de)
CN (1) CN102508713B (de)
DE (1) DE112012004294T5 (de)
GB (1) GB2513690B (de)
WO (1) WO2013053289A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508713B (zh) * 2011-10-12 2015-01-28 杭州华三通信技术有限公司 进程启动方法及装置
CN102902765B (zh) * 2012-09-25 2015-12-09 北京奇虎科技有限公司 一种用于解除文件占用的方法及装置
US9338055B2 (en) * 2013-03-15 2016-05-10 Cisco Technology, Inc. Virtual router upgrade via graceful restart
WO2015111067A1 (en) * 2014-01-24 2015-07-30 Hewlett-Packard Development Company, L.P. Dynamically patching kernels using storage data structures
CN103942180B (zh) * 2014-03-28 2017-08-11 南京信息工程大学 一种应用于多核系统的分布式引用计数系统及计数方法
US10423418B2 (en) 2015-11-30 2019-09-24 International Business Machines Corporation Method for maintaining a branch prediction history table
US10489296B2 (en) 2016-09-22 2019-11-26 International Business Machines Corporation Quality of cache management in a computer
CN107733692A (zh) * 2017-09-21 2018-02-23 烽火通信科技股份有限公司 通信设备的1+1冗余备份方法及系统
CN109597631B (zh) * 2017-09-28 2022-04-05 阿里巴巴集团控股有限公司 一种进程的升级方法、装置及电子设备
US10922096B2 (en) * 2018-02-28 2021-02-16 Vmware, Inc. Reducing subsequent network launch time of container applications
CN110442556A (zh) * 2019-07-29 2019-11-12 浙江大华技术股份有限公司 缓存预加载方法、移动终端以及计算机存储介质
CN111177805B (zh) * 2019-12-12 2023-10-03 海光信息技术股份有限公司 一种提高处理器运行安全性的方法、装置及cpu芯片
CN111131224B (zh) * 2019-12-20 2022-08-09 成都华为技术有限公司 一种维护连接的方法及存储设备
CN114915669A (zh) * 2021-02-08 2022-08-16 北京金山云网络技术有限公司 一种基于quic协议的服务升级方法、装置及电子设备
CN115118791B (zh) * 2022-05-20 2023-09-22 网宿科技股份有限公司 Udp报文的分发方法、设备及可读存储介质
CN115547367A (zh) * 2022-09-23 2022-12-30 天翼数字生活科技有限公司 一种音视频缓冲区读取处理方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1273895C (zh) * 2002-10-11 2006-09-06 华为技术有限公司 一种对后台程序进行监控的方法
ATE392661T1 (de) 2004-03-10 2008-05-15 Sony Ericsson Mobile Comm Ab Automatisierter datensicherungsspeicher in firmware-aufwertungen
WO2005089400A2 (en) * 2004-03-17 2005-09-29 Riverstone Networks, Inc. Managing process state information in an operating system environment
CN100464522C (zh) * 2007-05-17 2009-02-25 华为技术有限公司 一种进程升级的方法及进程升级系统
CN101290587B (zh) * 2008-06-12 2010-06-16 中兴通讯股份有限公司 一种实现进程启动和监控的方法
CN101334740B (zh) 2008-08-01 2010-06-09 广东威创视讯科技股份有限公司 外部进程的处理方法及处理装置
US8549543B2 (en) * 2008-09-30 2013-10-01 International Business Machines Corporation Virtualize, checkpoint, and restart POSIX IPC objects during checkpointing and restarting of a software partition
CN102131152B (zh) * 2010-01-15 2016-08-03 中兴通讯股份有限公司 一种维持即时消息业务连续性的方法及系统
US8516509B2 (en) * 2011-02-08 2013-08-20 BlueStripe Software, Inc. Methods and computer program products for monitoring system calls using safely removable system function table chaining
CN102508713B (zh) * 2011-10-12 2015-01-28 杭州华三通信技术有限公司 进程启动方法及装置
US9411637B2 (en) * 2012-06-08 2016-08-09 Apple Inc. Adaptive process importance

Also Published As

Publication number Publication date
WO2013053289A1 (en) 2013-04-18
GB2513690A (en) 2014-11-05
US20140289731A1 (en) 2014-09-25
CN102508713A (zh) 2012-06-20
GB2513690B (en) 2020-02-26
GB201400143D0 (en) 2014-02-19
US9864630B2 (en) 2018-01-09
CN102508713B (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
DE112012004294T5 (de) Starten eines Prozesses
DE60316783T2 (de) Erkennung von Speichermangel und Feinabschaltung
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
DE112020002481T5 (de) System und verfahren zur erleichterung der selbststeuerung von reduktionsmotoren
DE69021122T2 (de) Verfahren und Gerät zur ununterbrochenen Versorgung von Anwendungen in einem Rechnernetzwerk.
DE202012013448U1 (de) Prozessormodussperre
DE202018102031U1 (de) Transparente Aktualisierung eines Systemdienstes oder einer Anwendung
DE102009023953A1 (de) Verfahren zum Booten eines zustandslosen Client
DE102014109518A1 (de) Techniken zur Initialisierung von einem Speichergerät, auf das von der Ferne zugegriffen werden kann
DE112012003776T5 (de) Migration logischer Partitionen mit zustandsbehafteten Auslagerungsdatenverbindungen während des laufenden Betriebs unter Verwendung der Kontextherauslösung und -einfügung
DE202013012495U1 (de) Metadatenbasierte virtual Maschine-Konfiguration
DE102015003363A1 (de) Verfahren und system zum testen cloud-basierter anwendungen in einer produktionsumgebung unter verwendung hergestellter benutzer-daten
DE102021103080A1 (de) Data center troubleshooting-mechanismus
DE112012000531T5 (de) Verfahren und Vorrichtung zum Verbessern der Sicherheit von Daten auf einer Hostcomputereinrichtung und einer Peripherieeinrichtung
DE102012216028A1 (de) Webseiten-skriptverwaltung
DE112010003675T5 (de) Adress-Server
DE112012001660T5 (de) Speicher-Checkpointing in einem System gespiegelter virtueller Maschinen
DE102010010808A1 (de) Informationsverarbeitungsvorrichtung, Inhaltsverarbeitungssystem und computerlesbares Medium mit Inhaltsverarbeitungsprogramm
DE102012224270A1 (de) Verbinden einer synchronen domänenübergreifenden Transaktionsaktivität in einem einzelnen System
DE202021004266U1 (de) Anfügbare-und-abtrennbare Datenbank-Sessions
DE112012004926T5 (de) Gemeinsame Speichernutzung durch Prozessoren
DE102013201664A1 (de) Vorausschauendes Zwischenspeichern bei Telekommunikationstürmen unter Verwendung der Weitergabe der Kennung von Elementen von Daten mit hohem Bedarf auf einer geographischen Ebene
DE102021108294B4 (de) System und verfahren für skalierbare hardware-kohärente speicherknoten
DE112016005672T5 (de) Verbesserter virtueller Switch für Netzwerkfunktionsvirtualisierung
DE112012005046B4 (de) Koordinieren von Schreiboperationsabfolgen in einem Datenspeichersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee