Mutlitasking auf dem Motorola 68000 (Split aus Speicherfreigabe von C-Strings)



  • SeppJ schrieb:

    Jedes Programm hat seinen eigenen, abgeschotteten Speicher, außer vielleicht auf den allerprimitivsten Systemen. Und das sind Systeme, auf denen keine zwei Programme gleichzeitig laufen.

    [klugscheiss]
    Amiga OS hat keine "Prozesse" mit abgeschottetem Adressraum (d.h. alle Programme teilen sich einen Adressraum, machen also auch Allokationen kreuz & quer durcheinander), hat aber trotzdem voll cooles preemptives Multitasking. 😉
    [/klugscheiss]


  • Mod

    hustbaer schrieb:

    SeppJ schrieb:

    Jedes Programm hat seinen eigenen, abgeschotteten Speicher, außer vielleicht auf den allerprimitivsten Systemen. Und das sind Systeme, auf denen keine zwei Programme gleichzeitig laufen.

    [klugscheiss]
    Amiga OS hat keine "Prozesse" mit abgeschottetem Adressraum (d.h. alle Programme teilen sich einen Adressraum, machen also auch Allokationen kreuz & quer durcheinander), hat aber trotzdem voll cooles preemptives Multitasking. 😉
    [/klugscheiss]

    Interessant zu wissen. Weißt du mehr darüber? Was ist, wenn ein Programm aus der Reihe tanzt? Ist das nicht furchtbar unsicher? Der erste Eindruck ist, dass so ein System doch nahezu unbenutzbar sein müsste, da jedes fehlerhafte, oder gar bösartige, Programm wer weiß was anstellen kann.



  • SeppJ schrieb:

    hustbaer schrieb:

    SeppJ schrieb:

    Jedes Programm hat seinen eigenen, abgeschotteten Speicher, außer vielleicht auf den allerprimitivsten Systemen. Und das sind Systeme, auf denen keine zwei Programme gleichzeitig laufen.

    [klugscheiss]
    Amiga OS hat keine "Prozesse" mit abgeschottetem Adressraum (d.h. alle Programme teilen sich einen Adressraum, machen also auch Allokationen kreuz & quer durcheinander), hat aber trotzdem voll cooles preemptives Multitasking. 😉
    [/klugscheiss]

    Interessant zu wissen. Weißt du mehr darüber? Was ist, wenn ein Programm aus der Reihe tanzt? Ist das nicht furchtbar unsicher? Der erste Eindruck ist, dass so ein System doch nahezu unbenutzbar sein müsste, da jedes fehlerhafte, oder gar bösartige, Programm wer weiß was anstellen kann.

    Noch 2 Beispiele: TOS vom Atari und Windows 3.x. Zwar nur kooperatives Multitasking aber darum geht's ja jetzt nicht. Wenn ein Programm Amok lief, ist halt das ganze System betroffen gewesen.

    Mfg Martin



  • Auch Windows nach 3.x bietet die Möglichkeit, den "abgeschotteten" Adressraum anderer Prozesse mit dokumentierten API-Befehlen zu lesen und zu beschreiben(!).



  • @SeppJ
    Ja, es war ja auch lästig! Da der 68K aber nunmal keine MMU hatte war eine VM pro Prozess einfach nicht drin - wäre unerträglich langsam geworden (das OS hätte ja alles emulieren müssen).
    Der 030er im Amiga 3000 hatte diese MMU zwar dann, aber aus Kompatibilitätsgründen konnte die Sache natürlich nicht mehr so einfach geändert werden.

    => Man hat sich damals schon gut überlegt welche Programme man startet und welche nicht. Und wann man seine Arbeit abspeichert.


  • Mod

    Wutz schrieb:

    Auch Windows nach 3.x bietet die Möglichkeit, den "abgeschotteten" Adressraum anderer Prozesse mit dokumentierten API-Befehlen zu lesen und zu beschreiben(!).

    Aber da ist das Betriebsystem der Mittler. Du kannst dir nicht einfach einen rohen Zeiger geben lassen und über diesen auf den anderen Prozess zugreifen als wäre es der eigene Speicher.

    @mgaeckler:
    TOS Multitasking? Das habe ich aber anders in Erinnerung...

    Dass das System abstürzte, wenn ein Programm aus der Reihe tanzte, hat aber andere Gründe. Die haben zwar was mit der Speicherverwaltung zu tun, aber damit, dass das System einen eventuellen Fehler nicht sinnvoll beheben konnte, aufgrund der Art und Weise, wie der Speicher verwaltet wurde. Aber ein Programm konnte beispielsweise nicht einfach was an beliebige physikalische Adressen (wie zum Beispiel Adresse 0, die ja durchaus existiert) lesen oder schreiben. Wenn es das trotzdem versucht hat, dann gab's die berüchtigte allgemeine Schutzverletzung.



  • SeppJ schrieb:

    @mgaeckler:
    TOS Multitasking? Das habe ich aber anders in Erinnerung...

    Doch doch, wenn auch nicht in der Form, wie wir es von Windows 3.x oder so kannten. Es gab aber Accessories, die ganz normale Anwendungen waren und parallel zur Hauptanwendung oder dem Desktop liefen.

    Sie durften halt keine eigene Menüzeile erzeugen, sondern haben sich in das Desktopmenü eingehängt, und wurden beim Start des Rechners geladen.


  • Mod

    mgaeckler schrieb:

    SeppJ schrieb:

    @mgaeckler:
    TOS Multitasking? Das habe ich aber anders in Erinnerung...

    Doch doch, wenn auch nicht in der Form, wie wir es von Windows 3.x oder so kannten. Es gab aber Accessories, die ganz normale Anwendungen waren und parallel zur Hauptanwendung oder dem Desktop liefen.

    Die TOS-Accessories mit dem Multitasking in Windows 3.x gleich zu setzen ist aber höchst gewagt. Die Accessories entsprechen eher einem Gerätetreiber.



  • Watt, wie?
    Der olle Atari konnte echt nicht multitasken? Nichtmal kooperativ (denn mehr konnte Win 3.x ohne Win32s ja auch net)?


  • Mod

    hustbaer schrieb:

    Watt, wie?
    Der olle Atari konnte echt nicht multitasken? Nichtmal kooperativ (denn mehr konnte Win 3.x ohne Win32s ja auch net)?

    Konnte schon, es gab Multitaskingbetriebssysteme. Sogar richtig gute, multi-user, multi-tasking (auch preemptive!) Systeme. Aber das mitgelieferte TOS konnte eben nur die beschriebenen Accessories. Das würde ich nicht als echtes Multitasking beschreiben, nicht einmal im Win 3.x Sinne. Das waren einfach kleine Progrämmchen, von denen man eine sehr beschränkte Anzahl (6?) beim Booten laden konnte und dann, sofern das derzeit aktive Hauptprogramm dies zu ließ, konnte man sie bei Bedarf in den Vordergrund holen. Das mitgelieferte OS hat dies vor allem für eine Art Systemsteuerung benutzt.



  • Man konnte aber Programm so compilieren, dass sie je nach Dateinamenerweiterung als Accessorie (.acc) oder Application (.app) stateten.
    Einfaches umbenennen reichte aus.

    War schon ein Bombengerät.

    ~Wenn man heutzutage jemanden erzählt, man hat schon vor 25 Jahren Apps programmiert, schauen die einen blöd an.~ :p



  • SeppJ schrieb:

    hustbaer schrieb:

    Watt, wie?
    Der olle Atari konnte echt nicht multitasken? Nichtmal kooperativ (denn mehr konnte Win 3.x ohne Win32s ja auch net)?

    Konnte schon, es gab Multitaskingbetriebssysteme.

    Huch?
    Wo, wie was? Von wem?
    Unix-Port oder was?



  • hustbaer schrieb:

    SeppJ schrieb:

    hustbaer schrieb:

    Watt, wie?
    Der olle Atari konnte echt nicht multitasken? Nichtmal kooperativ (denn mehr konnte Win 3.x ohne Win32s ja auch net)?

    Konnte schon, es gab Multitaskingbetriebssysteme.

    Huch?
    Wo, wie was? Von wem?
    Unix-Port oder was?

    Minix und MultiTOS.

    Edit: OS9 gab's auch.


  • Mod

    mgaeckler schrieb:

    hustbaer schrieb:

    SeppJ schrieb:

    hustbaer schrieb:

    Watt, wie?
    Der olle Atari konnte echt nicht multitasken? Nichtmal kooperativ (denn mehr konnte Win 3.x ohne Win32s ja auch net)?

    Konnte schon, es gab Multitaskingbetriebssysteme.

    Huch?
    Wo, wie was? Von wem?
    Unix-Port oder was?

    Minix und MultiTOS.

    Edit: OS9 gab's auch.

    Und Mirage, habe ich mal im Atari Magazin gelesen. Aber das war so exotisch, dass es selbst bei Wikipedia nur einen Disambiguationeintrag hat, keinen eigenen Artikel.

    Ich werde die Diskussion hier auch mal abtrennen, da sie nichts mehr mit C-Strings zu tun hat.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) in das Forum Themen rund um die IT verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten