DE69127945T2 - Ablauffolgeplanungsmethode für Multiprozessorbetriebssystem - Google Patents
Ablauffolgeplanungsmethode für MultiprozessorbetriebssystemInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 34
- 238000012545 processing Methods 0.000 claims description 74
- 230000004044 response Effects 0.000 claims description 8
- 230000003213 activating effect Effects 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 17
- 238000013515 script Methods 0.000 description 13
- 239000000872 buffer Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling 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
- Diese Erfindung bezieht sich auf Computersysteme und insbesondere auf ein Verfahren für die Ablaufsteuerung von Tasks eines Multiprozessor-Multitasking-Systems.
- 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.
- 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.
- 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:
- {
- 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.
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)
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)
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 |
-
1990
- 1990-08-31 US US07/576,300 patent/US5303369A/en not_active Expired - Lifetime
-
1991
- 1991-08-30 DE DE69127945T patent/DE69127945T2/de not_active Expired - Fee Related
- 1991-08-30 JP JP22021091A patent/JP3676827B2/ja not_active Expired - Fee Related
- 1991-08-30 EP EP91307940A patent/EP0473444B1/de not_active Expired - Lifetime
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 |