DE10000571A1 - Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems mit einem echtzeitfähigen Programm, basierend auf 2 unabhängigen Zeitgebern - Google Patents
Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems mit einem echtzeitfähigen Programm, basierend auf 2 unabhängigen ZeitgebernInfo
- Publication number
- DE10000571A1 DE10000571A1 DE2000100571 DE10000571A DE10000571A1 DE 10000571 A1 DE10000571 A1 DE 10000571A1 DE 2000100571 DE2000100571 DE 2000100571 DE 10000571 A DE10000571 A DE 10000571A DE 10000571 A1 DE10000571 A1 DE 10000571A1
- Authority
- DE
- Germany
- Prior art keywords
- real
- time
- program
- clock source
- operating system
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Die Erfindung beschreibt ein Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems mit einem echtzeitfähigen Programm, basierend auf 2 unabhängigen Zeitgebern. DOLLAR A Echtzeitfähige Betriebssysteme kennzeichnen sich durch ein deterministisches Zeitverhalten bzgl. der Ausführungszeiten und den Reaktionszeiten. Nicht-echtzeitfähige Betriebssysteme besitzen kein oder nur ein schwach ausgeprägtes deterministisches Zeitverhalten, jedoch gute Visualisierungsmöglichkeiten und Entwicklungsstandards. Eine Kombination der Eigenschaften ist sinnvoll, insbesondere wenn das Betriebssystem für Steuerungsaufgaben in der Automations- oder Messtechnik eingesetzt werden soll. DOLLAR A Das Verfahren beruht auf der Trennung des bestehenden nicht-echtzeitfähigen Betriebssystems von seiner hoch-prioren System-Takt-Quelle und dessen Anbindung an eine zweite, nieder-priore Takt-Quelle (z. B. interne PC-Echtzeit-Uhr, externe Takt-Quelle). Die freigewordene hoch-priore System-Takt-Quelle wird nun für das echtzeitfähige Programm eingesetzt. Das nicht-echtzeitfähige Betriebssystem ist bei diesem Verfahren von dem echtzeitfähigen Programm asynchron entkoppelt und die Takt-Quellen voneinander unabhängig.
Description
Die Erfindung beschreibt ein Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems
mit einem echtzeitfähigen Programm, basierend auf 2 unabhängigen Zeitgebern.
Echtzeitfähige Betriebssysteme kennzeichnen sich durch ein deterministisches Zeitverhalten bzgl. der
Ausführungszeiten (z. B. zeitgenaues aktivieren von Signalen) und den Reaktionszeiten (Latenzzeiten,
z. B. vom Eintreffen eines Sensorsignals bis zur programmtechnischen Abarbeitung). Darüberhinaus
besitzen echtzeitfähige Multitasking-Betriebssysteme ein deterministisches Zeitverhalten ihrer
Programm-Umlaufzeit (Task-Umschaltzeit).
Nicht-Echtzeitfähige Betriebssysteme besitzen kein, oder nur ein schwach ausgeprägtes
deterministisches Zeitverhalten. Die Programm-Umlaufzeit, als auch Latenzzeiten können stark
variieren, bis zum völligen Stillstand. Sie zeichnen sich jedoch in der Regel durch gute
Visualisierungsmöglichkeiten aus und ermöglichen eine standardisierte Bedienerführung, sowie den
Einsatz von standardisierten Entwicklungswerkzeugen.
Eine Kombination der Eigenschaften ist daher sinnvoll, insbesondere wenn das Betriebssystem für
Steuerungsaufgaben in der Automations- oder Messtechnik eingesetzt werden soll.
Die Programm-Umlaufzeit bei einer PC-basierenden Plattform wird durch den System-Interrupt (IRQ0)
vorgegeben, welcher vom systemeigenen Zeitgeber erzeugt wird. Nicht-echtzeitfähige Multitasking-
Betriebssysteme verwalten die Umlaufzeit der einzelnen Programme prioritätsgesteuert, welches
hoch-priore Programme gegenüber nieder-prioren bevorzugt. Im schlechtesten Fall wird daher ein
nieder-priores Programm vom Prozessor nicht mehr behandelt. Ein deterministisches Verhalten kann
hierbei nur dem höchst-prioren Programm, bzw. dem Verwaltungsalgorithmus des Betriebssystems
selbst zugeschrieben werden.
Bekannte Verfahren zur Implementation von echtzeitfähigen Programmen in nicht-echtzeitfähige
Betriebssysteme rufen daher das echtzeitfähige Programm direkt nach dem Eintreffen des System-
Interrupts auf (noch vor dem Aufruf des Verwaltungsalgorithmus des nicht-echtzeitfähigen
Betriebssystems), um ein deterministisches Zeitverhalten zu gewährleisten. Ein, in das echtzeitfähige
Programm zusätzlicher integrierter, Verteilungsalgorithmus ruft hierbei sequentiel sowohl die
eigentlichen Betriebssystem-Verwaltung, als auch das echtzeitfähige Programm auf. Durch die
sequentielle Abarbeitung des System-Interrupts bleiben die Prioritäten für das nicht-echtzeitfähige
Betriebssystem und für das echtzeitfähige Programm identisch. Dies kann zur Folge haben, daß das
Betriebssystem den deterministischen Ablauf blockieren kann.
Der erfindungsgemäße Lösungsansatz beruht dabei auf der software-technischen Trennung des
bestehenden nicht-echzeitfähigen Betriebssystem von seiner hoch-prioren System-Takt-Quelle und
dessen Anbindung an eine zweite, nieder-prioren Takt-Quelle (als 2. Takt-Quelle kommen hierbei
sowohl die interne Echtzeit-Uhr, als auch eine externe Takt-Quelle in Frage). Die somit freigewordene
hoch-priore System-Takt-Quelle wird nun für das echtzeitfähigen Programm eingesetzt. Das nicht-
echtzeitfähige Betriebsystem ist bei diesem Verfahren von dem echzeitfähigen Programm asynchron
entkoppelt. Die Takt-Quellen sind bei diesem Verfahren voneinander unabhängig.
Mit diesem Verfahren können für das echtzeitfähige Programm geringere Umlaufzeiten erreicht
werden, da im Gegensatz zu anderen echtzeitfähigen Betriebssystem-Erweiterungen kein zusätzlicher
Verwaltungsalgorithmus innerhalb des Echtzeit-Programms benötigt wird. Hierbei können typische
Umlaufzeiten des echtzeitfähigen Programms unterhalb 10 us (Mikro Sekunden) erreicht werden. Die
Umlaufzeiten des echtzeitfähigen Programms sind dabei abhängig von den Leistungsmerkmalen der
Hardware-Plattform frei einstellbar.
Ein weiterer Vorteil dieses Verfahrens besteht durch die unterschiedlichen Hardware-Interrupt-
Prioritäten der beiden Takt-Quellen. Die hochprioren System-Verwaltungs-Funktionen des
Betriebssystem können nun selbst durch den höchst-prioren Hardware-Interrupt (Takt-Quelle für das
echtzeitfähige Programm) unterbrochen und somit das deterministische Zeitverhalten des
echtzeitfähigen Programms aufrechterhalten werden.
Das Verfahren eignet sich besonders für PC-basierende Plattformen. Bei PC-basierenden Platformen
dient standardmäßig der interne System-Interrupt (IRQ0, höchstpriore Hardware-Interrupt) als System-
Takt-Quelle für das exsistierenden nicht-echtzeitfähigen Betriebssystems. Das nicht-echtzeitfähige
Betriebssystem wird nun von diesem Interrupt entkoppelt und einem neuen nieder-prioren Hardware-
Interrupt zugeordnet. Hierbei kommen insbesonde die Interrupts IRQ3, IRQ4 (serielle Schnittstellen-
Interrupts) oder der Interrupt IRQ8 (Echtzeit-Timer kaskadiert auf IRQ2) in Frage. Werden die
Interrupts IRQ3 oder IRQ4 als System-Takt-Quelle für das nicht-echtzeitfähige Betriebssystem genutzt
so kann dies durch einen externen Taktgeber an der seriellen Schnittstelle erfolgen. Wird hingegen
der Interrupt IRQ8 als System-Takt-Quelle genutzt, kann auf einen externen Taktgeber verzichtet
werden, jedoch muß ein Verwaltungsalgorithmus für die bestehende IRQ8 Interrupt-Behandlung
vorgesehen werden. Das echzeitfähige Programm wird nun an den freien System-Interrupt (IRQ0)
angehäng und kann asynchron zum nicht-echtzeitfähigen Betriebssystem ablaufen.
Das echzeitfähige Programm wird zur Laufzeit des nicht-echtzeitfähigen Betriebssystems installiert.
Hierbei wird folgende Reihenfolge eingehalten:
(Siehe Fig. 1 Betriebssystem vor Installation der Echtzeiterweiterung)
(Siehe Fig. 1 Betriebssystem vor Installation der Echtzeiterweiterung)
- a) Deaktivieren sämtlicher Hardware-Interrupts
- b) Umsetzung des nicht-echzeitfähigen Betriebssystems auf den nieder-prioren Interrupt (2. Takt- Geber)
- c) Ankopplung des echtzeitfähigen Subsystems an den vorherigen hoch-prioren Interrupt (System- Takt-Geber)
- d) Einstellung der Zeitbasis für den hoch-prioren Interrupt-Takt
- e) Einstellung der Zeitbasis für den nieder-prioren Interrupt-Takt (falls programmierbar)
- f) Aktivieren sämtlicher Hardware-Interrupts
(Siehe
Fig.
2 Betriebssystem nach Installation der Echtzeiterweiterung)
Claims (5)
1. Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems mit einem echtzeitfähigen
Programm, dadurch gekennzeichnet, daß das bestehenden nicht-echzeitfähigen Betriebssystem
software-technisch von seiner hoch-prioren System-Takt-Quelle getrennt wird und einer zweiten,
nieder-prioren System-Takt-Quelle zugeordnet wird. Die somit freigewordene hoch-priore System-
Takt-Quelle wird nun für das echtzeitfähigen Programm eingesetzt.
2. Verfahren gemäß Patentanspruch 1, dadurch gekennzeichnet, daß als 2. Takt-Quelle für das nicht-
echtzeitfähige Programm sowohl die interne Echtzeit-Uhr-Steuerung, als auch eine externe Takt-
Quelle in Frage kommt.
3. Verfahren gemäß Patentanspruch 1 und 2, dadurch gekennzeichnet, das die Takt-Quellen
voneinander unabhängig sind.
4. Verfahren gemäß Patentanspruch 1, dadurch gekennzeichnet, daß die Programm-Umlaufzeit des
echtzeitfähigen Programms, abhängig von den Leistungsmerkmalen der verwendeten Hardware-
Plattform frei einstellbar ist.
5. Vorrichtung zur Erzeugung einer externen Takt-Quelle, gemäß Patentanspruch 2, dadurch
gekennzeichnet, das Interrupts über die serielle Schnittstelle ausgelöst werden können.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE2000100571 DE10000571A1 (de) | 2000-01-10 | 2000-01-10 | Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems mit einem echtzeitfähigen Programm, basierend auf 2 unabhängigen Zeitgebern |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE2000100571 DE10000571A1 (de) | 2000-01-10 | 2000-01-10 | Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems mit einem echtzeitfähigen Programm, basierend auf 2 unabhängigen Zeitgebern |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE10000571A1 true DE10000571A1 (de) | 2001-07-19 |
Family
ID=7627022
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE2000100571 Ceased DE10000571A1 (de) | 2000-01-10 | 2000-01-10 | Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems mit einem echtzeitfähigen Programm, basierend auf 2 unabhängigen Zeitgebern |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE10000571A1 (de) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4104365C1 (de) * | 1991-02-13 | 1992-03-05 | Siemens Ag, 8000 Muenchen, De | |
| EP0499178A1 (de) * | 1991-02-08 | 1992-08-19 | Nec Corporation | Systemtaktumschaltverfahren für Mikroprozessor |
-
2000
- 2000-01-10 DE DE2000100571 patent/DE10000571A1/de not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0499178A1 (de) * | 1991-02-08 | 1992-08-19 | Nec Corporation | Systemtaktumschaltverfahren für Mikroprozessor |
| DE4104365C1 (de) * | 1991-02-13 | 1992-03-05 | Siemens Ag, 8000 Muenchen, De |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE68923666T2 (de) | Staffelverfahren zur Ausführung von verschachtelten Schleifen in Mehrprozessorrechnern. | |
| EP2232369B1 (de) | Computersystem, steuerungsvorrichtung für eine maschine, insbesondere für einen industrieroboter, und industrieroboter | |
| US5077763A (en) | Mechanism for measuring the service times of software and hardware components in complex systems | |
| DE19648422A1 (de) | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm | |
| EP0655682A1 (de) | Recheneinheit mit mehreren ausführbaren Tasks | |
| DE102010043569A1 (de) | Verfahren und Vorrichtung zum Planen von Aufgaben zur Steuerung von Hardwareeinrichtungen | |
| EP0764906A3 (de) | Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems | |
| DE10300606B4 (de) | Verfahren und Steuereinrichtung zum Anfahren einer Greifvorrichtung an ein sich bewegendes Stückgut | |
| EP0991986B1 (de) | Verfahren zur prozessüberwachung, steuerung und regelung | |
| EP4012516A1 (de) | Ausführungsumgebung für eine speicherprogrammierbare steuerung | |
| DE10000571A1 (de) | Verfahren zur Erweiterung eines nicht-echtzeitfähigen Betriebssystems mit einem echtzeitfähigen Programm, basierend auf 2 unabhängigen Zeitgebern | |
| DE10065419A1 (de) | Industrielle Steuerung mit taktsynchronem Ablaufebenenmodell | |
| EP1320047B1 (de) | Verfahren zur Analyse des Zeitverhaltens komplexer verteilter Systeme | |
| DE102018221534A1 (de) | System und Verfahren zum Messen der Reaktionszeit von Ereignisketten | |
| DE10039277A1 (de) | Verfahren für die termingerechte Ausführung einer Zielfunktion | |
| EP0616274B1 (de) | Synchronisationsverfahren für Automatisierungssysteme | |
| EP1136896A3 (de) | Hochverfügbares Rechnersystem und Verfahren zur Umschaltung von Bearbeitungsprogrammen eines hochverfügbaren Rechnersystems | |
| EP1459182B1 (de) | Fehlertolerantes automatisierungssystem bzw. verfahren zur fehlerbehandlung bei einem echtzeit-automatisierungssystem | |
| EP3798753A1 (de) | Verfahren zur einteilung einer oder mehrerer steuerungsanwendungen auf einer industriellen steuervorrichtung und konfigurationswerkzeug dafür | |
| Carpenito et al. | The allocation of non-identical machines among non-identical servers | |
| Kelessoglou | Simulation and comparative evaluation of flexible automotive assembly layouts | |
| KR0131032B1 (ko) | 연속공정용 라인 제어 장치를 위한 다중 타스크 실행 시간의 자동 조정 장치 및 방법 | |
| EP1420341A1 (de) | Verfahren zur Steuerung eines Automatisierungssystems | |
| DE102004006089A1 (de) | Testfälle für eine Testvorrichtung | |
| AT513762B1 (de) | Verfahren zum Schutz vor Unterbrechung einer festgelegten Befehlssequenz eines Prozesses durch einen anderen Prozess in einer Datenverarbeitungsanlage |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8131 | Rejection |