{"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\/sk\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy","title":{"rendered":"Simul\u00e1tory po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov: v\u0161etk\u00fdm zn\u00e1my multiplatformov\u00fd simul\u00e1tor a nikomu nezn\u00e1me protokolov\u00e9 a trasov\u00e9 simul\u00e1tory","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V druhej \u010dasti \u010dl\u00e1nku o simul\u00e1toroch po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov budem pokra\u010dova\u0165 v jednoduchom informa\u010dnom form\u00e1te o po\u010d\u00edta\u010dov\u00fdch simul\u00e1toroch, konkr\u00e9tne o plne platformovej simul\u00e1cii, s ktorou sa naj\u010dastej\u0161ie stret\u00e1va be\u017en\u00fd pou\u017e\u00edvate\u013e, ako aj o taktovej modelovej a tras\u00e1ch, ktor\u00e9 s\u00fa viac roz\u0161\u00edren\u00e9 v kruhoch v\u00fdvoj\u00e1rov. <\/p>\n<p><img decoding=\"async\" alt=\"Simul\u00e1tory po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov: v\u0161etk\u00fdm zn\u00e1my multiplatformov\u00fd simul\u00e1tor a nikomu nezn\u00e1me protokolov\u00e9 a trasov\u00e9 simul\u00e1tory\" 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 \/>\nV <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">prvej \u010dasti<\/a><\/noindex> Rozpr\u00e1val som o tom, \u010do s\u00fa simul\u00e1tory v\u00f4bec, ako aj o \u00farovniach modelovania. Teraz na z\u00e1klade t\u00fdchto znalost\u00ed navrhujem pot\u00e1pa\u0165 sa o nie\u010do hlb\u0161ie a hovori\u0165 o plne platformovej simul\u00e1cii, o tom, ako zostavi\u0165 trasy, \u010do s nimi potom robi\u0165, a taktie\u017e o taktovej mikroarchitektonickej emul\u00e1cii. <\/p>\n<h3>Plne platformov\u00fd simul\u00e1tor (full platform simulator), alebo \u201cJeden na poli \u2014 nie je vojak\u201d <\/h3>\n<p>\nAk je potrebn\u00e9 presk\u00fama\u0165 fungovanie jedn\u00e9ho konkr\u00e9tneho zariadenia, napr\u00edklad sie\u0165ovej karty, alebo nap\u00edsa\u0165 pre toto zariadenie firmv\u00e9r alebo ovl\u00e1da\u010d, je mo\u017en\u00e9 tak\u00e9to zariadenie modelova\u0165 samostatne. Av\u0161ak pou\u017e\u00edva\u0165 ho oddelene od zvy\u0161ku infra\u0161trukt\u00fary nie je ve\u013emi pohodln\u00e9. Na spustenie pr\u00edslu\u0161n\u00e9ho ovl\u00e1da\u010da bude potrebn\u00fd centr\u00e1lny procesor, pam\u00e4\u0165, pr\u00edstup k zbernici na prenos d\u00e1t a \u010fal\u0161ie. Okrem toho je na funkciu ovl\u00e1da\u010da potrebn\u00fd opera\u010dn\u00fd syst\u00e9m (OS) a sie\u0165ov\u00fd z\u00e1sobn\u00edk. Navy\u0161e m\u00f4\u017ee by\u0165 potrebn\u00fd aj samostatn\u00fd gener\u00e1tor paketov a server na prij\u00edmanie odpoved\u00ed. <\/p>\n<p>Plne platformov\u00fd simul\u00e1tor vytv\u00e1ra prostredie na spustenie kompletn\u00e9ho softv\u00e9rov\u00e9ho z\u00e1sobn\u00edka, ktor\u00fd zah\u0155\u0148a v\u0161etko, po\u010d\u00ednaj\u00fac BIOS a zav\u00e1dza\u010dom a kon\u010diac samotn\u00fdm OS a r\u00f4znymi jeho podsyst\u00e9mami, ako je ten ist\u00fd sie\u0165ov\u00fd z\u00e1sobn\u00edk, ovl\u00e1da\u010de, aplik\u00e1cie pou\u017e\u00edvate\u013eskej \u00farovne. Na tento \u00fa\u010del realizuje programov\u00e9 modely v\u00e4\u010d\u0161iny zariaden\u00ed po\u010d\u00edta\u010da: procesor a pam\u00e4\u0165, disk, zariadenia vstupu a v\u00fdstupu (kl\u00e1vesnica, my\u0161, displej) a samozrejme aj uveden\u00fa sie\u0165ov\u00fa kartu. <\/p>\n<p>Ni\u017e\u0161ie je zn\u00e1zornen\u00e1 blokov\u00e1 sch\u00e9ma \u010dipsetu x58 od spolo\u010dnosti Intel. V plnohodnotnom po\u010d\u00edta\u010dovom simul\u00e1tore tohto \u010dipsetu je potrebn\u00e9 implementova\u0165 v\u00e4\u010d\u0161inu uveden\u00fdch zariaden\u00ed, vr\u00e1tane t\u00fdch, ktor\u00e9 s\u00fa vn\u00fatorn\u00e9 v IOH (Input\/Output Hub) a ICH (Input\/Output Controller Hub), ktor\u00e9 nie s\u00fa podrobne nakreslen\u00e9 na blokovej sch\u00e9me. Aj ke\u010f, ako ukazuje prax, nie je m\u00e1lo zariaden\u00ed, ktor\u00e9 sa nepou\u017e\u00edvaj\u00fa t\u00fdm softv\u00e9rom, ktor\u00fd pl\u00e1nujeme spusti\u0165. Modely tak\u00fdchto zariaden\u00ed netreba vytv\u00e1ra\u0165. <\/p>\n<p><img decoding=\"async\" alt=\"Simul\u00e1tory po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov: v\u0161etk\u00fdm zn\u00e1my multiplatformov\u00fd simul\u00e1tor a nikomu nezn\u00e1me protokolov\u00e9 a trasov\u00e9 simul\u00e1tory\" src=\"\/wp-content\/uploads\/2020\/07\/3f62e2e7792ce06026c767146fed9912.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNaj\u010dastej\u0161ie sa plnohodnotn\u00e9 simul\u00e1tory realizuj\u00fa na \u00farovni in\u0161trukci\u00ed procesora (ISA, pozri <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">predch\u00e1dzaj\u00faci \u010dl\u00e1nok<\/a><\/noindex>). To umo\u017e\u0148uje relat\u00edvne r\u00fdchlo a lacno vytvori\u0165 samotn\u00fd simul\u00e1tor. \u00darove\u0148 ISA je tie\u017e dobr\u00e1 v tom, \u017ee zost\u00e1va viac-menej stabiln\u00e1, na rozdiel od, napr\u00edklad, \u00farovne API\/ABI, ktor\u00e1 sa men\u00ed \u010dastej\u0161ie. Navy\u0161e, implement\u00e1cia na \u00farovni in\u0161trukci\u00ed umo\u017e\u0148uje sp\u00fa\u0161\u0165a\u0165 takzvan\u00fd nemodifikovan\u00fd bin\u00e1rny softv\u00e9r, teda sp\u00fa\u0161\u0165a\u0165 u\u017e skompilovan\u00fd k\u00f3d bez ak\u00fdchko\u013evek zmien, presne v tej podobe, v akej sa pou\u017e\u00edva na skuto\u010dnom hardv\u00e9ri. In\u00fdmi slovami, m\u00f4\u017eeme urobi\u0165 k\u00f3piu (\u201edump\u201c) harddisku, ur\u010di\u0165 ho ako obraz pre model v plnohodnotnom simul\u00e1tore a \u2013 voil\u00e0! \u2013 OS a ostatn\u00e9 programy sa na\u010d\u00edtaj\u00fa do simul\u00e1tora bez ak\u00fdchko\u013evek dodato\u010dn\u00fdch \u00fakonov. <\/p>\n<h3>V\u00fdkonnos\u0165 simul\u00e1torov <\/h3>\n<p><img decoding=\"async\" alt=\"Simul\u00e1tory po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov: v\u0161etk\u00fdm zn\u00e1my multiplatformov\u00fd simul\u00e1tor a nikomu nezn\u00e1me protokolov\u00e9 a trasov\u00e9 simul\u00e1tory\" src=\"\/wp-content\/uploads\/2020\/07\/870ef9d5e311044059ace05571d607ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAko bolo spomenut\u00e9 vy\u0161\u0161ie, samotn\u00fd proces simul\u00e1cie celej s\u00fastavy, teda v\u0161etk\u00fdch jej zariaden\u00ed, je celkom pomal\u00e1 z\u00e1le\u017eitos\u0165. Ak sa to e\u0161te implementuje na celkom detailnej \u00farovni, napr\u00edklad mikroarchitektonickej alebo logickej, vykon\u00e1vanie sa stane extr\u00e9mne pomal\u00fdm. Ale \u00farove\u0148 in\u0161trukci\u00ed je vhodn\u00fdm v\u00fdberom a umo\u017e\u0148uje OS a programom fungova\u0165 r\u00fdchlos\u0165ou, ktor\u00e1 je pre pou\u017e\u00edvate\u013ea dostato\u010dn\u00e1 na pohodln\u00e9 interakcie s nimi. <\/p>\n<p>Tu je vhodn\u00e9 sa dotkn\u00fa\u0165 t\u00e9my v\u00fdkonnosti simul\u00e1torov. Obvykle sa meria v IPS (in\u0161trukcie za sekundu), presnej\u0161ie v MIPS (mili\u00f3ny IPS), teda v po\u010dte in\u0161trukci\u00ed procesora, ktor\u00e9 simul\u00e1tor vykon\u00e1va za jednu sekundu. Z\u00e1rove\u0148 r\u00fdchlos\u0165 simul\u00e1cie z\u00e1vis\u00ed aj od v\u00fdkonnosti syst\u00e9mu, na ktorom samotn\u00e1 simul\u00e1cia prebieha. Preto by mo\u017eno bolo spr\u00e1vnej\u0161ie hovori\u0165 o \u201espomalen\u00ed\u201c (slowdown) simul\u00e1tora v porovnan\u00ed s p\u00f4vodn\u00fdm syst\u00e9mom. <\/p>\n<p>Najbe\u017enej\u0161ie dostupn\u00e9 plne platformov\u00e9 simul\u00e1tory, ako QEMU, VirtualBox alebo VmWare Workstation, maj\u00fa slu\u0161n\u00fd v\u00fdkon. Pre pou\u017e\u00edvate\u013ea m\u00f4\u017ee by\u0165 dokonca nevidite\u013en\u00e9, \u017ee pr\u00e1ca prebieha v simul\u00e1tore. K tomu prispieva \u0161peci\u00e1lna schopnos\u0165 virtualiz\u00e1cie implementovan\u00e1 v procesoroch, algoritmy bin\u00e1rneho prekladu a in\u00e9 zauj\u00edmav\u00e9 aspekty. To v\u0161etko je t\u00e9ma na samostatn\u00fd \u010dl\u00e1nok, ale ak to zhrnieme, virtualiz\u00e1cia je hardv\u00e9rov\u00e1 funkcia modern\u00fdch procesorov, ktor\u00e1 umo\u017e\u0148uje simul\u00e1torom nevykon\u00e1va\u0165 in\u0161trukcie simul\u00e1cie, ale priamo ich odovzd\u00e1va\u0165 na vykonanie re\u00e1lnemu procesoru, ak je architekt\u00fara simul\u00e1tora a procesora podobn\u00e1. Bin\u00e1rny preklad je preklad k\u00f3du hostite\u013esk\u00e9ho syst\u00e9mu do k\u00f3du hos\u0165a a jeho n\u00e1sledn\u00e9 vykonanie na re\u00e1lnom procesore. V d\u00f4sledku toho je simul\u00e1cia len nepatrne pomal\u0161ia, raz za 5-10, a \u010dasto funguje dokonca rovnako r\u00fdchlo ako skuto\u010dn\u00fd syst\u00e9m. Na toto v\u0161ak vpl\u00fdva mnoho faktorov. Napr\u00edklad, ak chceme simulova\u0165 syst\u00e9m s nieko\u013ek\u00fdmi desiatkami procesorov, r\u00fdchlos\u0165 okam\u017eite klesne o nieko\u013eko desiatok r\u00e1z. Na druhej strane simul\u00e1tory ako Simics v posledn\u00fdch verzi\u00e1ch podporuj\u00fa viacprocesorov\u00fd hostite\u013esk\u00fd hardv\u00e9r a efekt\u00edvne paralelizuj\u00fa simulovan\u00e9 jadr\u00e1 na jadr\u00e1 re\u00e1lneho procesora. <\/p>\n<p>Pri r\u00fdchlosti mikroarchitektonickej simul\u00e1cie to zvy\u010dajne znamen\u00e1 nieko\u013eko r\u00e1dov, pribli\u017ene 1000-10000 kr\u00e1t pomal\u0161ieho vykonania na be\u017enom po\u010d\u00edta\u010di bez simul\u00e1cie. Implement\u00e1cie na \u00farovni logick\u00fdch prvkov s\u00fa e\u0161te pomal\u0161ie o nieko\u013eko r\u00e1dov. Preto sa na \u00farovni emul\u00e1torov pou\u017e\u00edvaj\u00fa FPGA, \u010do umo\u017e\u0148uje v\u00fdrazne zv\u00fd\u0161i\u0165 v\u00fdkon. <\/p>\n<p>Graf ni\u017e\u0161ie ukazuje pribli\u017en\u00fa z\u00e1vislos\u0165 r\u00fdchlosti simul\u00e1cie od detailnosti modelu. <\/p>\n<p><img decoding=\"async\" alt=\"Simul\u00e1tory po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov: v\u0161etk\u00fdm zn\u00e1my multiplatformov\u00fd simul\u00e1tor a nikomu nezn\u00e1me protokolov\u00e9 a trasov\u00e9 simul\u00e1tory\" src=\"\/wp-content\/uploads\/2020\/07\/72189338a6a0c78554118f180a297813.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Potaktn\u00e1 simul\u00e1cia <\/h3>\n<p>\nNapriek n\u00edzkym r\u00fdchlostiam vykon\u00e1vania s\u00fa mikroarchitektonick\u00e9 simul\u00e1tory dos\u0165 roz\u0161\u00edren\u00e9. Modelovanie vn\u00fatorn\u00fdch blokov procesora je potrebn\u00e9 na presn\u00e9 simulovanie \u010dasov vykon\u00e1vania ka\u017edej in\u0161trukcie. Tu m\u00f4\u017ee vznikn\u00fa\u0165 nepochopenie \u2013 ve\u010f sa zd\u00e1, pre\u010do jednoducho nezprogramova\u0165 \u010das vykon\u00e1vania pre ka\u017ed\u00fa in\u0161trukciu. Ale tak\u00fd simul\u00e1tor by fungoval ve\u013emi nepresne, preto\u017ee \u010das vykon\u00e1vania rovnakej in\u0161trukcie sa m\u00f4\u017ee l\u00ed\u0161i\u0165 od volania k volaniu. <\/p>\n<p>Najjednoduch\u0161\u00edm pr\u00edkladom je in\u0161trukcia pr\u00edstupu do pam\u00e4te. Ak je po\u017eadovan\u00e1 bunka pam\u00e4te dostupn\u00e1 v cache, \u010das vykon\u00e1vania bude minim\u00e1lny. Ak dan\u00e1 inform\u00e1cia v cache nie je (\"cache miss\"), \u010das vykon\u00e1vania in\u0161trukcie sa v\u00fdrazne predl\u017euje. Preto na presn\u00fa simul\u00e1ciu potrebujeme model cache. Av\u0161ak modelom cache to nekon\u010d\u00ed. Procesor nebude len \u010daka\u0165 na na\u010d\u00edtanie \u00fadajov z pam\u00e4te, ak nie s\u00fa v cache. Namiesto toho za\u010dne vykon\u00e1va\u0165 nasleduj\u00face in\u0161trukcie, vyberaj\u00fac tie, ktor\u00e9 nez\u00e1visia od v\u00fdsledku \u010d\u00edtania z pam\u00e4te. Toto je takzvan\u00e9 vykon\u00e1vanie \"nepod\u013ea poradia\" (OOO, out of order execution), potrebn\u00e9 na minimaliz\u00e1ciu \u010dasu ne\u010dinnosti procesora. Zoh\u013eadnenie v\u0161etk\u00e9ho tohto pri v\u00fdpo\u010dte \u010dasu vykon\u00e1vania in\u0161trukci\u00ed pom\u00f4\u017ee modelovanie pr\u00edslu\u0161n\u00fdch blokov procesora. Medzi t\u00fdmito in\u0161trukciami, ktor\u00e9 sa vykon\u00e1vaj\u00fa, k\u00fdm sa \u010dak\u00e1 na v\u00fdsledok \u010d\u00edtania z pam\u00e4te, sa m\u00f4\u017ee nach\u00e1dza\u0165 oper\u00e1cia podmienen\u00e9ho skoku. Ak je v\u00fdsledok podmienky nezn\u00e1my v danom momente, procesor op\u00e4\u0165 nezastavuje vykon\u00e1vanie, ale rob\u00ed \"predpoklad\", vykon\u00e1va pr\u00edslu\u0161n\u00fd skok a pokra\u010duje v prevent\u00edvnom vykon\u00e1van\u00ed in\u0161trukci\u00ed z miesta skoku. Tento blok, naz\u00fdvan\u00fd predik\u00e1tor skokov, mus\u00ed by\u0165 tie\u017e implementovan\u00fd v mikroarchitektonickom simul\u00e1tore. <\/p>\n<p>Obr\u00e1zok ni\u017e\u0161ie ukazuje hlavn\u00e9 bloky procesora, ich znalos\u0165 nie je nevyhnutn\u00e1, je uveden\u00e1 len preto, aby uk\u00e1zala zlo\u017eitosti mikroarchitektonickej implement\u00e1cie. <\/p>\n<p><img decoding=\"async\" alt=\"Simul\u00e1tory po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov: v\u0161etk\u00fdm zn\u00e1my multiplatformov\u00fd simul\u00e1tor a nikomu nezn\u00e1me protokolov\u00e9 a trasov\u00e9 simul\u00e1tory\" src=\"\/wp-content\/uploads\/2020\/07\/1248d47017346153a233d4c895635569.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPr\u00e1ca v\u0161etk\u00fdch t\u00fdchto blokov v re\u00e1lnom procesore sa synchronizuje \u0161peci\u00e1lnymi taktn\u00fdmi sign\u00e1lmi, rovnako to funguje aj v modeli. Tak\u00fdto mikroarchitektonick\u00fd simul\u00e1tor sa naz\u00fdva cyklick\u00fd (cycle accurate). Jeho hlavn\u00fdm \u00fa\u010delom je presne predpoveda\u0165 v\u00fdkon vyv\u00edjan\u00e9ho procesora a\/alebo vypo\u010d\u00edta\u0165 \u010das vykon\u00e1vania konkr\u00e9tneho programu, napr\u00edklad nejak\u00e9ho benchmarku. Ak bud\u00fa hodnoty ni\u017e\u0161ie ako potrebn\u00e9, bude potrebn\u00e9 vylep\u0161i\u0165 algoritmy a bloky procesora alebo optimalizova\u0165 program. <\/p>\n<p>Ako bolo uveden\u00e9 vy\u0161\u0161ie, cyklick\u00e1 simul\u00e1cia je ve\u013emi pomal\u00e1, preto sa pou\u017e\u00edva len pri sk\u00faman\u00ed ur\u010dit\u00fdch aspektov pr\u00e1ce programu, kde je potrebn\u00e9 zisti\u0165 skuto\u010dn\u00fa r\u00fdchlos\u0165 vykon\u00e1vania programov a ohodnoti\u0165 bud\u00faci v\u00fdkon zariadenia, prototyp ktor\u00e9ho je modelovan\u00fd. <\/p>\n<p>Pre simul\u00e1ciu zvy\u0161ku \u010dasu vykon\u00e1vania programu sa pou\u017e\u00edva funk\u010dn\u00fd simul\u00e1tor. Ako prebieha tak\u00e9to kombinovan\u00e9 pou\u017eitie v praxi? Najprv sa spust\u00ed funk\u010dn\u00fd simul\u00e1tor, na ktorom sa na\u010d\u00edta opera\u010dn\u00fd syst\u00e9m a v\u0161etko potrebn\u00e9 na spustenie sk\u00faman\u00e9ho programu. Pozrieme sa len na program, neur\u010duj\u00fa n\u00e1s ani samotn\u00fd opera\u010dn\u00fd syst\u00e9m, ani po\u010diato\u010dn\u00e9 f\u00e1zy spustenia programu, jeho konfigur\u00e1cia a podobne. Av\u0161ak nem\u00f4\u017eeme presko\u010di\u0165 tieto \u010dasti a okam\u017eite prejs\u0165 k vykon\u00e1vaniu programu od stredu. Preto sa v\u0161etky tieto predbe\u017en\u00e9 f\u00e1zy prev\u00e1dzkuj\u00fa na funk\u010dnom simul\u00e1tore. Po tom, \u010do sa program vykonal do zauj\u00edmav\u00e9ho momentu, existuj\u00fa dva varianty. M\u00f4\u017eeme nahradi\u0165 model cyklick\u00fdm a pokra\u010dova\u0165 vo vykon\u00e1van\u00ed. M\u00f3d simul\u00e1cie, pri ktorom sa pou\u017e\u00edva vykon\u00e1vac\u00ed k\u00f3d (t.j. be\u017en\u00e9 skompilovan\u00e9 s\u00fabory programov), sa naz\u00fdva simul\u00e1cia pod\u013ea vykon\u00e1vania (execution driven simulation). Toto je najbe\u017enej\u0161\u00ed variant simul\u00e1cie. Mo\u017en\u00fd je aj in\u00fd pr\u00edstup \u2013 simul\u00e1cia na z\u00e1klade st\u00f4p (trace driven simulation). <\/p>\n<h3>Simul\u00e1cia na z\u00e1klade st\u00f4p <\/h3>\n<p>\nSklad\u00e1 sa z dvoch krokov. Pomocou funk\u010dn\u00e9ho simul\u00e1tora alebo na re\u00e1lnom syst\u00e9me sa zhroma\u017e\u010fuje a zapisuje do s\u00faboru log \u010dinnost\u00ed programu. Tento log sa naz\u00fdva stopa (trace). V z\u00e1vislosti od toho, \u010do sa sk\u00fama, m\u00f4\u017ee stopa obsahova\u0165 vykon\u00e1vacie in\u0161trukcie, adresy pam\u00e4te, \u010d\u00edsla portov, inform\u00e1cie o preru\u0161eniach. <\/p>\n<p>\u010eal\u0161\u00edm krokom je \u201eprehr\u00e1vanie\u201c stopy, ke\u010f taktick\u00fd simul\u00e1tor \u010d\u00edta stopu a vykon\u00e1va v\u0161etky v nej zap\u00edsan\u00e9 in\u0161trukcie. Na konci z\u00edskavame \u010das vykonania tohto kusu programu, ako aj r\u00f4zne charakteristiky tohto procesu, napr\u00edklad percento zasahovania do vyrovn\u00e1vacej pam\u00e4te. <\/p>\n<p>D\u00f4le\u017eitou vlastnos\u0165ou pr\u00e1ce so stopami je determinovanos\u0165, teda sp\u00fa\u0161\u0165an\u00edm simul\u00e1cie pop\u00edsan\u00fdm vy\u0161\u0161ie sp\u00f4sobom, zaka\u017ed\u00fdm reprodukujeme rovnak\u00fa postupnos\u0165 akci\u00ed. To umo\u017e\u0148uje, meniac parametre modelu (ve\u013ekosti vyrovn\u00e1vacej pam\u00e4te, bufferov a front), a pou\u017e\u00edvan\u00edm r\u00f4znych intern\u00fdch algoritmov alebo ich nastaven\u00edm, sk\u00fama\u0165, ako ten alebo onen parameter ovplyv\u0148uje v\u00fdkon syst\u00e9mu a ktor\u00e1 varianta prin\u00e1\u0161a najlep\u0161ie v\u00fdsledky. Toto v\u0161etko m\u00f4\u017eeme urobi\u0165 s modelom prototypu zariadenia pred vytvoren\u00edm skuto\u010dn\u00e9ho hardv\u00e9rov\u00e9ho prototypu. <\/p>\n<p>Zlo\u017eitost tohto pr\u00edstupu spo\u010d\u00edva v potrebe predbe\u017en\u00e9ho spustenia aplik\u00e1cie a zhroma\u017edenia stopy, ako aj obrovskom ve\u013ekosti s\u00faboru so stopou. K v\u00fdhod\u00e1m patr\u00ed to, \u017ee sta\u010d\u00ed modelova\u0165 iba zauj\u00edmav\u00fa \u010das\u0165 zariadenia alebo platformy, zatia\u013e \u010do simul\u00e1cia vykon\u00e1vania po\u017eaduje zvy\u010dajne \u00fapln\u00fd model. <\/p>\n<p>Tak\u017ee v tomto \u010dl\u00e1nku sme sa venovali osobitnostiam plno-platformovej simul\u00e1cie, porozpr\u00e1vali sme o r\u00fdchlosti realiz\u00e1ci\u00ed na r\u00f4znych \u00farovniach, taktovej simul\u00e1cii a stop\u00e1ch. V nasleduj\u00facom \u010dl\u00e1nku pop\u00ed\u0161em hlavn\u00e9 scen\u00e1re pou\u017e\u00edvania simul\u00e1torov, ako v osobn\u00fdch z\u00e1ujmoch, tak z poh\u013eadu v\u00fdvoja vo ve\u013ek\u00fdch spolo\u010dnostiach.<br \/>\n<br \/>Zdroj: <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.4 - 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\/sk\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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\udd47Simul\u00e1tory po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov: v\u0161etk\u00fdm zn\u00e1my plno-platformov\u00fd simul\u00e1tor a nikomu nezn\u00e1me taktov\u00e9 a stopy | ProHoster","description":"V druhej \u010dasti \u010dl\u00e1nku o simul\u00e1toroch po\u010d\u00edta\u010dov\u00fdch syst\u00e9mov budem pokra\u010dova\u0165 v rozpr\u00e1van\u00ed v jednoduchej zoznamovacej forme o po\u010d\u00edta\u010dov\u00fdch simul\u00e1toroch, konkr\u00e9tne o plno-platformovej simul\u00e1cii, s ktorou sa naj\u010dastej\u0161ie stret\u00e1vame.","canonical_url":"https:\/\/prohoster.info\/sk\/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":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/87136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=87136"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/87136\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/87137"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=87136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=87136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=87136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}