Welcome to Schneider / Amstrad CPC Forum. Please login or sign up.

28. March 2024, 23:35:39

Login with username, password and session length

Shoutbox

TFM

2024-01-15, 17:06:57
Momentan billige Farbbänder auf Ebay für PCW

Devilmarkus

2023-07-09, 10:37:40
Zweiter 👋😂🤣

TFM

2023-06-13, 14:21:49
Sommerloch!

TFM

2023-05-30, 17:00:20
Erster ;-)

Recent

Members
Stats
  • Total Posts: 11,655
  • Total Topics: 1,329
  • Online today: 113
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 83
Total: 84

83 Guests, 1 User
Swoop4711

FutureOS Caruh

Started by TFM, 06. October 2021, 00:13:32

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TFM

Wer Captain Future kennt, der kennt auch die Namen Caruh und Fatul.

Entsprechend des Lanzeitplanes gibt's bald FutureOS Caruh.
Siehe Bild...

FutureOS Fatul wird zu seiner Zeit das Licht der Welt erblicken...

TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Multi-Tasking... im Sinne einer "To do"-Liste?  :)

TFM

#2
Quote from: LambdaMikel on 06. October 2021, 05:28:17
Multi-Tasking... im Sinne einer "To do"-Liste?  :)
Im Sinne einer entstehenden Applikation...

Wenn man den Kooperativen Modus aktiviert, dann läuft alles sehr viel schneller.

Wie erkennt man das?
Bei jedem Farbwechsel des Borders wird der nächste Task aktiviert
Vergleiche voriges Bild mit diesem hier... Erstes Bild!

Wenn man auch den Taskmanager kooperativer macht, dann wird's noch schneller... siehe zweites Bild...
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

Es können bis zu 31 Tasks (bei 512 KB Erweiterungs-RAM) bzw bis zu 255 Tasks (bei 4 MB E-RAM) zugleich verwendet werden.
Jeder Task hat sein eigenes RAM und seinen eigenen Stack.

In folgenden Bild zeigt jeder Wechsel der Farbe des Randes das Umschalten zum nächsten Task.
Bei geschickter Programmierung kann man den maximal 6 Interrupts pro Bild entkommen (siehe Bild). Im Beispiel wird der Tast ca. 90 mal pro Bild (1/50 Sekunde) gewechselt. Das sind etwa 4500 Wechsel pro Sekunde.


Was würdest Du von einem Task-Manager erwarten?

TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Alle Achtung!
Und was macht "Task Laden" und "Task Speichern?" Lädt man damit ein Programm, dass dann ausgeführt wird, bzw. ein "Dump" der Task-Seiten?

Also, Du kannst sowohl preemptiv als auch cooperative? Super!

Na, schön wäre natürlich
a) Speicherschutz / MMU (wohl nicht realisierbar ohne Hardware...)
b) Task-Prioritäten
c) Heap Speicherverwaltung...
d) Tasks killen, "clonen", ...

Prioritäten machen wohl nur für preemptives Multitasking echten Sinn?


TFM

Quote from: LambdaMikel on 08. October 2021, 03:58:28
Und was macht "Task Laden" und "Task Speichern?" Lädt man damit ein Programm, dass dann ausgeführt wird, bzw. ein "Dump" der Task-Seiten?
Task laden bzw. Task starten (im Task Menu) läd und startet einen Task.
Speichern speichert ihn ab, das ist wohl eher seltener sinnvoll, aber erst mal gut für's debugging.
Lasse ich aber drin, falls es etwas ist das sehr laaaaaaaaaaaaange Zeit braucht, dann kann man da in einer folgenden Sitzung fortsetzen.

Quote from: LambdaMikel on 08. October 2021, 03:58:28
a) Speicherschutz / MMU (wohl nicht realisierbar ohne Hardware...)
b) Task-Prioritäten
c) Heap Speicherverwaltung...
d) Tasks killen, "clonen", ...

a) Jeder Task hat sein eigenes 16 KB RAM (&4000-&7FFF, Stack unterhalb &8000), so ist ein minimaler Speicherschutz gewährleistet.
Der Task Manager Caruh läuft aktuell im RAM, soll aber auch als Lower ROM umgesetzt werden (später, wenn alles fertig ist), Die LowerROM Version kann dann nicht zufällig überschrieben werden.

b) Task Prioritäten gibt es, und zwar momentan von 1-255, aber ich werde es wohl auf 1-127 reduzieren, reicht ja vollauf. Dabei hat 1 die höchste Priorität.

c) Was ist das?

d) Tasks löschen ist natürlich ganz wichtig und kommt auch ins Task Menu. Das ganze soll dynamisch werden, so dass es keine 'Speicherleichen' etc. gibt.

Würde es Sinn machen einen Task zu klonen?


Typen von Tasks
---------------
1. Ein Task kann ein Hintergrund Task sein
   - Darf Teile des Bildschirms reservieren und darauf schreiben
2. Ein Task kann von Caruh auf 'Vordergrund' geschalten werden
   - Es gibt immer nur einen Vordergrund Task, normalerweise ist das Caruh
   - Wird ein anderer Task zum Vordergrund-Task so darf er den gesamten
     Bildschirm nutzen.
   - Er muss allerdings auch die Kontrolle zurück geben können

TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

#7
Quote from: TFM on 08. October 2021, 16:31:13

Würde es Sinn machen einen Task zu klonen?


Kommt auf den Task drauf an! Wenn der Task ein zerlegbares Problem bearbeitet z.B., und es einen geteilten Speicherbereich für Kommunikation o.ä. gibt. Schneller geht's sicherlich nicht (ist ja nur eine CPU da); es sei denn, die Tasks kriegen "per Default" ohnehin nur einen Bruchteil der CPU.

Oder für Demos - wie beim Amiga damals, gefüllte Kreise oder Rechtecke zeichnen. Je mehr Tasks man hatte, desto mehr Rechtecke / Kreise wurden pro Sekunde gezeichnet :-) (Eben weil der Task nicht die volle CPU Power kriegte)

Na und in Unix ist das glaube ich ohnehin so, dass jeder Task durch ein "fork" entsteht. Bin aber auch kein Experte da.

TFM

Na Unix, Windows und so archaisches Zeugx will ich da man nicht übernehmen.  :o

Aber Danke für die Erklärungen.  :) Das mit dem Klonen könnte eventuell doch interessant sein, ich behalte es mal im Hinterkopf. Auch wenn bei einer CPU ja - wie Du schon angemerkt hast - einfach die Priorität / CPU Zeit raufgesetzt werden kann.
Klonen könnte Sinn machen, wenn für ein Problem der Speicher nicht reicht (auch wenn man den nachbestellen kann).  :gruebel:

Beim Amiga ist Multitasking wohl erschreckend primitiv! Wenn sich da Tasks klonen müssen um mehr CPU Zeit zu bekommen. Weia!  ???
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

So, die Prioritätsumschaltung hab ich nun auch eingebaut.

Anbei mal ein DSK. Was mach man damit?

- Starten von '-Caruh.COM' startet den Task-Manager

- Unter Caruh: Starten/Laden der Dateien 'TASK-1.COM' bis 'TASK-5.COM' startet simple Tasks, die nichts anderes tun als die BORDER Farbe zu setzen.

Man kann Tasks laden, löschen und ihre Priorität anpassen.

Wie geht's weiter?  :director:

Na was hättet ihr denn gerne noch an Fähigkeiten?   :winke0002:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

#10
Tasks können jetzt auch gespeichert werden, entweder einfach direkt so. Oder sie bereiten sich auf's Speichern vor. Damit kann man gewisse Prozesse dann auch über sehr lange Zeit laufen lassen bzw. auf verschiedenen Rechnern.

Download von Caruh hier gerne auf Anfrage. Download im Netz sobald es sich richtig lohnt.

EDIT: Habe jetzt einen Download auf www.FutureOS.de für Caruh. Dort werde ich alles auf relativ aktuellem Stand halten können. Also jede freudespendende Version lade ich hoch - so wie heute.
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

Ein Task ist immer ein Hintergrund-Task. So einer darf Teile des Bildschirms verwenden.

Ein Task kann aber auch ein Vordergrund Task sein, dann darf er seinen ganz eigenen Bildschirm nutzen.

Wenn man versucht einen Hintergrund-Task auf Vordergrund zu schalten, der Task kann das aber gar nicht, dann gibt's eine Fehlermeldung... siehe Bild

TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

Es freut mich sagen zu können, dass der Multi-Tasker Caruh fertiggestellt wurde.
Was noch fehlt ist eine überarbeitete Anleitung.
Als nächstes bietet es sich an einige Beispiel-Multitasking Apps zu machen um Programmier-Beispiele zu haben. Das kommt jetzt Stück um Stück.

Anbei mein Dokument über Caruh in Deutsch...

Fragen und Anregungen sind wie immer  :hearts:-lich willkommen.  :winke0002:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

So, den Text habe ich jetzt in ein hoffentlich anständiges Handbuch überarbeitet. Kritik und Anregungen sind wie immer willkommen, denn Dinge können meist noch besser werden.  :winke0002: :winke0002:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

So, Caruh selbst wurde jetzt abgeschlossen. Demnächst kommen nur noch Tasks dazu. Beispiele wären eine MP3 Player für LambdaSpeak und Anzeige von Uhrzeit / Temperatur.

Was würdet ihr gene sehen?

Das Archiv mit Caruh, Beispielen und dem Handbuch (Deutsch) gibts immer hier:
http://futureos.cpc-live.com/files/Caruh.zip
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)