scheduler

OP #401457
Lesenswert?
• ▲
▼
hallo zusammen,

programmiere auf einen cc2431 mit einem 8051 prozessor.
habe mir einen scheduler geschrieben nach dem folgenden prinzip:
1. 4 prioritäten
2. jede prioritätsstufe arbeitet mit einem fifo
3. 4 ist die höchste priorität
4. es kommt immer der task mit der höchsten prioritätsstufe an die
reihe und ist nicht preemtiv.

jetzt möchte ich gerne noch ein zeitverhalten über timer einbauen.
kann mir da jemand vielleicht einen ansatz dafür liefer, dh. ne idee
welchen timer man dafür verwendet usw.

vielen dank im voraus

gruß

jimbo
Gast #401458
Lesenswert?
• ▲
▼
HI, das Thema interessiert mich auch ziemlich, kannst Du mir evtl. ein
paar Links geben, oder entpsrechende Literatur ? Wieso lässt du nicht
einfach einen der Timer laufen und generierst so einen konstanten
Interruptinterval, bei dem jedesmal die Priorität der Prozesse und die
Bearbeitung festgelegt werden ?
mfg
OP #401459
Lesenswert?
• ▲
▼
hi,

mh literatur hab ich keine dazu. hab mir das "selber" ausgedacht,
bzw. das angewendet was ich noch aus dem studium weiß.

wegen timer:
ja einen timer möchte ich verwenden. weiß bloß noch nicht genau wie.

ablauf meines schedulers.

1. starte tasks lege sie in ein task-pool ab. dieser besitzt vier
prioritätsklassen.
 1. T T T T (niedrig)
 2. T T T
 3. T T T T T
 4. T T T T T (hoch)
 jeweils ein fifo.
2. überprüfe nun ob im fifo mit der höchsten priorität ein task
vorhanden ist, wenn ja führe ihn aus (non-preemptiv) und wenn er fertig
ist lege ihn in eine timer queue. wenn nicht suche in nächster stufe
usw.
3. jeder task besitzt eine zeit-dauer, nun soll die timer queue einen
interrupt generieren wenn eine zeit-dauer eines tasks abgelaufen ist
und ihn wieder in den obigen fifo einhängen (je nach prioritätsstufe).
ist nötig da manche tasks nur alle zwanzig minuten arbeiten müssen und
deshalb nicht in den fifo gehören, sonst bekomme ich probleme mit
meinem power management.

hoffe das war verständlich. aber soweit die theorie. funktioniert auch
so weit bis auf die timer-queue.
finde keinen richtigen ansatz wie ich anfangen kann?!?!?!

hoffe mir kann da jemand weiter helfen.

gruß

jimbo
OP #401461
Lesenswert?
• ▲
▼
hallo PeDa,

vielen dank für den link. werd mir das mal anschauen.
bin mit meinem ansatz auch schon weiter gekommen.
hab mir jetzt eine callbackfunktion geschrieben die mir die daten aus
dem fifo holt, und in eine struktur ablegt, und einen zeitstempel mit
übergeben bekommt.
ist dieser abgelaufen wird eine funktion aufgerufen (callback) die die
daten der task wieder aus der struktur holt und wieder in den fifo
einhängt. läuft aber noch nicht einwandfrei.

gruß

jimbo

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.