Software -Aussperrung
Im Multiprozessor Computersysteme, Software -Aussperrung ist das Problem der Leistungsverschlechterung aufgrund der von der verbreiteten Leerlaufzeiten des Leerlaufs CPUs in Kernel-eben Kritische Abschnitte. Software -Aussperrung ist die Hauptursache für Skalierbarkeit Abbau in einem Multiprozessor -System, das eine Grenze für die maximale nützliche Anzahl von Prozessoren darstellt. Um das Phänomen zu mildern, muss der Kernel für seine sein Kritische Abschnitte so kurz wie möglich, also jeden zersetzen Datenstruktur in kleineren Unterstrukturen.
Kritische Abschnitte auf Kernelebene
In den meisten Multiprozessorsystemen plant und steuert jeder Prozessor selbst, daher gibt es keinen "Supervisor" -Prozessor.[1] und Kernel Datenstrukturen werden global geteilt; Codeabschnitte, die auf diese gemeinsam genutzten Datenstrukturen zugreifen Kritische Abschnitte. Diese Entwurfswahl wird getroffen, um Skalierung, Zuverlässigkeit und Modularität zu verbessern.[1] Beispiele für eine solche Kernel -Datenstruktur sind Bereitete Liste und Kommunikationskanäle.
Ein "Konflikt" geschieht, wenn mehr als einer Prozessor Versucht gleichzeitig, gleichzeitig auf die gleiche Ressource (ein Speicherabschnitt) zuzugreifen. Verhindern Kritische Rennen und Inkonsistenz, nur ein Prozessor (Zentralprozessor) zu einem bestimmten Zeitpunkt kann auf einen bestimmten zugreifen Datenstruktur (ein Speicherteil), während andere CPUs gleichzeitig versuchen, zugreifen zu können ausgeschlossenim Leerlaufstatus.[1][2]
Drei Fälle können unterschieden werden, wenn diese Leerlaufwartung entweder notwendig, bequem oder nicht bequem ist. Das Leerlauf wartet, wenn der Zugriff auf eine fertige Liste für eine niedrige Ebene ist Planung Betrieb. Das Leerlaufwart ist nicht erforderlich, aber bequem bei einem kritischen Abschnitt für Synchronisation/IPC Operationen, die weniger Zeit als a benötigen Kontextschalter (Ausführung eines anderen Prozess Um nicht im Leerlauf zu warten). Das Leerlaufwart ist stattdessen nicht bequem bei einem kritischen Kern -Abschnitt für Kernel für Geräteverwaltung, anwesend in Monolithische Kerne nur. EIN Mikrokernel Stattdessen fällt nur die ersten beiden der oben genannten Fälle.
In einem Multiprozessorsystem sind die meisten Konflikte Kernel-Konflikte auf Ebenen aufgrund des Zugangs zu den kritischen Abschnitten der Kernelebene und somit haben die von ihnen generierten Leerlaufwartperioden einen großen Einfluss auf die Leistungsverschlechterung. Diese Leerlaufwartzeit erhöht die durchschnittliche Anzahl von Leerlaufprozessoren und senkt somit ab Skalierbarkeit und relative Effizienz.
Analysestudien
Als Parameter ein durchschnittliches Zeitintervall von a Prozessor In Kernelebene kritische Abschnitte (Lfür die Zeit im gesperrten Zustand) und das durchschnittliche Zeitintervall, das ein Prozessor in Aufgaben außerhalb kritischer Abschnitte ausgibt (E),[1] das Verhältnis L/e ist entscheidend für die Bewertung von Software -Sperrung.
Typische Werte für L/e reichen von 0,01 bis 0,1.[3] In einem System mit a L/e Das Verhältnis von 0,05, beispielsweise wird beispielsweise erwartet, dass im Durchschnitt 1 CPU immer im Leerlauf ist.[3] Mit 21 CPUs ist 2,8 im Leerlauf;[4] Mit 40 CPUs wird 19 untätig sein; Mit 41 CPUs ist 20 untätig.[3] Daher wäre das Hinzufügen von mehr als 40 CPUs zu diesem System nutzlos. Im Allgemeinen für jeden L/e Wert, es gibt einen Schwellenwert für die maximale Anzahl nützlicher CPUs.
Software -Lockout -Minderung
Um den Leistungsverschlechterung der Software -Sperrung auf angemessene Ebenen zu verringern (L/e Zwischen 0,05 und 0,1) müssen der Kernel und/oder das Betriebssystem entsprechend ausgelegt werden. Konzeptionell besteht die gültigste Lösung darin, jede Kernel -Datenstruktur in kleineren unabhängigen Substrukturen zu zersetzen, die jeweils eine kürzere Ausarbeitungszeit haben. Dies ermöglicht mehr als eine CPU, auf die ursprüngliche Datenstruktur zuzugreifen.
Viele Uniprozessor Systeme mit Hierarchische Schutzdomänen Es wurde geschätzt, dass es bis zu 50% der Zeit für die Durchführung von "Supervisor -Modus" -Operationen ausgibt. Wenn solche Systeme für angepasst wurden für Multiprozessierung Durch Einstellen einer Sperre bei jedem Zugriff auf "Supervisor State", L/e wäre leicht größer als 1,[3] Dies führt zu einem System mit dem gleichen Durchsatz wie der Uniprozessor trotz der Anzahl der CPUs.
Siehe auch
- Amdahls Gesetz
- Abhängigkeitsprobleme auf Superscalar Architekturen
- Parallelitätskontrolle § Parallelitätskontrollmechanismen
- Zeitplan (Informatik) § serialisierbar
- Serialisierbarkeit
Anmerkungen
Verweise
- Madnick, Stuart Elliot [1] (1968) Multi-Processor-Software-Sperrung[2] Proceedings der 23. ACM National Conference von 1968, S. 19 - 24
- M. Dubois, F. Briggs Die Laufzeiteffizienz paralleler asynchroner Algorithmen IEEE -Transaktionen auf Computern, November 1991 (Band 40, Nr. 11), S. 1260–1266
- Randy J. Raynor, John M. Gwynn, Jr.Minimierung des Supervisorkonflikts für Multiprozessor -Computersysteme ACM Sigsim Simulation Digest. Band 7, Ausgabe 4 (Juli 1976). S. 61 - 69
Weitere Lektüre
- Rodgers, David P. (1985) Verbesserungen des Multiprozessor -Systemdesigns ACM Sigarch Computer Architecture News Archive Band 13, Ausgabe 3 (Juni 1985) Inhaltsverzeichnis Sonderausgabe: Verfahren des 12. Jahrestages Internationales Symposium über Computerarchitektur (ISCA '85) Seiten: 225 - 231 Jahr der Veröffentlichung: 1985 ISSN 0163-5964. Ebenfalls im International Symposium on Computer Architecture, Proceedings of the 12. jährliches International Symposium on Computer Architecture, 1985, Boston, Massachusetts, USA, veröffentlicht
- Jörg Cordsen, Wolfgang Schröder-Preikschat Auf eine skalierbare Kernelarchitektur In: Proceedings of the Herbst 1992 OpenForum Technical Conference. S. 15–33, Utrecht, Niederlande, 23. bis 27. November 1992.