{"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\/pl\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy","title":{"rendered":"Symulatory system\u00f3w komputerowych: znany wszystkim pe\u0142nop\u0142atny symulator oraz mniej znane symulatory taktyczne i tras","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>W drugiej cz\u0119\u015bci artyku\u0142u o symulatorach system\u00f3w komputerowych nadal b\u0119d\u0119 w prosty spos\u00f3b przedstawia\u0107 symulatory komputerowe, a mianowicie symulacj\u0119 w pe\u0142nej platformie, z kt\u00f3r\u0105 najcz\u0119\u015bciej styka si\u0119 zwyk\u0142y u\u017cytkownik, a tak\u017ce model taktowany i trasy, kt\u00f3re s\u0105 bardziej rozpowszechnione w kr\u0119gach deweloper\u00f3w. <\/p>\n<p><img decoding=\"async\" alt=\"Symulatory system\u00f3w komputerowych: znany wszystkim pe\u0142nop\u0142atny symulator oraz mniej znane symulatory taktyczne i tras\" 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 \/>\nW <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">pierwszej cz\u0119\u015bci<\/a><\/noindex> Opowiedzia\u0142em, czym s\u0105 w og\u00f3le symulatory, a tak\u017ce o poziomach modelowania. Teraz, opieraj\u0105c si\u0119 na tej wiedzy, proponuj\u0119 zanurkowa\u0107 nieco g\u0142\u0119biej i porozmawia\u0107 o symulacji w pe\u0142nej platformie, o tym, jak zbiera\u0107 trasy, co z nimi potem robi\u0107, a tak\u017ce o mikroarchitekturze opartej na modelu taktowanym. <\/p>\n<h3>Symulator w pe\u0142nej platformie (full platform simulator), czyli \u201eJeden w polu \u2014 nie wojownik\u201d <\/h3>\n<p>\nJe\u015bli konieczne jest zbadanie pracy jednego konkretnego urz\u0105dzenia, na przyk\u0142ad karty sieciowej, lub napisanie dla tego urz\u0105dzenia oprogramowania uk\u0142adowego lub sterownika, to takie urz\u0105dzenie mo\u017cna modelowa\u0107 oddzielnie. Jednak u\u017cywanie go w oderwaniu od reszty infrastruktury nie jest zbyt wygodne. Aby uruchomi\u0107 odpowiedni sterownik, potrzebny b\u0119dzie procesor centralny, pami\u0119\u0107, dost\u0119p do magistrali do przesy\u0142ania danych i inne. Ponadto, do dzia\u0142ania sterownika potrzebny jest system operacyjny (OS) oraz stos sieciowy. Dodatkowo mo\u017ce by\u0107 wymagany oddzielny generator pakiet\u00f3w i serwer do odbioru odpowiedzi. <\/p>\n<p>Symulator w pe\u0142nej platformie tworzy \u015brodowisko do uruchamiania pe\u0142nego stosu oprogramowania, kt\u00f3ry obejmuje wszystko, od BIOS-u i bootloadera po sam system operacyjny i r\u00f3\u017cne jego podsystemy, takie jak ten sam stos sieciowy, sterowniki, aplikacje na poziomie u\u017cytkownika. W tym celu zrealizowane s\u0105 programowe modele wi\u0119kszo\u015bci urz\u0105dze\u0144 komputerowych: procesora i pami\u0119ci, dysku, urz\u0105dze\u0144 wej\u015bcia-wyj\u015bcia (klawiatura, mysz, wy\u015bwietlacz), a tak\u017ce wspomniana karta sieciowa. <\/p>\n<p>Poni\u017cej znajduje si\u0119 schemat blokowy chipsetu x58 firmy Intel. W pe\u0142no-platformowym symulatorze komputera na tym chipsecie niezb\u0119dna jest implementacja wi\u0119kszo\u015bci wymienionych urz\u0105dze\u0144, w tym tych, kt\u00f3re znajduj\u0105 si\u0119 wewn\u0105trz IOH (Input\/Output Hub) i ICH (Input\/Output Controller Hub), kt\u00f3re nie zosta\u0142y szczeg\u00f3\u0142owo narysowane na schemacie blokowym. Jednak jak pokazuje praktyka, nie jest tak ma\u0142o urz\u0105dze\u0144, kt\u00f3re nie s\u0105 wykorzystywane przez oprogramowanie, kt\u00f3re zamierzamy uruchomi\u0107. Modeli takich urz\u0105dze\u0144 nie trzeba tworzy\u0107. <\/p>\n<p><img decoding=\"async\" alt=\"Symulatory system\u00f3w komputerowych: znany wszystkim pe\u0142nop\u0142atny symulator oraz mniej znane symulatory taktyczne i tras\" src=\"\/wp-content\/uploads\/2020\/07\/3f62e2e7792ce06026c767146fed9912.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNajcz\u0119\u015bciej pe\u0142no-platformowe symulatory s\u0105 realizowane na poziomie instrukcji procesora (ISA, zob. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">poprzedni artyku\u0142<\/a><\/noindex>). Pozwala to na stosunkowo szybkie i niedrogie stworzenie samego symulatora. Poziom ISA jest r\u00f3wnie\u017c dobry, poniewa\u017c pozostaje bardziej lub mniej sta\u0142y, w przeciwie\u0144stwie do na przyk\u0142ad poziomu API\/ABI, kt\u00f3ry zmienia si\u0119 cz\u0119\u015bciej. Dodatkowo implementacja na poziomie instrukcji pozwala na uruchamianie tzw. niezmodyfikowanego binarnego oprogramowania, czyli uruchamianie ju\u017c skompilowanego kodu bez jakichkolwiek zmian, dok\u0142adnie w takim kszta\u0142cie, w jakim jest u\u017cywane na rzeczywistym sprz\u0119cie. Innymi s\u0142owy, mo\u017cna zrobi\u0107 kopi\u0119 (\u201edump\u201d) dysku twardego, wskaza\u0107 go jako obraz dla modelu w pe\u0142no-platformowym symulatorze i \u2013 voila! \u2013 system operacyjny i inne programy \u0142aduj\u0105 si\u0119 w symulatorze bez \u017cadnych dodatkowych dzia\u0142a\u0144. <\/p>\n<h3>Wydajno\u015b\u0107 symulator\u00f3w <\/h3>\n<p><img decoding=\"async\" alt=\"Symulatory system\u00f3w komputerowych: znany wszystkim pe\u0142nop\u0142atny symulator oraz mniej znane symulatory taktyczne i tras\" src=\"\/wp-content\/uploads\/2020\/07\/870ef9d5e311044059ace05571d607ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJak wspomniano troch\u0119 wy\u017cej, sam proces symulacji ca\u0142ego systemu, czyli wszystkich jego urz\u0105dze\u0144, jest do\u015b\u0107 wolnym przedsi\u0119wzi\u0119ciem. Je\u015bli jeszcze do tego zrealizowa\u0107 to na bardzo szczeg\u00f3\u0142owym poziomie, na przyk\u0142ad mikroarchitektonicznym lub logicznym, to wykonanie stanie si\u0119 ekstremalnie wolne. Natomiast poziom instrukcji jest odpowiednim wyborem i pozwala na dzia\u0142anie systemu operacyjnego i program\u00f3w z pr\u0119dko\u015bciami, kt\u00f3re s\u0105 wystarczaj\u0105ce dla u\u017cytkownika do komfortowej interakcji z nimi. <\/p>\n<p>Tutaj warto poruszy\u0107 temat wydajno\u015bci symulator\u00f3w. Zwykle mierzy si\u0119 j\u0105 w IPS (instrukcjach na sekund\u0119), a dok\u0142adniej w MIPS (miliony IPS), czyli ilo\u015bci instrukcji procesora wykonanych przez symulator w ci\u0105gu jednej sekundy. Jednocze\u015bnie pr\u0119dko\u015b\u0107 symulacji zale\u017cy tak\u017ce od wydajno\u015bci systemu, na kt\u00f3rym sama symulacja dzia\u0142a. Dlatego, by\u0107 mo\u017ce, w\u0142a\u015bciwiej by\u0142oby m\u00f3wi\u0107 o \"spowolnieniu\" (slowdown) symulatora w por\u00f3wnaniu z oryginalnym systemem. <\/p>\n<p>Najcz\u0119\u015bciej spotykane na rynku pe\u0142noplatformowe symulatory, takie jak QEMU, VirtualBox czy VmWare Workstation, oferuj\u0105 przyzwoit\u0105 wydajno\u015b\u0107. U\u017cytkownik mo\u017ce nawet nie zauwa\u017cy\u0107, \u017ce praca odbywa si\u0119 w symulatorze. Dzieje si\u0119 tak dzi\u0119ki specjalnej funkcji w procesorach, kt\u00f3r\u0105 jest wirtualizacja, algorytmom translacji binarnej oraz innym interesuj\u0105cym rozwi\u0105zaniom. To wszystko jest temat na osobny artyku\u0142, ale kr\u00f3tko m\u00f3wi\u0105c, wirtualizacja to sprz\u0119towa zdolno\u015b\u0107 wsp\u00f3\u0142czesnych procesor\u00f3w, kt\u00f3ra pozwala symulatorom nie symulowa\u0107 instrukcji, a bezpo\u015brednio przekazywa\u0107 je do wykonania do rzeczywistego procesora, o ile architektury symulatora i procesora s\u0105 podobne. Translacja binarna jest to konwersja kodu maszynowego go\u015bcia na kod maszyny gospodarza i jego p\u00f3\u017aniejsze wykonywanie na rzeczywistym procesorze. W rezultacie symulacja jest tylko nieznacznie wolniejsza, od 5 do 10 razy, a cz\u0119sto dzia\u0142a z t\u0105 sam\u0105 pr\u0119dko\u015bci\u0105, co rzeczywisty system. Chocia\u017c wp\u0142ywa na to wiele czynnik\u00f3w. Na przyk\u0142ad, je\u015bli chcemy symulowa\u0107 system z kilkudziesi\u0119cioma procesorami, pr\u0119dko\u015b\u0107 natychmiast spadnie o te kilka dziesi\u0105tek razy. Z drugiej strony, symulatory takie jak Simics w najnowszych wersjach wspieraj\u0105 wieloprocesorowy sprz\u0119t gospodarza i skutecznie r\u00f3wnolegle rozdzielaj\u0105 symulowane rdzenie na rdzenie rzeczywistego procesora. <\/p>\n<p>Je\u015bli chodzi o pr\u0119dko\u015b\u0107 symulacji mikroarchitektur, to z regu\u0142y jest ona o kilka rz\u0119d\u00f3w wielko\u015bci wolniejsza, oko\u0142o 1000-10000 razy, ni\u017c wykonanie na zwyk\u0142ym komputerze, bez symulacji. A realizacje na poziomie element\u00f3w logicznych s\u0105 jeszcze wolniejsze o kilka rz\u0119d\u00f3w. Dlatego w roli emulatora na tym poziomie wykorzystuje si\u0119 FPGA, co znacznie zwi\u0119ksza wydajno\u015b\u0107. <\/p>\n<p>Wykres poni\u017cej pokazuje przybli\u017con\u0105 zale\u017cno\u015b\u0107 pr\u0119dko\u015bci symulacji od szczeg\u00f3\u0142owo\u015bci modelu. <\/p>\n<p><img decoding=\"async\" alt=\"Symulatory system\u00f3w komputerowych: znany wszystkim pe\u0142nop\u0142atny symulator oraz mniej znane symulatory taktyczne i tras\" src=\"\/wp-content\/uploads\/2020\/07\/72189338a6a0c78554118f180a297813.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Symulacja takt\u00f3w <\/h3>\n<p>\nMimo niewielkiej pr\u0119dko\u015bci dzia\u0142ania, symulatory mikroarchitektury s\u0105 do\u015b\u0107 powszechne. Modelowanie wewn\u0119trznych blok\u00f3w procesora jest konieczne, aby dok\u0142adnie symulowa\u0107 czas wykonania ka\u017cdej instrukcji. Mo\u017ce tu pojawi\u0107 si\u0119 nieporozumienie \u2013 poniewa\u017c, wydawa\u0142oby si\u0119, dlaczego po prostu nie zaprogramowa\u0107 czasu wykonania dla ka\u017cdej instrukcji. Ale taki symulator b\u0119dzie dzia\u0142a\u0107 bardzo niedok\u0142adnie, poniewa\u017c czas wykonania tej samej instrukcji mo\u017ce r\u00f3\u017cni\u0107 si\u0119 z wywo\u0142ania na wywo\u0142anie. <\/p>\n<p>Najprostszy przyk\u0142ad \u2013 instrukcja dost\u0119pu do pami\u0119ci. Je\u015bli \u017c\u0105dana kom\u00f3rka pami\u0119ci jest dost\u0119pna w cache, czas wykonania b\u0119dzie minimalny. Je\u015bli w cache brak tej informacji (\"cache miss\"), znacznie zwi\u0119kszy to czas wykonania instrukcji. W zwi\u0105zku z tym do dok\u0142adnej symulacji konieczny jest model cache. Jednak na modelu cache sprawa si\u0119 nie ko\u0144czy. Procesor nie b\u0119dzie po prostu czeka\u0142 na uzyskanie danych z pami\u0119ci, gdy ich brakuje w cache. Zamiast tego zacznie wykonywa\u0107 kolejne instrukcje, wybieraj\u0105c takie, kt\u00f3re nie s\u0105 zale\u017cne od wyniku odczytu z pami\u0119ci. To tzw. wykonanie \u201enie w porz\u0105dku\u201d (OOO, out of order execution), kt\u00f3re jest konieczne, aby zminimalizowa\u0107 czas bezczynno\u015bci procesora. Uwzgl\u0119dnienie tego wszystkiego podczas obliczania czasu wykonania instrukcji pomo\u017ce modelowanie odpowiednich blok\u00f3w procesora. W\u015br\u00f3d tych instrukcji, wykonywanych podczas oczekiwania na wynik odczytu z pami\u0119ci, mo\u017ce si\u0119 pojawi\u0107 operacja warunkowego przej\u015bcia. Je\u015bli wynik spe\u0142nienia warunku jest w tej chwili nieznany, procesor ponownie nie zatrzymuje wykonania, lecz dokonuje \u201eza\u0142o\u017cenia\u201d, wykonuje odpowiednie przej\u015bcie i kontynuuje proaktywne wykonywanie instrukcji z miejsca przej\u015bcia. Taki blok, nazywany predyktorem ga\u0142\u0119zi, r\u00f3wnie\u017c musi by\u0107 zaimplementowany w symulatorze mikroarchitektury. <\/p>\n<p>Obrazek poni\u017cej pokazuje g\u0142\u00f3wne bloki procesora, kt\u00f3rych znajomo\u015b\u0107 nie jest konieczna, podano go tylko po to, aby pokaza\u0107 z\u0142o\u017cono\u015b\u0107 realizacji mikroarchitektury. <\/p>\n<p><img decoding=\"async\" alt=\"Symulatory system\u00f3w komputerowych: znany wszystkim pe\u0142nop\u0142atny symulator oraz mniej znane symulatory taktyczne i tras\" src=\"\/wp-content\/uploads\/2020\/07\/1248d47017346153a233d4c895635569.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPraca wszystkich tych blok\u00f3w w rzeczywistym procesorze jest synchronizowana za pomoc\u0105 specjalnych sygna\u0142\u00f3w zegarowych, podobnie jak w modelu. Taki symulator mikroarchitektury nazywa si\u0119 symulatorem cykli (cycle accurate). G\u0142\u00f3wne jego zadanie to dok\u0142adne prognozowanie wydajno\u015bci rozwijanego procesora i\/lub obliczanie czasu wykonania okre\u015blonego programu, na przyk\u0142ad jakiego\u015b benchmarku. Je\u015bli warto\u015bci b\u0119d\u0105 ni\u017csze od wymaganych, konieczne b\u0119dzie dopracowanie algorytm\u00f3w i blok\u00f3w procesora lub optymalizacja programu. <\/p>\n<p>Jak pokazano powy\u017cej, symulacja cykli jest bardzo wolna, dlatego stosuje si\u0119 j\u0105 tylko przy badaniu okre\u015blonych aspekt\u00f3w dzia\u0142ania programu, gdzie konieczne jest poznanie rzeczywistej pr\u0119dko\u015bci wykonania program\u00f3w i ocena przysz\u0142ej wydajno\u015bci urz\u0105dzenia, kt\u00f3rego prototyp jest modelowany. <\/p>\n<p>Na czas symulacji pozosta\u0142ych dzia\u0142a\u0144 programu wykorzystywany jest symulator funkcjonalny. Jak takie skojarzone wykorzystanie przebiega w rzeczywisto\u015bci? Najpierw uruchamiany jest symulator funkcjonalny, na kt\u00f3rym \u0142adowany jest system operacyjny i wszystko, co potrzebne do uruchomienia badanej aplikacji. Nie interesuje nas ani sam system operacyjny, ani pocz\u0105tkowe etapy uruchamiania programu, jego konfiguracja itp. Jednak nie mo\u017cemy r\u00f3wnie\u017c pomin\u0105\u0107 tych cz\u0119\u015bci i od razu przej\u015b\u0107 do wykonania programu z po\u0142owy. Dlatego wszystkie te wst\u0119pne etapy s\u0105 realizowane na symulatorze funkcjonalnym. Po tym, jak program wykona si\u0119 do interesuj\u0105cego nas momentu, istniej\u0105 dwie mo\u017cliwo\u015bci. Mo\u017cna zamieni\u0107 model na cykliczny i kontynuowa\u0107 wykonanie. Tryb symulacji, w kt\u00f3rym wykorzystywany jest kod wykonywalny (tj. zwyk\u0142e skompilowane pliki program\u00f3w), nazywa si\u0119 symulacj\u0105 opart\u0105 na wykonaniu (execution driven simulation). Jest to najpopularniejsza forma symulacji. Mo\u017cliwe jest r\u00f3wnie\u017c inne podej\u015bcie \u2013 symulacja oparta na trasach (trace driven simulation). <\/p>\n<h3>Symulacja oparta na trasach <\/h3>\n<p>\nSk\u0142ada si\u0119 z dw\u00f3ch krok\u00f3w. Za pomoc\u0105 symulatora funkcjonalnego lub na rzeczywistej maszynie zbiera si\u0119 i zapisuje do pliku dziennik dzia\u0142a\u0144 programu. Taki dziennik nazywa si\u0119 tras\u0105 (trace). W zale\u017cno\u015bci od tego, co jest badane, trasa mo\u017ce zawiera\u0107 wykonywalne instrukcje, adresy pami\u0119ci, numery port\u00f3w, informacje o przerwaniach. <\/p>\n<p>Kolejnym krokiem jest \u201eodtwarzanie\u201d trasy, kiedy symulator cykli odczytuje tras\u0119 i wykonuje wszystkie instrukcje w niej zapisane. Na ko\u0144cu uzyskujemy czas wykonania tego fragmentu programu oraz r\u00f3\u017cne charakterystyki tego procesu, na przyk\u0142ad procent trafie\u0144 w pami\u0119ci podr\u0119cznej. <\/p>\n<p>Wa\u017cn\u0105 cech\u0105 pracy z trasami jest deterministyczno\u015b\u0107, to znaczy, uruchamiaj\u0105c symulacj\u0119 w opisany powy\u017cej spos\u00f3b, wielokrotnie reprodukujemy t\u0119 sam\u0105 sekwencj\u0119 dzia\u0142a\u0144. Umo\u017cliwia to, zmieniaj\u0105c parametry modelu (rozmiary pami\u0119ci podr\u0119cznej, bufor\u00f3w i kolejek) oraz wykorzystuj\u0105c r\u00f3\u017cne algorytmy wewn\u0119trzne lub je dostosowuj\u0105c, bada\u0107, jak dany parametr wp\u0142ywa na wydajno\u015b\u0107 systemu i kt\u00f3ra opcja daje najlepsze wyniki. Wszystko to mo\u017cna przeprowadzi\u0107 z modelem prototypu urz\u0105dzenia przed stworzeniem rzeczywistego prototypu sprz\u0119towego. <\/p>\n<p>Z\u0142o\u017cono\u015b\u0107 tego podej\u015bcia polega na konieczno\u015bci wcze\u015bniejszego uruchomienia aplikacji i zebrania trasy, a tak\u017ce ogromnego rozmiaru pliku z tras\u0105. Do zalet mo\u017cna zaliczy\u0107 to, \u017ce wystarczy zamodelowa\u0107 jedynie interesuj\u0105c\u0105 cz\u0119\u015b\u0107 urz\u0105dzenia lub platformy, podczas gdy symulacja wykonania zazwyczaj wymaga pe\u0142nego modelu. <\/p>\n<p>Zatem w tym artykule om\u00f3wili\u015bmy cechy symulacji na pe\u0142nej platformie, porozmawiali\u015bmy o szybko\u015bci realizacji na r\u00f3\u017cnych poziomach, symulacji cykli oraz tras. W nast\u0119pnym artykule opisz\u0119 g\u0142\u00f3wne scenariusze wykorzystania symulator\u00f3w, zar\u00f3wno w celach osobistych, jak i z punktu widzenia rozwoju w du\u017cych firmach.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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\/pl\/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=\"pl_PL\" \/>\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\/pl\/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\udd47Symulatory system\u00f3w komputerowych: wszystkim znany symulator na pe\u0142nej platformie i nikomu nieznane symulatory cykli oraz tras | ProHoster","description":"W drugiej cz\u0119\u015bci artyku\u0142u o symulatorach system\u00f3w komputerowych b\u0119d\u0119 kontynuowa\u0142 w prosty i przyst\u0119pny spos\u00f3b omawia\u0107 symulatory komputerowe, a mianowicie symulacj\u0119 na pe\u0142nej platformie, z kt\u00f3r\u0105 najcz\u0119\u015bciej si\u0119 spotyka.","canonical_url":"https:\/\/prohoster.info\/pl\/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":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/87136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=87136"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/87136\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/87137"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=87136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=87136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=87136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}