PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erster Homecomputer mit preemptives Multitasking im OS


Avalox
2014-01-05, 15:29:39
Ich hatte heute ein kleines Ah ha Erlebnis.

Ich dachte bisher immer, dass der Sinclair QL der erste Heimcomputer war, der echtes preemptives Multitasking unterstützte.

Nun hatte ich aber gehört, dass der TRS-80, bzw. der Dragon 64 schon deutlich früher mit ihren OS-9 preemptives Multitasking im Heimcomputer unterstützten.

DrumDub
2014-01-06, 12:45:23
also von echten präemptiven multitasking ist bei den wikipedia einträgen zum trs-80 coco und dragon 64 nix zu lesen. da steht nur multitasking.

daher scheint das doch etwas anders gewesen zu sein als beim sinclair ql und wenig später beim amiga.

Avalox
2014-01-06, 13:57:54
also von echten präemptiven multitasking ist bei den wikipedia einträgen zum trs-80 coco und dragon 64 nix zu lesen. da steht nur multitasking.

daher schient das doch etwas anders gewesen zu sein als beim sinclair ql und wenig später beim amiga.

Ich habe die Artikel auch inzwischen gelesen.

Es ist echtes preemptives Multitasking, da gibt es nichts gegen zu deuten. Es ist nur nicht so bekannt.

Der Kollege hatte Recht, der TRS-80, bzw. der Dragon 64 sind damit tatsächlich zu einer Zeit mit solch einem System ausgestattet gewesen, als der C64 gerade mal in Deutschland vorgestellt wurde.

Das ist schon beeindruckend. Vor allen kaum bekannt im Zeitstrahl. War halt teuer, weil ein Floppy Laufwerk zwangsläufig benötigt wurde und Dragon ging ja kurze Zeit später pleite. OS-9 ist ja dagegen recht bekannt, es wurde ja auch viel in der Industrie eingesetzt.

preemptives Multitasking war ja seit den 60er Jahren bei Computern üblich. Interessant ist ja nur, dass es schon zur 8 Bit Zeit in die Homecomputer schwappte.


Was ja mal wieder zeigt, wie schlecht und grottig rückständig eigentlich das "Dirty OS" der IBM PCs war. Ich gebe Brief und Siegel, dass das von IBM absolut gewollt war, weil eine starke Großrechner Fraktion bei IBM sich bedroht gefühlt hat durch den IBM Microcomputer. Deshalb musste das OS so schlecht sein, dass auch niemand auch nur entfernt vernümftige Dinge damit machen konnte.

DrumDub
2014-01-06, 16:47:02
ok. das konnte ich aus den deutschen wikipedia artikel nicht herauslesen. dachte, da müsste es noch einen unterschied zum sinclair ql und seinem qdos geben. somit ist os-9 das erste betriebssystem der welt welches auf einem heimcomputer präemptives multitasking ermöglicht hat. hardwareseitig war der motorola 6809 die voraussetzung dafür: However, the decisions made by the design team made for a very powerful processor and made possible advanced operating systems like OS-9 and UniFlex, which took advantage of the position-independent, re-entrant nature of the 6809 to create multi-user multitasking operating systems.
http://en.wikipedia.org/wiki/Motorola_6809

das hier ist noch ganz interessant, um zu sehen, warum c64 und andere erfolgreicher waren: http://en.wikipedia.org/wiki/TRS-80_Color_Computer#Competition

Lokadamus
2014-01-06, 16:55:17
Der Kollege hatte Recht, der TRS-80, bzw. der Dragon 64 sind damit tatsächlich zu einer Zeit mit solch einem System ausgestattet gewesen, als der C64 gerade mal in Deutschland vorgestellt wurde.

Das ist schon beeindruckend. Vor allen kaum bekannt im Zeitstrahl. War halt teuer, weil ein Floppy Laufwerk zwangsläufig benötigt wurde und Dragon ging ja kurze Zeit später pleite. OS-9 ist ja dagegen recht bekannt, es wurde ja auch viel in der Industrie eingesetzt. ...

Was ja mal wieder zeigt, wie schlecht und grottig rückständig eigentlich das "Dirty OS" der IBM PCs war. Ich gebe Brief und Siegel, dass das von IBM absolut gewollt war, weil eine starke Großrechner Fraktion bei IBM sich bedroht gefühlt hat durch den IBM Microcomputer. Deshalb musste das OS so schlecht sein, dass auch niemand auch nur entfernt vernümftige Dinge damit machen konnte.:|
Der Preis betrug 240 US-Dollar und das Modell 2 wurde mit dem Multitasking-Betriebssystem OS-9 geliefert.

http://de.wikipedia.org/wiki/Tandy_TRS-80_Color_Computer

Naja, Dirty OS war eher der Versuch eine einheitliche Basis für HeimPCs zu schaffen, wobei Bill damit pro verkauftem PC ein paar Cent bzw. Dollars haben wollte. Bei IBM hatte damals niemand daran gedacht, dass die Dinger sich so gut verkaufen würden.
In einer Doku über Steve Jobs wurde auch erzählt, dass Bill Gates hin und wieder bei den Entwicklern von Apple saß und sich Sachen abgeschaut hat.

Shink
2014-01-06, 18:46:23
Was ja mal wieder zeigt, wie schlecht und grottig rückständig eigentlich das "Dirty OS" der IBM PCs war. Ich gebe Brief und Siegel, dass das von IBM absolut gewollt war, weil eine starke Großrechner Fraktion bei IBM sich bedroht gefühlt hat durch den IBM Microcomputer. Deshalb musste das OS so schlecht sein, dass auch niemand auch nur entfernt vernümftige Dinge damit machen konnte.
Naja, ich weiß nicht.

Erstens wollte man ja einen Apple-Konkurrenten.
Und zweitens... muss es nicht zwangsweise sinnvoll sein, präemptives Multitasking zu unterstützen. Ist ja nicht gerade gratis bei den technischen Einschränkungen dieser Zeit. Und Intel hätte es eh nicht sinnvoll unterstützt.:biggrin:

Der_Donnervogel
2014-01-06, 20:11:29
Was ja mal wieder zeigt, wie schlecht und grottig rückständig eigentlich das "Dirty OS" der IBM PCs war. Ich gebe Brief und Siegel, dass das von IBM absolut gewollt war, weil eine starke Großrechner Fraktion bei IBM sich bedroht gefühlt hat durch den IBM Microcomputer. Deshalb musste das OS so schlecht sein, dass auch niemand auch nur entfernt vernümftige Dinge damit machen konnte.Es hat firmenintern sicher nicht geschadet, dass es nicht zu sehr an die Großcomputer herangerückt ist. Trotzdem glaube ich nicht, dass das entscheidend war. Ich glaube eher, dass man damals Multitasking für Einzelnutzer einfach nicht als wichtig eingeschätzt hat, zumal bei der beschränkten Hardware. Schlussendlich haben ihnen die Kunden mit dieser Einschätzung auch recht gegeben, ansonsten hätte sich MS-DOS nie durchgesetzt.
Und zweitens... muss es nicht zwangsweise sinnvoll sein, präemptives Multitasking zu unterstützen. Ist ja nicht gerade gratis bei den technischen Einschränkungen dieser Zeit. Und Intel hätte es eh nicht sinnvoll unterstützt.:biggrin:Ich denke auch, dass es vor allem aus technischer Sicht als nicht zwingend erachtet wurde. Für sinnvolles Multitasking war zu wenig Speicher da.
Und Intel hätte es eh nicht sinnvoll unterstützt.:biggrin:Hatte das Ding nicht mal einen zeitgesteuerten Hardwareinterrupt? Das ist nämlich eigentlich das einzige was mir spontan einfällt was man hardwaretechnisch unbedingt braucht. Speicherschutz und virtueller Speicher lass ich mal weg, da das zu der Zeit eh kein Thema war.

Avalox
2014-01-06, 21:08:14
Doch es existieren ja OSe mit preemptiven Multitasking für den 8088 PC. Minix z.B.

Ja der PC war eine Antwort auf Apple, eben auf den 8 Bit Apple II, dabei war die PC CPU ja schon eine Generation weiter, im Bezug auf die Motorola CPU (6809) im Dragon 32/64 oder dem entsprechenden TRS-80. Vergleichbar vielleicht mit der Generation Motorola 68000 (die natürlich besser war als der 8086), aber in der selben Generation beheimatet.

Das IBM die Messlatte dort sehr tief mit dem PC Betriebssystem setzte, sieht man ja schon daran, dass erst ein CP/M als OS angedacht war. Dort der Hersteller aber schon damals jegliche Portierungsaufwand eingestellt hatte, weil der Hersteller Digital Research das eigene OS für "zu alt und leistungsschwach" gehalten hat.
CP/M wurde dann zwar später portiert, aber auch nur, weil man glaubte, dass dort die Nachfrage da wäre, nachdem IBM einen Erfolg hatte.

Dieses Quick und Dirty OS (QDOS) der Firma Seattle Computer Products, welches dann von Microsoft gekauft wurde, um es als MS DOS an IBM weiter zu verkaufen, wurde ja von IBM so gerne genommen, weil es so CP/M artig war.


Der PC ist da schon OS seitig sehr schwach geplant worden. Weit aus schwächer als nötig.

Der_Donnervogel
2014-01-07, 01:23:36
Wenn da geplant wurde, dann nur sehr kurzfristig. Das Hauptziel von IBM war es möglichst schnell ein Produkt auf den Markt zu werfen. Aus damaliger IBM-Sicht war CP/M, bzw. ein eng verwandtes System eine gute Wahl. So konnte man die Softwareversogung besser sicherstellen. Portierungen sind eigentlich immer einfacher, wenn das Betriebssystem ähnlich oder sogar gleich ist. Was nützt ein super OS, wenn es keine Software dafür gibt?

Aus heutiger Sicht wäre es sicher besser gewesen, wenn IBM mehr Weitblick bewiesen hätte. Allerdings gilt das für viele Firmen in den 80ern, denn sonst müssten wir uns nicht bis zum heutigen Tag mit den x86-Krücken und Windows herum plagen. :freak:

DrumDub
2014-01-07, 14:59:09
Aus heutiger Sicht wäre es sicher besser gewesen, wenn IBM mehr Weitblick bewiesen hätte. Allerdings gilt das für viele Firmen in den 80ern, denn sonst müssten wir uns nicht bis zum heutigen Tag mit den x86-Krücken und Windows herum plagen. :freak: jepp. wenn ich da z.b. an acorn (http://de.wikipedia.org/wiki/Acorn) denke. aber deren ideen leben ja immer noch weiter in unseren smartphones, obwohl es das unternehmen nicht mehr gibt . :)

Watson007
2014-01-07, 15:07:01
ich dachte immer der Amiga wäre der erste Homecomputer mit echtem Multitasking gewesen...

Avalox
2014-01-07, 19:38:54
ich dachte immer der Amiga wäre der erste Homecomputer mit echtem Multitasking gewesen...

Einer der ersten Homecomputer, aber nicht der erste Homecomputer. Da waren andere schon früher unterwegs.

Das ist halt solch eine 99% Wahrheit, die für 99% der Leute völlig ausreichend ist, aber halt nur wieder eine Vereinfachung ist.

Ich bin mir ziemlich sicher, dass wenn man nur genug buddelt, auch noch auf Geräte vor den o.g. 8Bit Computer stößt, die preemptives Multitasking im OS hatten. Es bietet sich halt an, dass jemand schon zur aller ersten Zeit der Microcomputer entsprechendes adaptiert hat, schlicht weil es schon lange vorher in der prof. IT gebräuchlich war.


Wenn da geplant wurde, dann nur sehr kurzfristig. Das Hauptziel von IBM war es möglichst schnell ein Produkt auf den Markt zu werfen. Aus damaliger IBM-Sicht war CP/M, bzw. ein eng verwandtes System eine gute Wahl.

Ja, mag schon sein, gute Wahl würde ich nicht sagen, es war eine nahe liegende Idee, eine einfache Wahl.

PHuV
2014-01-08, 13:15:05
Ja, mag schon sein, gute Wahl würde ich nicht sagen, es war eine nahe liegende Idee, eine einfache Wahl.
Zu dem Zeitpunkt war es wohl, wenn man diversen Dokus glauben mag, sogar die einige, nachdem der Deal mit Kildall platzte, weil er ein ein Non Disclosure Agreement ablehnte, oder nach anderen Versionen, weil er angeblich Fischen war, und nur seine Frau da war.

Avalox
2014-01-08, 14:39:27
Zu dem Zeitpunkt war es wohl, wenn man diversen Dokus glauben mag, sogar die einige, nachdem der Deal mit Kildall platzte, weil er ein ein Non Disclosure Agreement ablehnte, oder nach anderen Versionen, weil er angeblich Fischen war, und nur seine Frau da war.

Na ja.

Wenn ich das richtig in Erinnerung habe,
dann hat Microsoft den IBM Deal letztendlich bekommen, weil der damalige IBM CEO mit der Muter von Bill Gates befreundet war. Microsoft war halt spezialisiert auf Microcomputer (BASIC) und der IBM CEO nahm die Microcomputer Idee bei IBM für nicht für ganz voll. Microsoft hatte ja den DOS Deal schon in der Tasche, noch bevor Microsoft überhaupt selbst wusste, woher sie das Betriebssystem herbekommen sollten, geschweige denn was wirklich ein Betriebssystem ist, noch wie es final aussehen soll. Gegenüber IBM hat ja Bill Gates zum Deal angegeben, das System selber zu programmieren.

Nach sonderlicher Unternehmensanstrengung seitens IBM klang das nicht gerade. DR hatte kein System für IBM, weil CP/M schlicht nicht durch DR vom 8080 auf den 8086 portiert worden war, denn DR hielt es für nicht mehr zeitgemäß, also musste sich IBM woanders umsehen.

PHuV
2014-01-08, 16:54:10
Jetzt mal ne wirklich blöde Frage, (preemptives) Multitasking ist doch nicht mit jedem Prozessor möglich, da doch bestimmte Registerzustände gesichert werden müssen, die Interrupts entsprechend gesteuert werden müssen usw. Beim Amiga gab es ja die Besonderheit, daß die verschiedenen Custom-Chips für ein "echtes" Multitasking sorgten, so daß beispielsweise FDD/HDD-IO, Grafikausgabe und Musikausgabe vollkommen unabhängig liefen.

Avalox
2014-01-08, 19:00:15
Jetzt mal ne wirklich blöde Frage, (preemptives) Multitasking ist doch nicht mit jedem Prozessor möglich, da doch bestimmte Registerzustände gesichert werden müssen, die Interrupts entsprechend gesteuert werden müssen usw. Beim Amiga gab es ja die Besonderheit, daß die verschiedenen Custom-Chips für ein "echtes" Multitasking sorgten, so daß beispielsweise FDD/HDD-IO, Grafikausgabe und Musikausgabe vollkommen unabhängig liefen.


ne, die Custom Chips des Amigas haben mit dessen Multitasking nichts zu tun.

Ja, es bedarf eines Mindestfunktion der CPU. In dem Fall muss die CPU hard per Interrupt zwischen den Tasks umschalten können. Was aber dort bei den Verdächtigen, auch der damaligen Intel CPU der Fall ist.
Es existieren ja auch Betriebssysteme für den 8086(8088) welche preemtives Multitasking bieten.
Gegeben hat es solche Systeme also durchaus.

Eine MMU mit Speicherschutz hatten die Systeme, inkl. dem Amiga alle nicht. Der Intel 8088 ist ja genauso alt, wie der Motorola 68000, die ja beide Ende der 70er Jahre entstanden sind. Wobei der 8088 natürlich nur eine billigere Form des etwas früher entstandenen 8086 ist.

Multitasking betrifft nur die CPU. Dass die Coustum Chips des Amigas so autark laufen konnten, lag am DMA des Amigas und hat nichts mit Multitasking zu tun. Ähnliches DMA gab es bei den Atari 8 Bit Computern schon, dort natürlich ohne preemtives Multitasking OS. Ich denke die DMA Technik schwappte aus den Arcade Automaten Technik rüber.

Der_Donnervogel
2014-01-08, 20:15:51
Jetzt mal ne wirklich blöde Frage, (preemptives) Multitasking ist doch nicht mit jedem Prozessor möglich,Präemptives Multitasking ist nicht mit jeder CPU möglich, Multitasking an und für sich allerdings schon. Im Prinzip könnte man sogar auf Kosten von ein bisschen Performance ein Multitasking umsetzen, das nah an ein präemptives Multitasking ran kommt. Dazu müsste man nur per Compiler erzwingen, dass jedes Programm regelmäßig zum Taskscheduler zurück springt, anstatt wie bei kooperativem Multitasking üblich es alleine dem Entwickler zu überlassen wann er die CPU abgibt.
ne, die Custom Chips des Amigas haben mit dessen Multitasking nichts zu tun.Im engeren Sinn nicht da hast du auf jeden Fall recht, da ein DMA-Controller und auch der Copper keine Prozesse ausführen konnten. Im weiteren Sinn aber schon irgendwie finde ich. Ein DMA Controller übernimmt eine Aufgabe die sonst ein nebenläufiger Prozess übernehmen müsste, nur dass er sogar quasi "Multiprocessing" erlaubt, da DMA Controller und CPU wirklich parallel arbeiten können. Der Copper war sogar fast so etwas wie "programmierbar". Diese Coprozessoren waren zwar kein integrierter Teil des Multitasking, haben es aber indirekt unterstützt, da man sozusagen gewisse Aufgaben an diese Spezialhardware auslagern konnte anstatt sie in einem Prozess innerhalb der CPU ablaufen lassen zu müssen.

Avalox
2014-01-08, 21:41:53
Im engeren Sinn nicht da hast du auf jeden Fall recht, da ein DMA-Controller und auch der Copper keine Prozesse ausführen konnten. Im weiteren Sinn aber schon irgendwie finde ich. Ein DMA Controller übernimmt eine Aufgabe die sonst ein nebenläufiger Prozess übernehmen müsste, nur dass er sogar quasi "Multiprocessing" erlaubt, da DMA Controller und CPU wirklich parallel arbeiten können.


Ne. Multitasking ist ganz allgemein ein Synonym für eine Quasi-Gleichzeitigkeit, nicht für eine tatsächliche Gleichzeitigkeit.

Eine eigentlich sequenzielle CPU wird so genutzt, das scheinbar quasi mehrere Tasks gleichzeitig laufen, was sie natürlich nicht tun. Es ist ein zeitlicher Multiplex.

In der reinen Lehre würde man selbst bei einem Multiprozessor nicht mehr unbedingt von Multitasking sprechen, obwohl man es in der Praxis dann doch tut, zumal ja alle einzelnen CPU Kerne dann jeweils Multitasking fähig und betrieben sind.


Der Vorgänger des Copper war ja faktisch der Atari Antic in den 8 Bit Computern. Auch dieser war ein zusätzlicher Prozessor, mit ein paar Befehlen, der per DMA angebunden eigenständig seine Programme ausführen konnte. Das ist aber kein Multitasking.
Ebenso wie der Copper auf dem Amiga. Dessen Programme auch überhaupt nichts mit den MC68000er Programmen zu tun hatten.

PHuV
2014-01-09, 00:16:37
Ja, es bedarf eines Mindestfunktion der CPU. In dem Fall muss die CPU hard per Interrupt zwischen den Tasks umschalten können. Was aber dort bei den Verdächtigen, auch der damaligen Intel CPU der Fall ist.
Es existieren ja auch Betriebssysteme für den 8086(8088) welche preemtives Multitasking bieten.
Gegeben hat es solche Systeme also durchaus.
Aber wie den? Meines Wissens und Erinnerungen nach war erst der 80286 als Prozessor im Protected Mode zum (nicht präemptiven) Multitasking in der Lage. Und präemptiv ging erst ab dem 80386.

Eine MMU mit Speicherschutz hatten die Systeme, inkl. dem Amiga alle nicht.
Stimmt so nicht. Man konnte für die 1200er Beschleunigerkarten mit 68030 incl. MMU kaufen. Und alle Amiga 3000 und 4000 hatten sehr wohl eine MMU.

Im engeren Sinn nicht da hast du auf jeden Fall recht, da ein DMA-Controller und auch der Copper keine Prozesse ausführen konnten. Im weiteren Sinn aber schon irgendwie finde ich. Ein DMA Controller übernimmt eine Aufgabe die sonst ein nebenläufiger Prozess übernehmen müsste, nur dass er sogar quasi "Multiprocessing" erlaubt, da DMA Controller und CPU wirklich parallel arbeiten können. Der Copper war sogar fast so etwas wie "programmierbar". Diese Coprozessoren waren zwar kein integrierter Teil des Multitasking, haben es aber indirekt unterstützt, da man sozusagen gewisse Aufgaben an diese Spezialhardware auslagern konnte anstatt sie in einem Prozess innerhalb der CPU ablaufen lassen zu müssen.
Ich kann mich noch sehr wohl erinnern, als ich damals von einem Amiga 4000 auf einen Intel Pentium 133 MHz/Windows 95 wechselte, und erst mal tierisch erschrocken bin, das Mausbewegungen das Miditiming im Sequenzer stark beeinträchtigen, was ich vom Amiga 1000/3000/4000 gar nicht kannte. Somit war für mich genau diese Fähigkeit, Prozesse und Aktivitäten auf Coprozessoren so auszulagern, so daß mehrere Prozesse unbeeinträchtigt nebenher laufen konnte, sehr wohl ein Merkmal für vernünftiges Multitasking. Windows 95-98 waren IMHO ein berüchtigtes Beispiel für ein sehr schlechtes Multitasking (gut, heute wissen wir ja, es war ja nur ein MS-DOS 7.0 mit Grafik X-D).

BTW schaue ich gerade, was ein Amiga 4000 so kostet. Mist, ich habe meinen damals fast verschenkt. :eek:

Der_Donnervogel
2014-01-09, 00:28:35
Ne. Multitasking ist ganz allgemein ein Synonym für eine Quasi-Gleichzeitigkeit, nicht für eine tatsächliche Gleichzeitigkeit.

Mir ist schon klar was man definitionsgemäß unter Multitasking versteht. Ich hab auch ein Informatikstudium hinter mir. :freak:

Ich habe das ganze deshalb extra sehr vorsichtig formuliert, da ich nicht so weit ausholen wollte. Beispielsweise hat ja auch DMA eigentlich nichts mit Gleichzeitigkeit zu tun, sondern heißt nur, dass der Chip ohne den Prozessor zu Hilfe nehmen zu müssen auf den Speicher zugreifen kann.

Für die meisten Leute läuft Multitasking aber darauf hinaus, dass Aufgaben gleichzeitig oder zumindest scheinbar gleichzeitig erledigt werden und darauf habe ich hier abgeziehlt.

Ansonsten wird das schnell viel zu sehr ins Detail gehen. Ich hab mich im Studium mehrere Semester mit solchen Lowlevel-Dingen beschäftigt und da haben wir allerhand lustige Dinge gemacht. Wir haben z.B. in Gruppenarbeit unser eigenes Betriebssystem geschrieben (mit präemptivem Multitasking, Speicherschutz und sogar harter Echtzeit) und auch eine (im Funktionsumfang natürlich stark reduzierte) Javaumgebung aus Compiler und VM geschrieben, wo z.B. auch Green Threads ein Thema waren auch wenn wir das dann schließlich nicht implementiert haben.

PHuV
2014-01-09, 00:38:37
Mir ist schon klar was man definitionsgemäß unter Multitasking versteht. Ich hab auch ein Informatikstudium hinter mir. :freak:
Ach, wer hat den hier nicht? :wink: Aber ein OS habe ich nicht geschrieben, und Java gabs damals schon gar nicht.

Avalox
2014-01-09, 00:49:44
Aber wie den? Meines Wissens und Erinnerungen nach war erst der 80286 als Prozessor im Protected Mode zum (nicht präemptiven) Multitasking in der Lage. Und präemptiv ging erst ab dem 80386.


Nein, dass ist definitiv nicht so.

Preemtives Multitasking ist auch schon auf dem 8086 bzw 8088 möglich.

Selbst für den Z80 gab es Betriebssysteme mit preemtiven Multitasking, damit auch ganz sicher für den 8080.
Der Zilog Z80 unterscheidet sich ja nicht großartig vom Intel 8080, dem 8Bit Vorgänger des 16Bit 8086.

Preemtives Multitasking setzt nicht viel voraus. Die CPU braucht die Möglichkeit per Interrupt den Programmablauf zyklisch zu unterbrechen. Mehr nicht.
Jetzt weiß ich nicht ob der Intel 4004 solch einen Interrupt Controller nutzte, aber der 8080 konnte es schon. Also der 8 Bit Vorgänger des x86 vom Anfang der 70er Jahre und natürlich können es auch alle Nachfolger.

Schon der ersten PC hätte mit einem spitzenmäßig funktionierenden preemtiven Multitasking OS ausgeliefert werden können. Rein technisch kein Problem. DOS konnte es nur nicht.



Und alle Amiga 3000 und 4000 hatten sehr wohl eine MMU.

Ja, das stimmt, an die habe ich nicht gedacht.


Aktivitäten auf Coprozessoren so auszulagern, so daß mehrere Prozesse unbeeinträchtigt nebenher laufen konnte, sehr wohl ein Merkmal für vernünftiges Multitasking. Windows 95-98 waren IMHO ein berüchtigtes Beispiel für ein sehr schlechtes Multitasking (gut, heute wissen wir ja, es war ja nur ein MS-DOS 7.0 mit Grafik X-D).

Das hat aber auch nichts mit Multitasking zu tun. Da geht es um die Echtzeitfähigkeit von Betriebssystemen. Das Amiga OS war auch kein Echtzeit OS.

Das mit dem Copper als Coprozessor, muss man da etwas relativieren.

Die "Programme" des Copper sind für den Bildschirm bestimmt. Du kannst so die Farbpalette, oder die Auflösung alle paar z.B. Zeilen ändern.
Aus diesem Grund, konnte Copper ich glaube 3 spezielle Befehle verarbeiten.
Mit Auslagern von Programmen auf den Coprozessor ist da nichts. Programm im Amiga wurden allein auf dem 680x0er abgearbeitet.

Lokadamus
2014-01-09, 19:52:12
Wiki kennt die Antwort:
http://de.wikipedia.org/wiki/Multitasking
Präemptives Multitasking setzt einen Zeitgeber (Interrupt) vorraus, um so die Zeit sicher zu bestimmen. Den gab es meines Wissens nach schon beim 8088/ 8086.
Richtig benutzt wurde es bei der x86- Schiene erst ab Win3.x.
Und der Artikel bestätigt mein Verständnis von Multitasking im Sinne der TSR- Programme.

Avalox
2014-01-09, 22:49:13
Bin gestern auf ein interessantes Thema gestoßen.

Ein entsprechendes OS für Schneider CPC, Amstrad Geräte und MSX2 Homecomputer mit Z80 CPU.

http://www.hu-berlin.de/service-en/veranstaltungen_neu-en?stat=show&vk_id=1736

No.3
2014-01-10, 00:17:02
Das mit dem Copper als Coprozessor, muss man da etwas relativieren.

Die "Programme" des Copper sind für den Bildschirm bestimmt. Du kannst so die Farbpalette, oder die Auflösung alle paar z.B. Zeilen ändern.
Aus diesem Grund, konnte Copper ich glaube 3 spezielle Befehle verarbeiten.
Mit Auslagern von Programmen auf den Coprozessor ist da nichts. Programm im Amiga wurden allein auf dem 680x0er abgearbeitet.

ja, Copper und Blitter konnten nur "eigenständig" Grafikoperationen ausführen aber keine Programme im eigentliche Sinne. Eigenständig sogar wohl wirklich eigenständig, es gab wohl angeblich Programme deren grafische Ausgabe weiterlief obwohl die CPU entfernt oder zumindest angehalten wurde, siehe hier (http://www.a1k.org/forum/showthread.php?t=22610)

Avalox
2014-01-10, 00:41:46
es gab wohl angeblich Programme deren grafische Ausgabe weiterlief obwohl die CPU entfernt oder zumindest angehalten wurde, siehe hier (http://www.a1k.org/forum/showthread.php?t=22610)

Ja, das gibt es.
Das war bei den Atari 8Bit Computern auch schon so. Das System stützte ab, aber das Antic Programm für die Bildschirmausgabe lief weiter.

Beim Atari 8Bit nannten sich dieses Antic Programm Display List, beim Amiga dann Copper List.

Bildausgabe meint dort aber, das Umschalten von Farbregistern in definierten Zeilen, oder einen Bildmoduswechsel, etc.
Das weiterlaufen der Display List, oder der Copper List meinte dann, dass trotz Programmabsturz immer noch in den richtigen Zeilen die Farbregister, oder Bildschirmmodi, etc. geändert wurden. Alles was dort an bewegten Objekten, etc, also dem eigentlich Bildinhalt geändert wurde, wurde durch den Absturz natürlich dann nicht mehr aktualisiert, weil das ja alles über die CPU lief.

Ectoplasma
2014-01-10, 07:53:52
In einer Doku über Steve Jobs wurde auch erzählt, dass Bill Gates hin und wieder bei den Entwicklern von Apple saß und sich Sachen abgeschaut hat.

Diese Doku ist extrem biased. Die haben alle voneinader abgeschaut. Vorallem mußte den Apple-Jungs bei der Hardware unter die Arme gegriffen werden. Meißt von den Entwicklern von Commodore.


Wiki kennt die Antwort:
http://de.wikipedia.org/wiki/Multitasking
Präemptives Multitasking setzt einen Zeitgeber (Interrupt) vorraus, um so die Zeit sicher zu bestimmen. Den gab es meines Wissens nach schon beim 8088/ 8086.
Richtig benutzt wurde es bei der x86- Schiene erst ab Win3.x.
Und der Artikel bestätigt mein Verständnis von Multitasking im Sinne der TSR- Programme.

Um Mißverständnisse auszuschließen. Win3.x hatte trotzdem kein präemptives Multitasking. Bei deinem Statement klingt das ein wenig so.

Shink
2014-01-10, 11:21:44
Wiki kennt die Antwort:
http://de.wikipedia.org/wiki/Multitasking
Präemptives Multitasking setzt einen Zeitgeber (Interrupt) vorraus, um so die Zeit sicher zu bestimmen. Den gab es meines Wissens nach schon beim 8088/ 8086.
Na gut, dann sag ich mal: Es ist ziemlich ineffizient.
Erst ab dem 80386er gab es Hardwareunterstützung für Context Switches. Ist ja toll, wenn man präemptives Multitasking für "Word for DOS", "Alley Cat" und co hat, aber... zerwas?:freak: Speicher und Leistung hab ich auch so weniger als ich bräuchte.
Bei Stapelverarbeitung durchaus sinnvoll, aber für Heimcomputer dieser Generation?

Um Mißverständnisse auszuschließen. Win3.x hatte trotzdem kein präemptives Multitasking.
Windows NT 3.x schon.:D

Lokadamus
2014-01-10, 11:26:19
Um Mißverständnisse auszuschließen. Win3.x hatte trotzdem kein präemptives Multitasking. Bei deinem Statement klingt das ein wenig so.Jup, es geht schnell in einander über, weshalb der falsche Eindruck entstehen kann.
Win3.x hatte kooperatives Multitasking (und laut Wiki in Teilen präemptives für DOS :| ), während Win9x und NT präemptives Multitasking hatten.
Wie Win9x das jetzt mit 16- Bit (Win3.x und DOS) gehandhabt hat, erschließt sich mir aus dem Artikel nicht, da darunter kein präemptives Multitasking möglich sein soll.
http://de.wikipedia.org/wiki/Microsoft_Windows_95

Avalox
2014-01-10, 11:38:10
Na gut, dann sag ich mal: Es ist ziemlich ineffizient.
Erst ab dem 80386er gab es Hardwareunterstützung für Context Switches.

Na ja. Context Switching ist ja ein in Software Feature, welches in Hardware unterstützt werden kann.

Der Prozessor, welcher ganz gezielt für preemtives Multitasking gebaut wurde, ist ja der Intel 80286 gewesen. Der hatte eine integrierte MMU, aber kein Context Switching in Hardware.
Für dien 286er gab es zahlreiche Unix Implementierungen, ich denke alle modernen Systeme führen Context Switching in Software durch.

PHuV
2014-01-10, 13:21:49
Wie Win9x das jetzt mit 16- Bit (Win3.x und DOS) gehandhabt hat, erschließt sich mir aus dem Artikel nicht, da darunter kein präemptives Multitasking möglich sein soll.
http://de.wikipedia.org/wiki/Microsoft_Windows_95
Steht doch deutlich dort:

Mit 16-Bit-Anwendungen (Windows 3.x/DOS) ist nach wie vor kein präemptives Multitasking möglich.
Wegen des nur eingeschränkten Speicherschutzes kann ein 32-Bit-Programm das ganze System blockieren („Aushebeln“ des präemptiven Multitaskings). Ebenso kann das im Hintergrund laufende DOS durch fehlerhafte 16-bit-Zugriffe weiterhin lahmgelegt werden, was auch durch DEBUG.EXE demonstriert werden kann.[4]

Lokadamus
2014-01-10, 16:25:24
Steht doch deutlich dort:Das beißt sich aber mit der Aussage wegen präemptiven Multitasking:
Windows beherrscht erstmals in den 3.x-Versionen teilweise präemptives Multitasking, dort allerdings nur für DOS-Programme und das auch nur dann, wenn sie auf einem System mit einem i386-kompatiblen Prozessor ausgeführt werden, da ...
http://de.wikipedia.org/wiki/Multitasking

Oder ich hab irgendwo einen Knoten in der Leitung. :ucrazy3:
Ach, kann es sein, dass sich der Text auf Win 3.x mit 32Bit bezieht? Dann würde es wieder passen.

DrumDub
2014-01-10, 17:27:20
Bin gestern auf ein interessantes Thema gestoßen.

Ein entsprechendes OS für Schneider CPC, Amstrad Geräte und MSX2 Homecomputer mit Z80 CPU.

http://www.hu-berlin.de/service-en/veranstaltungen_neu-en?stat=show&vk_id=1736 cool. das ist ja richtig abgefahren!