Forum: Mikrocontroller und Digitale Elektronik Oberbegriff für task, function, loop


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Walter T. (nicolas)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich schreibe gerade an der Doku für ein µC-Projekt. Dort gibt es 
verschiedene Zeitebenen. Die langsamste ist die main loop, die beiden 
schnelleren Ebenen sind als ISRs unter dem Namen "slow" und "fast" mit 
unterschiedlichen Prioritäten implementiert.

Jetzt suche ich einen (englischen) Begriff, der auf alle drei Entitäten 
zutrifft. "task" scheint Systemen mit einem Scheduler vorbehalten zu 
sein. "function" trifft nicht auf die langsame Hauptschleife zu ,"loop" 
nicht auf die beiden Zeitebenen mit den höheren Wiederholraten.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Das sind alles einfach nur "Aufgaben".
Task, Funktion, Methode, Sketch usw. sind nur verschiedene Namen dafür.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
Walter T. schrieb:
> "function" trifft nicht auf die langsame Hauptschleife zu

Dann nenne es doch Hauptschleife. Und dann z.B. Unterprogramm, Funktion, 
Prozedur etc.

von Max G. (l0wside) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Funktionsblock?

von Walter T. (nicolas)


Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Das sind alles einfach nur "Aufgaben".

"Aufgabe" heißt auf Englisch "Task". Mir wurde gesagt, dass bei Task die 
Softwerker das Vorhandensein eines Schedulers implizieren.

von Oliver S. (oliverso)


Bewertung
0 lesenswert
nicht lesenswert
Tja, wenn du immer nur auf das hörst, was die gesagt wurde, dann kannst 
du das Problem nicht lösen.

Du musst das System mit dem ISRs eh genau beschreiben, die sind dann 
halt dein Scheduler.

Oliver

von Walter T. (nicolas)


Bewertung
0 lesenswert
nicht lesenswert
In vielen Fällen besteht der Unterschied zwischen einer guten und einer 
mittelguten Doku eben darin, für einen Sachverhalt den am besten 
passenden Begriff zu finden.

Als fachfremder sucht man nach dem passenden Begriff leider etwas 
länger.

: Bearbeitet durch User
von Operator S. (smkr)


Bewertung
0 lesenswert
nicht lesenswert
Ich hätte mich ja auch mit Task begnügt und allenfalls im Vorwort den 
Kontext dazu erklärt, so wie du es hier im Forum gemacht hast.
Ansonsten: Procedure?

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Walter T. schrieb:
> für einen Sachverhalt den am besten
> passenden Begriff zu finden.

Nicht alles läßt sich mit einem Begriff erklären und nur die wenigsten 
Wörter sind eindeutig.
Wenn Du zwischen Main und Interrupt Aufgaben unterscheiden willst, 
schreib eben Main-Task und Interrupt-Task.
Eine Doku ist keine Programmiersprache und selbst in c haben z.B. 
"break" oder "static" mehrere Bedeutungen.

von Walter T. (nicolas)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Diskussion. Sie hilft dabei, sich nicht in eine Richtung 
festzufahren. Tatsächlich lässt sich das Ganze doch ganz übersichtlich 
darstellen, ohne einen Sammelbegriff für ISR und Hauptschleife zu haben. 
Und nimmt man noch Variablen dazu, eignet sich auch der komplett 
generische Begriff "Funktionselemente".

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Was soll denn ein DRO sein?
Eine gute Doku verwendet Abkürzungen nur sparsam.

von Walter T. (nicolas)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

das weiß ich. Es sei denn, die Abkürzung ist so gängig wie der 
Gesamtbegriff oder dieser ist etwas sperrig, was in diesem Fall 
zutrifft. Deswegen lautet die Kapitelüberschrift: "Digital Read Outs 
(DROs)".

von Hannes J. (Firma: _⌨_) (pnuebergang)


Bewertung
0 lesenswert
nicht lesenswert
Walter T. schrieb:
> eignet sich auch der komplett
> generische Begriff "Funktionselemente".

Ich hätte "Domäne" vorgeschlagen. Domäne geht immer. Auch im Englischen 
als "domain". Völlig generisch und kling schön wissenschaftlich 
überhöht. Sagt nichts anderes als dass es unterschiedliche Bereiche gibt 
die durch irgendwas abgegrenzt sind.

von sid (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Walter T. schrieb:
> Jetzt suche ich einen (englischen) Begriff, der auf alle drei Entitäten
> zutrifft

Procedure
würd ich hier vorschlagen

einfach weil es im fertig assemblierten Kompilat aller 
wahrscheinlichkeit eh als prozedur hinterlegt wurde.

sich wiederholende (/Gruppen von) Prozeduren werden nicht nur 
umgangssprachlich auch als Routinen bezeichnet ;)

(so heist der "boot vorgang" am Rechner im englischen auch "boot 
routine" ;)
)

'sid

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
Tatsächlich würde ich beim Begriff "Tasks" nicht unmittelbar daran 
denken, dass es auch eine ISR sein könnte, aber der Begriff wäre dafür 
auch nicht völlig abwegig.
"Routine" finde ich aber ganz gut. ISR steht ja letztendlich auch für 
"Interrupt Service Routine ".

Peter D. schrieb:
> Was soll denn ein DRO sein?
> Eine gute Doku verwendet Abkürzungen nur sparsam.

Würde ich nicht sagen. Eine gute Doku hat ein Abkürzungsverzeichnis und 
erkärt bei Einführung einer Abkürzung deren Bedeutung etwas genauer. Sie 
schreibt es dann nachher aber nicht bei jedem einzelnen Vorkommen 
nochmal komplett aus.

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf M. schrieb:

> Tatsächlich würde ich beim Begriff "Tasks" nicht unmittelbar daran
> denken, dass es auch eine ISR sein könnte

Warum denn nicht? Ich sehe da überhaupt kein Problem. Ein Task ist eine 
"Aufgabe", ein Stück Code, was einen bestimmten Zweck erfüllt und dazu 
nach irgendwelchen Regeln konkurrierend mit anderen Tasks zu Ausführung 
kommt.

Das passt ganz genau auch auf ISRs.

Der Scheduler ist hier übrigens schlicht die Hardware mit der gewählten 
Konfiguration. Beides zusammen bestimmt die Regeln, nach denen dieser 
Scheduler arbeitet. Nirgendwo steht geschrieben, dass ein Scheduler in 
Software realisiert sein muss.

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
c-hater schrieb:
> Rolf M. schrieb:
>
>> Tatsächlich würde ich beim Begriff "Tasks" nicht unmittelbar daran
>> denken, dass es auch eine ISR sein könnte
>
> Warum denn nicht?

Weil ich bei dem Begriff zuerst eher an klassisches Multithreading 
denke.

> Ich sehe da überhaupt kein Problem. Ein Task ist eine "Aufgabe", ein Stück
> Code, was einen bestimmten Zweck erfüllt und dazu nach irgendwelchen Regeln
> konkurrierend mit anderen Tasks zu Ausführung kommt.

Du hast vergessen, den zweiten Teil des Satzes mit zu zitieren:

Rolf M. schrieb:
> aber der Begriff wäre dafür auch nicht völlig abwegig.

von c-hater (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Rolf M. schrieb:

> Weil ich bei dem Begriff zuerst eher an klassisches Multithreading
> denke.

Definiere "klassisches Multithreading"...

von Ferdinand (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Walter T. schrieb:
> ISRs unter dem Namen "slow" und "fast" mit
> unterschiedlichen Prioritäten implementiert.

Ich finde slow und fast nicht gut gewählt. Was genau möchtest du damit 
aussagen? Der µC wird ja vermutlich in beiden ISRs gleich schnell laufen 
(F_CPU konstant). Ich könnte mir eher vorstellen, dass du die 
Aufrufhäufigkeit der ISRs meinst (frequency, rate) oder die Dauer/den 
Zeitslot, der einer ISR zur Verfügung steht (long, short ISR), oder es 
geht dir um die erlaubte Latenz, bis die ISR aufgerufen wird (siehe 
Prioritäten).

Slow/fast sind hier von der Bedeutung her ziemlich leer/vage, finde ich.

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
c-hater schrieb:
> Rolf M. schrieb:
>
>> Weil ich bei dem Begriff zuerst eher an klassisches Multithreading
>> denke.
>
> Definiere "klassisches Multithreading"...

Ich habe eine Funktion, mit der ich Threads erstellen kann. Threads 
können prinzipiell unabhängig von einander laufen und haben jeweils 
ihren eigenen Stack. Ein Thread kann blockierend warten und damit den 
Prozessor für beliebige andere Threads freigeben. Ein Scheduler kümmert 
sich automatisch darum, dass von den gerade nicht als blockierend 
markierten Threads immer einer ausgewählt und ausgeführt wird.
In der Regel gibt's noch einen Idle-Thread, der immer ausführbereit ist 
und entweder in einer Schleife Däumchen dreht oder den Prozessor 
schlafen legt, für den Fall, dass die anderen Threads allesamt gerade 
blockieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.