Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.



Ähnliche Dokumente
Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Round-Robin Scheduling (RR)

Anleitung über den Umgang mit Schildern

1 topologisches Sortieren

SMS/ MMS Multimedia Center

Es kann maximal ein Prozess die Umladestelle benutzen.

Nutzung von GiS BasePac 8 im Netzwerk

3.14 Die Programmieroberfläche Programmierung

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Grundlagen verteilter Systeme

Zwischenablage (Bilder, Texte,...)

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Dokumentation zur Versendung der Statistik Daten

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

GEVITAS Farben-Reaktionstest

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

V o r w o r t. A n l e i t u n g

Dokumentation IBIS Monitor

Enigmail Konfiguration

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Domänenanalyse Threadverwaltung/Scheduling

Die elektronische Rechnung als Fortsetzung der elektronischen Beauftragung so einfach geht es:

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Erstellen von x-y-diagrammen in OpenOffice.calc

NODELOCKED LIZENZ generieren (ab ST4)

multisign Signatur-Prüfwerkzeug Handbuch Security Networks AG Stand:

Dokumentation Schedulingverfahren

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Anleitung. Verschieben des alten -Postfachs (z.b. unter Thunderbird) in den neuen Open Xchange-Account

Bevor Sie mit dem Wechsel Ihres Sicherheitsmediums beginnen können, sollten Sie die folgenden Punkte beachten oder überprüfen:

Benutzung der LS-Miniscanner

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Bekannte Effekte bei Soft- und Hardware der ESTEC Datenlogger sowie der PC Auswertesoftware

ecaros2 - Accountmanager

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Erweiterungen Webportal

Inventur. Bemerkung. / Inventur

Installation OMNIKEY 3121 USB

Installationsanleitung Sander und Doll Mobilaufmaß. Stand

Synchronisations- Assistent

Mobilgeräteverwaltung

Gruppenrichtlinien und Softwareverteilung

Externe Abfrage von für Benutzer der HSA über Mozilla-Thunderbird

Echtzeitscheduling (1)

Media Teil III. Begriffe, Definitionen, Übungen

7 Rechnen mit Polynomen

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

CC Modul Leadpark. 1. Setup 1.1 Providerdaten 1.2 Einstellungen 1.3 Qualifizierungsstati 1.4 Reklamationsstati 1.5 Design 1.

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Anbindung des eibport an das Internet

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Simulation LIF5000. Abbildung 1

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar inkl. zusätzlichem Übungsanhang K-W81-G-UA

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

ITT AQUAVIEW WEB-Server. Kurzbedienungsanleitung

Übung - Konfigurieren einer Windows 7-Firewall

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

GPS Garmin MapSource - Track erstellen und nutzen

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Ein Buch entsteht. Ein langer Weg

KSN-WEBMAIL-BASICS. November Grundlagen zum Thema Webmail TEIL A. Benutzen von Webmail

Energetische Klassen von Gebäuden

Windows 10 - Probleme

S7-Hantierungsbausteine für R355, R6000 und R2700

WINLINK 2000 SPAM-KONTROLLE UND NACHRICHTEN PRIORITÄTEN Aktualisiert 27. März 2012

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

Wie Sie mit Mastern arbeiten

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Produkte Info Touchscreen-Panel

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

Daten sammeln, darstellen, auswerten

Softwarelösungen: Versuch 4

Transaktionsempfehlungen im ebase Online nutzen

Motorsegler Reservierungs-System. Reservierungsplatz

Eigene Dokumente, Fotos, Bilder etc. sichern

Print2CAD 2017, 8th Generation. Netzwerkversionen

mobifleet Beschreibung 1. Terminverwaltung in der Zentrale

Schnelleinstieg in die (cs) AuftragPro

Professionelle Seminare im Bereich MS-Office

Lehrer: Einschreibemethoden

P-touch Transfer Manager verwenden

Nutzung des Retain-Archivs

Anleitung Online-Beratung

von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse Liestal ATG

Konzepte der Informatik

Einführungskurs MOODLE Themen:

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Domänenmodell: Fadenkommunikation und -synchronisation

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Transkript:

5. Steuerung technischer Prozesse 5.1 Echtzeit (real time) Im Gegensatz zu Aufgabenstellungen aus der Büroumgebung, wo der Anwender mehr oder weniger geduldig wartet, bis der Computer ein Ergebnis liefert (z.b. Formatieren eines Dokuments, Berechnen der neuen Werte bei einer Tabellenkalkulation usw.) wird bei der Steuerung von techn. Prozessen vorausgesetzt, daß das Rechenergebnis rechtzeitig vorliegt. Somit werden an ein Rechenergebnis zwei Anforderungen gestellt: 1. ) Richtigkeit des Ergebnisses 2. ) Rechtzeitigkeit des Ergebnisses Beispiel: Paketsortierung Paket 2 1 Weiche Lesestation 3 Ein Rechner liest über Lesestationen die Informationen von Paketen und steuert 3 Weichen einer Paketsortier-Anlage. Die Aufgabe des Rechners ist: - Information lesen - Weg ermitteln - Weiche stellen => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden. Der technische Prozeß gibt die maximal zulässige Reaktionszeit vor Definitionen: t p = Prozeßzeit t v = Verarbeitungszeit des Rechners für eine Aufgabe t r = Reaktionszeit des Rechners für eine Aufgabe Echtzeit : Reaktionszeit des Rechners <= Prozeßzeit

worst case Bei Steuerungsaufgaben spielt der Begriff "worst case" eine wichtige Rolle. Worst Case ist der schlimmste Fall für die Zeitbedingung. Dieser Fall muß für jede Aufgabenstellung ermittelt werden. Beispiel: 3 Pakete kommen gleichzeitig an 3 Lesestationen an. Zwangsläufig wird ein Paket als letztes vom Rechner behandelt. Trotzdem muß die Weiche für dieses Paket rechtzeitig gestellt werden. d.h Reaktionszeit <= Prozeßzeit. Echtzeitbedingung muß auch unter Worst-Case-Bedingung eingehalten werden Priorität Die Reihenfolge der Abarbeitung wird durch Prioritäten festgelegt. Kürzeste Prozeßzeit erfordert kürzeste Reaktionszeit erfordert höchste Priorität! Beispiel: Bei Lesestation 1 hat das Paket die höchste Geschwindigkeit t p1 = 1,5 ms, t p2 = t p3 = 3 ms, t v1 = t v2 = t v3 = 1 ms Station 1 hat höchste Priorität t r1 = Reaktionszeit für Weiche 1 = t v1 = 1 ms <= t p1 (1,5 ms), => EZB ok t r2 = t r1 + t v2 = t v1 + t v2 = 2 ms < t p2 (3 ms), => EZB ok t r3 = tr2 + t v3 = t v1 + t v2 + t v3 = 3 ms = t p3 (3 ms), => EZB ok Die Echtzeitbedingung ist für alle Teilaufgaben erfüllt, d.h. die Echtzeitbedingung für die komplette Aufgabe ist erfüllt. Beispiel für falsche Prioritätenwahl: Station 2 hat höchste Priorität t r2 = t v2 = 1 ms <= t p2 (3 ms), t r1 = t v2 + t v1 = 2 ms > t p2 (1,5 ms), t r3 = t v1 + t v2 + t v3 = 3 ms = t p3 (3 ms), => EZB ok => EZB nicht erfüllt => EZB ok Die Echtzeitbedingung ist nicht für alle Teilaufgaben erfüllt, d.h. die Echtzeitbedingung für die komplette Aufgabe ist nicht erfüllt. Hinweis: Wie man sich leicht vorstellen kann sind Fehler, die aus einer Verletzung der Echtzeitbedingung entstehen, sehr schwer zu finden, da diese Fehler meist nur unter bestimmten Prozeßbedingungen auftreten ( hier: an Weiche1 und an einer zweiten Weiche müssen gleichzeitig Pakete anstehen) und diese Situation eventuell sehr selten auftritt.

5.2 Tasks Im Gegensatz zu einem Programm, unter dem man die statische Beschreibung eines Programmablaufs versteht, bedeutet Task ein aktuell ausgeführtes bzw. ausführbereites Programm zusammen mit seinen Daten. Insbesondere können mehrere eigenständige Tasks den gleichen Programmcode benutzen. Eine Task besteht somit aus: Programmcode Daten (Task-Workspace) mit: lokalen Daten privatem Stack Taskkontrollblock (TKB) Taskkontrollblock Der Taskkontrollblock ist eine Datenstruktur innerhalb eines Echtzeitbetriebssystems, das vom Betriebssystem zur Verwaltung von Tasks benötigt wird. Der Taskkontrollblock enthält üblicherweise folgende Informationen: Priorität Verweis (Zeiger) auf Daten und Programmcode benötigte Betriebssystem-Resourcen (z.b. Drucker,...) Taskzustand Taskkontext Task1 Task2 Task3 Task4 Task5 TCB1 TCB2 TCB3 TCB4 TCB5 Daten Task1 Daten Task2 Daten Task3 Daten Task4 Daten Task5 Programmcode A Programmcode B Programmcode C

Taskkontext Der Taskkontext ist ein Abbild der Daten, die der Prozessor zum Fortsetzen der Task nach einer Unterbrechung benötigt. Dies sind: ProgramCounter (PC) Stackpointer Abbild aller Register Da auch bei mehreren Tasks ja nur ein Prozessor zur Verfügung steht, kann vom Prozessor immer nur eine Task zu einem Zeitpunkt bearbeitet werden. Der Prozessor schaltet daher zwischen den Tasks hin und her, d.h. Tasks laufen quasi parallel ab. Zum Umschalten zwischen Tasks wird vom Betriebsystem der Kontext einer Task in die echten Prozessorregister geladen, die Task läuft ab. Beim Zurückschalten werden die Inhalte der Prozessorregister in den Taskkontext zurückgeladen und der Kontext einer anderen Task in den Prozessor geladen. Diesen Vorgang nennt man Kontext- Switching Taskzustände Tasks nehmen, bedingt durch den quasiparallelen Betrieb, verschiedene Zustände an. Die Anzahl der Zustände und die möglichen Zustandsübergänge werden von dem verwendeten Betriebssystem bestimmt. Mindestens die folgenden 3 Zustände sind aber in jedem Echtzeitsystem notwendig: aktiv 1 3 4 wartend bereit 2 Zustände: aktiv (running) Task wird gerade vom Prozessor bearbeitet. Es befindet sich nur eine einzige Task in diesem Zustand wartend (waiting) Task wartet auf ein externes Ereignis von der Peripherie oder auf eine Nachricht von einer anderen Task. bereit (ready) Task ist bereit zum Weiterarbeiten, muß aber warten bis sie zugeteilt wird

Zustandsübergänge 1 Task benötigt ein Ergebnis von der Peripherie oder von einer anderen Task, um sinnvoll weiterarbeiten zu können. Die Task gibt daher mit einem Betriebssystemaufruf wait oder Receive freiwillig den Prozessor ab. 2 Das erwartete Ereignis ist eingetroffen. Die Task ist bereit, bei nächster Gelegenheit aktiv zu werden. 3 Die Task wird vom Betriebssystem zugeteilt, entweder weil sie an der Reihe ist oder weil sie eine höhere Priorität besitzt als die gerade aktive Task. 4 Eine höherpriore Task ist lauffähig geworden. Die aktive Task wird verdrängt oder Die Zeitscheibe für die aktive Task ist abgelaufen.

Übung Tasks 1. Aufgabe: In einem Echtzeitsystem werden 4 Tasks T1, T2, T3 und T4 bearbeitet. Es sind pro Task Ti die Prozeßzeit t pi und die Verarbeitungszeit t vi bekannt. T1: t p1 = 18 ms t v1 = 2,5 ms T2: t p2 = 3 ms t v2 = 1,0 ms T3: t p3 = 2 ms t v3 = 0,5 ms T4: t p4 = 6 ms t v4 = 1,5 ms a) Ist es von der Zeitanforderung her prinzipiell möglich, alle vier Tasks von einem Rechner bearbeiten zu lassen? b) Wie müssen die Prioritäten veteilt werden, um für alle Tasks die Echtzeitbedingung einzuhalten? Zeichnen Sie in 5 Diagrammen zunächst den Zeitverlauf der einzelnen Tasks und als letztes Diagramm die Rechnerbelegung mit allen Tasks. 2. Aufgabe: Bei der Herstellung von Kugellagern werden die an einer Zählstation vorbeilaufenden Kugeln von einem Rechner gezählt. Jede Kugel löst einen Alarm aus und es wird festgestellt, ob die für ein Kugellager notwendige Kugelanzahl z erreicht ist. Sind z Kugeln erreicht, so wird vom Rechner eine Protokollierung sowie die für die weitere Steuerung notwendigen Aufgaben durchgeführt. Der Zeitabstand zwischen zwei Kugeln variiert statistisch gleichverteilt zwischen t min und t max. Die Alarmanalysezeit (Zeit für Alarmerkennung und Taskumschaltung ) beträgt t A, die durchschnittliche Befehlszeit beträgt t B. Abhängig davon, ob die notwendige Kugelanzahl z erreicht ist, braucht das Alarmprogramm n 1 (nicht erreicht) oder n 2 (=erreicht) Befehle. a) Berechnen Sie die mittlere Rechnerauslastung p für folgendes Zahlenbeispiel: t A = 50 µs: t B = 5 µs n 1 = 20 n 2 = 500 t min = 50 ms t max = 450ms z = 8 b) Wieviele Zählstationen können an den Rechner angeschlossen werden, wenn die mittlere Auslastung 3% nicht überschreiten soll? c) Wieviele Zählstationen können maximal angeschlossen werden? Nun soll der Programmteil 2 ( Anzahl z erreicht ) als eigene Task implementiert werden, die unterbrochen werden kann. d) Wieviele Zählstationen können jetzt maximal angeschlossen werden, wie groß ist dann die mittlere Auslastung?

5.3 Taskzuteilung, Scheduling Die Tasks werden als eigenständige Programmeinheiten betrachtet, denen abhängig von bestimmten Gegebenheiten (Priorität, Zeit, Taskzustand) der Prozessor zugeteilt oder entzogen wird. Diese Zuteilung übernimmt ein Modul des Betriebssystems, der Scheduler bzw. Dispatcher. Je nach Typ des Betriebssystems erfolgt die Zuteilung nach unterschiedlichen Kriterien, so daß eine Reihe von Zuteilungsmethoden existieren. FCFS (First Come First Serve) Tasks werden in der Reihenfolge ihres zeitlichen Auftretens (d.h. in der zeitlichen Reihenfolge, in der sie den Zustand bereit annehmen), in eine Warteschlange eingeordnet und in dieser Reihenfolge zugeteilt. Prozessor Warteschlange aller lauffähigen Tasks Bewertung: faires Verfahren, alle Tasks werden gleich behandelt Tasks mit langer Verarbeitungszeit blockieren die anderen Tasks, da Tasks nicht mehr verdrängt werden können. Das Verfahren ist nicht echzeitfähig! Zeitscheibenverfahren (Round Robin) Die Zuteilung erfolgt nach dem FCFS-Verfahren. Allerdings wird die zugeteilte Task nur für ein bestimmtes Zeitintervall bearbeitet. Nach Ablauf dieser Zeitscheibe wird die Task abgebrochen und wieder an letzter Stelle in die Warteschlange eingeordnet. Bewertung: Tasks mit kürzerer Laufzeit werden bevorzugt, da Tasks mit langer Laufzeit vom Prozessor verdrängt werden und erneut am Zuteilungsverfahren teilnehmen müssen.

Prioritätsgesteuertes Verfahren Den Tasks werden vom Programmierer Prioritäten zugewiesen. Tasks mit höherer Priorität werden vor den Tasks mit niederer Priorität zugeteilt. Zusätzlich wird eine Tasks, die bereits zugeteilt ist, von einer höherprioren Task verdrängt. Dieses Verfahren wird durch eine Warteschlange für jede Prioritätsstufe realisiert. Prozessor Innerhalb einer Prioritätsebene gilt dann wieder das FCFS-Verfahren bzw. das Zeitscheibenverfahren. Bewertung: Echtzeitfähiges Verfahren Das Zeitverhalten von Tasks einer Prioritätsstufe kann nur von Tasks mit höherer Priorität beinflußt werden. Varianten: Dynamische Prioritäten Die Priorität von Tasks wird bei längerer Wartezeit schrittweise erhöht. Deadline Scheduling Statt einer Priorität wird den Tasks eine maximale Reaktionszeit (Deadline) zugeordnet. Diejenige Task, die vom aktuellen Zeitpunkt aus den geringsten Zeitabstand zu ihrer Deadline hat erhält die höchste Priorität.

5.4 Taskkommunikation Tasks können auf einem Rechner ohne Verbindung zu anderen Tasks ablaufen. Meistens jedoch wird eine größere Aufgabe in mehrere Tasks aufgeteilt, die untereinander Nachrichten (Aufträge, Ergebnisse...) austauschen. Beispiel: Tasks steuern verschiedene Teilprozesse eines technischen Prozesses. Das Auftreten von kritischen Prozeßsituationen in jedem Teilprozeß muß an einem Drucker protokolliert werden. Die Teilaufgabe Drucken wird als separate Task mit niederer Priorität realisiert, die Druckaufträge von den anderen Tasks ausführt. technischer Prozeß Task 1 Task 2 Task 3 Drucken Send-Receive-Mechanismus Send und Receive sind Betriebssystemaufrufe zur Taskkommunikation. Senden Send (Mailbox-Name, Nachricht) Eine Task sendet eine Nachricht. Da das Senden einer Nachricht an eine Empfangstasks unabhängig von deren Taskzustand ist, wird die Nachricht an eine Mailbox gesendet und dort in einer Nachrichtenwarteschlange zwischengespeichert.

Empfangen Receive(Mailbox-Name, Nachrichtenpuffer) Eine Task hat den aktuellen Auftrag abgearbeitet und will mit dem Receive- Aufruf eine neue Nachricht aus der Mailbox auslesen. Dabei können zwei Situationen auftreten: Fall1: In der Mailbox ist eine Nachricht vorhanden. Durch den Receive-Aufruf wird die 1.Nachricht aus der Mailbox entnommen. Die Task bleibt im Zustand running und arbeitet weiter. Fall2: Die Mailbox ist leer. Die Task kann momentan bis zum Eintreffen der Nachricht nicht weiterarbeiten und geht in den Zustand wartend über. Der Prozessor wird für eine andere Task freigegeben. Struktur einer Mailbox Eine Mailbox besteht aus zwei Warteschlangen. In einer Warteschlange werden die Nachrichten, in der anderen die wartenden Tasks gespeichert. Die Mailbox ordnet der ersten wartenden Task die erste Nachricht zu. Die Zuordnung erfolgt solange, bis entweder keine Tasks oder keine Nachrichten Nachrichten Tasks + Zähler Schreib/Lesezeiger pro WS mehr vorhanden sind.

Übung Mailbox Task A führt zu den Zeitpunkten t 1, t 2, t 3, t 5, t 10 und t 11 den Betriebssystem- Aufruf Send (MB_A, Nachricht) aus. Task B führt zu den Zeitpunkten t 4, t 6, t 7, t 8, t 9 und t 12 den Betriebssystem-Aufruf Receive (MB_A,Nachricht) aus. Zum Zeitpunkt t 0 ist die Mailbox MB_A leer, d.h. es wartet weder eine Nachricht noch eine Task an der Mailbox. Beschreiben Sie im folgenden Diagramm die Situation an der Mailbox vom Zeitpunkt t 0 bis t 12. Nachrichten- Warteschlange t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t1 0 t 11 t 12 Task- Warteschlange