I denne artikkelen vil vi forstå minnehåndtering i detalj.
Hva mener du med minnehåndtering?
Minne er den viktige delen av datamaskinen som brukes til å lagre dataene. Dens administrasjon er kritisk for datasystemet fordi mengden hovedminne som er tilgjengelig i et datasystem er svært begrenset. Til enhver tid konkurrerer mange prosesser om det. Dessuten, for å øke ytelsen, utføres flere prosesser samtidig. For dette må vi holde flere prosesser i hovedminnet, så det er enda viktigere å administrere dem effektivt.
Rollen til minnehåndtering
Følgende er de viktige rollene til minnebehandling i et datasystem:
- Minnebehandling brukes til å holde styr på statusen til minneplasseringer, enten det er ledig eller tildelt. Den adresserer primærminne ved å gi abstraksjoner slik at programvare oppfatter at et stort minne er allokert til det.
- Minnebehandling tillater datamaskiner med en liten mengde hovedminne å kjøre programmer som er større enn størrelsen eller mengden tilgjengelig minne. Den gjør dette ved å flytte informasjon frem og tilbake mellom primærminne og sekundærminne ved å bruke begrepet bytte.
- Minnebehandlingen er ansvarlig for å beskytte minnet som er allokert til hver prosess fra å bli ødelagt av en annen prosess. Hvis dette ikke er sikret, kan systemet vise uforutsigbar oppførsel.
- Minneadministratorer bør muliggjøre deling av minneplass mellom prosesser. Dermed kan to programmer ligge på samme minneplassering, men til forskjellige tider.
Minnehåndteringsteknikker:
Minnehåndteringsteknikkene kan klassifiseres i følgende hovedkategorier:
java konverter heltall til streng
- Sammenhengende minnestyringsordninger
- Ikke-sammenhengende minnebehandlingsopplegg
Sammenhengende minnebehandlingsopplegg:
I en sammenhengende minnestyringsplan opptar hvert program en enkelt sammenhengende blokk med lagringsplasseringer, dvs. et sett med minneplasseringer med påfølgende adresser.
Enkelt sammenhengende minnebehandlingsopplegg:
Enkelt sammenhengende minnestyringsskjema er det enkleste minnestyringsskjemaet som brukes i den tidligste generasjonen av datasystemer. I denne ordningen er hovedminnet delt inn i to sammenhengende områder eller partisjoner. Operativsystemene ligger permanent i en partisjon, vanligvis i det nedre minnet, og brukerprosessen lastes inn i den andre partisjonen.
Fordeler med enkel sammenhengende minnebehandling:
- Enkel å implementere.
- Enkel å administrere og designe.
- I et enkelt sammenhengende minnebehandlingsskjema, når en prosess er lastet, får den full prosessortid, og ingen annen prosessor vil avbryte den.
Ulemper med enkle sammenhengende minneadministrasjonsordninger:
- Sløsing med minneplass på grunn av ubrukt minne, da prosessen neppe vil bruke all tilgjengelig minneplass.
- CPU-en forblir inaktiv og venter på at disken skal laste det binære bildet inn i hovedminnet.
- Det kan ikke kjøres hvis programmet er for stort til å passe hele det tilgjengelige hovedminnet.
- Den støtter ikke multiprogrammering, dvs. den kan ikke håndtere flere programmer samtidig.
Multiple partisjonering:
Det enkle Contiguous-minnestyringssystemet er ineffektivt ettersom det begrenser datamaskiner til å kjøre bare ett program om gangen, noe som resulterer i sløsing med minneplass og CPU-tid. Problemet med ineffektiv CPU-bruk kan overvinnes ved hjelp av multiprogrammering som lar mer enn ett program kjøre samtidig. For å bytte mellom to prosesser, må operativsystemene laste begge prosessene inn i hovedminnet. Operativsystemet må dele det tilgjengelige hovedminnet i flere deler for å laste flere prosesser inn i hovedminnet. Dermed kan flere prosesser ligge i hovedminnet samtidig.
De flere partisjoneringsskjemaene kan være av to typer:
telle distinkt
- Fast partisjonering
- Dynamisk partisjonering
Fast partisjonering
Hovedminnet er delt inn i flere partisjoner med fast størrelse i et minneadministrasjonsskjema for fast partisjon eller statisk partisjonering. Disse partisjonene kan være av samme størrelse eller forskjellige størrelser. Hver partisjon kan inneholde en enkelt prosess. Antall partisjoner bestemmer graden av multiprogrammering, dvs. maksimalt antall prosesser i minnet. Disse partisjonene lages på tidspunktet for systemgenerering og forblir faste etter det.
Fordeler med Fixed Partitioning Memory Management Scheme:
- Enkel å implementere.
- Enkel å administrere og designe.
Ulemper med Fixed Partitioning Memory Management Scheme:
- Denne ordningen lider av intern fragmentering.
- Antall partisjoner er spesifisert på tidspunktet for systemgenerering.
Dynamisk partisjonering
Den dynamiske partisjoneringen ble designet for å overvinne problemene med et fast partisjoneringsskjema. I et dynamisk partisjoneringsskjema opptar hver prosess bare så mye minne som de krever når den lastes inn for behandling. Forespurte prosesser tildeles minne til hele det fysiske minnet er oppbrukt eller den gjenværende plassen er utilstrekkelig til å holde forespørselsprosessen. I dette skjemaet er partisjonene som brukes av variabel størrelse, og antall partisjoner er ikke definert ved systemgenereringstidspunktet.
Fordeler med minneadministrasjonsordninger for dynamisk partisjonering:
syreegenskaper i dbms
- Enkel å implementere.
- Enkel å administrere og designe.
Ulemper med Dynamic Partitioning Memory Management Scheme:
- Denne ordningen lider også av intern fragmentering.
- Antall partisjoner er spesifisert på tidspunktet for systemsegmentering.
Ikke-sammenhengende minnebehandlingsopplegg:
I et ikke-sammenhengende minnebehandlingsskjema er programmet delt inn i forskjellige blokker og lastet inn i forskjellige deler av minnet som ikke nødvendigvis trenger å være ved siden av hverandre. Denne ordningen kan klassifiseres avhengig av størrelsen på blokkene og om blokkene ligger i hovedminnet eller ikke.
Hva er personsøking?
Personsøking er en teknikk som eliminerer kravene til sammenhengende tildeling av hovedminne. I dette er hovedminnet delt inn i blokker av fast størrelse med fysisk minne kalt rammer. Størrelsen på en ramme bør holdes den samme som på en side for å maksimere hovedminnet og unngå ekstern fragmentering.
Fordeler med personsøking:
- Sider reduserer ekstern fragmentering.
- Enkel å implementere.
- Minneeffektiv.
- På grunn av den samme størrelsen på rammer, blir det veldig enkelt å bytte.
- Den brukes for raskere tilgang til data.
Hva er segmentering?
Segmentering er en teknikk som eliminerer kravene til sammenhengende allokering av hovedminne. I dette er hovedminnet delt inn i blokker av variabel størrelse med fysisk minne kalt segmenter. Den er basert på måten programmereren følger for å strukturere programmene sine. Med segmentert minneallokering er hver jobb delt inn i flere segmenter av forskjellige størrelser, ett for hver modul. Funksjoner, subrutiner, stack, array osv. er eksempler på slike moduler.