Autor Beitrag
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 27.05.08 13:39 
Ich arbeite derzeit an einem Projekt, bei dem ich ein Betriebssystem auf einem Controller überwachen möchte. Dafür arbeite ich an einem Programm auf dem Computer, welches mit dem Controller über eine serielle Verbindung (38400 Baud, ca. 5KB\s). verbunden ist. Das Betriebssystem bietet hierbei die Möglichkeit von bis zu 255 Tasks, von denen einer die Überwachungssoftware ist. Andere Tasks önnen dynamisch alloziiert (erzeugt) und dealloziiert (gelöscht) werden. Der Task-Control-Block (TCB) eines Tasks ist ca. 40 Byte groß, d.h. das Übertragen ohne Komprimierung oder andere Techniken zur Reduktion der zu übertragenden Date ist nicht möglich. Als weitere Bedingung kommt hinzu, dass die Verbindung wenn möglich nur zu 50-75% ausgelastetsein sollte (1. als Puffer für Spitzen, 2. für Anwendungsspezifische Daten).

Der Aufwand auf PC-Seite ist egal, hauptsache die Verwaltung auf dem Controller geht ohne allzu komplizierte Änderungen umzusetzen (da ich Echtzeit-Fähigkeit garantieren muss).

Eine Lösung, die ich bisher habe, ist eine inkrementelle Aktualisierung der Daten, basierend auf mitgeloggten Änderungsflags, ODER die Reduktion auf die Übertragung allein der Grundinformationen (Task-Prio, Laufzeit, Status, Wartezeit, Event-Pointer). Aber selbst diese Lösung liegt noch oberhalb der Bandbreite, die ich für diese Updates verwenden wollte.

Wer noch zusätzliche Informationen brauch, einfach fragen, reich ich ggf. mit nach.

Bin auf weitere Lösungsansätze gespannt.

TIA, BenBE.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.