DE69127945T2 - Ablauffolgeplanungsmethode für Multiprozessorbetriebssystem - Google Patents

Ablauffolgeplanungsmethode für Multiprozessorbetriebssystem

Info

Publication number
DE69127945T2
DE69127945T2 DE69127945T DE69127945T DE69127945T2 DE 69127945 T2 DE69127945 T2 DE 69127945T2 DE 69127945 T DE69127945 T DE 69127945T DE 69127945 T DE69127945 T DE 69127945T DE 69127945 T2 DE69127945 T2 DE 69127945T2
Authority
DE
Germany
Prior art keywords
task
processing
tasks
processing characteristics
properties
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 - Fee Related
Application number
DE69127945T
Other languages
English (en)
Other versions
DE69127945D1 (de
Inventor
Mark A Borcherding
J Charles Kuhlman
Steve Schneider
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE69127945D1 publication Critical patent/DE69127945D1/de
Application granted granted Critical
Publication of DE69127945T2 publication Critical patent/DE69127945T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Description

    [Technisches Gebiet der Erfindung]
  • Diese Erfindung bezieht sich auf Computersysteme und insbesondere auf ein Verfahren für die Ablaufsteuerung von Tasks eines Multiprozessor-Multitasking-Systems.
  • [Hintergrund der Erfindung]
  • Die Mehrfachverarbeitung ist ein Typ der parallelen Verarbeitung, die die Ausführung separater Programme auf zwei oder mehr Prozessoren aufteilt. Multitasking ist ein Spezialfall der Mehrfachverarbeitung, die einen Softwareprozeß, d. h. eine Task, als ein Unterprogramm definiert, das gleichzeitig mit anderen Unterprogrammen ausgeführt werden kann.
  • In einer Multitasking-Umgebung müssen die Tasks und Datenstrukturen eines Arbeitsauftrags gewissenhaft aufgeteilt werden, um die parallele Ausführung ohne Konflikte zu ermöglichen. Jedoch sind die Verfügbarkeit der Prozessoren, die Reihenfolge der Ausführung und der Abschluß der Tasks Funktionen der Laufzeitbedingungen des Systems. Daher ist Multitasking inhärent nicht deterministisch bezüglich der Zeit, obwohl die Tasks ihrerseits wohl definiert sein können.
  • Um ein erfolgreiches Multitasking sicherzustellen, muß nach dem Aufteilen der Tasks ein Betriebssystem entwickelt werden, das eine effiziente gemeinsame Nutzung der Betriebsmittel sicherstellt. Die Zuweisung der Betriebsmittel zu den Prozessen wird als "Ablaufsteuerung" bezeichnet. Die Ablaufsteuerung ist insbesondere in Systemen wichtig, die eine Echtzeitantwort auf Echtzeiteingaben erfordern.
  • Die meisten bestehenden Multitasking-Ablaufsteuerungssysteme verwenden ein Prioritätssystem, das in seiner Eigenschaft statisch ist. Das Prioritätssystem berücksichtigt nicht die Verarbeitungsanforderungen einer Task wie z. B. die Frage, wie lange die Task dauern sollte, wieviel Speicher sie erfordert oder deren Speicheranforderungen im Zeitverlauf. Die letzte Anforderung wird dadurch bestimmt, wie lang die Task bei Verwendung einer gegebenen Menge an Speicher ausgeführt werden kann, bevor sie mehr Speicher benötigt.
  • Ein weiterer Lösungsansatz für die Ablaufsteuerung verwendet die "Zeitscheibentechnik", in der Abschnitten einer Task eine begrenzte Zeitspanne zur Verfügung gestellt wird, in der diese ausgeführt werden. Nach dieser Zeitspanne wird ein Abschnitt einerweiteren Task ausgeführt. Wenn somit eine Task in ihrer Zeitspanne nicht fertig wird, wird der Prozes sor an die nächste wartende Task vergeben und die nicht beendete Task wird zurückgestellt. Der Nachteil des Zeitscheibenlösungsansatzes ist die Organisation der Kontextumschaltung.
  • Es besteht Bedarf an einer Vorrichtung für die Zeitablaufsteuerung von Tasks, so daß die Betriebsmittel ohne Erzeugung einer zusätzlichen Verarbeitungsorganisation effizient genutzt werden.
  • Die EP-A-0 346 039 bezieht sich auf ein Multi-Benutzer-Computersystem, das eine Zentraleinheit (CPU), ein Betriebssystem mit seitenadressiertem virtuellen Speicher sowie einer Systemspeicherstelle zum Speichern eines festen Satzes von Systembetriebsparametern mit im voraus zugewiesenen Steuerwerten für die Zuweisung des Zugriffs auf die Systembetriebsmittel verwendet. Die Betriebsmittel umfassen CPU-Verarbeitungszyklen und residenten Speicher, wobei eine oder mehrere Meßvorrichtungen und Überwachungsroutinen verwendet werden, um Werte für einen Satz von gemessenen Leistungsparametern für jeden Prozeß bezüglich seiner Zuweisung der Systembetriebsmittel zu erzeugen.
  • Es werden ein Verfahren und eine Vorrichtung offenbart zum dynamischen Neuzuweisen der Systembetriebsmittel, die umfassen: das Schaffen eines vordefinierten Satzes gewünschter Leistungswerte in einer Speicherstelle, das Aufzeichnen der laufenden gemessenen Systemleistungswerte für jeden Prozeß in einer zweiten Speicherstelle, das Erzeugen von Anpassungsfaktoren gemäß einer vorgegebenen Beziehung für die jeweils entsprechenden gemessenen und gewünschten Leistungswerte und das Einstellen der Systembetriebsparameter entsprechend diesen Einstellungsfaktoren.
  • Ein Verfahren zum dynamischen Anpassen der Systembetriebsparameter in einem Multi-Benutzer-Computersystem als Antwort auf Veränderungen der Belastung des Systems durch separate Prozesse, die auf dem System laufen, ist auf einem Multi- Benutzer-Computersystem implementiert, das eine Zentraleinheit (CPU), einen seitenadressierten virtuellen Speicher und einen Satz vordefinierter Systemsteuerparameter verwendet, die mit einem entsprechenden Satz von Steuerwerten zum Zuweisen des Zugriffs auf die Systembetriebsmittel durch den jeweiligen Prozeß kombiniert sind. Die Betriebsmittel umfassen CPU-Verarbeitungszyklen, die Arbeitseinstellungsspeichergröße und die Verarbeitungszeit, die Prozeßpriorität sowie die E/A-Übertragungszeitsteuerung, wobei eine oder mehrere Überwachungsroutinen zum Messen einer Reihe interner Leistungswerte für jeden Prozeß bezüglich seiner Zuweisung an Systembetriebsmitteln vorhanden sind. Das Verfahren der dynamischen Neuzuweisung von Systembetriebsmitteln durch Anpassen der vordefinierten Systemsteuerparameter umfaßt die Schritte des Speicherns eines Satzes gewünschter Leistungswerte in einer Speicherstelle, des Akkumulierens der gemessenen überwachten Leistungswerte als Antwort auf die laufenden Systemsteuerparameter für jeden Prozeß in einer zweiten Speicherstelle, des Erzeugens von Anpassungsfaktoren gemäß einer vorgegebenen Beziehung zwischen den entsprechenden gemessenen und gewünschten Leistungswerten sowie des Anpassens der Systemsteuerparameter als Antwort auf die Einstellungsfaktoren.
  • Die Druckschrift PROCEEDINGS A.F.I.P.S. NATIONAL COMPUTER CONFERENCE, Bd. 44, 19. Mai 1975, Anaheim, USA, S. 343-350, J. C. Strauss, "Dynamic dispatching in job dass scheduled systems", stellt in seiner Referenz 2 fest, daß Wulf mögliche Probleme der Zeitablaufsteuerung aufgrund geringen Vorwissens der Jobeigenschaften vermeidet, indem er die Ausführung einzelner Jobs auf der Grundlage der gemessenen Nutzung der Systembetriebsmittel durch die Jobs dynamisch steuert. Die Druckschrift nimmt Bezug auf einen Systemsteuermechanismus, der die Spezifizierung der eindeutigen internen preemptiven CPU-Priorität verwendet, die einer einzelnen Task von jeder von mehreren Klassen über ein Steuerintervall verliehen wird. Diese Priorität wird spezifiziert auf der Grundlage der beobachteten Leistung des Systems. Die Spezifikation der geordneten Prioritäten der Klassen wird als Prioritätsabbildung bezeichnet. Das Systemverhalten wird über die Job-CPU-Nutzung beobachtet, die für eine Task aus der i-ten Jobklasse erreicht wird, wenn sie in einer Prioritätsabbildung j mehrfachverarbeitet wird.
  • Es wird festgestellt, daß in einem Normsystem mit eingeteilten OS/360-Jobklassen keine dynamische Abfertigung vorliegt. Es besteht eine feste Beziehung zwischen den Jobklassen und der preemptiven CPU-Abfertigungspriorität der Tasks von den Jobs in dieser Klasse (bis zu dem Ausmaß, daß die Abfertigungspriorität mit der Partition oder dem Bereich einhergeht und mehrere Klassen dieselbe Partition oder denselben Bereich speisen können).
  • Die vorliegende Erfindung schafft ein Verfahren für die Ablaufsteuerung von Tasks, die von Prozessoren eines Multitasking-Multiprozessorsystems auszuführen sind, mit den folgenden Schritten:
  • Ausführen eines Anwendungsprogramms, das die Abarbeitung mehrerer Tasks in einer besonderen Reihenfolge erfor dert;
  • Bestimmen der Verarbeitungseigenschaften der mehreren auszuführenden Tasks;
  • Herstellen einer Beziehung zwischen den Tasks und einer Datenstruktur, die die Verarbeitungseigenschaften repräsentiert;
  • Anordnen der mehreren Tasks in einer Task-Warteschlange;
  • Ausgliedern einer ersten Task der mehreren auf die Abarbeitung wartenden Tasks aus der Warteschlange;
  • Beanspruchen der Verarbeitungseigenschaften der ersten Task in einem Zeitablaufsteuerprogramm;
  • Auswählen von für die erste Task zu verwendenden Verarbeitungsbetriebsmitteln als Antwort auf die Verarbeitungseigenschaften und verfügbare Betriebsmittel unter Verwendung des Zeitablaufsteuerprogramms; und
  • Aktivieren eines Alarmtreibers, wenn die erste Task die Verarbeitungsbetriebsmittel zu nutzen beginnt, und Ausführen einer Zeitsteuerung der Nutzung, um tatsächliche Verarbeitungseigenschaften zu erzeugen;
  • Aktivieren eines Überzeit-Managers, falls die tatsächlichen Verarbeitungseigenschaften einen vorgegebenen Wert übersteigen, wobei der Überzeit-Manager die Abarbeitung der Task anhält, einen Verarbeitungsstatus der ersten Task diagnostiziert, um festzustellen, ob ein Problem eine Verzöge rung verursacht, und, falls ja, bestimmt, wie die Verzögerung zu lösen ist, und bestimmt, ob die Verarbeitungseigenschaften inkorrekt sind; und
  • Wiederholen des Schrittes des Ausgliederns einer Task aus der Warteschlange, des Beanspruchens der Verarbeitungseigenschaften, des Auswählens von Verarbeitungsbetriebsmitteln und des Aktivierens des Alarmtreibers und gegebenen- falls des Überzeit-Managers, bis sämtliche Tasks abgearbeitet worden sind.
  • Ein technischer Vorteil der Erfindung besteht darin, daß leichter eine Echtzeitantwort erreicht werden kann. Die Tasks werden entsprechend ihrer Verarbeitungsanforderungen eingeteilt, mit dem Ziel, der Task zu ermöglichen, so lange zu laufen, wie sie benötigt. Die Leistung eines Systems kann ebenfalls überwacht werden, um zu ermitteln, wie dessen Betriebsmittel belastet sind und ob es eine zusätzliche Verarbeitung unterstützen kann.
  • [Kurzbeschreibung der Zeichnungen]
  • Fig. 1 ist ein Blockschaltbild eines Multiprozessor- Multitasking-Computerverarbeitungssystems mit einem Host-Prozessorsystem in Verbindung mit einem Signalprozessorsystem.
  • Fig. 2 ist ein Blockschaltbild, das eine typische Anwendung des Multiprozessorsystems der Fig. 1 zeigt, die zur Verarbeitung von Fernsprechverbindungen verwendet wird.
  • Fig. 3 ist ein funktionelles Blockschaltbild des Programmund Datenspeichers der Signalprozessoren der Fig. 1.
  • Fig. 4 ist ein Diagramm für die Programmierung des Ablaufsteuerungssystems für die jeweiligen Signalprozessoren der Fig. 1.
  • [Genaue Beschreibung der Erfindung]
  • Fig. 1 ist ein Blockschaltbild eines Multiprozessor-Multitasking-Computerverarbeitungssystems mit einem Host-Prozessorsystem 11 in Verbindung mit einem Signalprozessorsystem 15. Die Kommunikationseinrichtung zwischen den Prozessoren 11 und 15 ist eine Busleitung 19, die irgendeiner von mehreren bekannten Normen für die binäre Kommunikation entspricht, wie z. B. der 32-Bit-Nubus-Norm. Ein Vorteil der Erfindung besteht darin, daß sie mit der einfachen Speicherabbildungsarchitektur der Nubus-Norn kompatibel ist.
  • Das Host-Prozessorsystem 11 enthält einen Host-Prozessor 12 und einen Speicher 13. Der Host-Prozessor ist typischerweise ein Universalprozessor, wie z. B. der von der Motorola Corporation hergestellte 68030. Der Speicher 13 enthält einen Programmspeicher zum Speichern von Befehlen für den Host- Prozessor 12 sowie einen Speicher zum Speichern der Programmroutinen und Parameter, die zum Signalprozessorsystem 15 heruntergeladen werden sollen. Der Herunterladeprozeß wird im folgenden genauer erläutert.
  • Das Signalprozessorsystem 15 enthält mehrere Signalprozessoren 16 und einen Speicher 17, der diesem jeweils zugeordnet ist. Ein Beispiel eines Signalprozessors 16 ist der TMS 320C30, der von Texas Instruments Inc. hergestellt wird. Eine geeignete Größe für den Speicher 17 für die hier beschriebene Anwendung beträgt 250k 4 Bytes. Das Signalprozessorsystem 15 führt Programmroutinen aus, die vom Host-Prözessor 12 heruntergeladen worden sind. Wenn die Ausführung einer Programmroutine abgeschlossen ist, benachrichtigt das Signalprozessorsystem 15 den Host-Prozessor 12, so daß der Host-Prozessor 12 eine weitere Routine herunterladen kann.
  • Die Signalprozessoren 16 stehen untereinander in Verbindung, was dem Signalprozessorsystem 15 ermöglicht, mehr als eine Task gleichzeitig auszuführen. Zum Beispiel kann das Signalprozessorsystem drei Signalprozessoren 16 umfassen, wie in Fig. 5 gezeigt ist. Jeder Signalprozessor 16 besitzt seinen eigenen Speicher 17, der mit einem benachbarten Speicher 17 kreuzgekoppelt ist, um eine Kommunikation zwischen den Signalprozessoren 16 zu ermöglichen.
  • Jeder Signalprozessor 16 besitzt einen Aufrufbehandler, so daß mehr als ein ankommender Aufruf gleichzeitig verarbeitet werden kann. Die Verarbeitung kann sich für jeden Aufruf in Abhängigkeit von den Skripten ändern, die vom Host-Prozessor 12 geliefert werden.
  • Fig. 2 zeigt eine typische Anwendung des Multiprozessorsystems 10, die für die Verarbeitung von Fernsprechverbindungen verwendet wird. Bei dieser Anwendung ist das Host-Prozessorsystem 11 Teil eines Dienststeuersystems 21, das einen Sprachnachrichtendienst handhabt. Das Dienststeuersystem 21 besitzt ferner einen Kommunikationsträger und geeignete Schnittstellen für die Kommunikation mit einem (nicht gezeigten) Datenbankmanagementsystem, das Kundenaufzeichnungen und andere Informationen hält, die ein großes Datenbanksystem erfordern. Das Dienststeuersystem 21 steht ferner über den Bus 19 mit einem Telephoniesteuersystem 22 in Verbindung, das das Digitalverarbeitungssystem 15 enthält. Über einen T1- Puffer 23 empfängt das Digitalverarbeitungssystem 15 Daten von einer T1-Leitung 24 und führt das aktuelle Senden und Empfangen von Sprachdaten gemäß den Telekommunikationsprotokollen aus. Ein Beispiel eines T1-Puffers 23 ist die ST-Bus- Parallelzugriffsschaltung Mitel MT8920. Wie im folgenden in Verbindung mit Fig. 3 erläutert wird, ist in praktischen Anwendungen der Erfindung das Signalverarbeitungssystem 15 ein Multiprozessor-Multitasking-System mit mehreren Signalprozessoren 16, das Eingaben von mehreren Kanälen der T1- Leitung empfängt.
  • Eine vollständigere Beschreibung der Verwendung des Multiprozessorsystems 10 für eine Sprachnachrichtenanwendung ist in der EP-A-0 472 386 mit dem Titel "Digital Signal Processing Control Method and Apparatusyv dargestellt, die ebenfalls dem Anmelder der vorliegenden Erfindung zugeteilt ist. Das hier beschriebene Verfahren ist ein Verfahren der Übertragung von Daten innerhalb der Multiprozessorumgebung dieser Erfindung.
  • Das Verfahren der vorliegenden Erfindung ist jedoch nicht auf die Operation mit dieser speziellen Konfiguration beschränkt, und kann wie in Fig. 1 gezeigt mit einer beliebigen Multiprozessorumgebung verwendet werden, in der wenigstens zwei Prozessoren gemeinsam auf den Speicher eines Prozessors zugreifen.
  • Die Verarbeitung der Tasks des Signalverarbeitungssystems 15, d. h. die vom Signalprozessor 16 auszuführenden Funktionen, werden von Abschnitten eines Anwendungsprogramms dargestellt, das in das Host-Prozessorsystem 11 geladen worden ist. Diese Abschnitte des Codes werden hier als "Skripten" bezeichnet. Der Host-Prozessor 12 ermittelt dynamisch die spezifische Reihenfolge der auszuführenden Tasks und ermittelt somit das "Skript". Das Skript wird in einer Pseudocode-Form zum Signalprozessor 12 heruntergeladen und von einem Skript-Interpreter 32, der in Fig. 3 gezeigt ist, interpretiert. Das Ergebnis ist ein Satz von Byte-Codes, die Tasks spezifizieren, für die der Host-Prozessor 12 einen Signalprozessor 16 zur Ausführung benötigt. Die Zuweisung einer Task zu einem bestimmten Signalprozessor 16, der diese Task behandeln kann, kann entweder vom Host-Prozessor 12 oder vom Skript-Interpreter 32 bewerkstelligt werden.
  • In der Sprachnachrichtenanwendung werden die Tasks von ankommenden Anrufen gestartet. Ein Beispiel einer Task ist die Beantwortung eines Telephonanrufs. Andere Tasks umfassen das Abhören einer Nachricht, das Aufzeichnen einer Nachricht und dergleichen. In einer Anwendung wie der Sprachnachrichtenverarbeitung ändern sich die Tasks, die der Task der Beantwortung eines Telephonanrufs folgen, entsprechend der Eingabe des Anrufers. Zum Beispiel kann der Anrufer das Abhören von Nachrichten, das Aufzeichnen von Nachrichten, das Erreichen eines Operators und dergleichen anfordern. Daher ist in der Sprachnachrichtenanwendung das Skript der Code, den der Signalprozessor 16 ausführt, sobald ein Telephonanruf beantwortet wird.
  • Als Beispiel für die Operation der Multitasking-Operation beantwortet eine mögliche Task einen Telephonanruf. Der Host- Treiber 34 führt ein Verbundlesen durch, um den Auswahlsatz zu empfangen, wobei der Host-Prozessor 12 die Bereichsteilmenge, die das Skript für diese Task enthält, an den Signalprozessor 16 liefert. Jede Prozessoreinheit 16, die die Task ausführen kann, interpretiert das Skript und bereitet sich auf dessen Ausführung vor. Wenn das Telephon klingelt, beantwortet der erste verfügbare Prozessor den Anruf. Der nächste Telephonruf wird von einem zweiten Prozessor 16 verarbeitet usw.
  • Fig. 3 ist ein funktionelles Blockschaltbild des Programmund Datenspeichers des Signalprozessors 16, der im Speicher 17 enthalten ist. Die Programmierung hat drei Hauptbestandteile: einen Ausführungssteuerabschnitt 31, einen Skript- Interpreter-Abschnitt 32 sowie einen Host-Treiberabschnitt 34. Der Ausführungssteuerabschnitt 31 speichert den Code, der vom Signalprozessor 16 ausgeführt wird und vom Host-Prozessor 12 nicht verändert wird. Dieser Code unterstützt Aufrufe für spezielle Funktionen von heruntergeladenen Routinen. Zum Beispiel kann eine heruntergeladene Routine eine Funktion "gen-tone (5)" aufrufen, was anzeigt, daß ein DTMF-Signal gewünscht wird, das dem Tastaturzeichen 5 entspricht. Der Host-Treiber 34 behandelt die E/A zum und vom Host-Prozessor 12 in einer Weise ähnlich der E/A-Handhabung durch einen Normgerätetreiber zu und von einer Peripherievorrichtung wie z. B. einem Plattenlaufwerk. Der Skript-Interpreter-Abschnitt 32 interpretiert die Skripten wie oben erläutert. Wie in Fig. 3 gezeigt, besitzt der Speicher 17 ferner einen Primärspeicherbereich zum Speichern von Programmcode und anderen Daten, die vom Host-Prozessor 12 heruntergeladen werden.
  • Der Host-Prozessor 12 und der Signalprozessor 16 können jeweils den Zugriff auf ihre jeweiligen Speicher 13 und 17 exklusiv steuern. Somit führt jeder Prozessor 12 und 16 seine eigenen E/A-Operationen aus.
  • Die Zwischenprozessorkommunikation, insbesondere das Herunterladen vom Host-Prozessor 12 zum Signalprozessor 16, ist in der EP-A-0 474 436 mit dem Titel "Methodfor Communications Between Processors of a Multi-processor System", die dem Anmelder der vorliegenden Erfindung zugeteilt ist, genauer beschrieben. Kurz, der Host-Prozessor 12 kann mit dem Bereich die Daten spezifizieren, die er zum Signalprozessor 16 übertragen will. Der Signalprozessor 16 führt eine Anpassungsleseoperation aus, um die Bereichsdaten zu empfangen. Diese Anpassungsschreib- und Anpassungsleseoperationen ermöglichen den auf einem Signalprozessor 16 laufenden Prozessen, den Zugriff auf einen exklusiven Bereich des Host-Prozessors 12 zu steuern. Indem dem Signalprozessor 16 ermöglicht wird, einen Bereich anzufordern, bevor dieser geliefert werden kann, ist es dem Host-Prozessor 12 nicht möglich, in diesen Bereich zu schreiben, bevor der Signalprozessor 16 das Zugreifen auf denselben beendet hat.
  • Die Verarbeitungsorganisation wird mittels einer "Verbundlese"-Operation reduziert, die einen Host-Treiber 33 verwendet. Diese Operation erfordert nur eine E/A-Operation je Skript und ermöglicht dem Signalprozessor 16, alle Bereiche, die er benötigt, sofort zu empfangen.
  • Abgesehen von Effektivitätsbetrachtungen des Herunterladens der Daten für spezielle Tasks ist die Task-Ablaufsteuerung ferner für eine Echtzeitverarbeitung wünschenswert. Ein grundsätzliches Konzept der Erfindung ist das Zuweisen von Verarbeitungseigenschaften zu jeder Task, so daß eine Ablaufsteuervorrichtung eine Ablaufsteuerung auf der Grundlage dieser Eigenschaften ermitteln kann. Diese Eigenschaften umfassen die Frage, wie lange die Verarbeitung dauert und wieviel Speicher für die Verarbeitung erforderlich ist.
  • Eine der Verarbeitungseigenschaften ist ein "Echtzeit"-Prozessor-Verhältnis, das die Verarbeitungszeit geteilt durch die Datenzeitspanne ist. Zum Beispiel wird angenommen, daß Daten mit 160.000 Abtastwerten je Sekunde für eine Gesamtdatenzeitspanne von 20 ms gelesen werden und die Verarbeitungszeit für diese Datenmenge 5 ms beträgt. Das Prozessor-Verhältnis beträgt 5 / 20 = 25 %. Wenn die Task mehr als 5 ms plus einem "Spielfaktor" benötigt, wird die Verarbeitung nicht als Echtzeitverarbeitung betrachtet. Die erforderliche Verarbeitungszeit für mehr oder weniger Daten kann leicht ermittelt werden.
  • Die folgende Datenstruktur ist ein Beispiel der Verarbeitungseigenschaften, die von einer Task, die in der Programmiersprache C geschrieben ist, beansprucht wird:
  • Struct Task_Characteristics
  • {
  • long task_type;
  • long task_degrade_path;
  • long task_time_max;
  • long task_id;
  • long buffer_time;
  • long average_execution_time;
  • long total execution time;
  • long minimum_ execution_time;
  • long maximum_ execution_time;
  • long number_ executions;
  • long number_alarms;
  • long task_status;
  • }
  • Die Datenelemente in dieser Struktur sind wie folgt beschrieben:
  • task_type identifiziert den Typ der Verarbeitung, die die Task ausführt, z. B. task_type = DTMF_RECEIVER.
  • task_degrade_path zeigt an, wie eine weniger Betriebsmittel beanspruchende Task herabge setzt wird oder die aktuelle Verarbeitung der Task zu einer weniger Betriebsmittel beanspruchenden Operation geändert wird.
  • task_time max zeigt die maximale Zeitspanne an, die eine Task benötigen darf, bevor ein Alarm ausgelöst wird.
  • task_id eine Zahl, die diese Task eindeutig von allen anderen Tasks unterscheidet.
  • buffer_size definiert die Anzahl der Bytes in allen der Task zugewiesenen Puffern.
  • buffer_time definiert die Zeitspanne, die von den Daten in den Task-Puffern mit buffer_size dargestellt werden.
  • average_execution_time statistischer Wert, der die mittlere Zeitspanne anzeigt, die diese Task benötigt, um einen Datenpuffer zu verarbeiten.
  • total_execution_time statistischer Wert, der die Gesamtzeit anzeigt, die diese Task für die Verarbeitung von Datenpuffern verwendet hat.
  • minimum_execution_time statistischer Wert, der die kürzeste Zeitspanne anzeigt, die zur Verarbeitung eines Datenpuffers verwendet worden ist.
  • maximum_execution_time statistischer Wert, der die längste Zeitspanne anzeigt, die zur Verarbeitung eines Datenpuffers verwendet worden ist.
  • number_executions definiert, wie viele Datenpuffer verarbeitet worden sind.
  • number_alarms Anzahl der Alarme, die aufgetreten sind, während diese Task ausgeführt worden ist.
  • task_status aktueller Status dieser Task, z. B. TASK_OK ALARM_ON TASK_KILLED.
  • Eine Laufzeit-Ablaufsteuerung ist ein Teil der Programmierung jedes Digitalprozessors 16. Diese Ablaufsteuerung verwendet einen Task-Identifizierer, Daten, die die Verarbeitungseigenschaften einer Task darstellen, sowie die Verfügbarkeit der Betriebsmittel. Unter Verwendung dieser Daten weist die Ablaufsteuerung die Betriebsmittel während der Laufzeit für jede Task dynamisch zu und gibt diese frei. Die Verarbeitungseigenschaften werden bei der Initialisierung bestimmt, indem sie vom Host-Prozessor 12 heruntergeladen werden oder wie im folgenden erläutert dynamisch rekonfiguriert werden. Verschiedene Verbesserungen der Erfindung umfassen eine zusätzliche Programmierung zur Handhabung eines Herabsetzungsprozesses, wenn das System überlastet wird, oder zum Führen von Leistungstatistiken.
  • Während der Initialisierung des Signalprozessorsystems 15 wird Daten- und Stapelraum denjenigen Tasks zugewiesen, die der jeweilige Prozessor 16 auszuführen hat. Die Betriebsmittelzuweisungen werden von der Ablaufsteuerung während der Laufzeit verwendet.
  • Fig. 4 zeigt Programmierungskomponenten der Ablaufsteuerung und den Laufzeitprozeß der Ablaufsteuerung der Tasks. Die Hauptprogrammierungskomponenten der Ablaufsteuerung sind eine Task-Warteschlange 41, ein Warteschlangenmanager 42, ein Alarmtreiber 43, ein Zeitablaufgenerator 44 sowie ein Überzeit-Manager 45.
  • Bevor die Verarbeitung beginnt, sind die Tasks A-E in einer Task-Warteschlange 41 enthalten. Eine Anfrage für eine Task gliedert die Task A aus der Task-Warteschlange 41 aus und leitet sie an den Warteschlangenmanager 42 weiter.
  • Die Task A übergibt anschließend dem Warteschlangenmanager 42 ihre Verarbeitungseigenschaften, die als "beanspruchte Eigenschaften" bezeichnet werden.
  • Der nächste Schritt für die Behandlung der Task A wird bestimmt durch deren Verarbeitungseigenschaften und die Verfügbarkeit der Systembetriebsmittel. Somit wird in Abhängigkeit davon, welcher Prozessor 16 verfügbar ist, falls einer verfügbar ist, und von den Befriedigungen der Anforderungen der Task A die Task an diesen weitergeleitet. Somit liest der Warteschlangenmanager 42 die beanspruchten Verarbeitungseigenschaften der Task A und ermittelt, welche Betriebsmittel, falls überhaupt, verfügbar sind. In Abhängigkeit von der Verfügbarkeit der Betriebsmittel, die die Anforderungen der Task A erfüllen, weist die Ablaufsteuerung 42 die Task A einem Prozessor 16 zur Ausführung zu oder verzögert die Ausführung.
  • Wenn die Task A zu laufen beginnt, "aktiviert" sie den Alarmtreiber 43, der die obenbeschriebene Überwachungsfunktion durchführt. Der Zeitablaufgenerator 44 beginnt die Verarbeitung der Task A zu messen. Wenn die Task A die Verarbeitung innerhalb ihrer beanspruchten Zeitspanne abschließt, trägt sie sich aus und der Alarm wird deaktiviert. Für die Task A können Leistungsdaten gesammelt und gespeichert werden. Der vom Zeitablaufgenerator 44 verwendete Zeitgeber kann irgendeine von mehreren wohlbekannten Hardwarezeitsteuerungsvorrichtungen sein.
  • Wenn jedoch die Task A mehr als ihre beanspruchte Zeitspanne benötigt, sendet der Zeitablaufgenerator 44 ein Unterbrechungssignal zum Prozessor 16. Das Unterbrechungssignal aktiviert eine Alarmdienstroutine 43a, die ein Alarmsignal sendet, um einen Überzeit-Manager 45 zu aktivieren.
  • Der Überzeit-Manager 45 diagnostiziert den Verarbeitungsstatus der Task A, um zu ermitteln, ob ein Problem wie z. B. ein Speicherkonflikt, eine Endlosschleife, eine Blockierung oder ein beschädigter Stapel eine Verzögerung verursacht. Der Überzeit-Manager 45 ermittelt ferner, wie die Verzögerung aufzulösen ist, indem er z. B. die Task neu einteilt oder indem er den Puffer manipuliert. Der Überzeit-Manager 45 ermittelt ferner, ob die Task einfach eine falsche erwartete Verarbeitungszeit angegeben hat. Der Überzeit-Manager 45 läuft als Task mit hoher Priorität, die vom Alarmsignal aktiviert wird.
  • Wenn im oben ausgeführten Beispiel die Task A mehr als 5 ms plus einem kleinen "Spiel"-Zeitfaktor benötigt, wird der Alarm aktiviert. Der Überzeit-Manager kann die Pufferstrategie ändern, die Task A anhalten oder die Task A für einen weniger zeitaufwendigen Algorithmus programmieren oder einige andere Verwaltungsentscheidungen durchführen.
  • Das Versorgen des Überzeit-Managers 45 mit Informationen über die Verarbeitungseigenschaften einer Task ermöglicht einer Task ferner, zeitlich verschoben zu werden. Zum Beispiel ermöglicht das Angeben der RAM-Anforderungen die obenerwähnte Puffermanipulation. Mit anderen Worten, die Task kann zeitlich verschoben werden, wobei ihre Daten gespeichert werden. Da ferner die RAM-Anforderungen in Prozessor-Verhältnis- Zeitspannen ausgedrückt sind, weiß der Überzeit-Manager 45, wie lange der Prozeß für eine gegebene Datenmenge benötigt und wieviel Speicher benötigt wird.
  • Ein weiteres Merkmal des Überzeit-Managers 45 ist, daß er ein Herabsetzungsschema zur Verfügung stellt, wenn eine Task zeitlich verschoben wird. Zum Beispiel kann der Überzeit- Manager 45 eine Task aufrufen, die hinsichtlich des Prozessor-Verhältnisses weniger aufwendig ist. Diese Task kann dem Benutzer einen alternativen Dienst anbieten, wobei ein vollständiger Zusammenbruch der Dienste vermieden wird. Zum Beispiel kann ein alternativer Dienst die Erzeugung eines Besetzt-Signals sein.
  • Die Fähigkeit des Ablaufsteuerungssystems zum Überwachen der Verarbeitungseigenschaften der Task, die vom Digitalprozessor 16 ausgeführt werden, ermöglicht, daß diese Eigenschaften während der Laufzeit dynamisch modifiziert werden. Alternativ können diese Eigenschaften separat getestet und dem System zugeführt werden.

Claims (6)

1. Verfahren für die Ablaufsteuerung von Tasks, die von Prozessoren eines Multitasking-Multiprozessorsystems (10) auszuführen sind, mit den folgenden Schritten:
Ausführen eines Anwendungsprogramms, das die Abarbeitung mehrerer Tasks in einer besonderen Reihenfolge erfordert; Bestimmen der Verarbeitungseigenschaften der mehreren auszuführenden Tasks;
Herstellen einer Beziehung zwischen den Tasks und einer Datenstruktur, die die Verarbeitungseigenschaften repräsentiert;
Anordnen der mehreren Tasks in einer Task-Warteschlange (41);
Ausgliedern einer ersten Task der mehreren auf die Abarbeitung wartenden Tasks aus der Warteschlange;
Beanspruchen der Verarbeitungseigenschaften der ersten Task in einem Zeitablaufsteuerprogramm (43);
Auswählen von für die erste Task zu verwendenden Verarbeitungsbetriebsmitteln als Antwort auf die Verarbeitungseigenschaften und verfügbare Betriebsmittel unter Verwendung des Zeitablaufsteuerprogramms (43); und
Aktivieren eines Alarmtreibers (43), wenn die erste Task die Verarbeitungsbetriebsmittel zu nutzen beginnt, und Ausführen einer Zeitsteuerung der Nutzung, um tatsächliche Verarbeitungseigenschaften zu erzeugen;
Aktivieren eines Überzeit-Managers (45), falls die tatsächlichen Verarbeitungs eigenschaften einen vorgegebenen Wert übersteigen, wobei der Überzeit-Manager die Abarbeitung der Task anhält, einen Verarbeitungsstatus der ersten Task diagnostiziert, um festzustellen, ob ein Problem eine Verzögerung verursacht, und, falls ja, bestimmt, wie die Verzögerung zu lösen ist, und bestimmt, ob die Verarbeitungseigenschaften inkorrekt sind; und Wiederholen des Schrittes des Ausgliederns einer Task aus der Warteschlange, des Beanspruchens der Verarbeitungseigenschaften, des Auswählens von Verarbeitungsbetriebsmitteln und des Aktivierens des Alarmtreibers und gegebenenfalls des Überzeit-Managers, bis sämtliche Tasks abgearbeitet worden sind.
2. Verfahren nach Anspruch 1, ferner mit dem Schritt des Vergleichens der beanspruchten Eigenschaften mit den tatsächlichen Eigenschaften.
3. Verfahren nach Anspruch 2, ferner mit dem Schritt des Aktivierens eines Unterbrechungsdienstes, falls die tatsächlichen Eigenschaften die beanspruchten Eigenschaften um einen vorgegebenen Wert übersteigen.
4. Verfahren nach Anspruch 1, ferner mit dem Schritt des Modifizierens der beanspruchten Eigenschaften als Antwort auf die tatsächlichen Eigenschaften.
5. Verfahren nach Anspruch 1, in dem die Verarbeitungseigenschaften ein Prozessornutzungsverhältnis umfassen.
6. Verfahren nach Anspruch 1, in dem der Alarm-Manager alternative Verarbeitungsaktivitäten bestimmt.
DE69127945T 1990-08-31 1991-08-30 Ablauffolgeplanungsmethode für Multiprozessorbetriebssystem Expired - Fee Related DE69127945T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/576,300 US5303369A (en) 1990-08-31 1990-08-31 Scheduling system for multiprocessor operating system

Publications (2)

Publication Number Publication Date
DE69127945D1 DE69127945D1 (de) 1997-11-20
DE69127945T2 true DE69127945T2 (de) 1998-02-12

Family

ID=24303832

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69127945T Expired - Fee Related DE69127945T2 (de) 1990-08-31 1991-08-30 Ablauffolgeplanungsmethode für Multiprozessorbetriebssystem

Country Status (4)

Country Link
US (1) US5303369A (de)
EP (1) EP0473444B1 (de)
JP (1) JP3676827B2 (de)
DE (1) DE69127945T2 (de)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2069711C (en) * 1991-09-18 1999-11-30 Donald Edward Carmon Multi-media signal processor computer system
JPH0659906A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 並列計算機の実行制御方法
US5628013A (en) * 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
JP3208870B2 (ja) * 1992-10-30 2001-09-17 株式会社日立製作所 データ分割パタンの評価方法
US5896531A (en) * 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US5459865A (en) * 1993-04-05 1995-10-17 Taligent Inc. Runtime loader
JPH06337729A (ja) * 1993-05-27 1994-12-06 Fujitsu Ltd ネットワークサービスシステム
US6012072A (en) * 1993-09-17 2000-01-04 Digital Equipment Corporation Display apparatus for the display of documents in a three-dimensional workspace
JPH09503084A (ja) * 1993-09-28 1997-03-25 シーメンス アクチエンゲゼルシヤフト 実行中のリアルタイムシステムにおけるエラー分析用トレーサシステム
DE4332993C1 (de) * 1993-09-28 1994-11-24 Siemens Ag Tracer-System zur Fehleranalyse in laufenden Realzeitsystemen
US5408663A (en) * 1993-11-05 1995-04-18 Adrem Technologies, Inc. Resource allocation methods
US6151610A (en) * 1993-12-27 2000-11-21 Digital Equipment Corporation Document display system using a scripting language having container variables setting document attributes
US5442789A (en) * 1994-03-31 1995-08-15 International Business Machines Corporation System and method for efficiently loading and removing selected functions on digital signal processors without interrupting execution of other functions on the digital signal processors
EP0690603B1 (de) * 1994-06-27 2009-09-30 Intel Corporation Gerät und Verfahren zum Verteilen von Anrufverarbeitungshilfsmitteln
US6041354A (en) * 1995-09-08 2000-03-21 Lucent Technologies Inc. Dynamic hierarchical network resource scheduling for continuous media
US6003061A (en) * 1995-12-07 1999-12-14 Microsoft Corporation Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
US6282561B1 (en) * 1995-12-07 2001-08-28 Microsoft Corporation Method and system for resource management with independent real-time applications on a common set of machines
US5867725A (en) * 1996-03-21 1999-02-02 International Business Machines Corporation Concurrent multitasking in a uniprocessor
CA2178898C (en) * 1996-06-12 2000-02-01 David Joseph Streeter Sequencing and error detection of template instantiations during compilation of c++ programs
US5946463A (en) * 1996-07-22 1999-08-31 International Business Machines Corporation Method and system for automatically performing an operation on multiple computer systems within a cluster
US6223201B1 (en) 1996-08-27 2001-04-24 International Business Machines Corporation Data processing system and method of task management within a self-managing application
US6615279B1 (en) * 1997-01-29 2003-09-02 Iq Systems Central and distributed script servers in an object oriented processor array
US6418517B1 (en) * 1997-08-29 2002-07-09 International Business Machines Corporation Optimized function execution for a multiprocessor computer system
US6256679B1 (en) * 1997-12-23 2001-07-03 Simmonds Precision Products, Inc. Blackboard-centric layered software architecture for an embedded airborne fuel gauging subsystem
US5999990A (en) * 1998-05-18 1999-12-07 Motorola, Inc. Communicator having reconfigurable resources
US6131187A (en) * 1998-08-17 2000-10-10 International Business Machines Corporation Method and system for translating exception handling semantics of a bytecode class file
KR100727901B1 (ko) * 1999-07-10 2007-06-14 삼성전자주식회사 마이크로 스케듈링 방법 및 운영체제 커널 장치
US7661107B1 (en) 2000-01-18 2010-02-09 Advanced Micro Devices, Inc. Method and apparatus for dynamic allocation of processing resources
US20010034558A1 (en) * 2000-02-08 2001-10-25 Seagate Technology Llc Dynamically adaptive scheduler
JP2002024194A (ja) * 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ジョブ分散処理方法および分散処理システム
US7003523B1 (en) * 2000-07-26 2006-02-21 Revolutionary Learning Systems, Inc. Configurable software system for automatically storing computer files
US7140016B2 (en) * 2000-11-29 2006-11-21 Texas Instruments Incorporated Media accelerator quality of service
US20020144143A1 (en) * 2000-12-15 2002-10-03 International Business Machines Corporation Method and system for network management capable of restricting consumption of resources along endpoint-to-endpoint routes throughout a network
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6931570B2 (en) * 2001-05-02 2005-08-16 Cyrus Peikari Self-optimizing the diagnosis of data processing systems by flexible multitasking
EP1262871A3 (de) * 2001-06-01 2007-05-30 Telogy Networks Eingebettetes Echtzeitbetriebsmittelverwaltungssystem
US20030009508A1 (en) * 2001-06-26 2003-01-09 Troia Terry A. Method and system for providing processor task scheduling
JP2003029989A (ja) * 2001-07-16 2003-01-31 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US7200609B2 (en) * 2001-07-19 2007-04-03 Emc Corporation Attribute based resource allocation
JP2003091424A (ja) * 2001-09-18 2003-03-28 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US7594229B2 (en) * 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
JP3878508B2 (ja) 2001-11-08 2007-02-07 松下電器産業株式会社 回路群制御システム
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
JP2003263331A (ja) * 2002-03-07 2003-09-19 Toshiba Corp マルチプロセッサシステム
US7007197B2 (en) * 2002-05-31 2006-02-28 Microsoft Corporation Virtual logging system and method
US7484216B2 (en) * 2002-06-18 2009-01-27 Microsoft Corporation System and method for decoupling space reservation in transactional logging systems
US7111089B2 (en) * 2002-12-23 2006-09-19 Motorola, Inc. Programmable scheduler for digital signal processor
US20060123421A1 (en) * 2002-12-27 2006-06-08 Loboz Charles Z Streamlining cpu utilization by delaying transactions
JP4090908B2 (ja) * 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US8856793B2 (en) * 2004-05-11 2014-10-07 International Business Machines Corporation System, method and program for scheduling computer program jobs
EP1763748A1 (de) * 2004-05-27 2007-03-21 Koninklijke Philips Electronics N.V. Signalverarbeitungsvorrichtung
US8171474B2 (en) * 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US8789051B2 (en) 2004-11-18 2014-07-22 Hamilton Sundstrand Corporation Operating system and architecture for embedded system
US7689993B2 (en) * 2004-12-04 2010-03-30 International Business Machines Corporation Assigning tasks to processors based at least on resident set sizes of the tasks
US7921425B2 (en) * 2005-03-14 2011-04-05 Cisco Technology, Inc. Techniques for allocating computing resources to applications in an embedded system
US8185905B2 (en) 2005-03-18 2012-05-22 International Business Machines Corporation Resource allocation in computing systems according to permissible flexibilities in the recommended resource requirements
JP2007156824A (ja) * 2005-12-05 2007-06-21 Nec Electronics Corp プロセッサシステム、タスク制御方法
US8345053B2 (en) * 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
US20100179850A1 (en) 2007-05-21 2010-07-15 Honeywell International Inc. Systems and methods for scheduling the operation of building resources
KR100930017B1 (ko) * 2007-06-29 2009-12-07 주식회사 마크애니 다수 개의 커널을 운영하는 시스템 및 방법
WO2009153619A1 (en) 2008-06-19 2009-12-23 Freescale Semiconductor, Inc. A system, method and computer program product for debugging a system
US8966490B2 (en) 2008-06-19 2015-02-24 Freescale Semiconductor, Inc. System, method and computer program product for scheduling a processing entity task by a scheduler in response to a peripheral task completion indicator
US8266477B2 (en) * 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
US8510744B2 (en) * 2009-02-24 2013-08-13 Siemens Product Lifecycle Management Software Inc. Using resource defining attributes to enhance thread scheduling in processors
US8589931B2 (en) * 2009-03-18 2013-11-19 International Business Machines Corporation Environment based node selection for work scheduling in a parallel computing system
EP2312442A3 (de) * 2009-08-27 2012-02-01 Siemens Product Lifecycle Management Software Inc. System und Verfahren für das Thread Scheduling in Prozessoren
US9229779B2 (en) * 2009-12-28 2016-01-05 Empire Technology Development Llc Parallelizing heterogeneous network communications in smart devices based on selection of task allocation strategy
WO2011161830A1 (ja) * 2010-06-25 2011-12-29 富士通株式会社 マルチコアシステムおよびスケジューリング方法
KR101671184B1 (ko) 2010-12-14 2016-11-01 삼성전자주식회사 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
US9201688B2 (en) * 2010-12-17 2015-12-01 Microsoft Technology Licensing, Llc Configuration of asynchronous message processing in dataflow networks
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US8566831B2 (en) * 2011-01-26 2013-10-22 International Business Machines Corporation Execution of work units in a heterogeneous computing environment
US8533720B2 (en) 2011-02-25 2013-09-10 International Business Machines Corporation Offloading work from one type to another type of processor based on the count of each type of service call instructions in the work unit
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
KR101867960B1 (ko) * 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
KR101871941B1 (ko) * 2013-03-12 2018-07-02 한화에어로스페이스 주식회사 카메라의 동작 방법, 카메라, 및 감시 시스템
KR102285749B1 (ko) * 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
US9552229B2 (en) * 2015-05-14 2017-01-24 Atlassian Pty Ltd Systems and methods for task scheduling
US10592280B2 (en) * 2016-11-23 2020-03-17 Amazon Technologies, Inc. Resource allocation and scheduling for batch jobs
CN109582456A (zh) * 2017-09-28 2019-04-05 北京国双科技有限公司 报表执行方法和装置
CN109828833B (zh) * 2018-11-02 2020-09-29 上海帆一尚行科技有限公司 一种神经网络训练任务的排队系统及其方法
CN109710463A (zh) * 2018-12-27 2019-05-03 亚信科技(中国)有限公司 一种任务调度方法及装置
CN115904644A (zh) * 2021-09-30 2023-04-04 伊姆西Ip控股有限责任公司 任务调度方法、电子设备和计算机程序产品

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4320455A (en) * 1978-01-09 1982-03-16 Honeywell Information Systems Inc. Queue structure for a data processing system
US4855903A (en) * 1984-12-20 1989-08-08 State University Of New York Topologically-distributed-memory multiprocessor computer
EP0346039A2 (de) * 1988-06-06 1989-12-13 Demax Software, Inc Dynamische Lastabgleichung für Multibenutzerrechner

Also Published As

Publication number Publication date
EP0473444B1 (de) 1997-10-15
DE69127945D1 (de) 1997-11-20
EP0473444A3 (en) 1992-04-29
JP3676827B2 (ja) 2005-07-27
EP0473444A2 (de) 1992-03-04
JPH06119300A (ja) 1994-04-28
US5303369A (en) 1994-04-12

Similar Documents

Publication Publication Date Title
DE69127945T2 (de) Ablauffolgeplanungsmethode für Multiprozessorbetriebssystem
DE69424610T2 (de) Datenverarbeitungs-anlage und -verfahren
DE3686018T2 (de) Betriebsfuehrung von hardwaremitteln.
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
DE69729822T2 (de) Echtzeit-Taskzuweiser
DE69130620T2 (de) Datenübertragungsadapter und Verfahren zu dessen Betrieb
EP0333123B1 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE69429204T2 (de) Ablaufssteuerungsverfahren und -gerät für ein Kommunikationsnetzwerk
DE69524760T2 (de) Verfahren zum erzwingen einer hierarchischen anrufstruktur in asynchronen echtzeitsoftwareanwendungen
DE68919975T2 (de) Verfahren für die simultane Ablaufverwaltung eines verteilten Anwenderprogramms in einem Hostrechner und in einer grossen Anzahl von intelligenten Benutzerstationen in einem SNA-Netzwerk.
DE69220093T2 (de) Verarbeitungsnetzwerk für verteilte anwendungsprogramme.
EP1831786B1 (de) Verfahren zur verteilung von rechenzeit in einem rechnersystem
DE69031233T2 (de) Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme
DE69329047T2 (de) Verfahren und System zur Verminderung der Speicherzuordnungsanforderungen
DE60020817T2 (de) Ablaufsteuerung für Betriebsmittel
DE69428972T2 (de) System und Verfahren für die Eigentumerverwaltung eines freigegebenen Synchronisationsmechanismus
DE60307532T2 (de) Paralleles Prozess-Ausführungsverfahren und Mehrprozessorenrechner
US5999963A (en) Move-to-rear list scheduling
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
US5349682A (en) Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
DE102009018261A1 (de) Informationsverarbeitungssystem und Verfahren zur Steuerung der Aufgabenausführung
DE69628798T2 (de) Verfahren zur Übertragung von Multimediadaten
DE3884504T2 (de) Eingabe-Dienstsubsystem zur dynamischer Arbeitsplanung für ein Computersystem.
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee