Upravljanje memorijom u OS-u: Kontinualno, Zamjenaping, Fragmentacija

⚡ Pametni sažetak

Upravljanje memorijom je proces operacijskog sustava kojim se kontrolira i koordinira memorija računala, dodjeljujući blokove programima koji se izvršavaju radi optimizacije performansi. tracks svaku memorijsku lokaciju, premješta procese između glavne memorije i diska te štiti procese jedne od drugih.

  • 🧠 Definicija: Upravljanje memorijom dodjeljuje i tracks memorijskih blokova za pokretanje programa radi maksimiziranja performansi.
  • 🗂️ Tehnike: Jednostruka susjedna, particionirana, straničena i segmentirana alokacija upravljaju memorijom različito.
  • 🔄 Razmijenitiping: Procesi se privremeno premještaju između glavne memorije i rezervne memorije kako bi se poboljšalo multiprogramiranje.
  • 📑 Stranično podjela na stranice u odnosu na segmentaciju: Stranično podjela koristi okvire fiksne veličine; segmentacija koristi segmente promjenjive duljine.
  • 🧩 Fragmentacija: Unutarnja i vanjska fragmentacija rasipaju memoriju u male, neupotrebljive blokove.
  • 🔗 Učitavanje i povezivanje: Dinamičko učitavanje i povezivanje štede memoriju učitavanjem rutina samo kada je to potrebno.

Upravljanje memorijom u OS-u

Što je upravljanje memorijom?

Upravljanje memorijom je proces kontrole i koordinacije računalne memorije, dodjeljivanje dijelova poznatih kao blokovi različitim pokrenutim programima kako bi se optimizirala ukupna izvedba sustava.

To je najvažnija funkcija operacijskog sustava koja upravlja primarnom memorijom. Pomaže procesima da se kreću naprijed-nazad između glavne memorije i izvršnog diska. Pomaže operacijskom sustavu da održava track svake memorijske lokacije, bez obzira na to je li dodijeljena nekom procesu ili je ostala slobodna.

Zašto koristiti upravljanje memorijom?

Evo razloga za korištenje upravljanja memorijom:

  • Omogućuje vam da provjerite koliko memorije treba dodijeliti procesima koji odlučuju koji procesor treba dobiti memoriju u koje vrijeme.
  • Tracks kad god se zalihe oslobode ili ne dodijele te ažurira status u skladu s tim.
  • Dodjeljuje prostor aplikacijskim rutinama.
  • Također osigurava da se te aplikacije međusobno ne ometaju.
  • Pomaže u zaštiti različitih procesa jednih od drugih.
  • Smješta programe u memoriju tako da je memorija iskorištena u punoj mjeri.

Tehnike upravljanja memorijom

Evo nekih od najvažnijih tehnika upravljanja pamćenjem:

Pojedinačna kontinuirana dodjela

To je najjednostavnija tehnika upravljanja memorijom. U ovoj metodi, sve vrste memorije računala, osim malog dijela koji je rezerviran za OS, dostupne su za jednu aplikaciju. Na primjer, operativni sustav MS-DOS dodjeljuje memoriju na ovaj način. Ugrađeni sustav također radi na jednoj aplikaciji.

Particionirana dodjela

Dijeli primarnu memoriju na različite memorijske particije, koje su uglavnom susjedna područja memorije. Svaka particija pohranjuje sve informacije za određeni zadatak ili posao. Ova metoda sastoji se od dodjeljivanja particije zadatku kada započne i njegovog oslobađanja kada završi.

Upravljanje straničnom memorijom

Ova metoda dijeli glavnu memoriju računala na jedinice fiksne veličine poznate kao okviri stranica. Ova hardverska jedinica za upravljanje memorijom preslikava stranice u okvire koji bi trebali biti dodijeljeni na osnovi stranice.

Segmentirano upravljanje memorijom

Segmentirana memorija jedina je metoda upravljanja memorijom koja korisničkom programu ne daje linearni i kontinuirani adresni prostor.

Segmenti trebaju hardversku podršku u obliku tablice segmenata. Sadrži fizičku adresu odjeljka u memoriji, veličinu i druge podatke kao što su bitovi zaštite pristupa i status.

Što je Swapping?

Razmijenitiping je metoda u kojoj se proces privremeno premješta iz glavne memorije u rezervnu memoriju. Kasnije će biti vraćen u memoriju za nastavak izvršavanja.

Rezervna pohrana je tvrdi disk ili neki drugi sekundarni uređaj za pohranu koji bi trebao biti dovoljno velik da primi kopije svih memorijskih slika za sve korisnike. Također je sposoban ponuditi izravan pristup tim memorijskim slikama.

Razmijenitiping

Prednosti zamjeneping

Evo glavnih prednosti/prednosti zamjeneping:

  • Nudi viši stupanj multiprogramiranja.
  • Omogućuje dinamičko premještanje. Na primjer, ako se koristi vezanje adrese u vrijeme izvršavanja, procesi se mogu premjestiti na različite lokacije. U suprotnom, u slučaju vezanja u vrijeme kompajliranja i učitavanja, procesi bi trebali biti premješteni na istu lokaciju.
  • Pomaže boljem iskorištavanju memorije.
  • Minimalno gubljenje CPU vremena pri dovršetku, tako da se lako može primijeniti na metodu raspoređivanja temeljenu na prioritetima radi poboljšanja performansi.

Što je dodjela memorije?

Dodjela memorije je proces kojim se računalnim programima dodjeljuje memorija ili prostor.

Ovdje je glavna memorija podijeljena na dvije vrste particija:

  1. Malo memorije - Operating sustav nalazi se u ovoj vrsti memorije.
  2. Visoka memorija – Korisnički procesi se drže u visokoj memoriji.

Dodjela particije

Memorija je podijeljena na različite blokove ili particije. Svaki proces se dodjeljuje prema zahtjevu. Dodjela particije idealna je metoda za izbjegavanje unutarnje fragmentacije.

U nastavku su navedene različite sheme dodjele particija:

  • Prvo prilagođavanje: U ovoj vrsti prilagodbe, dodjeljuje se particija koja je prvi dovoljan blok od početka glavne memorije.
  • Najbolje odgovara: Dodjeljuje proces particiji koja je najmanja dovoljna particija među slobodnim particijama.
  • Najgore odgovara: Dodjeljuje proces particiji koja je najveća dovoljno slobodno dostupna particija u glavnoj memoriji.
  • Sljedeće uklapanje: Uglavnom je slično Prvom prilagođavanju, ali ovo prilagođavanje traži prvu dovoljnu particiju od posljednje točke alokacije.

Što je straničenje?

Straničenje je mehanizam pohrane koji omogućuje operacijskom sustavu dohvaćanje procesa iz sekundarne memorije u glavnu memoriju u obliku stranica. U metodi straničenja, glavna memorija je podijeljena na male blokove fizičke memorije fiksne veličine, koji se nazivaju okviri. Veličina okvira treba biti ista kao i veličina stranice kako bi se maksimalno iskoristila glavna memorija i izbjegla vanjska fragmentacija. Prijelom služi za brži pristup podacima i to je logičan koncept.

Što je fragmentacija?

Procesi se pohranjuju u memoriju i uklanjaju iz nje, što stvara slobodne memorijske prostore koji su premali da bi ih koristili drugi procesi.

Nakon nekog vremena, ti se procesi ne mogu dodijeliti memorijskim blokovima zbog njihove male veličine, a memorijski blokovi uvijek ostaju neiskorišteni. To se naziva fragmentacija. Ova vrsta problema javlja se tijekom dinamičkog sustava dodjele memorije kada su slobodni blokovi prilično mali, pa ne mogu ispuniti nijedan zahtjev.

Dvije su vrste metoda fragmentacije:

  1. Vanjska fragmentacija
  2. Unutarnja fragmentacija
  • Vanjska fragmentacija može se smanjiti preuređivanjem sadržaja memorije kako bi se sva slobodna memorija smjestila zajedno u jedan blok.
  • Unutarnja fragmentacija može se smanjiti dodjeljivanjem najmanje particije, koja je i dalje dovoljno dobra za nošenje cijelog procesa.

Što je segmentacija?

Metoda segmentacije funkcionira gotovo slično kao i stranicanje. Jedina razlika između njih je u tome što su segmenti promjenjive duljine, dok su kod metode stranicanja stranice uvijek fiksne veličine.

Programski segment uključuje glavnu funkciju programa, strukture podataka, uslužne funkcije itd. OS održava tablicu mape segmenata za sve procese. Također uključuje popis slobodnih memorijskih blokova zajedno s njihovom veličinom, brojevima segmenata i memorijskim lokacijama u glavnoj memoriji ili virtualna memorija.

Što je dinamičko učitavanje?

Dinamičko učitavanje je rutina programa koja se ne učitava dok je program ne pozove. Sve rutine trebaju biti pohranjene na disku u formatu koji se može premjestiti. Glavni program će se učitati u memoriju i izvršiti. Dinamičko učitavanje također omogućuje bolje iskorištenje memorijskog prostora.

Što je dinamičko povezivanje?

Povezivanje je metoda koja pomaže OS-u da prikupi i spoji različite module koda i podataka u jednu izvršnu datoteku. Datoteka se može učitati u memoriju i izvršiti. OS može povezati biblioteke na razini sustava u program koji kombinira biblioteke prilikom učitavanja. U metodi dinamičkog povezivanja, biblioteke se povezuju prilikom izvršavanja, tako da veličina programskog koda može ostati mala.

Razlika između statičkog i dinamičkog opterećenja

Statičko opterećenje Dinamičko učitavanje
Statičko učitavanje se koristi kada želite statički učitati svoj program. Tada će, u trenutku kompajliranja, cijeli program biti povezan i kompajliran bez potrebe za bilo kakvim vanjskim modulom ili ovisnošću programa. U dinamički učitanom programu, reference će biti dane, a učitavanje će se izvršiti u trenutku izvršavanja.
U trenutku učitavanja cijeli se program učitava u memoriju i počinje s izvođenjem. Rutine biblioteke se učitavaju u memoriju samo kada su potrebne u programu.

Razlika između statičkog i dinamičkog povezivanja

Evo glavnih razlika između statičkog i dinamičkog povezivanja:

Statičko povezivanje Dinamičko povezivanje
Statičko povezivanje se koristi za kombiniranje svih ostalih modula, koje program zahtijeva, u jedan izvršni kod. To pomaže operativnom sustavu da spriječi bilo kakvu ovisnost tijekom izvođenja. Kada se koristi dinamičko povezivanje, nije potrebno povezivati ​​stvarni modul ili biblioteku s programom. Umjesto toga, koristi se referenca na dinamički modul koja je dostupna u trenutku kompajliranja i povezivanja.

Pitanja i odgovori

Straničenje dijeli memoriju na okvire fiksne veličine i nevidljivo je programeru, dok segmentacija dijeli memoriju na segmente promjenjive duljine na temelju logičke strukture programa. Straničenje može uzrokovati unutarnju fragmentaciju; segmentacija može uzrokovati vanjsku fragmentaciju.

Interna fragmentacija je gubitak prostora unutar dodijeljenog bloka kada proces koristi manje od veličine bloka. Vanjska fragmentacija je slobodna memorija podijeljena na male raspršene blokove koji su zajedno dovoljno veliki, ali ne mogu zadovoljiti zahtjev.

Logičku (virtualnu) adresu generira CPU tijekom izvršavanja programa. Fizička adresa je stvarna lokacija u glavnoj memoriji. Jedinica za upravljanje memorijom (MMU) prevodi logičke adrese u fizičke adrese tijekom izvođenja programa.

Umjetna inteligencija može predvidjeti koje će stranice programu sljedeće trebati i unaprijed ih dohvatiti, poboljšavajući odluke o predmemoriji i zamjeni stranica. Također pomaže u otkrivanju curenja memorije i dinamičkom podešavanju politika dodjele, smanjujući zamjenuping i poboljšanje ukupnih performansi sustava.

Da. Umjetna inteligencija može naučiti obrasce alokacije i odabrati veličine blokova ili vrijeme sažimanja koje minimizira fragmentaciju. Predviđanjem koliko dugo alokacije traju, grupira slične objekte zajedno, smanjujući raspršeni slobodni prostor i potrebu za skupim sažimanjem memorije.

Sažmite ovu objavu uz: