Seite 2 von 2 « Erste 12
Ergebnis 21 bis 27 von 27

Vorteile von CISC-Prozessoren

  1. #21 Zitieren
    Adventurer
    Registriert seit
    May 2021
    Ort
    Deutschland
    Beiträge
    91
    Das ist super interessant zu lesen und auch gut verständlich für "Nicht-ITler", vielen Dank


    Das mit der Größenordnung ist ein gutes Beispiel. Wenn ich jetzt mal in den Windows-10-Task-Manager gucke im Reiter Leistung und CPU. Verstehe ich das richtig, dass z. B. eine Anwendung "Beispiel.exe" aus 5 Prozessen besteht. Diese 5 Prozesse teilen sich dann wiederum auf in 10 Threads. Richtig so?

    Übrigens, was bedeuten dann eig. die Handles im Task-Manager? Ist das noch mal eine Aufteilung der Threads?
    Lerran ist offline

  2. #22 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.045
    Zitat Zitat von Lerran Beitrag anzeigen
    Das mit der Größenordnung ist ein gutes Beispiel. Wenn ich jetzt mal in den Windows-10-Task-Manager gucke im Reiter Leistung und CPU. Verstehe ich das richtig, dass z. B. eine Anwendung "Beispiel.exe" aus 5 Prozessen besteht. Diese 5 Prozesse teilen sich dann wiederum auf in 10 Threads. Richtig so?
    Ich weiß gerade nicht aus dem Kopf, ob der normale Task-Manager auch die Threads anzeigt. Jeder Prozess hat mindestens einen Thread. Ob er mehr als einen hat, entscheidet der Programmierer. Den ersten Thread kriegt man frei Haus, alle weiteren muss man von Hand anlegen. Prozesse sind vom Betriebssystem verwaltete, sauber voneinander getrennte Abläufe mit jeweils eigenen Ressourcen, die sich gegenseitig nicht ins Handwerk pfuschen dürfen. Threads wiederum sind unterschiedliche Abläufe innerhalb von Prozessen (quasi Sub-Prozesse), die keine Isolation voneinander haben. Jeder Thread kann jedem anderen (im selben Prozess) in dessen Arbeit reinpfuschen und wenn einer den Prozess zum Absemmeln bringt, sind die anderen auch mit dran. Da muss sich der Programmierer selber darum kümmern, dass das nicht passiert. Dafür hat er mit weniger Bürokratie vom Betriebssystem zu kämpfen.

    Wie es mit Prozessen ist, kannst du z.B. am Firefox sehen. Der nutzt seit einiger Zeit mehrere Prozesse. Das Problem, vor dem FF (und andere Software ebenso) steht, ist folgendes: Wenn alles in einem Prozess läuft, und irgendwo macht ein Plugin oder Addon Unsinn oder ein Tab hat einen Fehler, dann stürzt der ganze Prozess ab und alle offenen Fenster und Tabs sind weg. So war es in der Vergangenheit. Am besten wäre, wenn FF jede Seite, jeden Tab, jedes Fenster und evtl. sogar jedes Addon in einen eigenen Prozess auslagern würde. Dann könnten die abstürzen, ohne das dem Rest irgendwas passiert. So macht es AFAIK Chrome (und gilt deshalb als Speicherfresser, siehe folgenden Abschnitt). Logisch zu Ende gedacht führt das übrigens zur Idee der Mikrokernel, wo möglichst wenig im Kernel läuft und so viel wie möglich (Treiber, Dienste, Anwendungen etc.) in normale Userspace-Prozesse ausgelagert wird.

    Dummerweise gibt es pro Prozess einen Mehraufwand (Overhead), wenn man das so macht. Jeder Prozess braucht seinen eigenen RAM, also ist der RAM schneller alle. Da die Prozesse voneinander isoliert sind (das ist ja gerade der Sinn), dürfen sie nur über spezielle Schnittstellen miteinander reden, also gibt es da auch Reibungsverluste, wenn was koordiniert werden muss. Die CPU hat mehr Aufwand damit, zwischen den Prozessen umzuschalten. Und so weiter, und so fort.

    Aus Stabilitätsgründen will man also eigentlich alles in eigene Prozesse kapseln. Aus Performancegründen ist es besser, alles in einem einzigen Prozess zu bündeln. Firefox teilt das Kind in der Mitte und fährt einen Kompromiss: Je nach Leistungsfähigkeit des Systems und ein paar anderen magischen Würfeleien ermittelt er die für deinen Fall „optimale” Zahl an Prozessen und verteilt dann die anfallenden Arbeiten auf diese Instanzen.


    Du kannst dir mal den Process Explorer von Sysinternals angucken. Der verrät einiges mehr als der Task-Manager von Windows (u.a. auch die Threads).


    Übrigens, was bedeuten dann eig. die Handles im Task-Manager? Ist das noch mal eine Aufteilung der Threads?
    Nö, das ist eigentlich eine andere Baustelle. Ein Handle ist ein vom OS abstrahierter Zugriffspunkt auf eine Ressource. Wenn ein Prozess zum Beispiel eine Datei öffnet, dann gibt Windows ihm einen Handle auf diese Datei. Und über diesen Handle kann der Prozess dann mit der Datei arbeiten (Lesen, Schreiben, Navigieren, etc). Handles können aber auch Speicher, Sockets oder Pipes referenzieren. Doch auch Threads werden über Handles gesteuert, und so gibt es dann doch wieder einen Bezug zu denen. Die Idee ist, die eigentlichen Speicheradressen hinter diesem abstrakten Dingsbums namens Handle zu verstecken, damit die Anwendung keinen Unfug damit anstellt. Unter der Haube ist das Handle eigentlich nur eine Nummer auf eine intern von Windows verwaltete Tabelle, in der es über die Zuordnungen und Berechtigungen von Ressourcen Buch führt.

    Feeling a bit masochistic and want to read more of my diatribes? Check out Foobar's Rantpage.

    foobar erklärt die Welt der Informatik: Was ist ein Zeichensatz?Was ist die 32Bit-Grenze?Warum sind Speicheroptimierer Unsinn?Wie teste ich meinen RAM?Was ist HDR?Was ist Tesselation?Warum haben wir ein Urheberrecht?Partitionieren mit MBR oder GPT?Was hat es mit dem m.2-Format auf sich?Warum soll ich meine SSD nicht zum Anschlag befüllen?Wer hat an der MTU gedreht?UEFI oder BIOS Boot?Was muss man über Virenscanner wissen?Defragmentieren sinnvoll?Warum ist bei CCleaner & Co. Vorsicht angesagt?Was hat es mit 4Kn bei Festplatten auf sich?Was ist Bitrot?Was sind die historischen Hintergründe zur (nicht immer optimalen) Sicherheit von Windows?Wie kann ich Datenträger sicher löschen?Was muss ich bzgl. Smartphone-Sicherheit wissen?Warum sind Y-Kabel für USB oft keine gute Idee?Warum sind lange Passwörter besser als komplizierte?Wie funktionieren Tintenstrahldrucker-Düsen?Wie wähle ich eine Linux-Distribution für mich aus?Warum ist Linux sicherer als Windows?Sind statische Entladungen bei Elektronik wirklich ein Problem?Wie repariere ich meinen PC-Lüfter?Was ist die MBR-Lücke?Wie funktioniert eine Quarz-Uhr?Was macht der Init-Prozess unter Linux und wie schlimm ist SystemD?Mainboard-Batterie - wann wechseln?Smartphone ohne Google?
    foobar ist offline Geändert von foobar (08.06.2021 um 03:18 Uhr) Grund: Klarstellung

  3. #23 Zitieren
    Legende Avatar von jabu
    Registriert seit
    Jul 2011
    Beiträge
    7.383
    Zitat Zitat von foobar Beitrag anzeigen
    Ich weiß gerade nicht aus dem Kopf, ob der normale Task-Manager auch die Threads anzeigt.
    Habe kurz nachgeguckt:
    In der Vorkonfiguration zeigt er keine Threads an. Es lässt sich aber per Kontextmenü des Tabellenkopfes unter "Spalten auswählen" das Anzeigen der Anzahl der Threads (u.v.m.) hinzukonfigurieren. Etwas mehr verrät der Ressourcenmonitor. Mit dem Process Explorer kommt der Ressourcenmonitor nach wie vor nicht mit. Der Process Explorer zeigt z.B. auch die Thread-IDs an.
    jabu ist offline

  4. #24 Zitieren
    Adventurer
    Registriert seit
    May 2021
    Ort
    Deutschland
    Beiträge
    91
    Ah verstehe, danke für die Erklärung. Das ist eigentlich alles wie so ein Getriebe bei einem Motor.
    Ist das dann bei allen Betriebssystemen (z. B. Linux) generell so, also sprich die Unterteilung in Prozesse, Threads und Handles oder ist das nur Windows-Spezifisch?
    Lerran ist offline

  5. #25 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Zitat Zitat von Lerran Beitrag anzeigen
    ...
    Das mit der Größenordnung ist ein gutes Beispiel. Wenn ich jetzt mal in den Windows-10-Task-Manager gucke im Reiter Leistung und CPU. Verstehe ich das richtig, dass z. B. eine Anwendung "Beispiel.exe" aus 5 Prozessen besteht. Diese 5 Prozesse teilen sich dann wiederum auf in 10 Threads. Richtig so?
    ...
    Ok, vielleicht hätte ich dazu erwähnen sollen, dass auf meinem Laptop kein Windows läuft.
    Ich bin auch mittlerweile zu lange raus aus Windows, als dass ich solche Fragen noch ohne größere Recherche beantworten könnte. Aber das haben ja andere schon übernommen.

    Zitat Zitat von Lerran Beitrag anzeigen
    Ah verstehe, danke für die Erklärung. Das ist eigentlich alles wie so ein Getriebe bei einem Motor.
    Ach, deine Motoren laufen mit Bits und Bytes? Komische Getriebe hast du da.

    Zitat Zitat von Lerran Beitrag anzeigen
    Ist das dann bei allen Betriebssystemen (z. B. Linux) generell so, also sprich die Unterteilung in Prozesse, Threads und Handles oder ist das nur Windows-Spezifisch?
    Hm, jain. Streng genommen kann das der Entwickler des Betriebssystems entscheiden. Technisch notwendig ist diese Organisationsstruktur nicht und man könnte das sicher auch ganz anders machen. Allerdings ist die Aufteilung in Prozesse und Threads in eigentlich allen relevanten Betriebssystemen gleich, oder zumindest sehr sehr ähnlich. Tja, wie es wohl kommt?

    Das mit den Handles ist allerdings ziemlich Windows-Typisch. Unixoide Systeme (zu denen auch Linux gehört) haben da eher den Ansatz "Alles ist eine Datei" ... und das meinen die übrigens auch so. Ja, du findest auf einem Linux deine Festplatte als Datei im Dateisystem wieder. Ja, da kann man einen Knoten ins Hirn bekommen. Aber wenn man das Konzept einmal durchblickt hat, ist das eigentlich extrem genial und man kann da richtig krankes Zeug mit machen. Selbst laufende Prozesse finden sich so wieder, oder Referenzen auf offene Dateien als sogenannter File-Descriptor.
    Lookbehind ist offline

  6. #26 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.045
    Zitat Zitat von Lerran Beitrag anzeigen
    Ist das dann bei allen Betriebssystemen (z. B. Linux) generell so, also sprich die Unterteilung in Prozesse, Threads und Handles oder ist das nur Windows-Spezifisch?
    Bei den meisten ist es so. Das System muss natürlich neu genug sein. Beim alten MS-DOS zum Beispiel hattest du gar keine Prozesse, geschweige denn Threads. Es konnte immer nur ein Programm gleichzeitig laufen.

    Die Terminologie mag sich ändern. Bei POSIX-Systemen (Unix/Linux) heißt es zum Beispiel offiziell „Descriptor” statt „Handle”, ist aber im Prinzip das selbe (das von Lookbehind angesprochene „alles ist eine Datei” gilt trotzdem, die File Descriptors sind bei Linux z.B. unter /proc/<pid>/fd/ verfügbar). Manche Systeme sprechen statt „Prozessen” von „Tasks” oder „Jobs”, meinen aber auch das gleiche.

    Auch hat nicht jedes OS ein Handle für Threads, weil es da unterschiedliche Ansätze gibt, die zu implementieren. Man kann Threads auch im Userspace anlegen, so dass der Kernel des Betriebssystems nix davon mitkriegt und entsprechend auch kein Handle dafür anlegt. Hat, wie alles, seine individuellen Vor- und Nachteile. Das hattest du z.B. bei Windows 3.x oder Solaris. Auch die Java Virtual Machine kann Threads im Userspace erzeugen (Java ist ja für unterschiedliche Plattformen gedacht und kann sich nicht darauf verlassen, dass jedes OS nativen Thread-Support hat). Microsoft nennt die Userspace-Threads heutzutage IIRC „Fiber”, mit dem Hintergedanken, dass sie leichtgewichtiger sind und deshalb eine Stufe unter Threads stehen: Eine Faser ist dünner als ein Faden.

    Aber wenn man die jeweiligen Unterschiede im Detail ignoriert und nur grob vergleicht, dann sind sich die meisten modernen Betriebssysteme da ähnlich.

    Feeling a bit masochistic and want to read more of my diatribes? Check out Foobar's Rantpage.

    foobar erklärt die Welt der Informatik: Was ist ein Zeichensatz?Was ist die 32Bit-Grenze?Warum sind Speicheroptimierer Unsinn?Wie teste ich meinen RAM?Was ist HDR?Was ist Tesselation?Warum haben wir ein Urheberrecht?Partitionieren mit MBR oder GPT?Was hat es mit dem m.2-Format auf sich?Warum soll ich meine SSD nicht zum Anschlag befüllen?Wer hat an der MTU gedreht?UEFI oder BIOS Boot?Was muss man über Virenscanner wissen?Defragmentieren sinnvoll?Warum ist bei CCleaner & Co. Vorsicht angesagt?Was hat es mit 4Kn bei Festplatten auf sich?Was ist Bitrot?Was sind die historischen Hintergründe zur (nicht immer optimalen) Sicherheit von Windows?Wie kann ich Datenträger sicher löschen?Was muss ich bzgl. Smartphone-Sicherheit wissen?Warum sind Y-Kabel für USB oft keine gute Idee?Warum sind lange Passwörter besser als komplizierte?Wie funktionieren Tintenstrahldrucker-Düsen?Wie wähle ich eine Linux-Distribution für mich aus?Warum ist Linux sicherer als Windows?Sind statische Entladungen bei Elektronik wirklich ein Problem?Wie repariere ich meinen PC-Lüfter?Was ist die MBR-Lücke?Wie funktioniert eine Quarz-Uhr?Was macht der Init-Prozess unter Linux und wie schlimm ist SystemD?Mainboard-Batterie - wann wechseln?Smartphone ohne Google?
    foobar ist offline Geändert von foobar (08.06.2021 um 12:00 Uhr) Grund: Fipptehler

  7. #27 Zitieren
    Adventurer
    Registriert seit
    May 2021
    Ort
    Deutschland
    Beiträge
    91
    Vielen Dank an euch beiden, wirklich sehr informativ und interessant
    Lustigerweise habe ich heute nen Artikel über Intels neue Alder Lake S Prozessoren gelesen, in dem es heißt, dass der Task-Scheduler von Windows 10 erst mal daraufhin angepasst werden müsse - was der Task-Scheduler macht, wissen wir ja jetzt ^^

    Ich glaube ich muss mir auch mal Linux angucken. Das System hört sich echt interessant an was ihr so erzählt.
    Lerran ist offline

Seite 2 von 2 « Erste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •