Which operating systems use paging?

Paging i Operativsystemer: En Komplet Guide

01/01/2002

Rating: 4.65 (5899 votes)

I computerens komplekse verden er effektiv hukommelseshåndtering afgørende for et systems ydeevne og stabilitet. Forestil dig at skulle organisere et enormt bibliotek, hvor bøgerne er spredt tilfældigt, og det er umuligt at finde noget. Tidlige metoder til hukommelseshåndtering lignede lidt dette scenarie. Heldigvis opstod paging som en langt mere organiseret og effektiv løsning. Paging er en hjørnesten i moderne operativsystemer, der revolutionerede måden, hvorpå computere administrerer deres mest værdifulde ressource: hukommelsen. Denne artikel dykker ned i konceptet paging, fra dets grundlæggende mekanismer til dets fordele, ulemper og de avancerede teknikker, der anvendes i dag. Ved afslutningen vil du have en omfattende forståelse af, hvordan paging hjælper din computer med at køre problemfrit, selv når du kører mange programmer på én gang.

What is paging method?
In the Paging method, the main memory is divided into small fixed-size blocks of physical memory, which is called frames. The size of a frame should be kept the same as that of a page to have maximum utilization of the main memory and to avoid external fragmentation. Paging is used for faster access to data, and it is a logical concept.
Indholdsfortegnelse

Hvad er Paging? En Grundlæggende Forklaring

Paging er en lager- og hukommelseshåndteringsmekanisme, der tillader et operativsystem at hente processer fra sekundær lagerplads (som en harddisk eller SSD) ind i computerens primære hukommelse (RAM) i form af faste blokke kaldet 'sider' (pages). For at dette kan fungere, er den fysiske hukommelse (RAM) også opdelt i blokke af samme faste størrelse, kaldet 'rammer' (frames). Hele ideen er, at en side fra en proces kan indlæses i enhver tilgængelig ramme i den fysiske hukommelse. Dette er en markant forbedring i forhold til ældre metoder, hvor en hel proces skulle indlæses i en sammenhængende blok af hukommelse, hvilket ofte førte til spildt plads og ineffektivitet.

Når et program kører, genererer CPU'en logiske adresser. Disse adresser er ikke de faktiske fysiske adresser i RAM. I stedet består en logisk adresse af to dele: et sidenummer og et offset (en forskydning inden for siden). Operativsystemets opgave er at oversætte denne logiske adresse til en fysisk adresse, hvor dataene rent faktisk befinder sig. Denne oversættelse er kernen i, hvordan paging fungerer.

What is paging & how does it work?
Paging simplifies memory management by abstracting away from the complexities of physical memory layout and allowing for the implementation of virtual memory, which enables processes to use more memory than is physically available on the system.

Sider, Rammer og Sidetabeller

For at forstå processen er det vigtigt at kende de centrale komponenter:

  • Sider (Pages): Faste blokke af en process logiske hukommelse. Hele adressrummet for en proces er opdelt i disse sider.
  • Rammer (Frames): Faste blokke af den fysiske hukommelse (RAM). Størrelsen på en ramme er identisk med størrelsen på en side.
  • Sidetabel (Page Table): En datastruktur, der vedligeholdes af operativsystemet for hver proces. Sidetabellen fungerer som et kort, der mapper hver side i processens logiske hukommelse til en specifik ramme i den fysiske hukommelse.

Størrelsen på en side (og dermed en ramme) er en kritisk designbeslutning. En lille sidestørrelse reducerer spildt hukommelse internt i en side (intern fragmentering), men kræver en meget større sidetabel. En stor sidestørrelse reducerer sidetabellens størrelse, men øger risikoen for intern fragmentering.

Hvordan Paging Fungerer i Praksis

Processen med at oversætte en logisk adresse til en fysisk adresse sker lynhurtigt og er afgørende for systemets ydeevne. Denne opgave varetages af en specialiseret hardwarekomponent kaldet MMU (Memory Management Unit).

Which operating systems use paging?
Most modern operating systems, such as Windows, Linux, and macOS, use a combination of these advanced techniques to optimize memory management. They often employ multi-level paging, TLBs, and sophisticated page replacement algorithms. Paging is often used in conjunction with other memory management techniques.

Trin-for-trin Adresseoversættelse

  1. CPU genererer en logisk adresse: Når et program udføres, anmoder CPU'en om adgang til en bestemt hukommelsesadresse.
  2. Opdeling af adressen: MMU'en opdeler den logiske adresse i et sidenummer (p) og et offset (d).
  3. Opslag i sidetabellen: MMU'en bruger sidenummeret (p) som et indeks til at finde den tilsvarende post i processens sidetabel.
  4. Find rammenummer: Denne post i sidetabellen indeholder rammenummeret (f), hvor den pågældende side er gemt i den fysiske hukommelse.
  5. Konstruktion af fysisk adresse: MMU'en kombinerer rammenummeret (f) med det oprindelige offset (d) for at danne den endelige fysiske adresse.
  6. Adgang til hukommelse: CPU'en bruger nu den fysiske adresse til at få adgang til den korrekte placering i RAM.

Denne proces muliggør virtuel hukommelse, et koncept, hvor et program kan bruge et meget større adressrum, end der er fysisk RAM tilgængelig. Operativsystemet indlæser kun de nødvendige sider i RAM og lader resten ligge på den sekundære lagerenhed. Når programmet har brug for en side, der ikke er i RAM, opstår der en 'page fault'.

Håndtering af Page Faults

En page fault (sidefejl) er ikke en fejl i traditionel forstand, men snarere en normal hændelse i et system med virtuel hukommelse. Det sker, når en proces forsøger at få adgang til en side, der er markeret som værende i det logiske adressrum, men som i øjeblikket ikke er indlæst i en fysisk ramme i RAM.

Når en page fault opstår, sker følgende:

  1. CPU'en udløser en trap (en software-afbrydelse) til operativsystemet.
  2. Operativsystemet pauser den kørende proces.
  3. Operativsystemet finder den krævede side på den sekundære lagerenhed (f.eks. harddisken).
  4. Der findes en ledig ramme i RAM. Hvis der ikke er nogen ledige rammer, skal en eksisterende side 'smides ud' ved hjælp af en sideudskiftningsalgoritme (f.eks. LRU - Least Recently Used).
  5. Den krævede side indlæses fra disken til den ledige ramme.
  6. Sidetabellen for processen opdateres for at afspejle den nye placering.
  7. Processen genoptages fra den instruktion, der forårsagede fejlen.

Selvom dette er en effektiv mekanisme, kan for mange page faults på kort tid føre til et fænomen kaldet 'thrashing', hvor systemet bruger mere tid på at flytte sider ind og ud af hukommelsen end på at udføre reelt arbejde, hvilket drastisk reducerer ydeevnen.

What are the benefits of paging?
Simplifying memory management. Paging streamlines memory management for the operating system. Therefore, the OS only has to keep track of the pages currently in memory rather than the entire address space of each process. Efficient swapping. With paging, the operating system does not have to consider fragmentation when swapping out a page.

Fordele og Ulemper ved Paging

Paging tilbyder betydelige fordele, men har også nogle ulemper, der skal håndteres. Her er en sammenligning:

FordeleUlemper
Eliminerer ekstern fragmentering: Da enhver side kan placeres i enhver ledig ramme, opstår der ikke ubrugelige 'huller' mellem allokerede hukommelsesblokke.Intern fragmentering: Den sidste side i en proces er sjældent fyldt helt op, hvilket fører til spildt plads inden i den sidste allokerede ramme.
Effektiv hukommelsesudnyttelse: Gør det muligt at køre flere processer, end der fysisk er plads til, takket være virtuel hukommelse.Overhead fra sidetabeller: Hver proces kræver en sidetabel, som i sig selv optager hukommelse. For processer med store adressrum kan dette være betydeligt.
Forenklet hukommelseshåndtering: Allokering af hukommelse bliver simplere for operativsystemet, da det blot skal finde en ledig ramme af fast størrelse.Tidsoverhead for adresseoversættelse: Hver hukommelsesadgang kræver et opslag i sidetabellen, hvilket kan gøre processen langsommere. Dette afhjælpes dog ofte med hardware-cache (TLB).
Understøtter beskyttelse og deling: Sidetabeller kan indeholde beskyttelsesbits (læse/skrive/udføre), og flere processer kan dele de samme sider i hukommelsen (f.eks. for biblioteker).Kompleksitet: Implementeringen af paging og håndtering af page faults tilføjer betydelig kompleksitet til operativsystemets design.

Ofte Stillede Spørgsmål (FAQ)

Hvilke operativsystemer bruger paging?

Praktisk talt alle moderne operativsystemer, herunder Windows, macOS, Linux, Android og iOS, er stærkt afhængige af paging til at implementere virtuel hukommelse og effektiv hukommelseshåndtering. Det er en fundamental teknologi i moderne computing.

Hvad er forskellen på intern og ekstern fragmentering?

Ekstern fragmentering opstår, når der er nok samlet ledig hukommelse til at opfylde en anmodning, men den er ikke sammenhængende. Den er spredt i mange små, separate blokke. Paging løser dette problem. Intern fragmentering opstår, når en proces tildeles en hukommelsesblok (en ramme), der er større end processens faktiske behov. Det spildte rum inden i den allokerede blok er intern fragmentering.

Which operating systems use paging?

Hvad er en TLB (Translation Lookaside Buffer)?

En TLB er en lille, hurtig hardware-cache, der er en del af MMU'en. Den gemmer de seneste oversættelser fra logiske til fysiske adresser. Når en adresse skal oversættes, tjekkes TLB'en først. Hvis oversættelsen findes der (et 'TLB hit'), undgås det langsomme opslag i sidetabellen i RAM, hvilket markant forbedrer ydeevnen.

Konklusion

Paging er en genial og uundværlig hukommelseshåndteringsteknik, der har formet moderne operativsystemer. Ved at opdele hukommelsen i faste blokke og bruge sidetabeller til at mappe logiske adresser til fysiske adresser, eliminerer paging ekstern fragmentering, muliggør effektiv multitasking og lægger fundamentet for virtuel hukommelse. Selvom det introducerer udfordringer som intern fragmentering og overhead, opvejes disse ulemper langt af de enorme fordele i ydeevne og fleksibilitet. Forståelsen af paging er nøglen til at forstå, hvordan din computer kan jonglere med komplekse applikationer og processer så problemfrit, som den gør.

Hvis du vil læse andre artikler, der ligner Paging i Operativsystemer: En Komplet Guide, kan du besøge kategorien Teknologi.

Go up