{"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\/da\/blog\/administrirovanie\/simulyatory-kompyuternyh-sistem-vsem-znakomyj-polnoplatformennyj-simulyator-i-nikomu-neizvestnye-potaktovyj-i-trassy","title":{"rendered":"Simulatorer af computersystemer: den velkendte fuldplatformssimulator og de ukendte taktsimulatorer samt sporene","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>I den anden del af artiklen om simulatorer til computersystemer vil jeg forts\u00e6tte med at forklare p\u00e5 en enkel og informativ m\u00e5de om computersimulatorer, s\u00e6rligt om fuldplatformssimulation, som den almindelige bruger oftest st\u00f8der p\u00e5, samt om taktsimulering og baner, der er mere udbredte blandt udviklere. <\/p>\n<p><img decoding=\"async\" alt=\"Simulatorer af computersystemer: den velkendte fuldplatformssimulator og de ukendte taktsimulatorer samt sporene\" 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\u00f8rste del<\/a><\/noindex> Jeg har forklaret, hvad simulatorer generelt er, samt om niveauerne af modellering. Nu vil jeg baseret p\u00e5 den viden dykke lidt dybere og tale om fuldplatformssimulation, hvordan man opbygger baner, hvad man skal g\u00f8re med dem efterf\u00f8lgende, samt om taktsimuleringsmikroarkitektur. <\/p>\n<h3>Fuldplatformsimulator (full platform simulator), eller \u201cEn alene p\u00e5 marken er ikke en kriger\u201d <\/h3>\n<p>\nHvis man skal unders\u00f8ge arbejdet i en bestemt enhed, s\u00e5som et netv\u00e6rkskort, eller skrive firmware eller driver til denne enhed, kan man simulere enheden separat. Det er dog ikke s\u00e6rlig praktisk at bruge den isoleret fra den \u00f8vrige infrastruktur. For at k\u00f8re den tilh\u00f8rende driver kr\u00e6ves en centralprocessor, hukommelse, adgang til bus til dataoverf\u00f8rsel og meget mere. Derudover kr\u00e6ver driveren et operativsystem (OS) og netv\u00e6rksstak. Yderligere kan der v\u00e6re behov for en separat pakkegenerator og en server til at modtage svar. <\/p>\n<p>Fuldplatformsimulatoren skaber et milj\u00f8 til at k\u00f8re et komplet softwarestack, der inkluderer alt fra BIOS og bootloader til selve OS'et og forskellige underliggende systemer, s\u00e5som netv\u00e6rksstak, drivere og applikationer p\u00e5 brugerniveau. For at opn\u00e5 dette implementeres softwaremodeller af de fleste enheder i computeren: processor og hukommelse, disk, input\/output-enheder (tastatur, mus, sk\u00e6rm), samt det p\u00e5g\u00e6ldende netv\u00e6rkskort. <\/p>\n<p>Nedenfor er blokdiagrammet for chipset x58 fra Intel. I en fuldplatformssimulator for computere, der bruger dette chipset, er det n\u00f8dvendigt at implementere de fleste n\u00e6vnte enheder, inklusive dem, der er inde i IOH (Input\/Output Hub) og ICH (Input\/Output Controller Hub), som ikke er detaljeret tegnet i blokdiagrammet. Selvom det i praksis viser sig, at der ikke er s\u00e5 f\u00e5 enheder, der ikke anvendes af den software, vi planl\u00e6gger at k\u00f8re. Modeller af s\u00e5danne enheder beh\u00f8ver ikke at blive oprettet. <\/p>\n<p><img decoding=\"async\" alt=\"Simulatorer af computersystemer: den velkendte fuldplatformssimulator og de ukendte taktsimulatorer samt sporene\" src=\"\/wp-content\/uploads\/2020\/07\/3f62e2e7792ce06026c767146fed9912.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOfte implementeres fuldplatformssimulatorer p\u00e5 niveauet for processorens instruktioner (ISA; se <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/auriga\/blog\/504086\/\">den forrige artikel<\/a><\/noindex>). Dette g\u00f8r det muligt at skabe selve simulatoren relativt hurtigt og billigt. ISA-niveauet er ogs\u00e5 godt, da det forbliver mere eller mindre konstant, i mods\u00e6tning til for eksempel API\/ABI-niveauet, som \u00e6ndrer sig oftere. Desuden g\u00f8r implementeringen p\u00e5 instruktionernes niveau det muligt at k\u00f8re s\u00e5kaldt umodificeret bin\u00e6r software, hvilket betyder, at man kan k\u00f8re allerede kompil kode uden \u00e6ndringer, lige som det bruges p\u00e5 rigtig hardware. Med andre ord kan man lave en kopi (\"dump\") af harddisken, angive den som billede for modellen i den fuldplatformssimulator, og \u2013 vupti! \u2013 operativsystemet og andre programmer indl\u00e6ses i simulatoren uden yderligere handlinger. <\/p>\n<h3>Ydelse af simulatorer <\/h3>\n<p><img decoding=\"async\" alt=\"Simulatorer af computersystemer: den velkendte fuldplatformssimulator og de ukendte taktsimulatorer samt sporene\" src=\"\/wp-content\/uploads\/2020\/07\/870ef9d5e311044059ace05571d607ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom n\u00e6vnt ovenfor er selve simuleringsprocessen af hele systemet, det vil sige alle dens enheder, en temmelig langsom proces. Hvis man ogs\u00e5 implementerer alt dette p\u00e5 et helt detaljeret niveau, for eksempel mikroarkitektonisk eller logisk, vil udf\u00f8relsen blive ekstremt langsom. Men instruktionernes niveau er et passende valg og g\u00f8r det muligt for operativsystemet og programmer at k\u00f8re med hastigheder, der er tilstr\u00e6kkelige for brugeren til en behagelig interaktion med dem. <\/p>\n<p>Her vil det v\u00e6re passende at ber\u00f8re emnet om ydelse af simulatorer. Det m\u00e5les typisk i IPS (instruktioner pr. sekund), n\u00e6rmere i MIPS (millioner IPS), det vil sige antallet af processorens instruktioner, der udf\u00f8res af simulatoren p\u00e5 en sekund. I mellemtiden afh\u00e6nger simuleringshastigheden ogs\u00e5 af ydelsen af det system, hvor simuleringsprocessen k\u00f8rer. Derfor kan det v\u00e6re mere korrekt at tale om \"neds\u00e6ttelse\" (slowdown) af simulatoren i forhold til det originale system. <\/p>\n<p>De mest udbredte fuldplatformssimulatorer p\u00e5 markedet, s\u00e5som QEMU, VirtualBox eller VmWare Workstation, har en glimrende ydeevne. For brugeren kan det endda v\u00e6re usynligt, at arbejdet foreg\u00e5r i en simulator. Dette skyldes de specielle virtualiseringsmuligheder, der er implementeret i processorene, bin\u00e6re overs\u00e6ttelsesalgoritmer og andre interessante elementer. Dette er alle emner for en separat artikel, men for at g\u00f8re det kort, s\u00e5 er virtualisering en hardwarefunktion i moderne processorer, der g\u00f8r det muligt for simulatorer ikke at simulere instruktioner, men i stedet udf\u00f8re dem direkte p\u00e5 den \u00e6gte processor, hvis selvf\u00f8lgelig arkitekturerne for simulatoren og processorene ligner hinanden. Bin\u00e6r overs\u00e6ttelse er overs\u00e6ttelsen af den g\u00e6ste-maskinkode til v\u00e6rtskode og den efterf\u00f8lgende udf\u00f8relse p\u00e5 den \u00e6gte processor. Som resultat er simuleringen kun lidt langsommere, med en faktor p\u00e5 5-10, og fungerer ofte overhovedet med samme hastighed som det virkelige system. Dog p\u00e5virkes dette af mange faktorer. For eksempel, hvis vi \u00f8nsker at simulere et system med adskillige dusin processorer, vil hastigheden falde drastisk i forhold til det antal. P\u00e5 den anden side underst\u00f8tter simulatorer som Simics i de seneste versioner multiprocessor-v\u00e6rtsikret hardware og effektivt paralleliserer de simulerede kerner p\u00e5 kernerne af den \u00e6gte processor. <\/p>\n<p>N\u00e5r man taler om hastigheden for mikroarkitektursimulering, er den s\u00e6dvanligvis flere r\u00e6kkefter, omtrent 1000-10000 gange langsommere end udf\u00f8relsen p\u00e5 en almindelig computer uden simulering. Implementeringer p\u00e5 niveauet af logiske elementer er endnu langsommere. Derfor bruges FPGA som emulator p\u00e5 dette niveau, hvilket v\u00e6sentligt kan \u00f8ge ydeevnen. <\/p>\n<p>Grafen nedenfor viser den omtrentlige afh\u00e6ngighed af simuleringshastighed fra detaljeringen af modellen. <\/p>\n<p><img decoding=\"async\" alt=\"Simulatorer af computersystemer: den velkendte fuldplatformssimulator og de ukendte taktsimulatorer samt sporene\" src=\"\/wp-content\/uploads\/2020\/07\/72189338a6a0c78554118f180a297813.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Taktsimulering <\/h3>\n<p>\nP\u00e5 trods af den lave udf\u00f8relseshastighed er mikroarkitekturelle simulatorer ret udbredte. Modellerne af de indre blokke i processoren er n\u00f8dvendige for pr\u00e6cist at simulere udf\u00f8relsestiden for hver instruktion. Her kan der opst\u00e5 misforst\u00e5else - for hvorfor kan man ikke bare programmere udf\u00f8relsestiden for hver instruktion? Men en s\u00e5dan simulator vil fungere meget upr\u00e6cist, da udf\u00f8relsestiden for den samme instruktion kan variere fra kald til kald. <\/p>\n<p>Et simpelt eksempel er hukommelsestilgangs-instruktionen. Hvis den anmodede hukommelsescelle er tilg\u00e6ngelig i cachen, vil udf\u00f8relsestiden v\u00e6re minimal. Hvis den p\u00e5g\u00e6ldende information ikke er i cachen (\"cache miss\"), vil det markant \u00f8ge udf\u00f8relsestiden for instruktionen. Derfor er en cache-model n\u00f8dvendig for pr\u00e6cis simulering. Men det stopper ikke ved cache-modellen. Processoren vil ikke bare vente p\u00e5 at hente data fra hukommelsen, hvis det ikke er i cachen. I stedet vil den begynde at udf\u00f8re f\u00f8lgende instruktioner og v\u00e6lge de, der ikke afh\u00e6nger af resultatet af l\u00e6sningen fra hukommelsen. Dette kaldes \"out of order execution\" (OOO) og er n\u00f8dvendigt for at minimere processorens ventetid. At tage h\u00f8jde for alt dette ved beregning af udf\u00f8relsestiden for instruktioner vil hj\u00e6lpe modellering af de relevante processorblokke. Blandt disse instruktioner, der udf\u00f8res, mens resultatet af l\u00e6sningen fra hukommelsen afventes, kan der ogs\u00e5 v\u00e6re en betinget springoperation. Hvis udf\u00f8relsesresultatet af betingelsen ikke kendes i \u00f8jeblikket, stopper processoren ikke sin udf\u00f8relse, men laver en \"formodning\", udf\u00f8rer det tilsvarende spring og forts\u00e6tter med at udf\u00f8re instruktioner proaktivt fra stedet for springet. En s\u00e5dan blok, kaldet en branch predictor, skal ogs\u00e5 implementeres i den mikroarkitekturale simulator. <\/p>\n<p>Billedet nedenfor viser hovedblokke i processoren; det er ikke n\u00f8dvendigt at vide, men det er kun inkluderet for at vise kompleksiteten i mikroarkitekturel implementering. <\/p>\n<p><img decoding=\"async\" alt=\"Simulatorer af computersystemer: den velkendte fuldplatformssimulator og de ukendte taktsimulatorer samt sporene\" src=\"\/wp-content\/uploads\/2020\/07\/1248d47017346153a233d4c895635569.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDriften af alle disse blokke i en rigtig processor synkroniseres med s\u00e6rlige klokkesignaler, og det samme g\u00e6lder for modellen. En s\u00e5dan mikroarkitektur-simulator kaldes en cyklusn\u00f8jagtig simulator. Dens prim\u00e6re form\u00e5l er at forudsige ydeevnen af den udviklede processor pr\u00e6cist og\/eller beregne udf\u00f8relsestiden for et bestemt program, for eksempel et benchmark. Hvis v\u00e6rdierne ligger under det n\u00f8dvendige, skal algoritmerne og processorblokkene revideres eller programmet optimeres. <\/p>\n<p>Som n\u00e6vnt tidligere er cyklusn\u00f8jagtig simulering meget langsom, derfor bruges den kun til at unders\u00f8ge bestemte aspekter af programmets funktion, hvor det er n\u00f8dvendigt at kende den reelle udf\u00f8relseshastighed og vurdere den fremtidige ydeevne af enheden, hvis prototype simuleres. <\/p>\n<p>Til simulering af den resterende programk\u00f8rsel bruges en funktionel simulator. Hvordan foreg\u00e5r en s\u00e5dan kombineret brug i praksis? F\u00f8rst startes den funktionelle simulator, hvor operativsystemet og alt n\u00f8dvendigt til at starte det unders\u00f8gte program indl\u00e6ses. Vi er ikke interesseret i selve operativsystemet, de indledende faser af programstarten, konfigurering osv. Men vi kan heller ikke springe disse dele over og bare g\u00e5 til udf\u00f8relsen af programmet fra midten. Derfor k\u00f8rer alle disse forberedende faser p\u00e5 den funktionelle simulator. N\u00e5r programmet er udf\u00f8rt til det punkt, vi er interesseret i, er der to muligheder. Man kan skifte til en cyklusn\u00f8jagtig model og forts\u00e6tte udf\u00f8relsen. Simuleringsmetoden, hvor den eksekverbare kode anvendes (dvs. almindelige kompileringer af programfiler), kaldes udf\u00f8relsesdrevet simulering. Dette er den mest udbredte form for simulering. Der er ogs\u00e5 en anden tilgang \u2013 sporbaseret simulering. <\/p>\n<h3>Sporbaseret simulering <\/h3>\n<p>\nDet best\u00e5r af to trin. Ved hj\u00e6lp af en funktionel simulator eller p\u00e5 et reelt system indsamles og registreres programmets handlingslog i en fil. Denne log kaldes et spor. Afh\u00e6ngigt af hvad der unders\u00f8ges, kan sporet omfatte udf\u00f8relsesinstruktioner, hukommelsesadresser, portnumre og information om afbrud. <\/p>\n<p>N\u00e6ste skridt er \"afspilning\" af sporer, hvor cyklussimulatoren l\u00e6ser sporet og udf\u00f8rer alle instruktioner, der er skrevet i det. I slutningen f\u00e5r vi udf\u00f8relsestidspunktet for denne del af programmet samt forskellige karakteristika ved denne proces, for eksempel cache-hit procent. <\/p>\n<p>En vigtig egenskab ved arbejdet med spor er determinismen, det vil sige, at n\u00e5r vi k\u00f8rer simulationen p\u00e5 den beskrevede m\u00e5de, reproducerer vi gang p\u00e5 gang den samme handlingssekvens. Dette giver mulighed for at \u00e6ndre modelparametre (cache-st\u00f8rrelser, buffere og k\u00f8er) og bruge forskellige interne algoritmer eller justere dem for at unders\u00f8ge, hvordan en bestemt parameter p\u00e5virker systemets ydeevne og hvilken mulighed der giver de bedste resultater. Alt dette kan g\u00f8res med en prototype-model af enheden, f\u00f8r der skabes en reel hardwareprototype. <\/p>\n<p>Kompleksiteten ved denne tilgang skyldes behovet for f\u00f8rst at k\u00f8re applikationen igennem og indsamle spor samt den enorme st\u00f8rrelse p\u00e5 sporfilen. Fordelen er, at man kun beh\u00f8ver at modellere den interessante del af enheden eller platformen, mens udf\u00f8relsessimulationen som regel kr\u00e6ver en fuld model. <\/p>\n<p>I denne artikel har vi set p\u00e5 funktionerne ved fuld platforms-simulering, talt om hastigheden af implementeringer p\u00e5 forskellige niveauer, cyklussimulering og spor. I den n\u00e6ste artikel vil jeg beskrive de vigtigste anvendelsesscenarier for simulatorer, b\u00e5de til personlige form\u00e5l og i forhold til udvikling i st\u00f8rre virksomheder.<br \/>\n<br \/>Kilde: <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.3 - 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\/da\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Computersimulatorer: den velkendte fuld platforms-simulator og de ukendte cyklus- og spor-simulatorer | ProHoster","description":"I den anden del af artiklen om computermodeller vil jeg forts\u00e6tte med at fort\u00e6lle i en simpel introduktion om computersimulatorer, nemlig om fuld platforms-simulering, som man ofte st\u00f8der p\u00e5.","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/87136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=87136"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/87136\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/87137"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=87136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=87136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=87136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}