logo

Hukommelsesstyring i operativsystem (OS)

I denne artikel vil vi forstå hukommelseshåndtering i detaljer.

Hvad mener du med memory management?

Hukommelse er den vigtige del af computeren, der bruges til at gemme dataene. Dens styring er kritisk for computersystemet, fordi mængden af ​​tilgængelig hovedhukommelse i et computersystem er meget begrænset. Til enhver tid konkurrerer mange processer om det. For at øge ydeevnen udføres desuden flere processer samtidigt. Til dette skal vi opbevare flere processer i hovedhukommelsen, så det er endnu vigtigere at styre dem effektivt.

Hukommelseshåndtering

Hukommelseshåndteringens rolle

Følgende er de vigtige roller for hukommelsesstyring i et computersystem:

  • Hukommelseshåndtering bruges til at holde styr på status for hukommelsesplaceringer, uanset om den er ledig eller tildelt. Den adresserer primær hukommelse ved at levere abstraktioner, så software opfatter, at en stor hukommelse er allokeret til den.
  • Hukommelseshåndtering tillader computere med en lille mængde hovedhukommelse at udføre programmer, der er større end størrelsen eller mængden af ​​tilgængelig hukommelse. Det gør den ved at flytte information frem og tilbage mellem primær hukommelse og sekundær hukommelse ved at bruge begrebet swapping.
  • Hukommelsesadministratoren er ansvarlig for at beskytte den hukommelse, der er allokeret til hver proces, mod at blive beskadiget af en anden proces. Hvis dette ikke er sikret, kan systemet udvise uforudsigelig adfærd.
  • Hukommelsesadministratorer bør muliggøre deling af hukommelsesplads mellem processer. Således kan to programmer ligge på den samme hukommelsesplacering, men på forskellige tidspunkter.

Hukommelseshåndteringsteknikker:

Hukommelseshåndteringsteknikkerne kan klassificeres i følgende hovedkategorier:

java type konvertering og støbning
  • Sammenhængende hukommelsesstyringsordninger
  • Ikke-sammenhængende hukommelsesstyringsordninger
Hukommelseshåndtering

Sammenhængende hukommelsesstyringsskemaer:

I en sammenhængende hukommelsesstyringsplan optager hvert program en enkelt sammenhængende blok af lagerlokationer, dvs. et sæt hukommelseslokationer med konsekutive adresser.

Enkelte sammenhængende hukommelsesstyringsskemaer:

Enkelt sammenhængende hukommelsesstyringsskema er det enkleste hukommelsesstyringsskema, der bruges i den tidligste generation af computersystemer. I dette skema er hovedhukommelsen opdelt i to sammenhængende områder eller partitioner. Operativsystemerne ligger permanent i én partition, generelt i den nederste hukommelse, og brugerprocessen indlæses i den anden partition.

Fordele ved enkelte sammenhængende hukommelsesstyringssystemer:

  • Enkel at implementere.
  • Nem at administrere og designe.
  • I et enkelt sammenhængende hukommelsesstyringssystem, når en proces først er indlæst, får den fuld processortid, og ingen anden processor vil afbryde den.

Ulemper ved enkelt sammenhængende hukommelsesstyringsordninger:

  • Spild af hukommelsesplads på grund af ubrugt hukommelse, da processen næppe vil bruge al den tilgængelige hukommelsesplads.
  • CPU'en forbliver inaktiv og venter på, at disken indlæser det binære billede i hovedhukommelsen.
  • Det kan ikke udføres, hvis programmet er for stort til at passe til hele den tilgængelige hovedhukommelsesplads.
  • Den understøtter ikke multiprogrammering, dvs. den kan ikke håndtere flere programmer samtidigt.

Multiple partitionering:

Det enkelte Contiguous memory management system er ineffektivt, da det begrænser computere til kun at udføre ét program ad gangen, hvilket resulterer i spild af hukommelsesplads og CPU-tid. Problemet med ineffektiv CPU-brug kan overvindes ved hjælp af multiprogrammering, der tillader mere end et program at køre samtidigt. For at skifte mellem to processer skal operativsystemerne indlæse begge processer i hovedhukommelsen. Operativsystemet skal opdele den tilgængelige hovedhukommelse i flere dele for at indlæse flere processer i hovedhukommelsen. Således kan flere processer opholde sig i hovedhukommelsen samtidigt.

De multiple partitioneringsskemaer kan være af to typer:

java multithreading
  • Fast partitionering
  • Dynamisk partitionering

Fast partitionering

Hovedhukommelsen er opdelt i flere partitioner med fast størrelse i et hukommelsesstyringssystem med fast partition eller statisk partitionering. Disse skillevægge kan være af samme størrelse eller forskellige størrelser. Hver partition kan indeholde en enkelt proces. Antallet af partitioner bestemmer graden af ​​multiprogrammering, dvs. det maksimale antal processer i hukommelsen. Disse partitioner er lavet på tidspunktet for systemgenerering og forbliver faste efter det.

Fordele ved hukommelsesstyringsordninger med fast partitionering:

  • Enkel at implementere.
  • Nem at administrere og designe.

Ulemper ved hukommelsesstyringsordninger med fast partitionering:

  • Denne ordning lider af intern fragmentering.
  • Antallet af partitioner er angivet på tidspunktet for systemgenerering.

Dynamisk partitionering

Den dynamiske partitionering blev designet til at overvinde problemerne med et fast partitioneringsskema. I et dynamisk partitioneringsskema optager hver proces kun så meget hukommelse, som de kræver, når den indlæses til behandling. Anmodede processer tildeles hukommelse, indtil hele den fysiske hukommelse er opbrugt, eller den resterende plads er utilstrækkelig til at holde den forespørgende proces. I dette skema er de anvendte partitioner af variabel størrelse, og antallet af partitioner er ikke defineret ved systemgenereringstidspunktet.

Fordele ved Dynamic Partitioning-hukommelsesstyringsskemaer:

while og do while loop i java
  • Enkel at implementere.
  • Nem at administrere og designe.

Ulemper ved Dynamic Partitioning Memory Management Scheme:

  • Denne ordning lider også af intern fragmentering.
  • Antallet af partitioner er angivet på tidspunktet for systemsegmenteringen.

Ikke-sammenhængende hukommelsesstyringsskemaer:

I et ikke-sammenhængende hukommelsesstyringsskema er programmet opdelt i forskellige blokke og indlæst i forskellige dele af hukommelsen, som ikke nødvendigvis behøver at være ved siden af ​​hinanden. Dette skema kan klassificeres afhængigt af størrelsen af ​​blokke og om blokkene ligger i hovedhukommelsen eller ej.

Hvad er personsøgning?

Paging er en teknik, der eliminerer kravene til sammenhængende allokering af hovedhukommelsen. I denne er hovedhukommelsen opdelt i blokke af fast størrelse af fysisk hukommelse kaldet frames. Størrelsen af ​​en ramme bør holdes den samme som en sides størrelse for at maksimere hovedhukommelsen og undgå ekstern fragmentering.

Fordele ved personsøgning:

  • Sider reducerer ekstern fragmentering.
  • Enkel at implementere.
  • Hukommelseseffektiv.
  • På grund af den samme størrelse af rammer bliver det meget nemt at bytte.
  • Det bruges til hurtigere adgang til data.

Hvad er segmentering?

Segmentering er en teknik, der eliminerer kravene til sammenhængende allokering af hovedhukommelsen. I denne er hovedhukommelsen opdelt i blokke af fysisk hukommelse af variabel størrelse kaldet segmenter. Det er baseret på den måde programmøren følger for at strukturere deres programmer. Med segmenteret hukommelsesallokering er hvert job opdelt i flere segmenter af forskellig størrelse, et for hvert modul. Funktioner, underrutiner, stak, array osv. er eksempler på sådanne moduler.