Upravljanje memorijom u OS-u: kontinuirano, mijenjanje, fragmentacija

Š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 operativnog sustava koja upravlja primarnom memorijom. Pomaže procesima da se kreću naprijed i naprijed između glavne memorije i izvršnog diska. Pomaže OS-u da prati svaku memorijsku lokaciju, bez obzira na to je li dodijeljena nekom procesu ili ostaje 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.
  • Prati svaki put kad se inventar oslobodi ili poništi. U skladu s njim ažurirat će status.
  • Dodjeljuje prostor aplikacijskim rutinama.
  • Također se pobrinite da ove aplikacije ne ometaju jedna drugu.
  • Pomaže u zaštiti različitih procesa jedan od drugog
  • Smješta programe u memoriju tako da je memorija iskorištena u punoj mjeri.

Tehnike upravljanja memorijom

Evo nekoliko najvažnijih tehnika upravljanja memorijom:

Pojedinačna kontinuirana dodjela

To je najlakša 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 na ovaj način dodjeljuje memoriju. 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 se metoda sastoji od dodjele particije poslu kada započne i poništavanja dodjele 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 zamjena?

Zamjena je metoda u kojoj se proces treba privremeno prebaciti iz glavne memorije u pričuvnu pohranu. Kasnije će se vratiti u memoriju za nastavak izvođenja.

Backing store 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.

zamjene

Prednosti zamjene

Evo glavnih prednosti/prednosti zamjene:

  • Nudi viši stupanj multiprogramiranja.
  • Omogućuje dinamičko premještanje. Na primjer, ako se koristi vezanje adrese u vrijeme izvođenja, tada se procesi mogu zamijeniti na različitim lokacijama. Inače, u slučaju povezivanja vremena kompilacije i učitavanja, procesi bi se trebali premjestiti na isto mjesto.
  • Pomaže boljem iskorištavanju memorije.
  • Minimalni gubitak CPU vremena po dovršetku tako da se lako može primijeniti na metodu raspoređivanja koja se temelji na prioritetima kako bi se poboljšala njegova izvedba.

Š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 drže se 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.

Ispod su različite sheme dodjele particija:

  • Prvo uklapanje: U ovom tipu uklapanja, particija je alocirana, što je prvi dovoljan blok od početka glavne memorije.
  • Najbolje odgovara: Proces dodjeljuje particiji koja je prva najmanja particija među slobodnim particijama.
  • Najgore odgovara: Dodjeljuje proces na particija, koja je najveća dovoljno slobodno dostupna particija u glavnoj memoriji.
  • Sljedeće uklapanje: Uglavnom je sličan prvom Fitu, ali ovaj Fit traži prvu dovoljnu particiju od posljednje točke dodjele.

Što je straničenje?

Straničenje je mehanizam za pohranu koji omogućuje OS-u da dohvati procese iz sekundarne pohrane u glavnu memoriju u obliku stranica. U metodi straničenja, glavna memorija podijeljena je na male blokove fizičke memorije fiksne veličine, koji se nazivaju okviri. Veličina okvira trebala bi biti jednaka veličini stranice kako bi se glavna memorija maksimalno iskoristila i kako bi se izbjegla vanjska fragmentacija. Prijelom služi za brži pristup podacima i to je logičan koncept.

Što je fragmentacija?

Procesi se pohranjuju i uklanjaju iz memorije, što stvara slobodan memorijski prostor, koji je premalen da bi ga drugi procesi mogli koristiti.

Nakon što se ponekad procesi ne mogu dodijeliti memorijskim blokovima jer su male veličine i memorijski blokovi uvijek ostaju neiskorišteni, naziva se fragmentacija. Ova vrsta problema događa se tijekom sustava dinamičke dodjele memorije kada su slobodni blokovi prilično mali, pa nije u mogućnosti ispuniti niti jedan 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 još uvijek dovoljno dobra da provede cijeli proces.

Što je segmentacija?

Metoda segmentacije funkcionira gotovo slično straničenju. Jedina razlika između to dvoje je u tome što su segmenti promjenjive duljine, dok su u metodi straničenja 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 sadržane na disku u formatu za učitavanje koji se može premjestiti. Glavni program će se učitati u memoriju i izvršiti. Dinamičko učitavanje također omogućuje bolju iskoristivost memorijskog prostora.

Što je dinamičko povezivanje?

Povezivanje je metoda koja pomaže OS-u prikupiti i spojiti 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 u vrijeme učitavanja. Kod metode dinamičkog povezivanja, biblioteke se povezuju u vrijeme izvođenja, 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 svoj program učitati statički. Tada će u vrijeme kompilacije cijeli program biti povezan i kompajliran bez potrebe za vanjskim modulom ili programskom ovisnošću. U dinamički učitanom programu, reference će biti dane i učitavanje će se izvršiti u vrijeme izvođenja.
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

Ovdje su glavne razlike između statičkog i dinamičkog povezivanja:

Statičko povezivanje Dinamičko povezivanje
Statičko povezivanje koristi se za kombiniranje svih ostalih modula, koji su potrebni programu u jedan izvršni kod. To pomaže OS-u u sprječavanju ovisnosti o vremenu izvođenja. Kada se koristi dinamičko povezivanje, ne treba povezivati ​​stvarni modul ili biblioteku s programom. Umjesto toga upotrijebite referencu na dinamički modul koji ste dobili u vrijeme kompilacije i povezivanja.

Rezime

  • Upravljanje memorijom je proces kontrole i koordinacije računalne memorije, dodjeljivanjem dijelova koji se nazivaju blokovi različitim pokrenutim programima kako bi se optimizirala ukupna izvedba sustava.
  • Omogućuje vam da provjerite koliko memorije treba dodijeliti procesima koji odlučuju koji procesor treba dobiti memoriju u koje vrijeme.
  • U Single Contiguous Allocation, sve vrste memorije računala osim malog dijela koji je rezerviran za OS dostupne su za jednu aplikaciju
  • Metoda particionirane dodjele dijeli primarnu memoriju na različite memorijske particije, što su uglavnom susjedna područja memorije
  • Metoda upravljanja memorijom po stranicama dijeli glavnu memoriju računala na jedinice fiksne veličine poznate kao okviri stranica
  • Segmentirana memorija jedina je metoda upravljanja memorijom koja korisničkom programu ne daje linearni i kontinuirani adresni prostor.
  • Zamjena je metoda u kojoj se proces treba privremeno prebaciti iz glavne memorije u pričuvnu pohranu. Kasnije će se vratiti u memoriju za nastavak izvođenja.
  • Dodjela memorije je proces kojim se računalnim programima dodjeljuje memorija ili prostor.
  • Straničenje je mehanizam za pohranu koji omogućuje OS-u da dohvati procese iz sekundarne pohrane u glavnu memoriju u obliku stranica.
  • Fragmentacija se odnosi na stanje diska u kojem su datoteke podijeljene na dijelove razbacane po disku.
  • Metoda segmentacije funkcionira gotovo slično straničenju. Jedina razlika između to dvoje je u tome što su segmenti promjenjive duljine, dok su u metodi straničenja stranice uvijek fiksne veličine.
  • Dinamičko učitavanje je rutina programa koja se ne učitava dok je program ne pozove.
  • Povezivanje je metoda koja pomaže OS-u prikupiti i spojiti različite module koda i podataka u jednu izvršnu datoteku.