{"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\/sv\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy","title":{"rendered":"Simulerade datasystem: den v\u00e4lk\u00e4nda plattformssimulatorn och de mindre k\u00e4nda taktiska simuleringarna och banorna","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>I den andra delen av artikeln om simulatorer av datorsystem kommer jag att forts\u00e4tta att f\u00f6rklara p\u00e5 ett enkelt och informativt s\u00e4tt om datorsimulatorer, n\u00e4mligen om fullplattformssimulation, som en vanlig anv\u00e4ndare oftast st\u00f6ter p\u00e5, samt om taktsynkronisering och banor som \u00e4r mer utbredda inom utvecklarkretsar. <\/p>\n<p><img decoding=\"async\" alt=\"Simulerade datasystem: den v\u00e4lk\u00e4nda plattformssimulatorn och de mindre k\u00e4nda taktiska simuleringarna och banorna\" 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 \/>\nI <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">f\u00f6rsta delen<\/a><\/noindex> Jag har ber\u00e4ttat om vad simulatorer \u00e4r generellt sett, samt om niv\u00e5erna av modellering. Nu, baserat p\u00e5 denna kunskap, f\u00f6resl\u00e5r jag att vi dyker lite djupare och pratar om fullplattformssimulation, hur man bygger banor, vad man sedan ska g\u00f6ra med dem, samt om taktsynkroniserad mikroarkitektur-emulering. <\/p>\n<h3>Fullplattformssimulator (full platform simulator), eller \"En ensam k\u00e4mpe \u00e4r ingen k\u00e4mpe\" <\/h3>\n<p>\nOm det \u00e4r n\u00f6dv\u00e4ndigt att unders\u00f6ka funktionen hos en specifik enhet, som ett n\u00e4tverkskort, eller att skriva firmware eller drivrutiner f\u00f6r denna enhet, kan enheten simuleras separat. Det \u00e4r dock inte s\u00e4rskilt praktiskt att anv\u00e4nda den frikopplad fr\u00e5n den \u00f6vriga infrastrukturen. F\u00f6r att kunna k\u00f6ra den relevanta drivrutinen kr\u00e4vs en centralprocessor, minne, tillg\u00e5ng till buss f\u00f6r datatransfer med mera. Dessutom beh\u00f6vs ett operativsystem (OS) och n\u00e4tverksstack f\u00f6r att drivrutinen ska fungera. Ut\u00f6ver detta kan en separat paketgenerator och en svarserver beh\u00f6vas. <\/p>\n<p>Fullplattformssimulatorn skapar en milj\u00f6 f\u00f6r att k\u00f6ra hela programvarustacken, som inkluderar allt fr\u00e5n BIOS och bootloader till sj\u00e4lva operativsystemet och dess olika delsystem, s\u00e5som n\u00e4tverksstacken, drivrutinerna och anv\u00e4ndarapplikationer. F\u00f6r detta syfte implementeras programmodeller f\u00f6r de flesta enheterna i datorn: processor och minne, disk, in- och utmatningsenheter (tangentbord, mus, sk\u00e4rm), samt det samma n\u00e4tverkskortet. <\/p>\n<p>Nedan finns en blockschema \u00f6ver x58-chipsatsen fr\u00e5n Intel. I en fullskalig simulering av en dator baserad p\u00e5 denna chipsats m\u00e5ste de flesta av de angivna enheterna implementeras, inklusive de som finns inuti IOH (Input\/Output Hub) och ICH (Input\/Output Controller Hub), som inte detaljeras i blockschemat. \u00c4ven om det i praktiken finns ganska m\u00e5nga enheter som inte anv\u00e4nds av den programvara vi planerar att k\u00f6ra. Modeller av s\u00e5dana enheter beh\u00f6ver inte skapas. <\/p>\n<p><img decoding=\"async\" alt=\"Simulerade datasystem: den v\u00e4lk\u00e4nda plattformssimulatorn och de mindre k\u00e4nda taktiska simuleringarna och banorna\" src=\"\/wp-content\/uploads\/2020\/07\/3f62e2e7792ce06026c767146fed9912.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOftast implementeras fullskaliga simulatorer p\u00e5 processorns instruktion niv\u00e5 (ISA, se <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">den f\u00f6reg\u00e5ende artikeln<\/a><\/noindex>). Detta g\u00f6r att simulatorn kan skapas relativt snabbt och billigt. ISA-niv\u00e5n \u00e4r ocks\u00e5 bra eftersom den f\u00f6rblir mer eller mindre konstant, till skillnad fr\u00e5n till exempel API\/ABI-niv\u00e5n, som f\u00f6r\u00e4ndras oftare. Dessutom g\u00f6r implementeringen p\u00e5 instruktion niv\u00e5 det m\u00f6jligt att k\u00f6ra s\u00e5 kallad of\u00f6r\u00e4ndrad bin\u00e4r programvara, det vill s\u00e4ga att k\u00f6ra redan kompilerad kod utan n\u00e5gra f\u00f6r\u00e4ndringar, precis som den anv\u00e4nds p\u00e5 riktig h\u00e5rdvara. Med andra ord kan man g\u00f6ra en kopia (\"dump\") av h\u00e5rddisken, ange den som en avbild f\u00f6r modellen i den fullskaliga simulatorn och \u2013 voil\u00e0! \u2013 OS och andra program startar i simulatorn utan n\u00e5gra extra \u00e5tg\u00e4rder. <\/p>\n<h3>Prestanda hos simulatorer <\/h3>\n<p><img decoding=\"async\" alt=\"Simulerade datasystem: den v\u00e4lk\u00e4nda plattformssimulatorn och de mindre k\u00e4nda taktiska simuleringarna och banorna\" src=\"\/wp-content\/uploads\/2020\/07\/870ef9d5e311044059ace05571d607ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom n\u00e4mnts ovan \u00e4r sj\u00e4lva simuleringsprocessen av hela systemet, det vill s\u00e4ga alla dess enheter, ganska l\u00e5ngsam. Om man dessutom implementerar allt detta p\u00e5 en helt detaljerad niv\u00e5, till exempel mikroarkitektur eller logisk niv\u00e5, blir utf\u00f6randet extremt l\u00e5ngsamt. Men instruktion niv\u00e5 \u00e4r ett l\u00e4mpligt val och g\u00f6r att OS och program kan k\u00f6ras med hastigheter som \u00e4r tillr\u00e4ckliga f\u00f6r anv\u00e4ndaren f\u00f6r att interagera med dem bekv\u00e4mt. <\/p>\n<p>H\u00e4r \u00e4r det ocks\u00e5 l\u00e4mpligt att ber\u00f6ra \u00e4mnet simulatorers prestanda. Vanligtvis m\u00e4ts den i IPS (instructions per second), n\u00e4rmare best\u00e4mt i MIPS (miljoner IPS), det vill s\u00e4ga antalet processorinstruktioner som simulatorn utf\u00f6r p\u00e5 en sekund. Samtidigt beror simuleringshastigheten ocks\u00e5 p\u00e5 prestandan hos systemet som simuleringsprocessen k\u00f6rs p\u00e5. D\u00e4rf\u00f6r kan det vara mer korrekt att prata om \"nedbromsning\" (slowdown) av simulatorn j\u00e4mf\u00f6rt med originalsistema. <\/p>\n<p>De mest anv\u00e4nda plattformssimulatorerna p\u00e5 marknaden, som QEMU, VirtualBox eller VmWare Workstation, erbjuder bra prestanda. F\u00f6r anv\u00e4ndaren kan det till och med vara osynligt att arbetet utf\u00f6rs i en simulator. Detta beror p\u00e5 den speciella virtualiseringsm\u00f6jligheten i processorer, algoritmer f\u00f6r bin\u00e4r \u00f6vers\u00e4ttning och andra intressanta saker. Detta \u00e4r dock ett \u00e4mne f\u00f6r en separat artikel, men f\u00f6r att sammanfatta, s\u00e5 \u00e4r virtualisering en h\u00e5rdvarufunktion av moderna processorer som g\u00f6r att simulatorer inte simulerar instruktioner, utan direkt kan \u00f6verl\u00e4mna dem f\u00f6r exekvering till den verkliga processorn, f\u00f6rutsatt att arkitekturerna f\u00f6r simulatorn och processorn liknar varandra. Bin\u00e4r \u00f6vers\u00e4ttning inneb\u00e4r att \u00f6vers\u00e4tta g\u00e4standets maskinkod till v\u00e4rdmaskinkod och d\u00e4refter k\u00f6ra den p\u00e5 den verkliga processorn. Resultatet \u00e4r att simuleringen endast \u00e4r n\u00e5got l\u00e5ngsammare, typ 5-10 g\u00e5nger, och ofta fungerar med samma hastighet som det verkliga systemet. \u00c4ven om m\u00e5nga faktorer p\u00e5verkar detta. Till exempel, om vi vill simulera ett system med flera dussin processorer, s\u00e5 faller hastigheten direkt med dessa flera dussin g\u00e5nger. \u00c5 andra sidan st\u00f6djer simulatorer som Simics i de senaste versionerna multiprocessorhost-konstruktioner effektivt och parallelliserar de simulerade k\u00e4rnorna p\u00e5 de verkliga processork\u00e4rnorna. <\/p>\n<p>N\u00e4r det kommer till hastigheten av mikroarkitekturell simulering, \u00e4r detta vanligtvis flera ordningar, ungef\u00e4r 1000-10000 g\u00e5nger, l\u00e5ngsammare \u00e4n exekveringen p\u00e5 en vanlig dator, utan simulering. Och implementationer p\u00e5 niv\u00e5 av logiska element \u00e4r \u00e4nnu l\u00e5ngsammare med flera ordningar. D\u00e4rf\u00f6r anv\u00e4nds FPGA som emulator p\u00e5 denna niv\u00e5, vilket avsev\u00e4rt \u00f6kar prestandan. <\/p>\n<p>Diagrammet nedan visar den ungef\u00e4rliga relationen mellan simuleringens hastighet och modellens detaljniv\u00e5. <\/p>\n<p><img decoding=\"async\" alt=\"Simulerade datasystem: den v\u00e4lk\u00e4nda plattformssimulatorn och de mindre k\u00e4nda taktiska simuleringarna och banorna\" src=\"\/wp-content\/uploads\/2020\/07\/72189338a6a0c78554118f180a297813.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Klockcykelsimulering <\/h3>\n<p>\nTrots den l\u00e5ga hastigheten p\u00e5 utf\u00f6rande \u00e4r mikroarkitektur-simulatorer ganska vanliga. Modellering av interna processorblock \u00e4r n\u00f6dv\u00e4ndig f\u00f6r att exakt simulera tiden f\u00f6r att utf\u00f6ra varje instruktion. H\u00e4r kan det uppst\u00e5 missf\u00f6rst\u00e5nd \u2013 varf\u00f6r ska man inte bara programmera utf\u00f6randetiden f\u00f6r varje instruktion? Men en s\u00e5dan simulator skulle fungera mycket imprecist, eftersom tiden f\u00f6r att utf\u00f6ra samma instruktion kan variera mellan olika anrop. <\/p>\n<p>Ett enkelt exempel \u00e4r instruktionen f\u00f6r minnes\u00e5tkomst. Om den beg\u00e4rda minnescellen finns i cache-minnet blir tiden f\u00f6r utf\u00f6rande minimal. Om denna information inte finns i cachen (cache miss) \u00f6kar tiden f\u00f6r att utf\u00f6ra instruktionen avsev\u00e4rt. D\u00e4rf\u00f6r beh\u00f6vs en cache-modell f\u00f6r noggrann simulering. Men det handlar inte bara om cache-modellen. Processorn kommer inte bara att v\u00e4nta p\u00e5 data fr\u00e5n minnet n\u00e4r den inte finns i cachen. Ist\u00e4llet kommer den att b\u00f6rja utf\u00f6ra n\u00e4sta instruktioner, v\u00e4lja s\u00e5dana som inte beror p\u00e5 resultatet av l\u00e4sningen fr\u00e5n minnet. Detta kallas \u201dutanf\u00f6r ordning\u201d (OOO, out of order execution), vilket \u00e4r n\u00f6dv\u00e4ndigt f\u00f6r att minimera processorstillest\u00e5nd. Att ta h\u00e4nsyn till allt detta n\u00e4r man ber\u00e4knar tiden f\u00f6r att utf\u00f6ra instruktioner hj\u00e4lper modelleringen av motsvarande processorblock. Bland dessa instruktioner som k\u00f6rs under tiden som man v\u00e4ntar p\u00e5 resultatet fr\u00e5n minnesl\u00e4sningen kan det finnas en villkorsstyrd hoppoperation. Om resultatet av villkoret \u00e4r ok\u00e4nt f\u00f6r tillf\u00e4llet stoppar inte processorn utf\u00f6randet, utan g\u00f6r en \u201dgissning\u201d, utf\u00f6r det motsvarande hoppet och forts\u00e4tter proaktivt att utf\u00f6ra instruktioner fr\u00e5n hoppets plats. En s\u00e5dan block, kallad branch predictor, m\u00e5ste ocks\u00e5 implementeras i mikroarkitektur-simulatorn. <\/p>\n<p>Bilden nedan visar de grundl\u00e4ggande blocken i processorn, det \u00e4r inte n\u00f6dv\u00e4ndigt att k\u00e4nna till dem, de \u00e4r endast presenterade f\u00f6r att visa komplexiteten i mikroarkitekturella implementationer. <\/p>\n<p><img decoding=\"async\" alt=\"Simulerade datasystem: den v\u00e4lk\u00e4nda plattformssimulatorn och de mindre k\u00e4nda taktiska simuleringarna och banorna\" src=\"\/wp-content\/uploads\/2020\/07\/1248d47017346153a233d4c895635569.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nArbetet av alla dessa block i en verklig processor synkroniseras av speciella klocksignaler, p\u00e5 liknande s\u00e4tt som det sker i modellen. En s\u00e5dan mikroarkitektursimulator kallas cyklisk (cycle accurate). Dess huvudsakliga syfte \u00e4r att noggrant f\u00f6ruts\u00e4ga prestandan hos den utvecklade processorn och\/eller ber\u00e4kna exekveringstiden f\u00f6r ett specifikt program, till exempel ett benchmark. Om v\u00e4rdena ligger under de n\u00f6dv\u00e4ndiga, beh\u00f6ver algoritmer och processorblock justeras eller programmet optimeras. <\/p>\n<p>Som n\u00e4mnts ovan \u00e4r cyklisk simulering mycket l\u00e5ngsam, d\u00e4rf\u00f6r anv\u00e4nds den endast vid unders\u00f6kning av vissa aspekter av programmets arbete, d\u00e4r det \u00e4r n\u00f6dv\u00e4ndigt att veta den verkliga hastigheten vid programexekvering och bed\u00f6ma den framtida prestandan hos enheten vars prototyp simuleras. <\/p>\n<p>F\u00f6r simuleringen av resten av programmets k\u00f6rning anv\u00e4nds en funktionell simulator. Hur sker s\u00e5dan kombinerad anv\u00e4ndning i verkligheten? F\u00f6rst startas den funktionella simulatorn, d\u00e4r operativsystemet och allt som beh\u00f6vs f\u00f6r att k\u00f6ra det unders\u00f6kta programmet laddas. Vi \u00e4r inte intresserade av sj\u00e4lva operativsystemet, eller de initierande stegen i programstarten, konfigurationen med mera. Men vi kan inte hoppa \u00f6ver dessa delar och g\u00e5 direkt till att exekvera programmet fr\u00e5n mitten. D\u00e4rf\u00f6r k\u00f6rs alla dessa prelimin\u00e4ra steg p\u00e5 den funktionella simulatorn. N\u00e4r programmet har k\u00f6rt fram till den punkt som intresserar oss, finns det tv\u00e5 alternativ. Man kan byta till den cykliska modellen och forts\u00e4tta exekveringen. Den simuleringsl\u00e4ge d\u00e4r den exekverbara koden anv\u00e4nds (dvs. vanliga kompilera programfiler) kallas exekveringsdriven simulering (execution driven simulation). Detta \u00e4r det mest f\u00f6rekommande alternativet f\u00f6r simulering. Det finns ocks\u00e5 en annan metod - simulering baserad p\u00e5 sp\u00e5r (trace driven simulation). <\/p>\n<h3>Simulering baserad p\u00e5 sp\u00e5r <\/h3>\n<p>\nDen best\u00e5r av tv\u00e5 steg. Med hj\u00e4lp av en funktionell simulator eller p\u00e5 ett verkligt system samlas och skrivs programmets \u00e5tg\u00e4rder ner i en loggfil. Denna logg kallas sp\u00e5r (trace). Beroende p\u00e5 vad som unders\u00f6ks kan sp\u00e5ret inkludera k\u00f6rbara instruktioner, minnesadresser, portnummer, information om avbrott. <\/p>\n<p>N\u00e4sta steg \u00e4r \"uppspelning\" av sp\u00e5ret, d\u00e4r taktfrekvensimulatorn l\u00e4ser sp\u00e5ret och utf\u00f6r alla instruktioner som \u00e4r skrivna i det. I slutet f\u00e5r vi tiden f\u00f6r att k\u00f6ra detta programsegment, samt olika egenskaper f\u00f6r denna process, s\u00e5som tr\u00e4ffprocent p\u00e5 cache. <\/p>\n<p>En viktig aspekt av att arbeta med sp\u00e5r \u00e4r determinism, det vill s\u00e4ga att genom att k\u00f6ra simuleringen p\u00e5 det s\u00e4tt som beskrivits ovan, \u00e5terskapar vi samma sekvens av \u00e5tg\u00e4rder g\u00e5ng p\u00e5 g\u00e5ng. Detta ger m\u00f6jlighet att, genom att \u00e4ndra modellparametrar (cachestorlekar, buffrar och k\u00f6er) och anv\u00e4nda olika interna algoritmer eller anpassa dem, unders\u00f6ka hur en viss parameter p\u00e5verkar systemets prestanda och vilket alternativ som ger b\u00e4st resultat. Allt detta kan g\u00f6ras med prototypmodellen av en enhet innan en verklig h\u00e5rdvarupr prototyp skapas. <\/p>\n<p>Komplexiteten i detta tillv\u00e4gag\u00e5ngss\u00e4tt ligger i behovet av att f\u00f6rhandsk\u00f6ra applikationen och samla in sp\u00e5ret, samt den enorma storleken p\u00e5 sp\u00e5rfilen. F\u00f6rdelarna inkluderar att det r\u00e4cker att modellera endast den del av enheten eller plattformen som \u00e4r av intresse, medan simulering av exekvering vanligtvis kr\u00e4ver en komplett modell. <\/p>\n<p>S\u00e5, i den h\u00e4r artikeln har vi granskat egenskaperna hos plattforms\u00f6vergripande simulering, diskuterat hastigheten f\u00f6r implementationer p\u00e5 olika niv\u00e5er, taktfrekvenssimulering och sp\u00e5r. I n\u00e4sta artikel kommer jag att beskriva de viktigaste anv\u00e4ndningsscenarierna f\u00f6r simulatorer, b\u00e5de f\u00f6r personliga \u00e4ndam\u00e5l och ur ett utvecklingsperspektiv i stora f\u00f6retag.<br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Simulatorer f\u00f6r datorsystem: den v\u00e4lk\u00e4nda plattforms\u00f6vergripande simulatorn och de ok\u00e4nda taktfrekvens- och sp\u00e5rsimulatorerna | ProHoster","description":"I den andra delen av artikeln om simuleringar av datorsystem kommer jag att forts\u00e4tta ber\u00e4tta i en enkel introduktionsform om datorsimulatorer, s\u00e4rskilt om plattforms\u00f6vergripande simulering, som man oftast st\u00f6ter p\u00e5.","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/87136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=87136"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/87136\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/87137"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=87136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=87136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=87136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}