Minnehåndtering i operativsystem: Sammenhengende, Swapping, Fragmentering
⚡ Smart oppsummering
Minnehåndtering er operativsystemprosessen for å kontrollere og koordinere datamaskinminne, og tilordne blokker til kjørende programmer for å optimalisere ytelsen. tracks hver minneplassering, flytter prosesser mellom hovedminne og disk, og beskytter prosesser fra hverandre.
Hva er Memory Management?
Minnehåndtering er prosessen med å kontrollere og koordinere datamaskinens minne, tilordne deler kjent som blokker til forskjellige kjørende programmer for å optimalisere den generelle ytelsen til systemet.
Det er den viktigste funksjonen til et operativsystem som administrerer primærminnet. Det hjelper prosesser med å bevege seg frem og tilbake mellom hovedminnet og utførelsesdisken. Det hjelper operativsystemet med å holde track av hver minneplassering, uavhengig av om den er allokert til en prosess eller om den forblir ledig.
Hvorfor bruke minnebehandling?
Her er grunnene til å bruke minnehåndtering:
- Den lar deg sjekke hvor mye minne som må allokeres til prosesser som bestemmer hvilken prosessor som skal få minne til hvilket tidspunkt.
- Tracks når inventar frigjøres eller ikke-allokeres, og oppdaterer statusen deretter.
- Den tildeler plass til søknadsrutiner.
- Det sørger også for at disse applikasjonene ikke forstyrrer hverandre.
- Bidrar til å beskytte ulike prosesser fra hverandre.
- Den plasserer programmene i minnet slik at minnet blir utnyttet fullt ut.
Minnehåndteringsteknikker
Her er noen av de viktigste teknikkene for minnehåndtering:
Enkel sammenhengende tildeling
Det er den enkleste teknikken for minnehåndtering. Med denne metoden er alle typer minne på en datamaskin, bortsett fra en liten del som er reservert for operativsystemet, tilgjengelig for ett program. For eksempel tildeler MS-DOS-operativsystemet minne på denne måten. Et innebygd system kjører også på ett enkelt program.
Partisjonert tildeling
Den deler primærminnet inn i ulike minnepartisjoner, som stort sett er sammenhengende minneområder. Hver partisjon lagrer all informasjonen for en bestemt oppgave eller jobb. Denne metoden består av å tildele en partisjon til en jobb når den starter og avallokere den når den slutter.
Sidet minnehåndtering
Denne metoden deler datamaskinens hovedminne inn i enheter med fast størrelse kjent som siderammer. Denne maskinvareminneadministrasjonsenheten tilordner sider til rammer som bør tildeles på sidebasis.
Segmentert minnehåndtering
Segmentert minne er den eneste minnebehandlingsmetoden som ikke gir brukerens program et lineært og sammenhengende adresserom.
Segmenter trenger maskinvarestøtte i form av en segmenttabell. Den inneholder den fysiske adressen til seksjonen i minne, størrelse og andre data som tilgangsbeskyttelsesbiter og status.
Hva er bytteping?
Byttping er en metode der en prosess midlertidig skal flyttes fra hovedminnet til backingminnet. Den vil senere bli brakt tilbake til minnet for fortsatt utførelse.
Sikkerhetskopieringsenheten er en harddisk eller en annen sekundær lagringsenhet som bør være stor nok til å romme kopier av alle minnebildene for alle brukere. Den kan også tilby direkte tilgang til disse minnebildene.
Fordeler med bytteping
Her er de viktigste fordelene/profesjonene med bytteping:
- Den tilbyr en høyere grad av multiprogrammering.
- Tillater dynamisk flytting. Hvis for eksempel adressebinding ved utførelsestidspunkt brukes, kan prosesser byttes til forskjellige steder. Ellers, i tilfelle kompilerings- og lastetidsbindinger, bør prosesser flyttes til samme sted.
- Det hjelper å få bedre utnyttelse av minnet.
- Minimalt sløsing med CPU-tid ved ferdigstillelse, slik at den enkelt kan brukes på en prioritetsbasert planleggingsmetode for å forbedre ytelsen.
Hva er minnetildeling?
Minneallokering er en prosess der dataprogrammer tildeles minne eller plass.
Her er hovedminnet delt inn i to typer partisjoner:
- Lite minne - Det Operating system ligger i denne typen minne.
- Høyt minne – Brukerprosesser lagres i høyt minne.
Partisjonstildeling
Minnet er delt inn i forskjellige blokker eller partisjoner. Hver prosess tildeles i henhold til kravet. Partisjonstildeling er en ideell metode for å unngå intern fragmentering.
Nedenfor er de ulike partisjonsfordelingsordningene:
- Første tilpasning: I denne typen tilpasning allokeres partisjonen som er den første tilstrekkelige blokken fra begynnelsen av hovedminnet.
- Passer best: Den tildeler prosessen til partisjonen som er den minste tilstrekkelige partisjonen blant de ledige partisjonene.
- Dårligste passform: Den tildeler prosessen til partisjonen som er den største tilstrekkelig fritt tilgjengelige partisjonen i hovedminnet.
- Neste passform: Den ligner stort sett på First Fit, men denne Fit søker etter den første tilstrekkelige partisjonen fra det siste allokeringspunktet.
Hva er personsøking?
Paging er en lagringsmekanisme som lar operativsystemet hente prosesser fra sekundærlagringen til hovedminnet i form av sider. I paging-metoden er hovedminnet delt inn i små blokker med fast størrelse av fysisk minne, som kalles rammer. Størrelsen på en ramme bør holdes den samme som på en side for å få maksimal utnyttelse av hovedminnet og for å unngå ekstern fragmentering. Øker brukes for raskere tilgang til data, og det er et logisk konsept.
Hva er Fragmentering?
Prosesser lagres i og fjernes fra minnet, noe som skaper ledige minneplasser som er for små til å brukes av andre prosesser.
Etter en tid kan ikke disse prosessene allokeres til minneblokker på grunn av sin lille størrelse, og minneblokkene forblir alltid ubrukte. Dette kalles fragmentering. Denne typen problem oppstår under et dynamisk minneallokeringssystem når ledige blokker er ganske små, slik at de ikke er i stand til å oppfylle noen forespørsel.
To typer fragmenteringsmetoder er:
- Ekstern fragmentering
- Intern fragmentering
- Ekstern fragmentering kan reduseres ved å omorganisere minneinnholdet for å plassere alt ledig minne sammen i en enkelt blokk.
- Intern fragmentering kan reduseres ved å tilordne den minste partisjonen, som fortsatt er god nok til å gjennomføre hele prosessen.
Hva er segmentering?
Segmenteringsmetoden fungerer nesten likt som paging. Den eneste forskjellen mellom de to er at segmentene har variabel lengde, mens sidene i pagingmetoden alltid har fast størrelse.
Et programsegment inkluderer programmets hovedfunksjon, datastrukturer, verktøyfunksjoner osv. OS vedlikeholder en segmentkarttabell for alle prosessene. Den inkluderer også en liste over ledige minneblokker sammen med størrelsen, segmentnumrene og minneplasseringene i hovedminnet eller virtuelt minne.
Hva er dynamisk lasting?
Dynamisk lasting er en rutine i et program som ikke lastes inn før programmet kaller den. Alle rutiner skal finnes på en disk i et flyttbart lasteformat. Hovedprogrammet vil bli lastet inn i minnet og kjøres. Dynamisk lasting gir også bedre utnyttelse av minneplassen.
Hva er dynamisk kobling?
Kobling er en metode som hjelper operativsystemet med å samle og slå sammen ulike moduler med kode og data til én kjørbar fil. Filen kan lastes inn i minnet og kjøres. Operativsystemet kan koble systemnivåbiblioteker til et program som kombinerer bibliotekene ved lastetid. I den dynamiske koblingsmetoden kobles biblioteker ved utførelsestidspunktet, slik at programkodestørrelsen kan forbli liten.
Forskjellen mellom statisk og dynamisk lasting
| Statisk lasting | Dynamisk belastning |
|---|---|
| Statisk lasting brukes når du vil laste inn programmet ditt statisk. Deretter, ved kompileringstidspunktet, vil hele programmet bli koblet og kompilert uten behov for noen ekstern modul eller programavhengighet. | I et dynamisk lastet program vil referanser bli gitt, og lastingen vil bli gjort på utførelsestidspunktet. |
| Ved lastingstid lastes hele programmet inn i minnet og starter kjøringen. | Rutiner til biblioteket lastes inn i minnet bare når de er nødvendige i programmet. |
Forskjellen mellom statisk og dynamisk kobling
Her er de viktigste forskjellene mellom statisk vs. dynamisk lenking:
| Statisk kobling | Dynamisk kobling |
|---|---|
| Statisk lenking brukes til å kombinere alle andre moduler som kreves av et program til én kjørbar kode. Dette hjelper operativsystemet med å forhindre enhver kjøretidsavhengighet. | Når dynamisk lenking brukes, trenger den ikke å lenke den faktiske modulen eller biblioteket til programmet. I stedet bruker den en referanse til den dynamiske modulen som ble gitt ved kompilering og lenking. |


