Technologieaustausch

Wie Computer funktionieren (Grundkenntnisse für Programmierer)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Geschichte der Computerentwicklung

Der Bedarf an Computern ist in der Menschheitsgeschichte weit verbreitet und seine Entwicklung hat im Allgemeinen den Entwicklungsprozess von allgemeinen Computerwerkzeugen über mechanische Computer bis hin zu aktuellen elektronischen Computern durchlaufen.
Der Bedarf der Menschheit an Computern treibt uns dazu, Computer kontinuierlich zu erfinden und zu verbessern. Die aktuelle Ära ist die Ära der „elektronischen Computer“, und der Entwicklungstrend ist: schneller, stabiler und kleiner.
Empfohlene Bücher: „Eine kurze Geschichte der Computer“

2. Von Neumann-Architektur

Punkt 1
Moderne Computer erfüllen die meisten AnforderungenVon Neumann-Architektur
Fügen Sie hier eine Bildbeschreibung ein

  • CPU-Zentraleinheit: Führt arithmetische Operationen und logische Urteile durch
  • Speicher: unterteilt in externen Speicher und internen Speicher und dient zum Speichern von Daten (unter Verwendung von Binärspeicher).
  • Eingabegerät: Ein Gerät, mit dem der Benutzer dem Computer Befehle erteilt
  • Ausgabegerät: Ein Gerät, mit dem der Computer dem Benutzer Ergebnisse meldet
    Für Stauraum
    Festplatte>Speicher>>CPU
    Für Datenzugriffsgeschwindigkeit
    CPU>>Speicher>Festplatte

Einführung in von Neumann (den Vater der Computer)

John von Neumann (28. Dezember 1903 – 8. Februar 1957), ungarisch-amerikanischer Mathematiker und Informatiker
Wissenschaftler, Physiker und einer der bedeutendsten Mathematiker des 20. Jahrhunderts. Von Neumann ist ein Doktor der Mathematik an der Universität Budapest. Er ist einer der vielseitigsten wissenschaftlichen Köpfe in den Bereichen moderne Computer, Spieltheorie, Atomwaffen und biologische Waffen „Vater moderner Computer“ und „Vater der Spieltheorie“.
Fügen Sie hier eine Bildbeschreibung ein

3. Grundlegender CPU-Workflow

Als nächstes verwenden wir einen Prozess von Grund auf, um Schritt für Schritt eine CPU aufzubauen. Mit diesem Prozess können wir die Funktionsprinzipien der Hauptkomponenten des Computers wie CPU und Speicher verstehen.

3.1 Logikgatter

Elektronischer Schalter – mechanisches Relais
Fügen Sie hier eine Bildbeschreibung ein
Durch elektronische Schalter können wir scheinbar nutzlose 1-Bit-Logikoperationen implementieren, aber zumindest funktioniert es, oder?
Wir erfahren mehr darüber, wie man mit elektronischen Schaltern wirklich nützliche Logikkomponenten kombiniert.
Der Kern zukünftiger Vakuumröhren und Transistoren besteht darin, ähnliche Arbeiten auszuführen, die physikalischen Prinzipien sind jedoch komplexer, sodass wir Sie nicht ausführlich erläutern.

3.2 Gate-Schaltung

Als nächstes lernen wir, wie man mit elektronischen Schaltern einige nützliche Komponenten baut – Gatterschaltungen. Grundlegende logische Operationen von 1 Bit können realisiert werden.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

3.3 Arithmetik- und Logikeinheit ALU (Arithmetik- und Logikeinheit)

ALU ist die Kernkomponente für arithmetische und logische Operationen in Computern und das mathematische Gehirn des Computers. Als nächstes verwenden wir die oben konstruierten Logikgatter, um eine eigene ALU zu vervollständigen, um ihren Arbeitsmodus zu lernen und zu verstehen erweitern unser Verständnis moderner Computerprinzipien.
Fügen Sie hier eine Bildbeschreibung ein

3.3.1 Verständnis des Hexadezimalsystems

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

3.3.2 Recheneinheit

Die Recheneinheit ist für alle digitalen Operationen im Computer verantwortlich, wie zum Beispiel die vier Rechenoperationen. Natürlich kann sie noch viel mehr als das. Als nächstes zeige ich Ihnen, wie Sie einen 8-Bit-Addierer (Addierer) abdecken Ich werde den gesamten Prozess und andere Vorgänge nicht mehr erklären.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Zu diesem Zeitpunkt haben wir einen 8-Bit-Addierer von Grund auf erstellt. Die Operationen der Recheneinheit sind natürlich weit mehr als diese. Durch die weitere Kombination von Logikgattern kann die Recheneinheit Additionen, Subtraktionen, Multiplikationen, Divisionen und noch mehr Rechenoperationen durchführen, aber zur Demonstration reicht ein Addierer. Tatsächlich ist die Schwierigkeit, Multiplikatoren und Dividierer zu erstellen, höher als die von Addierern und Subtrahierern. Wenn Sie interessiert sind, können Sie versuchen, mehr zu erfahren.

3.3.3 Logikeinheit

Logikeinheiten werden hauptsächlich zur Durchführung logischer Operationen verwendet. Die grundlegendsten Operationen sind UND-, ODER- und NICHT-Operationen, es handelt sich jedoch nicht nur um den Vergleich von Ein-Bit-Zahlen.
Fügen Sie hier eine Bildbeschreibung ein

3.3.4 ALU-Symbole

经过我们的努力,通过基本的逻辑门电路,我们⼀步步地做出了⼀个 8 位(bits) ALU,甚至比 Intel 74181 还要强大,Intel 74181 只是⼀个 4 位(bits) ALU(😀)。当然现代的计算机中的 ALU 部件非常强大,复杂度远远超过了我们的想象,32 位 甚至 64 位基本已经普及全球了。但无论如何,再复杂的ALU 也是芯片工程师像我们这样,一层又一层, 一步又一步地将其抽象出来的。ALU 是第⼀次将人类历史上的数学和逻辑学学科有机地结合起来,可以视为人类智慧发展的现代巅峰.
Fügen Sie hier eine Bildbeschreibung ein

3.4 Register (Register) und Speicher (RAM)

Die ALU allein reicht nicht aus, daher verwenden wir als Nächstes die Gate-Schaltungen, um die Speicherproduktion kurz zu erläutern. Beachten Sie, dass diese Speicheranforderungen eingeschaltet bleiben müssen , das heißt, diese Speicher sind flüchtig (flüchtig)
Fügen Sie hier eine Bildbeschreibung ein
Wir verstecken einige Implementierungsdetails in der Mitte, und der endgültige Effekt ist: Wenn die Deaktivierungsleitung gesetzt ist, ist die Eingabe 1, und wenn die Eingabe 0 ist, wird 0 gespeichert, wenn die Aktivierungsleitung nicht in Position ist , der Schreibvorgang ist ungültig.
Wir können Türschlösser verwenden, um die Register und den Speicher aufzubauen, die wir brauchen.
Fügen Sie hier eine Bildbeschreibung ein
Der Aufbau des Gedächtnisses ist etwas komplizierter, aber die Grundprinzipien sind dieselben. Der auf diese Weise aufgebaute Speicher wird RAM (Random Access Memory) genannt und kann die Zeitkomplexität O(1) für den Zugriff auf Daten an jedem Ort unterstützen. Dies bedeutet, dass unsere Array-Index-Zugriffsoperation O(1) ist.
Hardware-Unterstützung.

Fügen Sie hier eine Bildbeschreibung ein

3.5 Steuereinheit CU (Steuereinheit)

Wir haben jetzt ALU und Speicher, aber das reicht immer noch nicht aus, um unseren Computer zum Laufen zu bringen. Wir brauchen eine Komponente, die die ALU anweist, welche Art von Berechnungen durchzuführen, und diese Komponente ist die Steuereinheit (CU).
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

3.6 Kernparameter der CPU

Punkt 2

3.6.1 Anzahl der Kerne

Fügen Sie hier eine Bildbeschreibung ein
Die Anzahl der Kästchen im obigen Bild kann als Anzahl der Kerne betrachtet werden. Wie im Bild gezeigt, handelt es sich um eine CPU mit 16 Kernen.
Frühe CPUs hatten einen einzelnen Kern. Mit der Zeit wurden immer höhere Anforderungen an die CPU-Verarbeitungsgeschwindigkeit gestellt. Dies erfordert eine stärkere Integration der CPU Die Recheneinheit muss klein sein (CPU-Herstellungsprozess, z. B. 5 nm usw.). Zu diesem Zeitpunkt wird die klassische Mechanik ungültig und beginnt, in den Bereich der Quantenmechanik vorzudringen.
Zu diesem Zeitpunkt wird das Konzept des Multicores vorgeschlagen.

3.6.2 Häufigkeit

Fügen Sie hier eine Bildbeschreibung ein

Die Rechengeschwindigkeit der CPU wird durch die Frequenz beschrieben, die einfach als die Anzahl der Befehle verstanden werden kann, die in einer Sekunde ausgeführt werden können (nicht streng). Beispielsweise kann die obige Geschwindigkeit als Berechnungen der CPU von etwa 3,4 Milliarden Mal pro Sekunde verstanden werden .
Die Frequenz der CPU ändert sich dynamisch je nach Arbeitslast, sie verbraucht mehr Strom und erzeugt mehr Wärme. Um die CPU vor Überhitzung zu schützen, wird die Frequenz automatisch reduziert.

3.7 Prozess der CPU-Ausführung von Anweisungen (Anweisung)

Punkt 3

3.7.1 Anweisungsliste

Lassen Sie uns zunächst die Anweisungen vorstellen, die wir benötigen.
Die sogenannte Anweisung, also der Befehl, der die CPU zur Ausführung von Arbeiten anleitet, besteht hauptsächlich aus Operationscode + Operand.
Der Opcode wird verwendet, um anzugeben, welche Aktion ausgeführt werden soll, und der Operand sind die Daten, die von diesem Befehl verarbeitet werden sollen. Dabei kann es sich um eine Speicheradresse oder eine Registernummer usw. handeln.
Die Anweisung selbst ist ebenfalls eine Zahl, die in binärer Form in einem bestimmten Speicherbereich gespeichert wird.
Die Programme, die wir in Programmiersprachen schreiben, müssen schließlich in „auf der CPU ausgeführte binäre Anweisungen“ übersetzt werden. Anweisungen sind die Grundeinheit der von der CPU ausgeführten Aufgaben.
Anweisungen sind auch Maschinensprache (binär) und Assemblersprache. Maschinensprache und Assemblersprache haben eine Eins-zu-eins-Entsprechung.
Verschiedene CPUs unterstützen unterschiedliche Anweisungen auf Mikroebene, z. B. x86-Anweisungen und ARM-Anweisungen, was zu Kompatibilitätsproblemen führt.
Fügen Sie hier eine Bildbeschreibung ein
Es kann davon ausgegangen werden, dass beim ursprünglichen Entwurf der CPU festgelegt wurde, welche Anweisungen eine CPU ausführen kann. In der Abbildung oben sind einige vereinfachte Anweisungen aufgeführt.
Der 8-Bit-Befehl kann in zwei Teile unterteilt werden.
Die ersten 4 Bits sind der Operationscode (Opcode), der angibt, was der Befehl tut.
Die letzten 4 Bits sind Operanden (ähnlich Parametern)
Der Registername AB in der obigen Tabelle ist fiktiv. Der Name des tatsächlichen CPU-Registers hat die Form: eax, ebx, esp, ebp...)

3.7.2 Grundlegender Prozess zur Ausführung von Anweisungen

In der CPU gibt es ein spezielles Register, den „Programmzähler“ (er wird vom System automatisch gesetzt, nachdem die Exe in den Speicher geladen wurde), der den Speicherort speichert, von dem aus der Befehl als nächstes ausgeführt wird Wenn die Anweisung ausgeführt wird, wird der Wert des „Programmzählers“ ebenfalls entsprechend aktualisiert. Standardmäßig handelt es sich um einen automatischen Inkrementierungsprozess von +1 (Ausführung von Anweisungen nacheinander, z. B.). as (if, while, for, function call...) wird auf einen anderen Wert gesetzt.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Wir unterteilen die Ausführung von Anweisungen in drei Phasen:
1) Befehlsabruf: Die CPU liest den Befehlsinhalt aus dem Speicher in die CPU (es gibt spezielle Register zum Speichern der gelesenen Befehle).
2) Analysieren Sie die Anweisung und identifizieren Sie ihre Funktion, entsprechende Funktionen und Operanden
3) Anweisungen ausführen
Die Ausführung jeder Anweisung muss die oben genannten drei Schritte durchlaufen, und die Ausführung einer Aufgabe erfordert die Ausführung mehrerer oben genannter Anweisungen. Beispielsweise sind für einen Additionsprozess möglicherweise drei oben genannte Anweisungen erforderlich, was aufgrund der CPU-Berechnung sehr mühsam erscheint sehr schnell (die oben genannten Vorgänge können mehr als eine Milliarde Mal in einer Sekunde ausgeführt werden) und nimmt für einen Computer nicht viel Zeit in Anspruch.

4. Programmsprache

4.1 Programm

Das sogenannte Programm ist ein Befehlssatz und die von diesem Befehlssatz zu verarbeitenden Daten. Im engeren Sinne erscheint uns ein Programm normalerweise als eine Reihe von Dateien.
Programm = Anweisung + von der Anweisung zu verarbeitende Daten.
Fügen Sie hier eine Bildbeschreibung ein

4.2 Frühe Programmierung

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Dies ist eine interessante kleine Geschichte, die bereits früher in Umlauf gebracht wurde, aber natürlich ist sie nicht wahr.Aber für die ersten Computer war Programmierung wirklich erforderlich
Programmiert mit 0 und 1 (Σ(っ°Ä °;)っ)
Das Bild unten zeigt den Computer Altair 8800, einen der frühesten Mikrocomputer. Der Benutzer muss den Schalter steuern und das Programm Stück für Stück in den Computer eingeben.
Fügen Sie hier eine Bildbeschreibung ein
Wenn von allen Computerbenutzern die Binärprogrammierung verlangt wird, werden alle verrückt. Das ist eine zu hohe Schwelle. So entstanden Programmiersprachen.

4.3 Entwicklung von Programmiersprachen

Um die Programmiereffizienz zu verbessern, wurde zunächst das Konzept der Assemblersprache entwickelt. Tatsächlich stehen Assemblersprache und Maschinensprache (d. h. Anweisungen) in direkter Eins-zu-eins-Entsprechung. Es gibt lediglich einige Symbole, die im Zusammenhang mit den Zahlen 0 und 1 erfunden wurden, um dem Menschen zu helfen, sich an sie zu erinnern und sie zu verstehen ist das, was wir oben haben. Was Sie sehen, ähnelt LOAD_A, LOAD_B usw. Nachdem Programmierer die Programmierung abgeschlossen haben, müssen sie einen Assembler verwenden, um die Assemblersprache in Maschinensprache zu übersetzen.
Obwohl die Montage die Speicherkosten des Programmierers senkt, erfordert sie dennoch, dass das Programm alle Kenntnisse über Computerhardware beherrscht. Da es immer mehr Computerhersteller gibt, sind gleichzeitig geschriebene Programme oft nur für einen Computertyp geeignet. Dies ist bei weitem nicht genug, daher wurden fortgeschrittenere Sprachen entwickelt, die die Hardwaredetails abschirmen und es Programmierern ermöglichen, auf einer höheren Ebene über ihr Geschäft nachzudenken. Hier nehmen wir die C-Sprache als Beispiel. Nachdem der Programmierer das Programm fertig geschrieben hat, muss er einen Compiler und einen Linker verwenden, um das Programm in die Assemblersprache zu übersetzen, und dann den Assembler verwenden, um es in die endgültige Maschinensprache umzuwandeln.
Mithilfe der Idee der Kapselung wird es für uns immer einfacher, Programmieren zu erlernen. Allerdings gibt es Vor- und Nachteile, die dazu führen, dass viele Programmierer den Computer als Black Box betrachten und nicht in der Lage sind, die Funktionsweise ihrer eigenen Programme zu verstehen.
Die von uns verwendete Java-Sprache ist etwas fortgeschrittener als die C-Sprache, es gibt jedoch keine großen Unterschiede in den grundlegenden abstrakten Prinzipien, sodass wir vorerst nicht näher darauf eingehen.
Fügen Sie hier eine Bildbeschreibung ein
Hinweis: Eine Anweisung in einer Hochsprache entspricht häufig vielen Anweisungen, die ausgeführt werden müssen.

5. Betriebssystem

Punkt 4
Betriebssystem ist eine Sammelbezeichnung für eine Reihe von Software, die Computerressourcen verwaltet. Zu den gängigen Betriebssystemen gehören derzeit: Windows-Serie, Unix-Serie, Linux-Serie, OSX-Serie, Android-Serie, iOS-Serie, Hongmeng usw.
Die Programme, die auf verschiedenen Systemen ausgeführt werden, sind unterschiedlich (die Programme sind aufgrund unterschiedlicher KPI nicht kompatibel).

5.1 Positionierung des Betriebssystems

Fügen Sie hier eine Bildbeschreibung ein
Ein Betriebssystem hat zwei Grundfunktionen:
1) Verhindern Sie, dass die Hardware durch räumlich-zeitliche Anwendungen missbraucht wird. Stellen Sie der Anwendung KPI zur Verfügung und lassen Sie sie von der Anwendung aufrufen, um verschiedene Funktionen auszuführen.
2) Stellen Sie Anwendungen einfache und konsistente Mechanismen zur Steuerung komplexer und oft sehr unterschiedlicher Low-Level-Hardwaregeräte zur Verfügung.

Ein Betriebssystem erledigt hauptsächlich die folgenden zwei Dinge:
1) Verschiedene Hardwaregeräte verwalten, z. B. Codescanner, medizinische Geräte, B-Ultraschallgeräte usw.
2) Stellen Sie eine stabile Betriebsumgebung für die Software bereit. Es besteht die Hoffnung, dass sich diese Programme nicht gegenseitig beeinträchtigen .

6. Prozess/Aufgabe

Wenn jede Anwendung auf einem modernen Betriebssystem ausgeführt wird, stellt das Betriebssystem eine Abstraktion bereit, als ob nur dieses Programm auf dem System ausgeführt würde und alle Hardwareressourcen von diesem Programm verwendet würden. Diese Illusion wird durch die Abstraktion des Konzepts eines Prozesses erreicht, das wohl eines der wichtigsten und erfolgreichsten Konzepte in der Informatik ist.
Ein Prozess ist eine Abstraktion eines laufenden Programms durch das Betriebssystem. Mit anderen Worten, der Prozess kann als laufender Prozess des Programms betrachtet werden und ist gleichzeitig die Grundeinheit der Ressourcenzuweisung durch das Betriebssystem.

6.1 Der Prozessbegriff

Punkt 5
Prozesse sind einige Anwendungen, die auf unseren Computern ausgeführt werden. (Wenn es um eine Anwendung geht, gibt es zwei Zustände. Wenn sie nicht ausgeführt wird, handelt es sich um eine EXE-Datei, die auf der Festplatte liegt. Wenn sie ausgeführt wird, wird sie ausgeführt in den Speicher geladen und die CPU führt die darin enthaltenen Anweisungen aus.
Fügen Sie hier eine Bildbeschreibung ein
Der Prozess ist die Grundeinheit der Ressourcenzuweisung durch das Betriebssystem.

6.2 Prozessmanagement

Punkt 6
Da es viele Prozesse im System gibt, müssen diese verwaltet werden
1) Beschreibung drückt verschiedene Attribute des Prozesses durch Strukturen/Klassen aus (Mainstream-Systeme werden durch C/C++ implementiert)
2) Die Organisation verbindet die oben genannten mehreren Strukturen (Beschreibungen) über die Datenstruktur und führt darüber hinaus verschiedene Hinzufügungen, Löschungen, Änderungen und Prüfungen durch ...
Beispielsweise verwendet das Linux-Betriebssystem eine Struktur namens „PCB“, um Prozessinformationen zu beschreiben (PCB steht für Prozesssteuerungsblock). Vereinfacht ausgedrückt werden die oben genannten mehreren PCBs über eine verknüpfte Liste aneinandergereiht, um einen Prozess zu erstellen (doppelt). -Klicken Sie auf die Exe-Datei und führen Sie das Programm aus. Das Zerstören des Prozesses bedeutet das Löschen der Leiterplatte aus der Verbindungsliste und das Freigeben der Leiterplattenstruktur. Das Durchlaufen der Verbindungsliste und das Anzeigen der entsprechenden Informationen nacheinander . .
PCB ist eine sehr komplexe Struktur, die viele Attribute enthält. Nachfolgend erfahren Sie mehr über einige wichtige Informationen.
1.PID-Prozesskennung
Gleichzeitig ist die PID unter mehreren Prozessen auf einer Maschine eindeutig und wird nicht wiederholt. Viele interne Vorgänge im System finden den entsprechenden Prozess über die PID.
Fügen Sie hier eine Bildbeschreibung ein
2. Speicherzeiger (ein Satz)
Beschreibt den Bereich, in dem prozessabhängige Anweisungen und Daten gespeichert werden
Wenn das Betriebssystem die Exe-Datei ausführt, liest es die Anweisungen und Daten in der Exe-Datei und lädt sie in den Speicher (Speicheradresse).
Von außen betrachtet zeigt es, dass die Ausführung des Prozesses bestimmte Speicherressourcen erfordert.
3. Dateibeschreibungstabelle (Sequenztabelle/Array)
Beschreibt, welche Dateien vom Prozess geöffnet werden, entsprechend den Daten auf der Festplatte
Wenn dabei eine Datei geöffnet wird, wird zur leichteren Lesbarkeit ein Element zur Sequenztabelle hinzugefügt.
Die folgenden Punkte bestimmen gemeinsam die Ablaufplanung, die eng mit unserer täglichen Entwicklung verknüpft ist.
Punkt 7
Der Schlüssel zur Prozessplanung des BetriebssystemsTime-Sharing-Multiplexing
Die aktuellen Betriebssysteme sind allesamt „Multitask-Systeme“, die mehrere Prozesse gleichzeitig ausführen können. Die bisherigen Betriebssysteme wurden „Single-Task-Systeme“ genannt und konnten nur einen Prozess gleichzeitig ausführen.
Verständnis von Time-Sharing-Multiplexing: Zu einem bestimmten Zeitpunkt führt die CPU Prozess 1 aus, läuft eine Weile, die CPU führt Prozess 2 aus und führt nach einer Weile Prozess 3 aus ... Da die Rechengeschwindigkeit und die Schaltgeschwindigkeit der CPU sehr hoch sind, es ist mit bloßem Auge nicht wahrnehmbar. Aus menschlicher Sicht ist es gleichbedeutend mit einer gleichzeitigen Ausführung, einer „gleichzeitigen Ausführung“.
Parallele Ausführung: Bei Multi-Core-CPUs kann nun jeder Kern und zwischen den Kernen auf mikroskopischer Ebene auch verschiedene Prozesse gleichzeitig ausführen.
Parallelität oder Parallelität werden vom Betriebssystemkern einheitlich geplant und können von Programmierern/normalen Benutzern nicht wahrgenommen werden. Daher werden Parallelität und Parallelität üblicherweise zusammenfassend als „Parallelität“ bezeichnet, und die entsprechenden Programmiertechniken werden auch als „gleichzeitige Programmierung“ bezeichnet.
4. Prozessstatus
Bereitzustand: Der Prozess kann der CPU so eingeplant werden, dass sie jederzeit Anweisungen ausführt
Blockierter Zustand: Der Prozess kann nicht so geplant werden, dass er Anweisungen auf der CPU ausführt. Der Grund für die Blockierung liegt darin, dass er andere Vorgänge ausführen muss, z. B. E/A-Vorgänge (Festplatten lesen und schreiben oder Netzwerkkarten lesen und schreiben). (Scan-Eingabe). Wenn eine Benutzereingabe erforderlich ist, geht der Prozess in den Blockierungszustand über.
Die beiden oben genannten sind die beiden Hauptprozesszustände. Es gibt auch andere Zustände, daher werde ich nicht zu sehr ins Detail gehen ...
5. Prozesspriorität
Priorität ist im wahrsten Sinne des Wortes die Reihenfolge der Prozesse.
6. Prozesskontext
Time-Sharing-Multiplexing: Nachdem ein Prozess eine Weile ausgeführt wurde, wird er zusammen mit den Ergebnissen der letzten Ausführung wieder an die CPU übertragen Zwischenergebnisse der vorherigen Ausführung (verschiedene Werte im CPU-Register) werden für die nächste Verwendung gespeichert.
7. Buchhaltungsinformationen des Prozesses
Mit der Unterstützung von Prioritäten können die von verschiedenen Prozessen verbrauchten Ressourcen immer unterschiedlicher werden ...
Die oben genannten Attribute werden verwendet, um die gleichzeitige Ausführung des Planungsprozesses zu unterstützen.

7. Speicherzuweisung⸺Speicherverwaltung (Memory Manage)

Das Betriebssystem weist Speicherressourcen anhand eines räumlichen Modells zu – verschiedene Prozesse nutzen unterschiedliche Bereiche des Speichers, ohne sich gegenseitig zu stören.

8. Kommunikation zwischen Prozessen

Wie oben erwähnt, ist der Prozess die kleinste Einheit der Ressourcenzuweisung durch das Betriebssystem, was bedeutet, dass jeder Prozess die Existenz des anderen nicht spüren kann. Dies ist die ursprüngliche Absicht des Betriebssystems, das Konzept des Prozesses zu abstrahieren Der Prozess Sie sind voneinander „isoliert“.
Moderne Anwendungen können eine komplexe Geschäftsanforderung jedoch häufig nicht unabhängig voneinander erfüllen. Sie erfordern immer die Zusammenarbeit von Prozess und Prozess, um den Zweck der Anwendung zu erreichen. Der Bedarf an prozessübergreifender Kommunikation entstand in einem historischen Moment.
Derzeit gibt es in Java nur eine Hauptmethode für die prozessübergreifende Kommunikation: über das Netzwerk (Socket).
Das Netzwerk ist ein relativ spezieller IPC-Mechanismus. Es unterstützt nicht nur die Kommunikation zwischen zwei Prozessen auf demselben Host, sondern auch die Kommunikation zwischen Prozessen auf verschiedenen Hosts innerhalb desselben Netzwerks.