Aufgaben Embedded Systems

Gast #3997556
Lesenswert?

Frank schrieb:
> Hab die Aufgabe nicht gelesen, du scheinbar auch nicht.

Was soll denn bitte diese Unterstellung ?
Ich kann die Frage nur konkretisieren, wenn ich an einer bestimmten 
Stelle der Aufgabe hänge und nicht weiterkomme.
Ich verstehe die Aufgabe aber im Allgemeinen schon nicht.

Da Daten kontinuierlich anfallen und in den Puffer geschrieben werden 
sollen, wird sich jedes Mal die höchstpriore Task (PT3) durchsetzen und 
den Puffer voll schreiben. Ende.
So viel zu meinem Verständnis der Aufgabe.

Daher wäre ich sehr dankbar, wenn jemand mit mehr Ahnung mal mit seinen 
eigenen Worten erklären könnte, wie das ganze funktionieren soll.
Gast #3997735
Lesenswert?

Iseh schrieb:
> Da Daten kontinuierlich anfallen und in den Puffer geschrieben werden
> sollen, wird sich jedes Mal die höchstpriore Task (PT3) durchsetzen und
> den Puffer voll schreiben. Ende.
> So viel zu meinem Verständnis der Aufgabe.

CT1 ist aber höher Priorisiert. Sofern die DB also schnell genug ist, 
wird der Speicher schon auch noch geleert.. ;)
Gast #3998073
Lesenswert?

Nur weil ein Task höher priorisiert ist, muss das noch lange nicht 
bedeuten, dass er in einem Zeitfenster mehr Datensätze produziert, als 
der andere Task konsumiert.

Man muss berücksichtigen, wieviel Überschuss die produzierenden Tasks 
maximal erzeugen, so dass der Puffer nicht überläuft.

Ich denke, dass die konkreten Prioritäten dabei keine Rolle spielen.
#3998078
Lesenswert?

Stefan Us schrieb:

> Ich denke, dass die konkreten Prioritäten dabei keine Rolle spielen.

Ich denke, die Prioritäten sind gemeinsam mit der Erwähnung von 
preemptive Scheduling, nur deswegen aufgeführt um anzudeuten dass PT1 
jederzeit von PT3 unterbrochen werden kann. Erst dadurch entsteht ein 
Sinn in der Teilfrage b), die nach Synchronisationsnotwendigkeiten 
fragt.
#3998100
Lesenswert?

Florian Otte schrieb:
> Danke für die Antworten.
>
> Was verhindert denn konkret ein dauerhaftes Laufen von PT3 (höchste
> Priorität und kontinuierliche Datenzufuhr) ?

Das so ein System höchst widersinnig am Konzept eines Multitasking 
vorbei geht, wenn ein einzelner Task das komplette System lahmlegen 
kann. D.h. hier ist der Scheduler gefragt, auch den anderen Tasks eine 
Chance zu geben. Da den Mittelweg zu finden ist in der Praxis nicht so 
einfach.

Aber selbst dann: irgendwann ist die FiFo voll und dann muss PT3 warten 
und anderen Prozessen eine Chance geben. Für PT2 und PT1 sieht die Sache 
schlecht aus, die können ebenfalls nichts tun. Nur der DB-Task kann die 
FiFo ausräumen.

Die Frage ist im übrigen: was genau bedeutet "kontinuierlich"? In diesem 
Zusammenhang wird man unter kontinuierlich nicht unbedingt verstehen, 
dass nach dem Absetzen einer Message in den Ringbuffer bereit die 
nächste Message da ist. Denn irgendwann muss der Task ja auch erst mal 
seine Daten checken um die nächste Message generieren zu können.
'kontinuierlich' ist m.M.n. in der EDV ein sehr dehnbarer Begriff und 
bedeutet meist: in einigermassen regelmässigen Zeitabständen und nicht: 
in einem Rutsch immerzu und ohne Pause dazwischen.
#3998137
Lesenswert?

Okay, also soll "kontinuierlich" vermutlich eher im Sinne von 
"regelmäßig" verstanden werden.

Zur Beantwortung von a) müsste man dann doch aber wissen, mit welcher 
Regelmäßigkeit Daten nachgeführt werden, um über eine mögliche Größe des 
Speichers urteilen zu können, oder ?
#3998299
Lesenswert?

Florian Otte schrieb:
> Okay, also soll "kontinuierlich" vermutlich eher im Sinne von
> "regelmäßig" verstanden werden.
>
> Zur Beantwortung von a) müsste man dann doch aber wissen, mit welcher
> Regelmäßigkeit Daten nachgeführt werden, um über eine mögliche Größe des
> Speichers urteilen zu können, oder ?

Da hier keien Zahlen angegeben sind, denke ich, dass eine Aufzählung der 
grundsätzlichen Zusammenhänge reicht.
Die Antwort könnte sonst ja auch lauten: Die Größe saug ich mir aus den 
Fingern.

Eines kann man auf jeden Fall sagen. Nämlich dass die Rate der 
Zulieferer zusammengenommen auf jeden Fall nicht größer sein darf, als 
die Rate in der der Datenbank Task Werte aus der FiFo raus nimmt. Denn 
sonst wird der Ringbuffer unweigerlich irgendwann voll. In 
Ausnahmefällen darf die Zuliefererrate etwas höher sein, aber nur so 
lange, so lange der Ringbuffer diesen Überschuss aufnehmen kann.

Ja ich weiß, das klingt nach einer Binsenweisheit. Allerdings ist dieser 
simple Zusammenhang vielen nicht wirklich klar.
#3999986
Lesenswert?

Kontinuierlich bedeutet zB mit 9600 Baud, dh all Millisekunde ein Byte. 
Wenn man gleichzeitig, dh waehrend 10ms einen LCD beschreibt, eine 
Floatingpoint rechnung ausfuehrt, kann man das Byte nicht bearbeiten, 
sondern muss es zwischenlagern, bis wieder Zeit vorhanden ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren