Hukommelsesstyring i operativsystem: Sammenhængende, Swapping, Fragmentering

⚡ Smart opsummering

Hukommelsesstyring er operativsystemets proces med at kontrollere og koordinere computerhukommelse, hvor blokke tildeles kørende programmer for at optimere ydeevnen. tracgenkender alle hukommelsesplaceringer, flytter processer mellem hovedhukommelsen og disken og beskytter processer mod hinanden.

  • 🧠 Definition: Hukommelsesstyring allokerer og tracks-hukommelsesblokke til at køre programmer for at maksimere ydeevnen.
  • 🗂️ Teknikker: Enkelt sammenhængende, partitioneret, pagineret og segmenteret allokering administrerer hukommelse forskelligt.
  • 🔄 Swapping: Processer flytter midlertidigt mellem hovedhukommelsen og et backinglager for at fremme multiprogrammering.
  • 📑 Personsøgning vs. segmentering: Sideopdeling bruger rammer med fast størrelse; segmentering bruger segmenter med variabel længde.
  • 🧩 Fragmentering: Intern og ekstern fragmentering spilder hukommelse i små, ubrugelige blokke.
  • 🔗 Indlæsning og sammenkædning: Dynamisk indlæsning og sammenkobling sparer hukommelse ved kun at indlæse rutiner, når det er nødvendigt.

Hukommelsesstyring i OS

Hvad er Memory Management?

Memory Management er processen med at kontrollere og koordinere computerhukommelsen, tildele dele kendt som blokke til forskellige kørende programmer for at optimere systemets overordnede ydeevne.

Det er den vigtigste funktion i et operativsystem, der administrerer primær hukommelse. Det hjælper processer med at bevæge sig frem og tilbage mellem hovedhukommelsen og udførelsesdisken. Det hjælper operativsystemet med at holde styr på track af hver hukommelsesplacering, uanset om den er allokeret til en proces eller den forbliver fri.

Hvorfor bruge Memory Management?

Her er grundene til at bruge hukommelsesstyring:

  • Det giver dig mulighed for at kontrollere, hvor meget hukommelse der skal allokeres til processer, der bestemmer, hvilken processor der skal have hukommelse på hvilket tidspunkt.
  • Tracks, når lagerbeholdning frigøres eller ikke-allokeres, og opdaterer statussen i overensstemmelse hermed.
  • Det tildeler plads til applikationsrutiner.
  • Det sikrer også, at disse applikationer ikke forstyrrer hinanden.
  • Hjælper med at beskytte forskellige processer mod hinanden.
  • Den placerer programmerne i hukommelsen, så hukommelsen udnyttes fuldt ud.

Hukommelseshåndteringsteknikker

Her er nogle af de mest afgørende teknikker til hukommelsesstyring:

Enkelt sammenhængende tildeling

Det er den nemmeste teknik til hukommelsesstyring. Med denne metode er alle typer af en computers hukommelse, undtagen en lille del, der er reserveret til operativsystemet, tilgængelig for ét program. For eksempel allokerer MS-DOS-operativsystemet hukommelse på denne måde. Et indlejret system kører også på et enkelt program.

Opdelt tildeling

Den opdeler primær hukommelse i forskellige hukommelsespartitioner, som for det meste er sammenhængende hukommelsesområder. Hver partition gemmer alle oplysninger for en specifik opgave eller et job. Denne metode består i at tildele en partition til et job, når det starter, og afallokere det, når det slutter.

Paged Memory Management

Denne metode opdeler computerens hovedhukommelse i enheder med fast størrelse, kendt som siderammer. Denne hardwarehukommelsesstyringsenhed kortlægger sider i rammer, som bør tildeles på sidebasis.

Segmenteret hukommelsesstyring

Segmenteret hukommelse er den eneste hukommelseshåndteringsmetode, der ikke giver brugerens program et lineært og sammenhængende adresserum.

Segmenter har brug for hardwareunderstøttelse i form af en segmenttabel. Den indeholder den fysiske adresse på sektionen i hukommelse, størrelse og andre data som adgangsbeskyttelsesbits og status.

Hvad er swapping?

Swapping er en metode, hvor en proces midlertidigt skal flyttes fra hovedhukommelsen til backing-lageret. Den vil senere blive bragt tilbage til hukommelsen for fortsat udførelse.

Backup-lageret er en harddisk eller en anden sekundær lagringsenhed, der skal være stor nok til at rumme kopier af alle hukommelsesbilleder for alle brugere. Det er også i stand til at give direkte adgang til disse hukommelsesbilleder.

Swapping

Fordele ved bytteping

Her er de største fordele/fordele ved bytteping:

  • Det giver en højere grad af multiprogrammering.
  • Tillader dynamisk flytning. Hvis der f.eks. anvendes adressebinding på udførelsestidspunktet, kan processer byttes til forskellige placeringer. Ellers skal processer i tilfælde af kompilerings- og indlæsningstidsbindinger flyttes til samme placering.
  • Det er med til at få bedre udnyttelse af hukommelsen.
  • Minimalt spild af CPU-tid ved færdiggørelse, så den nemt kan anvendes på en prioritetsbaseret planlægningsmetode for at forbedre dens ydeevne.

Hvad er hukommelsestildeling?

Hukommelsestildeling er en proces, hvorved computerprogrammer tildeles hukommelse eller plads.

Her er hovedhukommelsen opdelt i to typer partitioner:

  1. Lav hukommelse - Den Operating system ligger i denne type hukommelse.
  2. Høj Hukommelse – Brugerprocesser opbevares i høj hukommelse.

Partitionstildeling

Hukommelsen er opdelt i forskellige blokke eller partitioner. Hver proces er allokeret efter kravet. Partitionsallokering er en ideel metode til at undgå intern fragmentering.

Nedenfor er de forskellige partitionsallokeringsordninger:

  • Første tilpasning: I denne type tilpasning allokeres den partition, som er den første tilstrækkelige blok fra begyndelsen af ​​hovedhukommelsen.
  • Bedste Fit: Den allokerer processen til den partition, der er den mindste tilstrækkelige partition blandt de ledige partitioner.
  • Dårligste pasform: Den allokerer processen til den partition, som er den største tilstrækkeligt frit tilgængelige partition i hovedhukommelsen.
  • Næste tilpasning: Det minder stort set om First Fit, men denne Fit søger efter den første tilstrækkelige partition fra det sidste allokeringspunkt.

Hvad er Paging?

Paging er en lagringsmekanisme, der gør det muligt for operativsystemet at hente processer fra det sekundære lager til hovedhukommelsen i form af sider. I paging-metoden er hovedhukommelsen opdelt i små blokke af fysisk hukommelse med fast størrelse, som kaldes frames. Størrelsen på en frame bør holdes den samme som på en page for at opnå maksimal udnyttelse af hovedhukommelsen og for at undgå ekstern fragmentering. Paging bruges til hurtigere adgang til data, og det er et logisk koncept.

Hvad er Fragmentering?

Processer gemmes i og fjernes fra hukommelsen, hvilket skaber ledige hukommelsespladser, der er for små til at blive brugt af andre processer.

Efter et stykke tid kan disse processer ikke allokeres til hukommelsesblokke på grund af deres lille størrelse, og hukommelsesblokkene forbliver altid ubrugte. Dette kaldes fragmentering. Denne type problem opstår under et dynamisk hukommelsesallokeringssystem, når de ledige blokke er ret små, så de ikke er i stand til at opfylde nogen anmodning.

To typer fragmenteringsmetoder er:

  1. Ekstern fragmentering
  2. Intern fragmentering
  • Ekstern fragmentering kan reduceres ved at omarrangere hukommelsesindhold for at placere al ledig hukommelse sammen i en enkelt blok.
  • Intern fragmentering kan reduceres ved at tildele den mindste partition, som stadig er god nok til at udføre hele processen.

Hvad er segmentering?

Segmenteringsmetoden fungerer næsten på samme måde som paging. Den eneste forskel mellem de to er, at segmenter har variabel længde, hvorimod siderne i pagingmetoden altid har en fast størrelse.

Et programsegment omfatter programmets hovedfunktion, datastrukturer, hjælpefunktioner osv. OS vedligeholder en segmentkorttabel for alle processerne. Den inkluderer også en liste over ledige hukommelsesblokke sammen med dens størrelse, segmentnumre og dens hukommelsesplaceringer i hovedhukommelsen eller virtuel hukommelse.

Hvad er dynamisk indlæsning?

Dynamisk indlæsning er en rutine i et program, der ikke indlæses, før programmet kalder den. Alle rutiner skal være indeholdt på en disk i et flytbart indlæsningsformat. Hovedprogrammet vil blive indlæst i hukommelsen og udført. Dynamisk indlæsning giver også bedre udnyttelse af hukommelsespladsen.

Hvad er dynamisk linking?

Linkning er en metode, der hjælper operativsystemet med at indsamle og flette forskellige moduler af kode og data sammen til en enkelt eksekverbar fil. Filen kan indlæses i hukommelsen og udføres. Operativsystemet kan linke systemniveaubiblioteker til et program, der kombinerer bibliotekerne ved indlæsning. I den dynamiske linkmetode linkes biblioteker ved udførelsestidspunktet, så programkodestørrelsen kan forblive lille.

Forskellen mellem statisk og dynamisk belastning

Statisk belastning Dynamisk indlæsning
Statisk indlæsning bruges, når du vil indlæse dit program statisk. Derefter, på kompileringstidspunktet, vil hele programmet blive linket og kompileret uden behov for eksterne moduler eller programafhængigheder. I et dynamisk indlæst program vil der blive angivet referencer, og indlæsningen vil ske på udførelsestidspunktet.
Ved indlæsningstidspunktet indlæses hele programmet i hukommelsen og starter dets udførelse. Rutiner for biblioteket indlæses kun i hukommelsen, når de er påkrævet i programmet.

Forskellen mellem statisk og dynamisk linking

Her er de vigtigste forskelle mellem statisk vs. dynamisk linking:

Statisk sammenkobling Dynamisk linking
Statisk linkning bruges til at kombinere alle andre moduler, som et program kræver, i en enkelt eksekverbar kode. Dette hjælper operativsystemet med at forhindre enhver runtime-afhængighed. Når dynamisk linkning bruges, behøver den ikke at linke selve modulet eller biblioteket til programmet. I stedet bruger den en reference til det dynamiske modul, der blev angivet på tidspunktet for kompilering og linkning.

Ofte Stillede Spørgsmål

Paging opdeler hukommelse i rammer med fast størrelse og er usynlig for programmøren, mens segmentering opdeler hukommelse i segmenter med variabel længde baseret på programmets logiske struktur. Paging kan forårsage intern fragmentering, mens segmentering kan forårsage ekstern fragmentering.

Intern fragmentering er spildplads i en allokeret blok, når en proces bruger mindre end blokkens størrelse. Ekstern fragmentering er ledig hukommelse opdelt i små spredte blokke, der tilsammen er store nok, men ikke kan opfylde en anmodning.

En logisk (virtuel) adresse genereres af CPU'en under et programs udførelse. En fysisk adresse er den faktiske placering i hovedhukommelsen. Hukommelsesstyringsenheden (MMU) oversætter logiske adresser til fysiske adresser under kørsel.

AI kan forudsige, hvilke sider et program skal bruge næste gang, og forhåndshente dem, hvilket forbedrer cache- og sideerstatningsbeslutninger. Det hjælper også med at opdage hukommelseslækager og justere allokeringspolitikker dynamisk, hvilket reducerer swap.ping og forbedring af den samlede systemydelse.

Ja. AI kan lære allokeringsmønstre og vælge blokstørrelser eller komprimeringstiming, der minimerer fragmentering. Ved at forudsige, hvor længe allokeringer lever, grupperer den lignende objekter, hvilket reducerer spredt ledig plads og behovet for dyr hukommelseskomprimering.

Opsummer dette indlæg med: