{"id":87136,"date":"2020-07-04T01:42:40","date_gmt":"2020-07-03T23:42:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy"},"modified":"2020-07-04T01:42:40","modified_gmt":"2020-07-03T23:42:40","slug":"simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy","title":{"rendered":"Simulationen von Computersystemen: der allgemein bekannte plattform\u00fcbergreifende Simulator und weitgehend unbekannte Takt- und Streckenmodelle.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Im zweiten Teil des Artikels \u00fcber Simulationen von Computersystemen werde ich weiterhin in einfacher, informeller Form \u00fcber Computersimulationen sprechen, insbesondere \u00fcber die plattform\u00fcbergreifende Simulation, mit der die meisten gew\u00f6hnlichen Benutzer am h\u00e4ufigsten konfrontiert sind, sowie \u00fcber Taktmodelle und Strecken, die in Entwicklerkreisen verbreiteter sind. <\/p>\n<p><img decoding=\"async\" alt=\"Simulationen von Computersystemen: der allgemein bekannte plattform\u00fcbergreifende Simulator und weitgehend unbekannte Takt- und Streckenmodelle.\" src=\"\/wp-content\/uploads\/2020\/07\/dbc7767cd563ce01b6145ac2e872d4c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIm <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">ersten Teils<\/a><\/noindex> Ich habe erkl\u00e4rt, was Simulationen im Allgemeinen sind, sowie die Ebenen der Modellierung. Auf dieser Grundlage schlage ich vor, etwas tiefer einzutauchen und \u00fcber die plattform\u00fcbergreifende Simulation zu sprechen, dar\u00fcber, wie man Strecken zusammenstellt, was man damit sp\u00e4ter macht, sowie \u00fcber die Takt-Mikroarchitektur-Emulation. <\/p>\n<h3>Plattform\u00fcbergreifender Simulator (full platform simulator) oder \u201eEin Krieger ist nicht allein auf dem Feld\u201c <\/h3>\n<p>\nWenn es erforderlich ist, die Funktionsweise eines bestimmten Ger\u00e4ts zu untersuchen, zum Beispiel einer Netzwerkkarte, oder f\u00fcr dieses Ger\u00e4t eine Firmware oder einen Treiber zu schreiben, kann dieses Ger\u00e4t separat modelliert werden. Es ist jedoch nicht besonders bequem, es isoliert von der restlichen Infrastruktur zu verwenden. Um den entsprechenden Treiber auszuf\u00fchren, sind ein zentraler Prozessor, Speicher, Zugriff auf den Bus zur Daten\u00fcbertragung und weiteres erforderlich. Dar\u00fcber hinaus braucht der Treiber ein Betriebssystem (OS) und einen Netzwerkstack. Zus\u00e4tzlich kann ein separater Paketgenerator und ein Server zur Antwortannahme erforderlich sein. <\/p>\n<p>Der plattform\u00fcbergreifende Simulator schafft eine Umgebung zur Ausf\u00fchrung des vollst\u00e4ndigen Softwarestapels, der alles umfasst, beginnend beim BIOS und Bootloader bis hin zum Betriebssystem und verschiedenen seiner Teilsysteme, wie dem Netzwerkstack, Treibern und Anwendungen auf Benutzerebene. Daf\u00fcr sind in ihm Softwaremodelle der meisten Computerger\u00e4te implementiert: Prozessor und Speicher, Festplatte, Eingabeger\u00e4te (Tastatur, Maus, Display) sowie die besagte Netzwerkkarte. <\/p>\n<p>Unten finden Sie das Blockdiagramm des Chipsatzes X58 von Intel. In einem vollplattform\u00fcbergreifenden Computersimulator erfordert die Implementierung der meisten aufgef\u00fchrten Ger\u00e4te, einschlie\u00dflich derjenigen, die sich im IOH (Input\/Output Hub) und ICH (Input\/Output Controller Hub) befinden, eine detaillierte Darstellung, die im Blockdiagramm nicht zu sehen ist. Allerdings zeigt die Praxis, dass es viele Ger\u00e4te gibt, die von der Software, die wir ausf\u00fchren m\u00f6chten, nicht verwendet werden. Modelle solcher Ger\u00e4te m\u00fcssen nicht erstellt werden. <\/p>\n<p><img decoding=\"async\" alt=\"Simulationen von Computersystemen: der allgemein bekannte plattform\u00fcbergreifende Simulator und weitgehend unbekannte Takt- und Streckenmodelle.\" src=\"\/wp-content\/uploads\/2020\/07\/3f62e2e7792ce06026c767146fed9912.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVollplattform\u00fcbergreifende Simulatoren werden normalerweise auf der Ebene der Prozessoranweisungen (ISA, siehe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">den vorherigen Artikel<\/a><\/noindex>) implementiert. Dies erm\u00f6glicht eine relativ schnelle und kosteng\u00fcnstige Erstellung des Simulators. Die ISA-Ebene ist auch vorteilhaft, da sie mehr oder weniger konstant bleibt, im Gegensatz zur API\/ABI-Ebene, die sich h\u00e4ufiger \u00e4ndert. Dar\u00fcber hinaus erm\u00f6glicht die Implementierung auf Anweisungsebene das Ausf\u00fchren sogenannter unmodifizierter bin\u00e4rer Software, das hei\u00dft, die Ausf\u00fchrung bereits kompilierten Codes ohne \u00c4nderungen, genau so, wie er auf echter Hardware verwendet wird. Mit anderen Worten, man kann ein Abbild (\"Dump\") der Festplatte erstellen, es als Abbild f\u00fcr das Modell im vollplattform\u00fcbergreifenden Simulator angeben und \u2013 voil\u00e0! \u2013 das Betriebssystem und andere Programme werden im Simulator ohne zus\u00e4tzliche Ma\u00dfnahmen geladen. <\/p>\n<h3>Die Leistung von Simulatoren <\/h3>\n<p><img decoding=\"async\" alt=\"Simulationen von Computersystemen: der allgemein bekannte plattform\u00fcbergreifende Simulator und weitgehend unbekannte Takt- und Streckenmodelle.\" src=\"\/wp-content\/uploads\/2020\/07\/870ef9d5e311044059ace05571d607ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWie bereits erw\u00e4hnt, ist der gesamte Simulationsprozess des Systems, also aller seiner Ger\u00e4te, eine eher langsame Angelegenheit. Wenn man dies auch noch auf einer sehr detaillierten Ebene, wie der Mikroarchitektur oder logischen Ebene, umsetzt, wird die Ausf\u00fchrung extrem langsam. Die Ebene der Anweisungen ist jedoch eine geeignete Wahl und erm\u00f6glicht es, dass das Betriebssystem und die Programme mit Geschwindigkeiten ausgef\u00fchrt werden, die dem Benutzer ein komfortables Interagieren erm\u00f6glichen. <\/p>\n<p>Hier ist es angebracht, das Thema der Leistung von Simulatoren zu erw\u00e4hnen. Diese wird normalerweise in IPS (Instructions per Second) gemessen, genauer gesagt in MIPS (Millionen IPS), also der Anzahl der Prozessoranweisungen, die der Simulator in einer Sekunde ausf\u00fchrt. Gleichzeitig h\u00e4ngt die Geschwindigkeit der Simulation auch von der Leistung des Systems ab, auf dem die Simulation selbst l\u00e4uft. Daher w\u00e4re es m\u00f6glicherweise richtiger, von einer \"Verlangsamung\" (slowdown) des Simulators im Vergleich zum urspr\u00fcnglichen System zu sprechen. <\/p>\n<p>Die am h\u00e4ufigsten auf dem Markt anzutreffenden vollumf\u00e4nglichen Simulatoren, wie QEMU, VirtualBox oder VmWare Workstation, bieten eine gute Leistung. F\u00fcr den Benutzer ist es m\u00f6glicherweise nicht einmal erkennbar, dass die Arbeit in einem Simulator stattfindet. Dies geschieht dank der in den Prozessoren implementierten speziellen Virtualisierungsfunktionen, Algorithmen zur bin\u00e4ren \u00dcbersetzung und anderer interessanter Dinge. Das alles ist ein Thema f\u00fcr einen separaten Artikel, aber kurz gesagt, die Virtualisierung ist die hardwareseitige M\u00f6glichkeit moderner Prozessoren, die es Simulatoren erm\u00f6glicht, Anweisungen nicht zu simulieren, sondern sie direkt an den echten Prozessor zur Ausf\u00fchrung weiterzugeben, wenn die Architekturen von Simulator und Prozessor \u00e4hnlich sind. Die bin\u00e4re \u00dcbersetzung ist die Umwandlung des Gast-Maschinen-Codes in den Host-Code und die anschlie\u00dfende Ausf\u00fchrung auf dem echten Prozessor. Infolgedessen ist die Simulation nur geringf\u00fcgig langsamer, etwa 5-10 Mal, und oft arbeitet sie sogar mit derselben Geschwindigkeit wie das echte System. Allerdings beeinflussen viele Faktoren dies. Wenn wir beispielsweise ein System mit mehreren Dutzend Prozessoren simulieren wollen, sinkt die Geschwindigkeit sofort um mehrere Dutzend. Auf der anderen Seite unterst\u00fctzen Simulatoren wie Simics in den neuesten Versionen Multiprozessor-Host-Hardware und parallelisieren effektiv die simulierten Kerne auf die Kerne des echten Prozessors. <\/p>\n<p>Wenn es um die Geschwindigkeit der Mikroarchitektursimulation geht, ist diese normalerweise um mehrere Gr\u00f6\u00dfenordnungen langsamer, etwa 1000-10000 Mal, als die Ausf\u00fchrung auf einem normalen Computer ohne Simulation. Implementierungen auf der Ebene der logischen Elemente sind noch langsamer, um mehrere Gr\u00f6\u00dfenordnungen. Daher werden als Emulatoren auf dieser Ebene FPGAs verwendet, was die Leistung erheblich steigert. <\/p>\n<p>Das folgende Diagramm zeigt die ungef\u00e4hre Abh\u00e4ngigkeit der Simulationsgeschwindigkeit von der Detaillierung des Modells. <\/p>\n<p><img decoding=\"async\" alt=\"Simulationen von Computersystemen: der allgemein bekannte plattform\u00fcbergreifende Simulator und weitgehend unbekannte Takt- und Streckenmodelle.\" src=\"\/wp-content\/uploads\/2020\/07\/72189338a6a0c78554118f180a297813.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Taktsimulation <\/h3>\n<p>\nTrotz der geringen Ausf\u00fchrungsgeschwindigkeit sind mikroarchitektonische Simulatoren ziemlich verbreitet. Die Modellierung der internen Bl\u00f6cke eines Prozessors ist notwendig, um die Ausf\u00fchrungszeit jeder Anweisung genau zu simulieren. Hier kann es zu Missverst\u00e4ndnissen kommen \u2013 denn es scheint, als k\u00f6nnte man einfach die Ausf\u00fchrungszeit f\u00fcr jede Anweisung programmieren. Aber ein solcher Simulator w\u00fcrde sehr ungenau arbeiten, da die Ausf\u00fchrungszeit derselben Anweisung von Aufruf zu Aufruf unterschiedlich sein kann. <\/p>\n<p>Ein einfaches Beispiel ist der Zugriff auf den Speicher. Wenn die angeforderte Speicherzelle im Cache verf\u00fcgbar ist, ist die Ausf\u00fchrungszeit minimal. Wenn die ben\u00f6tigten Informationen jedoch nicht im Cache sind (\"Cache Miss\"), verl\u00e4ngert sich die Ausf\u00fchrungszeit der Anweisung erheblich. Daher ist ein Cache-Modell f\u00fcr eine pr\u00e4zise Simulation erforderlich. Doch damit ist es nicht getan. Der Prozessor wartet nicht einfach darauf, die Daten aus dem Speicher zu erhalten, wenn diese nicht im Cache sind. Stattdessen beginnt er, die n\u00e4chsten Anweisungen auszuf\u00fchren, wobei er solche ausw\u00e4hlt, die nicht vom Ergebnis des Speicherlesens abh\u00e4ngen. Dies wird als \"Out of Order Execution\" (OOO) bezeichnet, was notwendig ist, um die Leerlaufzeit des Prozessors zu minimieren. Bei der Berechnung der Ausf\u00fchrungszeit von Anweisungen sollte die Modellierung der entsprechenden Prozessorbl\u00f6cke ber\u00fccksichtigt werden. Unter diesen Anweisungen, die w\u00e4hrend der Wartezeit auf das Ergebnis des Speicherlesens ausgef\u00fchrt werden, kann auch eine bedingte Sprunganweisung auftauchen. Wenn das Ergebnis der Bedingung im Moment unbekannt ist, stoppt der Prozessor nicht die Ausf\u00fchrung, sondern trifft eine \"Annahme\", f\u00fchrt den entsprechenden Sprung aus und setzt die proaktive Ausf\u00fchrung der Anweisungen ab der Sprungstelle fort. Ein solcher Block, der als Branch Predictor bezeichnet wird, muss ebenfalls im mikroarchitektonischen Simulator implementiert werden. <\/p>\n<p>Das Bild unten zeigt die grundlegenden Bl\u00f6cke des Prozessors. Es ist nicht notwendig, dies zu wissen; es wird nur gezeigt, um die Komplexit\u00e4t der mikroarchitektonischen Umsetzung zu veranschaulichen. <\/p>\n<p><img decoding=\"async\" alt=\"Simulationen von Computersystemen: der allgemein bekannte plattform\u00fcbergreifende Simulator und weitgehend unbekannte Takt- und Streckenmodelle.\" src=\"\/wp-content\/uploads\/2020\/07\/1248d47017346153a233d4c895635569.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Funktionsweise all dieser Bl\u00f6cke in einem echten Prozessor wird durch spezielle Taktsignale synchronisiert, was auch in dem Modell so erfolgt. Solch einen mikroarchitektonischen Simulator nennt man taktsynchron (cycle accurate). Seine Hauptaufgabe besteht darin, die Leistung des entwickelten Prozessors genau vorherzusagen und\/oder die Ausf\u00fchrungszeit eines bestimmten Programms, beispielsweise eines Benchmarks, zu berechnen. Wenn die Werte unter den notwendigen liegen, m\u00fcssen die Algorithmen und Bl\u00f6cke des Prozessors \u00fcberarbeitet oder das Programm optimiert werden. <\/p>\n<p>Wie oben gezeigt, ist die taktsynchrone Simulation sehr langsam, weshalb sie nur bei der Untersuchung bestimmter Aspekte der Programmabl\u00e4ufe verwendet wird, bei denen es notwendig ist, die tats\u00e4chliche Ausf\u00fchrungsgeschwindigkeit von Programmen zu erfahren und die zuk\u00fcnftige Leistung des Ger\u00e4ts zu bewerten, dessen Prototyp modelliert wird. <\/p>\n<p>F\u00fcr die Simulation der restlichen Programmlaufzeit wird ein funktionaler Simulator verwendet. Wie erfolgt dieses kombinierte Vorgehen in der Realit\u00e4t? Zun\u00e4chst wird der funktionale Simulator gestartet, auf dem das Betriebssystem und alles Notwendige zum Starten des betreffenden Programms geladen wird. Uns interessiert weder das Betriebssystem selbst noch die Anfangsphasen des Programmstarts, dessen Konfiguration und \u00c4hnliches. Dennoch k\u00f6nnen wir diese Teile nicht \u00fcberspringen und direkt zur Programmausf\u00fchrung aus der Mitte fortfahren. Daher werden all diese vorbereitenden Schritte im funktionalen Simulator durchlaufen. Nachdem das Programm bis zu dem f\u00fcr uns interessanten Punkt ausgef\u00fchrt wurde, gibt es zwei M\u00f6glichkeiten. Man kann das Modell durch das taktsynchrone ersetzen und die Ausf\u00fchrung fortsetzen. Der Simulationsmodus, bei dem ausf\u00fchrbarer Code (d.h. normale kompilierte Programmdateien) verwendet wird, wird als Ausf\u00fchrungssimulation (execution driven simulation) bezeichnet. Dies ist die h\u00e4ufigste Form der Simulation. Es gibt auch einen anderen Ansatz \u2013 die Simulation basierend auf Spuren (trace driven simulation). <\/p>\n<h3>Simulation basierend auf Spuren <\/h3>\n<p>\nSie besteht aus zwei Schritten. Mithilfe eines funktionalen Simulators oder auf einem realen System wird ein Log der Programmausf\u00fchrung gesammelt und in eine Datei geschrieben. Dieses Log wird als Spur (trace) bezeichnet. Je nachdem, was untersucht wird, kann die Spur ausf\u00fchrbare Instruktionen, Speicheradressen, Portnummern, Informationen \u00fcber Interrupts umfassen. <\/p>\n<p>Der n\u00e4chste Schritt ist das \"Abspielen\" der Spur, bei dem der Taktgeber-Simulator die Spur liest und alle darin aufgezeichneten Anweisungen ausf\u00fchrt. Am Ende erhalten wir die Ausf\u00fchrungszeit dieses Programmabschnitts sowie verschiedene Merkmale dieses Prozesses, wie z.B. den Cache-Trefferanteil. <\/p>\n<p>Ein wichtiges Merkmal der Arbeit mit Spuren ist die Determiniertheit, das hei\u00dft, wenn wir die Simulation wie oben beschrieben ausf\u00fchren, reproduzieren wir wiederholt dieselbe Aktionsfolge. Dies erm\u00f6glicht es uns, durch die Ver\u00e4nderung von Modellparametern (Gr\u00f6\u00dfen von Cache, Puffern und Warteschlangen) und die Nutzung unterschiedlicher interner Algorithmen oder deren Anpassungen zu erkunden, wie ein bestimmter Parameter die Leistung des Systems beeinflusst und welche Variante die besten Ergebnisse liefert. All dies kann mit dem Modell eines Ger\u00e4teprototyps durchgef\u00fchrt werden, bevor ein tats\u00e4chlicher Hardwareprototyp erstellt wird. <\/p>\n<p>Die Komplexit\u00e4t dieses Ansatzes liegt in der Notwendigkeit, die Anwendung im Voraus auszuf\u00fchren und die Spur zu sammeln, sowie in der enormen Dateigr\u00f6\u00dfe der Spur. Zu den Vorteilen geh\u00f6rt, dass es ausreichend ist, nur den interessierenden Teil des Ger\u00e4ts oder der Plattform zu modellieren, w\u00e4hrend die Ausf\u00fchrungssimulation in der Regel ein vollst\u00e4ndiges Modell erfordert. <\/p>\n<p>In diesem Artikel haben wir die Besonderheiten der plattform\u00fcbergreifenden Simulation betrachtet, \u00fcber die Geschwindigkeit der Implementierungen auf verschiedenen Ebenen, den Taktgeber-Simulator und die Spuren gesprochen. Im n\u00e4chsten Artikel werde ich die grundlegenden Anwendungsszenarien von Simulatoren beschreiben, sowohl f\u00fcr pers\u00f6nliche Zwecke als auch aus der Sicht der Entwicklung in gro\u00dfen Unternehmen.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/509294\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043e \u043f\u043e\u043b\u043d\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u043f\u043e\u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0442\u0440\u0430\u0441\u0441\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u043a\u0440\u0443\u0433\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u044b \u0432\u043e\u043e\u0431\u0449\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431 \u0443\u0440\u043e\u0432\u043d\u044f\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87137,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87136","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043e \u043f\u043e\u043b\u043d\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u044b \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c: \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u043f\u043e\u043b\u043d\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u043d\u0438\u043a\u043e\u043c\u0443 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043f\u043e\u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0438 \u0442\u0440\u0430\u0441\u0441\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043e \u043f\u043e\u043b\u043d\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-03T23:42:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-03T23:42:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Simulatoren von Computersystemen: der allen bekannte plattform\u00fcbergreifende Simulator und kaum bekannte Taktgeber- und Spurensimulator | ProHoster","description":"Im zweiten Teil des Artikels \u00fcber Simulatoren von Computersystemen werde ich weiterhin in einfacher, einf\u00fchrender Form \u00fcber Computersimulatoren berichten, insbesondere \u00fcber die plattform\u00fcbergreifende Simulation, mit der man am h\u00e4ufigsten konfrontiert wird.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u044b \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c: \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u043f\u043e\u043b\u043d\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u043d\u0438\u043a\u043e\u043c\u0443 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043f\u043e\u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0438 \u0442\u0440\u0430\u0441\u0441\u044b | ProHoster","og:description":"\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043e \u043f\u043e\u043b\u043d\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-03T23:42:40+00:00","article:modified_time":"2020-07-03T23:42:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87136","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:57:25","updated":"2022-09-27 17:57:48","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=87136"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87136\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/87137"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=87136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=87136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=87136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}