
En i/O-flaskehalse.
Robin Harris
Baggrundshistorie
I årtier fysisk hukommelse var utrolig dyrt. Som et resultat mange maskiner kom med hukommelsens kapacitet, der i dag ser latterligt. Ikke gigabyte, eller megabyte, men kilobyte. De mindste IBM 360 mainframe lavet gøre med så lidt som 8KB af hovedlageret i 1960’erne. Selv i 1980, RAM koste over $1000 for en megabyte. I dag er det et halvt øre.
Fordi minderne var så lille, hvert program skulle være shoehorned i den tilgængelige kapacitet. Programmer, der gik til at udarbejde længder til at flytte segmenter i og ud af den fysiske (RAM) hukommelse.
Men i 1970’erne arkitekter havde en genial idé: at udvide den fysiske hukommelse ved at virtualiserer det, og ved hjælp af harddisk lagerplads til den ekstra kapacitet. Operativsystemet vil håndtere problemet med at flytte programmet segmenter ind og ud af den fysiske hukommelse, lagring af programmører, uendelig sorg.
Og det gjorde de. IBM ‘s 370-serien MVS (Flere Virtuelle Lager), og DEC’ s FOS (Virtuel Hukommelse System, der kører på den Virtuelle Adresse Udvidelse (VAX) hardware) var to populære instantiations af virtuel hukommelse systemer. På det tidspunkt detaljer-såsom bedste side, størrelser og begrænse prygle — var genstand for heftig debat.
Over tid, det bedste hele vejen rundt designs blev bevist, optimeret, og kopieres. I dag virtuel hukommelse understøttelse er bygget ind i x86-processorer-og de fleste andre Cpu ‘ er — og de understøttede operativsystemer. Som et resultat, de fleste mennesker har ingen idé om det overhovedet eksisterer, det er så homogen og effektiv.
Virtuel hukommelse grundlæggende
Når du fyrer op for et program, styresystem tildeler det et virtuelt adresserum. I Windows 8.1 og senere med 64-bit-apps, der address space er en heftig 128TB, mens macOS tilbyder en ginormous 18 exabytes af adresserbare plads til 64-bit-processer. 32-bit apps er begrænset til maksimalt 4 gb virtuel hukommelse, og nogle gange mindre.
Operativsystem-Windows, Linux eller macOS-så formår den virtuelle til fysiske adresse oversættelse og bytte i og ud af den fysiske RAM af aktive program segmenter. Typisk segmenter (eller sider), er 4 eller 8KB. CPU ‘ en giver hardware til at hjælpe OS med at holde styr på millioner eller endda milliarder af sider.
Hvordan gør OS vide, hvilke sider for at holde sig i fysisk hukommelse? OS, der holder styr på de mindste for nylig sider, der bruges for hver enkelt proces, og når behovet for mere fysisk hukommelse udvikler sig, swaps ud mindst de sider, der bruges til at frigøre RAM til mere aktive sider.
Naturligvis, den hastighed, hvilke sider, der kan byttes, har en stor indflydelse på systemets ydeevne. Det er derfor avanceret PCIe/NVMe drev — som dem i de seneste MacBook Pros-er afgørende.
Opbevaring ventetid er kritisk
Med adgang gange målt i mikrosekunder, den tid, det tager at skifte en side, der er reduceret fra 6 til 10 millisekunder på en harddisk til, muligvis (jeg har ikke set adgang for den nye MacBook Pro Ssd ‘ er), 10 µsec — tusind gange hurtigere. Da mange PCIe/NVMe demoer har adgang gange i 3-4 µsec interval, er den nye Mac Ssd ‘ er kan være 2-3 tusinde gange hurtigere end en harddisk.
Nyere Mac-computere brug af Ssd ‘ er. Igen, ventetid benchmarks er knappe, men andre high performance SATA Ssd ‘er har ventetid i 100-150 µsec rækkevidde, hvilket gør den nye Mac Ssd’ er potentielt 10-50x hurtigere. Den nederste linje er, at meget hurtig storage gør virtuelle hukommelse til at køre hurtigere og gør en tungt lastet systemet meget mere lydhør og højtydende.
Ligesom ethvert system, en virtuel hukommelse-system kan være overbelastet. Hvis du hurtigt skifte mellem hukommelse intensiv apps, såsom en video editor, Photoshop, en DAW, en video, effekter, program, og en kompression værktøj, dit system kan bremse som bytte trafik overvælder i/O-system. Pro-tip: lad være med det!
Opbevaring Bits tage
Fra en banebrydende funktion i ’70’erne til allestedsnærværende og glemt i ’10’ere, virtuel hukommelse er den teknologi, der gør det muligt for din bærbare eller stationære computer til at køre data sæt, der er langt ud over RAM-størrelse. Jeg almindeligt redigere 250GB ProRes video filer på min fem år gamle 16GB MacBook Pro — uden at maxing RAM forbrug.
Min erfaring er, at de fleste problemer med ydeevnen, at pro apps har, er ikke virtuel hukommelse relaterede — forudsat tilstrækkelig lagerkapacitet — men centreret omkring ineffektiv kode, utilstrækkelig CPU, grafik og ydelse, eller andre flaskehalse i systemet, drivere eller netværk. I fremtiden, med fremkomsten af high-performance ikke-flygtig RAM, vi kan være i stand til at gøre op med den virtuelle hukommelse systemer helt og erstatte det med multi-terabyte vigtigste minder, der kombinerer RAM og storage til en enkelt adresse plads.
Men det er mindst fem år ud og en historie til en anden post.
Høflige bemærkninger velkommen, selvfølgelig.