PDA

Vollständige Version anzeigen : war DOS (Single Task OS) oder Konsolentitel im Vergleich zu einem modernen OS ressourcenschonender?



Rockatansky
17.05.2015, 01:06
was denken die USER zu diesem Thema?

Sind neue Betreibessysteme (OS) seid Windows 95 ... ressourcenschonend oder verschwendend?

Hier noch die Def. einer GUI:

http://de.wikipedia.org/wiki/Grafische_Benutzeroberfl%C3%A4che

Gawen
17.05.2015, 01:28
Ich habe das dumpfe Gefühl Du hast da so einiges nicht verstanden, aber ich habe auch weder Zeit noch Geduld es Dir zu vermitteln! :D

BRDDR_geschaedigter
17.05.2015, 01:30
Streng genommen dürfte ja ein Mikrocontroller programmiert mit Assembler das effektivste System sein. :D

Franko
17.05.2015, 01:30
Sind neue Betreibessysteme (OS) seid Windows 95 ... ressourcenschonend oder verschwendend?

Ja klar sind sie das! In meinem Windows8-Ordner sind 145.000 Dateien mit einer Gesamtgröße von 18 GB!

Die GUI an sich ist aber nicht das Problem - siehe damals Commodore Amiga.

Franko
17.05.2015, 01:31
Streng genommen dürfte ja ein Mikrocontroller programmiert mit Assembler das effektivste System sein. :D

Das würde es für den Anfang auch tun: https://www.raspberrypi.org/ ;)

PS: BSET #1,$BFE001, RTS ;)

Rockatansky
17.05.2015, 01:33
Ich habe das dumpfe Gefühl Du hast da so einiges nicht verstanden, aber ich habe auch weder Zeit noch Geduld es Dir zu vermitteln! :D

Doch, doch erzähl! Ich kenne mich mit Programierung auch nicht gut aus! Was soll denn da falsch sein? Der direkte HW Zugriff unter DOS ist besser oder was? Oder weil auf einer XBOX zB nur embedded Systeme laufen, die minimal nur Ressourcen verbrauchen?

Was ist denn der Punkt worum es geht? :hmm:

BRDDR_geschaedigter
17.05.2015, 01:33
Doch, doch erzähl! Ich kenne mich mit Programierung auch nicht gut aus! Was soll denn da falsch sein? Der direkte HW Zugriff unter DOS ist besser oder was? Oder weil auf einer XBOX zB nur embedded Systeme laufen, die minimal nur Ressourcen verbrauchen?

Was ist denn der Punkt worum es geht? :hmm:

PCs sind aber viel leistungsstärker als Konsolen. Also jetzt in absoluten Maßstäben.

Gawen
17.05.2015, 01:44
http://de.wikipedia.org/wiki/Multitasking

Rockatansky
17.05.2015, 01:47
http://de.wikipedia.org/wiki/Multitasking

Das weiß ich auch.

Ich habe ja schon von Single Task DOS geschrieben.

Aber auf Konsolen läuft mittlerweile auch das eine oder andere Windows Multitask Systeme, aber sie brauchen weniger Ressourcen !!

dZUG
17.05.2015, 13:46
Ich hab mal in Assembler einen 8051 programmiert.
Da lernst du es was ein Register ist und Akkumulator und wie das mit der Hardware läuft.
Wieviel Taktzyklen er braucht um zu teilen, erst den Wert aus dem Register holen in den Akkumulator und den anderen Wert ins Hilfregister.
Sagen wir mal so ohne Fließkomma-Kern (an 32 Bit darfst da aber nicht denken :-) ) um eine Wurzel zu ziehen.
In Assembler ist das ein Kunstwerk und unter einer Sekunde bringst es nicht mit einem 8 Bit, Fließkomma zu rechnen.
Die Interrupts sind interessant, da springt er im Arbeitsspeicher rum 8 KiloByte oder so :-) :-)
Hyperthreading und virtuallieserung können diese Desktop Prozessoren schon, was die diese 8 Bit Dinger nicht können.
30 Mips ist da schon die Fanenstange :-) :-) und das waren Dos-Zeiten :-) :-)


Ahso ... ich denke mir das diese ganzen Programme die ein Compiler produziert, nicht so gut gestrickt sind wie wenn man es in Assembler schreiben würde.
Im Grunde hast du heute deinen Compiler und C, was eben einen Code erzeugt. Was abläuft und wie er es im Hintergrund zusammenbaut, hast du keinen Plan. Es funktioniert und darauf kommts an :-)
Das in Maschinensprache schreiben, und auf jeden Taktzyklus zu optimieren würde mein Laptop sogar einen Xeon mit Windows in den Schatten stellen :-) :-)

Rumpelstilz
17.05.2015, 15:49
Doch, doch erzähl! Ich kenne mich mit Programierung auch nicht gut aus! Was soll denn da falsch sein? Der direkte HW Zugriff unter DOS ist besser oder was? Oder weil auf einer XBOX zB nur embedded Systeme laufen, die minimal nur Ressourcen verbrauchen?

Was ist denn der Punkt worum es geht? :hmm:
Es geht vor allem um Kosteneffizienz.

Ich fange einmal bei einer Industriesteuerung an, z.B. ein Aufzug oder eine Waschmaschine. Je groesser die Stueckzahlen sind, desto eher lohnt eine Programmierung von Assembler und ganz ohne Betriebssystem.
Desweiteren lohnt sich dieses Selbstprogrammieren, je einfacher die Anforderungen an solch eine Software sind.

Haetten der Aufzug oder die Waschmaschine z.B. USB oder einen Internet-Browser, wer wollte denn das kosteneffizient in Assembler fuer einen bestimmten Prozessor programmieren?

Hier waehlt man dann ein Betriebssystem. Das muss kein PC-Betriebssystem sein, sondern es koennte VxWorls, Nucleus usw sein. Die Uebergaenge sind fliessend. QNX ist z.B. ein Betriebssystem fuer Industriessteuerungen, aber es gab auch mal ein Diskette fuer den PC mit einem funktionsfaehigen Internet-Browser.

Diese Betriebssystem ist nun so allgemein gehalten, dass es fuer viele Anwendungen passt, daher aber auch fuer jede Anwendung Ueberfluessiges mitschleppt. Das kann man zwar zu einem Grossteil speziell konfigurieren, aber die grundlegende Architektur ist eben doch viel umfangreicher als ein selbstgestricktes System.

Der Vorteil eines solchen Betriebssytems ist aber, dass es von vielen Anwendern schon getestet wurde. Fehler werden in jeder neuen Version beseitigt. Bei einem selbstgestrickten System, vor allem in Assembler, muss nicht nur alles neu geschrieben, sondern auch alles neu getestet werden.

Es geht also nicht in erster Linie um Effizienz, sondern auch um Software-Erstellungskosten und vor allem um Sicherheit vor Fehlern.

Deswegen sind Betriebssysteme in C geschrieben, die mit einem Standard-Kompiler in den Assembler des jeweiligen Prozessors uebersetzt werden. Natuerlich koennte ein guter Software-Ingenieur das besser, aber er braeuchte viel mehr Zeit und wuerde auch mehr Fehler produzieren.
Also lieber eine holprige Uebersetzung, die laeuft, als eine, die schnell und elegant laeuft, aber ab und abstuerzt.

Die gleichen Gruende gelten nun fuer alle weiteren Modularisierungen von Software. Und beim PC darf man nicht vergessen, dass nicht nur Spiele darauf laufen sollen oder gar nur ein bestimmtes Spiel, sondern ein ganzer Haufen von Anwendungen.

Rockatansky
17.05.2015, 18:50
@ dZug

und

@ Rumpelstiz

Vielen Dank für Eure Ausführungen!


Will sonst noch jemand abstimmen?
:hmm:

Rockatansky
17.05.2015, 18:53
...

Deswegen sind Betriebssysteme in C geschrieben, die mit einem Standard-Kompiler in den Assembler des jeweiligen Prozessors uebersetzt werden. Natuerlich koennte ein guter Software-Ingenieur das besser, aber er braeuchte viel mehr Zeit und wuerde auch mehr Fehler produzieren.
Also lieber eine holprige Uebersetzung, die laeuft, als eine, die schnell und elegant laeuft, aber ab und abstuerzt.

...
Ich habe sogar mal davon gelesen, dass ein sehr weit verbreiteter Compiler nur den 386er Befehlssatz ausgenutzt haben soll und der häufig zur Verwendung kam und somit gar nicht mal wirklich die modernen CPUs wirklich ausgenutzt haben soll !:hmm:

Hrafnaguð
18.05.2015, 00:04
Ich hab mal in Assembler einen 8051 programmiert.
Da lernst du es was ein Register ist und Akkumulator und wie das mit der Hardware läuft.
Wieviel Taktzyklen er braucht um zu teilen, erst den Wert aus dem Register holen in den Akkumulator und den anderen Wert ins Hilfregister.
Sagen wir mal so ohne Fließkomma-Kern (an 32 Bit darfst da aber nicht denken :-) ) um eine Wurzel zu ziehen.
In Assembler ist das ein Kunstwerk und unter einer Sekunde bringst es nicht mit einem 8 Bit, Fließkomma zu rechnen.
Die Interrupts sind interessant, da springt er im Arbeitsspeicher rum 8 KiloByte oder so :-) :-)
Hyperthreading und virtuallieserung können diese Desktop Prozessoren schon, was die diese 8 Bit Dinger nicht können.
30 Mips ist da schon die Fanenstange :-) :-) und das waren Dos-Zeiten :-) :-)


Ahso ... ich denke mir das diese ganzen Programme die ein Compiler produziert, nicht so gut gestrickt sind wie wenn man es in Assembler schreiben würde.
Im Grunde hast du heute deinen Compiler und C, was eben einen Code erzeugt. Was abläuft und wie er es im Hintergrund zusammenbaut, hast du keinen Plan. Es funktioniert und darauf kommts an :-)
Das in Maschinensprache schreiben, und auf jeden Taktzyklus zu optimieren würde mein Laptop sogar einen Xeon mit Windows in den Schatten stellen :-) :-)

Es gibt da so eine Audioworkstation, Sawstudio, die komplett in Assembler geschrieben ist.
Bringt gerade mal ein paar 8MB auf die Platte und stellt von der reinen Soundqualität und Performance Programme wie Cubase mit mehren hundert MB
weit in der Schatten. Kostet ungefähr genausoviel. Der Grund warum es trotzdem ein Nieschenprodukt ist? Die steile Lernkurve und das wirklich absolut scheußliche
GUI.
Aber mit heutigen Rechnern sind die Verluste zu verschmerzen die überladene OS verursachen.
Ich bin jüngst von einem Core2Duo, 4GB Ram, auf einen i5 mit 8GB umgestiegen, ein Quantensprung.
Was Spiele angeht ist das Ding recht flott, läuft alles wie es soll. Und da die letzte Konsolengeneration ja noch lange Jahre am Markt bleiben wird,
sollte das auch lange so bleiben. PC Spiele sind ja seit Jahren schon meistens nur etwas aufgebohrte Konsolenportierungen. Trotzdem wären schlankere
OS wünschenswert. Konsolen selber kommen mir nicht ins Haus. Ich kann ja auf dem PC alles zocken und Nieschenprodukte wie ernstzunehmende Flugsims
gibts auf der Konsole nicht. Der PC ist ja eine eierlegende Wollmilchsau. Ich kann internetsurfen, ihn als Schreibmaschine nutzen, zocken und Musik produzieren.
Alles auf einem Gerät.

dZUG
18.05.2015, 08:53
Es gibt da so eine Audioworkstation, Sawstudio, die komplett in Assembler geschrieben ist.
Bringt gerade mal ein paar 8MB auf die Platte und stellt von der reinen Soundqualität und Performance Programme wie Cubase mit mehren hundert MB
weit in der Schatten. Kostet ungefähr genausoviel. Der Grund warum es trotzdem ein Nieschenprodukt ist? Die steile Lernkurve und das wirklich absolut scheußliche
GUI.
Aber mit heutigen Rechnern sind die Verluste zu verschmerzen die überladene OS verursachen.
Ich bin jüngst von einem Core2Duo, 4GB Ram, auf einen i5 mit 8GB umgestiegen, ein Quantensprung.
Was Spiele angeht ist das Ding recht flott, läuft alles wie es soll. Und da die letzte Konsolengeneration ja noch lange Jahre am Markt bleiben wird,
sollte das auch lange so bleiben. PC Spiele sind ja seit Jahren schon meistens nur etwas aufgebohrte Konsolenportierungen. Trotzdem wären schlankere
OS wünschenswert. Konsolen selber kommen mir nicht ins Haus. Ich kann ja auf dem PC alles zocken und Nieschenprodukte wie ernstzunehmende Flugsims
gibts auf der Konsole nicht. Der PC ist ja eine eierlegende Wollmilchsau. Ich kann internetsurfen, ihn als Schreibmaschine nutzen, zocken und Musik produzieren.
Alles auf einem Gerät.

http://de.wikipedia.org/wiki/Instruktionen_pro_Sekunde

Da siehst du es der "Intel 486dx" (von 1992) hat 54 Mips, und der i7 hat 336.000 Mips (von 2014).

Klopperhorst
18.05.2015, 12:10
Streng genommen dürfte ja ein Mikrocontroller programmiert mit Assembler das effektivste System sein. :D

Nicht wirklich. Ich habe mal ein Assembler-Programm für einen Bresenham-Algorithmus geschrieben, und mit einem C++ Programm verglichen.
C++ Programm war schneller, da es den Assembler-Code optimierte.

---

Schaschlik
18.05.2015, 14:25
Ein Grund, warum man DOS keine Funktion für mehrere geöffnete Programme gab war, dass die Steuerung der Zeitschlitze sehr ineffektiv war. Alles lief über Interrupts und das Betriebssystem nutzte diesen Mechanismus selbst auf der höchsten Ebene. Weiterhin war für GUI + Multitasking auf Betriebsystemebene kein echter Bedarf da, für Arbeitsstationen gab es schließlich auch noch Windows, welches zumindest rudimentäres Multitasking bot.

Außerdem sollte man nicht vergessen, dass auch DOS in der Lage war, Multitasking durchzuführen. Anders wären die vielen Prozesse ja nicht abegarbeitet worden. Der Computer hätte nicht gleichzeitig auf Maus und Tastatur lauschen und dabei ein Bild ausgeben können.

Mit "echtem" Multitasking á la Win95 war nur gemeint, dass die Prozesse jetzt feste Zeitschlitze nutzen konnten und nicht getriggert werden mussten. Ein Programm konnte sich darauf verlassen, auf jeden Fall wieder einen Zeitschlitz zu erhalten und wenn es den nur nutzt, um sich selbst zu beenden. Das vereinfacht den Umgang mit der Prozessorzeit. Programme steuern ihren Ressourcenverbrauch weitgehend selbst ohne dabei den Scheduler oder Hypervisor in Gefahr zu bringen (jeder kommt mal dran).


So und jetzt zur eigentlichen Frage: sie ist schwer zu beantworten. Ich denke mit den DOS Verfahren und Interrupts, nennen wir es Single Tasking) wäre die Leistung heutiger Prozessoren nicht wirklich gut nutzbar. Die heutigen Programm nutzen deshalb mehr Ressourcen, da diese auch vorhanden sind. Ein 16 Bit Dos Programm nutzt diese Ressourcen nicht und kann deshalb auch nicht so viel Arbeit in der Zeit bewältigen. Zwar beschäftigt es sich auch weniger mit sich selbst, aber: das Tasking selbst macht nur einen winzigen Bruchteil der Prozessorzeit aus.

Weiterhin haben sich die Anforderungen an PCs dramatisch geändert. Diese müssen heute viele Dinge gleichzeitig beherrschen. Alleine schon eine MP3 im Hintergrund dudeln lassen und im Vordergrund im Forum schreiben, ist eine Sinfonie an Tasks, welche auf DOS nur unter speziellen Bedingungen handelbar gewesen wäre. Die GUI ist natürlich schön bunt, ein Farbverlauf wird nicht gezeichnet (Anweisung: jede Linie eine Stufe heller als die Vorhergehende), sondern ein abgespeichertes Bild wird angezeigt. Das kostet Ressourcen, ist aber ggf. weniger Aufwand für Programmierer und lässt sich besonders wegen den Overlaytechniken der Grafikbeschleuniger seit den 90ern einfach viel besser nutzen.

Noch ein Punkt: schon zu DOS Zeiten gab es auch echtes Multitasking z.B. bei Unix. Es gab sogar sogenannte Echtzeitbetriebssysteme die auf Hosts liefen. So viel Rechenleistung hatte aber niemand zuhause und die Anwendungsfälle waren sehr speziell.

Rockatansky
18.05.2015, 17:26
Ein 16 Bit Dos Programm nutzt diese Ressourcen nicht und kann deshalb auch nicht so viel Arbeit in der Zeit bewältigen. Zwar beschäftigt es sich auch weniger mit sich selbst, aber: das Tasking selbst macht nur einen winzigen Bruchteil der Prozessorzeit aus.

Viele DOS angebliche 16 Bit Programme sind aber in wirklichkeit 32 Bit Programme, die einen 32 Bit Dos Extender verwenden,
http://en.wikipedia.org/wiki/DOS/4G

wie Quake oder Descent oder Descent 2 etc..

Rockatansky
18.05.2015, 17:29
Es ging in der Umfrage ja nicht um DOS speziell, sondern darum, warum auf Konsolen oder in einem
Single Task System die Ressourcen mehr genutzt werden können!

Eine XBOX 1 hat nur 64 Megabyte Ram (!) und einen 733 Mhz Prozessor und da liefen
schon Programme in 1280x720 Pixeln bei Echtfarben.

Franko
18.05.2015, 17:51
Ahso ... ich denke mir das diese ganzen Programme die ein Compiler produziert, nicht so gut gestrickt sind wie wenn man es in Assembler schreiben würde.

Der Compiler ist doch auch nur ein armes Vieh! ;) Es kommt viel mehr darauf an, WIE der Quellcode aussieht der in den Compiler geschickt wird.

Gibt da viele Halbamateure die in VB/C irgendwas zusammenstricken was der Performance nicht gerade förderlich ist.

PS: Meine programmierten Anwendungen sind i.d.R. als gepackte Exe kleiner als 1 MB ;)

Schaschlik
18.05.2015, 17:57
Viele DOS angebliche 16 Bit Programme sind aber in wirklichkeit 32 Bit Programme, die einen 32 Bit Dos Extender verwenden,
http://en.wikipedia.org/wiki/DOS/4G

wie Quake oder Descent oder Descent 2 etc..

Das sind aber schon ganz schöne Klimmzüge um 64MB Speicher nutzen zu können. NT 32 Bit geht nativ bis 2GB pro Prozess. Dazu kommt native Multicoreunterstützung. Ein Singlecorebetriebssystem wird sich schwer auf viele Kerne verteilen lassen. Genau das ist aber notwendig um heutige Prozessoren optimal nutzen zu können.

Und mach Dir keine Illusionen, 12 GHz singlecores wird es absehbar nicht geben. Ohne Parallelisierung ist kein Blumentopf mehr zu gewinnen.

Fazit: ja, DOS und Xbox schonen Ressourcen.... Indem sie sie nicht nutzen.

Rockatansky
18.05.2015, 18:05
...

Und mach Dir keine Illusionen, 12 GHz singlecores wird es absehbar nicht geben. Ohne Parallelisierung ist kein Blumentopf mehr zu gewinnen.


12 Ghz kann es gar nicht geben, da bei dem Stand der Halbleitertechnik bei 4 Ghz circa Schluss ist!
Dann müsste einiges anders sein, mit Silicium wird das nichts. Supraleiter und was weiß ich.


:auro:


Fazit: ja, DOS und Xbox schonen Ressourcen.... Indem sie sie nicht nutzen.


Die Xbox 1 Programmierung

nutzt ganz intensiv und holt alles aus dem System raus was drinsteckt.

Darum ging es ja.

Oder meinst du ein DOOM 3 oder Far Cry oder ein Titel wie "Black" wäre auf einem System PC mit 64 MB und 733 Mhz gelaufen?
https://www.youtube.com/watch?v=Pn9dAbNJdVo
https://www.youtube.com/watch?v=uome4Nf5Hgc


https://www.youtube.com/watch?v=cvdUmDIIL0A


:haha: :fizeig:Das glaubst ja wohl selber nicht!

Rockatansky
18.05.2015, 18:12
Zitat:

Schonmal darüber nachgedacht, dass kein OS Layer zwischen Spiel und Konsole sitzt, der Speicher frisst und tausende von DLLs nachladen muss wie beim Windows-PC? Die Spiele brauchen nicht mehr als 64 MB RAM.

Klar, es gibt Ausnahmen wie Deus Ex 2, wo man ernsthaft darüber hätte nachdenken sollen, ob das Spiel auf Konsole sinnvoll ist, aber generell ist das RAM kein limitierender Faktor...

Hier sitzen wieder massig Leute, die die XBOX offensichtlich nur vom Reißbrett kennen... wenn man ein Spiel wie "Dead or Alive 3" mal gesehen hat, wird kaum einen Unterschied in Sachen Grafik und Spielspaß zu aktuellen PC-Titeln ausmachen können. Klar, die Spiele haben zwar nur PAL-Auflösung, aber nutzen massiv FSAA und AF, so fällt der grafische Qualitätsunterschied kaum auf. Der Grafikchip ist ein modifizierter NV25, der mit seinem verbesserten Befehlssatz auch DX9-Grafikeffekte wie z.B. Hitzeflimmern oder bessere Shader für Wasser einsetzen kann.


http://www.gamestar.de/community/gspinboard/archive/index.php/t-15184.html


Indem sie sie nicht nutzen.:auro:

Rockatansky
18.05.2015, 18:18
Zitat:

Xbox:
Wird oft kritiesiert, es wäre nie richtig ausgereizt geworden, was so nicht stimmen kann. Klar klingen 64MB RAM und 733 MHz in Bezug auf die Konkurrenz viel, aber man muss bedenken, dass es sich hier um sehr ineffiziente PC-Hardware handelte. Trotzdem bieten Spiele wie Riddick, PGR2, Doom 3, Half-Life 2 oder Ninja Gaiden Black eindrucksvolle Beispiele, was die Hardware ermöglichen konnte.

http://forum.nexgam.de/index.php?page=Thread&postID=1267187

Schaschlik
19.05.2015, 06:37
12 Ghz kann es gar nicht geben, da bei dem Stand der Halbleitertechnik bei 4 Ghz circa Schluss ist!
Dann müsste einiges anders sein, mit Silicium wird das nichts. Supraleiter und was weiß ich.


:auro:



Die Xbox 1 Programmierung

nutzt ganz intensiv und holt alles aus dem System raus was drinsteckt.

Darum ging es ja.

Oder meinst du ein DOOM 3 oder Far Cry oder ein Titel wie "Black" wäre auf einem System PC mit 64 MB und 733 Mhz gelaufen?
https://www.youtube.com/watch?v=Pn9dAbNJdVo
https://www.youtube.com/watch?v=uome4Nf5Hgc


https://www.youtube.com/watch?v=cvdUmDIIL0A


:haha: :fizeig:Das glaubst ja wohl selber nicht!


Fällt mir schwer, hier irgend etwas zu glauben. Weil Du ganz offensichtlich keine Ahnung von Tasking, Programmierung, Betriebssystemen und ihre Funktion hast. Du schmeißt PC und Konsole wild durcheinander, wie es Dir gerade passt. So wird das nix.

Bleib mal bei Konsole oder PC und vergleiche dann ältere singletask Systeme mit neueren multitask Systemen. Vielleicht kommst Du dahinter, warum alle Hersteller mittlerweile so arbeiten. Die heutige Ressourcen intensive Art zu programmieren ist eben auch viel billiger. Die Titel sind eh schon aufwändiger, ein Grafikdesigner ist heute mehr Künstler und weniger Programmierer als früher (vom Arbeitsaufwand gesehen).

Der Vergleich ist sinnlos, es ist wie Kaminofen mit Kohlekraftwerk zu vergleichen und zu fragen, was sparsamer ist.

Rockatansky
19.05.2015, 09:04
Fällt mir schwer, hier irgend etwas zu glauben. Weil Du ganz offensichtlich keine Ahnung von Tasking, Programmierung, Betriebssystemen und ihre Funktion hast. Du schmeißt PC und Konsole wild durcheinander, wie es Dir gerade passt. So wird das nix.

Bleib mal bei Konsole oder PC und vergleiche dann ältere singletask Systeme mit neueren multitask Systemen.

...
Du weißt aber schon, dass XBOX 1 praktisch ein typischer Low End PC ist
und da Windows 2000 oder Embedded als OS drauf läuft?


Warum sollte man dann nicht einen Vergleich anstellen?

Schaschlik
19.05.2015, 12:25
Du weißt aber schon, dass XBOX 1 praktisch ein typischer Low End PC ist
und da Windows 2000 oder Embedded als OS drauf läuft?


Warum sollte man dann nicht einen Vergleich anstellen?


Du hast weiter oben geschrieben, auf Konsolen würden mittlerweile auch Multitask Systeme laufen, dabei aber weniger Ressourcen benötigen. Du erweckst den Eindruck, es würde Dir um einen Vergleich zwischen Singletasking und Multitasking gehen und nicht ziwschen PCs und Konsolen.

PCs und Konsolen kann man deshalb nicht direkt vergleichen, weil Konsolen für sehr dedizierte Funktionen optimiert sind und PCs sehr allgemeine Aufgaben können müssen. Z.B. besitzen PCs bedeutend mehr Peripherie, für welche Treiber existieren müssen. Konsolen dagegen sind für genau einen Zweck gebaut und nach den vorhandenen Ressourcen richtet sich, was dafür programmiert wird. PCs dagegen sind für jeden Zweck gebaut, für den ihre Rechenleistung ausreicht. Folglich setzen die Zwecke (Programme) die Anforderungen an die Hardware.

Das für Konsolen und PCs teilweise die gleiche Hardware verwendet wird, spielt dabei keine Rolle, da eine Konsole nur eine Teilmenge der insgesamt verfügbaren Hardware darstellt. Selbstverständlich kann ich eine Konsole jederzeit in einen PC "umschmieden", welcher dann aber auch nur sehr begrenzte Zwecke erfüllen kann. Z.B. gibt es keine Treiber für viele Peripheriegeräte und ein Betriebssystem findet ggf. nicht alle Funktionen vor, um besonders effektiv zu arbeiten.

Eine solche Funktion wäre z.B. eine Hardwarevirtualisierung im Prozessor. PC Prozessoren können das heute alle, weil es das Tasking erheblich vereinfacht und den Hypervisor des Betriebssystems optimal bei seiner Arbeit unterstützt. Konsolen benötigen so etwas nicht, weshalb es in ihren angepassten OS meist nicht unterstützt wird und die Hardwareeinheiten dazu nicht verfügbar sind oder deaktiviert wurden. Eine Konsole verarbeitet nämlich hauptsächlich Datenströme und selbst die Eingaben sind entsprechend organisiert, dass das System nicht mit "Überraschungen" rechnen muss. Folglich kann ein einzelner Task alle Datenströme abarbeiten und verknüpfen und kein OS muss im Hintergrund lauschen, ob ein neues Gerät angesteckt wurde oder sich der Anwender für die Systemzeit interessiert. Wenn überhaupt werden solche Funktionen von den Spielen abgefangen und die Entwickler werden angehalten, alles vollständig und von Grund auf in ihre Programme zu implementieren, weil es sonst nicht funktioniert. Was nicht gebraucht wird, existiert auch nicht im Ansatz und ist so auch kein Ballast. Alles was gebaucht wird, muss dagegen aufwändig eingefügt werden.

Ein PC Entwickler muss das nicht! Wenn ich mir in einer Box den Tree des OS aufilsten lasse, tauchen dort ganz von allein zwischenzeitlich angesteckte USB Sticks auf. Das OS kümmert sich darum und ihm stehen (multitasking) regelmäßig Zeitschlitze dafür zur Verfügung.

Ein Vergleich "total effektives Xbox1-Spiel nutzt 99,8% Prozessorzeit eines verfügbaren Cores" gegen "total doofes Windows-Spiel nutzt nur 45% von 4 Cores" ist sinnlos. Weiterhin sind Konsolen heute selbst Multicoresysteme, welche allerdings trotzdem "nur Spiele" können müssen und somit die vorhandenen Ressourcen besser nutzen als PCs, allerdings längst nicht mehr in dem Maßstab wie ältere Konsolen. Heute ist man schon froh, wenn man die Grafikkerne zu 98% auslastet, die CPU Kerne idlen die meiste Zeit oder kommen mal ausnahmsweise auf 75%.

Dafür ist die Schwuppdizität (http://de.quickipedia.org/Schwuppdizit%C3%A4t) heutiger Systeme enorm und plötzliche Hochlastszenarien werden aus dem Idle heraus selbst im Hintergrund sehr gut abgefangen, ohne dass der User etwas davon merkt. Programmierung ist super einfach geworden im Vgl. zu früher, selbst die ach so supereffektiven Konsolen zeigen ihre Menüs heute in (angepassten) Skriptsprachen und ermöglichen es den Entwicklern so, sehr einfach neue Funktionen zu implementieren und auch bei späteren Contentpatches nicht den ganzen Code neu kompilieren oder debuggen zu müssen. Modulare Programmierung ist standard und was liegt näher, als Module in seperate Threads zu verpacken? Man muss das Rad nicht jedes mal neu erfinden und die Konsolenhersteller setzen vor allem auf PC Technik und entsprechende Programmierung, weil das billiger ist und sich die großen Spielepublisher schon über die aufwändige Programmierung beschwert haben. PS3 war für die das höchste der Gefühle! (obwohl auch schon multicore-threaded, aber eben propietär)

Rockatansky
19.05.2015, 18:55
Ok, das war eine ganz gute Erklärung. :)



Du erweckst den Eindruck, es würde Dir um einen Vergleich zwischen Singletasking und Multitasking gehen und nicht ziwschen PCs und Konsolen.

Doch, als Ergänzung: Darum geht es. Dass also gemeint ist, dass Win 95 ... bis 10 heute auch durch einfachere Programmierung nicht effektiv ausgereizt werden.

Dass es in DOS Zeiten wohl effektivere Programmierung gab, oder das auch bei Konsolen, Arcades die Hardware mehr ausgereizt worden ist, wird!





Ein Vergleich "total effektives Xbox1-Spiel nutzt 99,8% Prozessorzeit eines verfügbaren Cores" gegen "total doofes Windows-Spiel nutzt nur 45% von 4 Cores" ist sinnlos. Weiterhin sind Konsolen heute selbst Multicoresysteme, welche allerdings trotzdem "nur Spiele" können müssen und somit die vorhandenen Ressourcen besser nutzen als PCs,Ok.

Schaschlik
19.05.2015, 19:22
Du verwechselt effektiv mit effizient. Die Frage ist, wie man Effizienz bemisst. Geht es um einfache Arbeitsabläufe, unkomplizierte Update Mechanismen und gute Wartbarkeit, sind heutige Programme und OS effizienter als die von früher. Der PC ist vom Profiwerkzeug zur Standardbüroausstattung mutiert. Da spielt es keine Rolle, ob Photoshop in 6 oder 20 Sekunden startet. Ein Bürorechner idlet 95% seiner Zeit und wartet auf den Benutzer. Nur bei Spielen und Spezialanwendungen kommt es noch auf Effizienz bei den verfügbaren Ressourcen an. Und da gibt es gerade jetzt wieder Neuerungen bei den APIs.

Bedenke auch, ohne Windows und DirectX gäbe es heute wohl keine so große PC Spielwelt.



Edit: hab im letzten Beitrag selbst effektiv und effizient verwechselt :crazy: :hsl:

Rockatansky
24.05.2015, 22:13
...


Edit: hab im letzten Beitrag selbst effektiv und effizient verwechselt :crazy: :hsl:

Habe das noch zu DX 12

Da ist schon von einem "CPU Overhead" und weitereren Leistungsteigerungen die Rede!

http://wccftech.com/dx12-revealed-compared-dx11/

Microsoft hasn’t just improved their threading model, they’ve also significantly reduced the overhead on the workloads that remained single threaded by necessity and completely removed the kernel-mode driver from the equation. The end result is CPU overhead reduction in DX12 by half compared to DX11. Which means Microsoft has essentially doubled CPU performance across four threads while running DX12 compared to DX11. I would expect an even better performance improvement across additional CPU cores.


Read more: http://wccftech.com/dx12-revealed-compared-dx11/#ixzz3b5nKPjZY




Ergänzung zum Thema !

ochmensch
24.05.2015, 22:25
Klar, die RAM-Verwaltung war so toll, dass ich für jedes Spiel ne eigene Startdiskette brauchte.

Rockatansky
24.05.2015, 22:55
geht hier nicht mehr um DOS

Strang lesen