logo

Atminties valdymas operacinėje sistemoje (OS)

Šiame straipsnyje mes išsamiai suprasime atminties valdymą.

Ką reiškia atminties valdymas?

Atmintis yra svarbi kompiuterio dalis, naudojama duomenims saugoti. Jos valdymas yra labai svarbus kompiuterinei sistemai, nes pagrindinės atminties kiekis kompiuterinėje sistemoje yra labai ribotas. Bet kuriuo metu dėl to konkuruoja daugybė procesų. Be to, norint padidinti našumą, vienu metu vykdomi keli procesai. Tam turime turėti keletą procesų pagrindinėje atmintyje, todėl dar svarbiau juos efektyviai valdyti.

Atminties valdymas

Atminties valdymo vaidmuo

Toliau pateikiami svarbūs atminties valdymo vaidmenys kompiuterinėje sistemoje:

  • Atminties tvarkyklė naudojama atminties vietų būsenai sekti, nesvarbu, ar ji laisva, ar skirta. Ji sprendžia pirminę atmintį pateikdama abstrakcijas, kad programinė įranga suvoktų, kad jai yra skirta didelė atmintis.
  • Atminties tvarkyklė leidžia kompiuteriams, turintiems nedidelį pagrindinės atminties kiekį, vykdyti programas, didesnes nei turimos atminties dydis arba kiekis. Tai daroma perkeliant informaciją pirmyn ir atgal iš pirminės atminties į antrinę atmintį, naudodamas keitimo koncepciją.
  • Atminties tvarkyklė yra atsakinga už kiekvienam procesui skirtos atminties apsaugą, kad ją nesugadintų kitas procesas. Jei tai neužtikrinama, sistema gali elgtis nenuspėjamai.
  • Atminties tvarkyklės turėtų leisti dalytis atminties vieta tarp procesų. Taigi, dvi programos gali būti toje pačioje atminties vietoje, nors ir skirtingu laiku.

Atminties valdymo būdai:

Atminties valdymo metodus galima suskirstyti į šias pagrindines kategorijas:

  • Gretimos atminties valdymo schemos
  • Negretimos atminties valdymo schemos
Atminties valdymas

Gretimos atminties valdymo schemos:

Gretutinės atminties valdymo schemoje kiekviena programa užima vieną gretimą saugojimo vietų bloką, t. y. atminties vietų rinkinį su nuosekliais adresais.

Vienos gretimos atminties valdymo schemos:

Vienos gretimos atminties valdymo schema yra paprasčiausia atminties valdymo schema, naudojama ankstyviausios kartos kompiuterinėse sistemose. Šioje schemoje pagrindinė atmintis yra padalinta į dvi gretimas sritis arba skaidinius. Operacinės sistemos nuolat yra viename skaidinyje, paprastai apatinėje atmintyje, o vartotojo procesas įkeliamas į kitą skaidinį.

Vienos gretimos atminties valdymo schemų pranašumai:

  • Paprasta įgyvendinti.
  • Lengva valdyti ir projektuoti.
  • Vienos gretimos atminties valdymo schemoje, kai procesas įkeliamas, jam suteikiamas visas procesoriaus laikas ir joks kitas procesorius jo nepertraukia.

Vienos gretimos atminties valdymo schemų trūkumai:

  • Atminties vietos švaistymas dėl nepanaudotos atminties, nes greičiausiai procesas neišnaudos visos turimos atminties vietos.
  • CPU neveikia ir laukia, kol diskas įkels dvejetainį vaizdą į pagrindinę atmintį.
  • Jis negali būti vykdomas, jei programa yra per didelė, kad tilptų visa turima pagrindinės atminties vieta.
  • Jis nepalaiko kelių programų, t. y. negali dirbti su keliomis programomis vienu metu.

Keli skaidymai:

Viena gretimos atminties valdymo schema yra neefektyvi, nes ji riboja kompiuterius, kad vienu metu vykdytų tik vieną programą, todėl eikvojama atminties vieta ir procesoriaus laikas. Neefektyvaus procesoriaus naudojimo problemą galima įveikti naudojant daugiaprogramavimą, kuris leidžia vienu metu veikti daugiau nei vienai programai. Norint perjungti du procesus, operacinės sistemos turi įkelti abu procesus į pagrindinę atmintį. Operacinė sistema turi padalyti turimą pagrindinę atmintį į kelias dalis, kad į pagrindinę atmintį būtų įkeliami keli procesai. Taigi pagrindinėje atmintyje vienu metu gali būti keli procesai.

Kelių skirstymo schemos gali būti dviejų tipų:

  • Fiksuotas skaidymas
  • Dinaminis skaidymas

Fiksuotas skaidymas

Pagrindinė atmintis yra padalinta į keletą fiksuoto dydžio skaidinių pagal fiksuoto skaidinio atminties valdymo schemą arba statinį skaidymą. Šios pertvaros gali būti vienodo dydžio arba skirtingų dydžių. Kiekvienas skaidinys gali turėti vieną procesą. Skyrių skaičius lemia daugiaprogramavimo laipsnį, ty maksimalų procesų skaičių atmintyje. Šie skaidiniai sudaromi sistemos generavimo metu ir lieka fiksuoti po to.

Fiksuoto skaidymo atminties valdymo schemų pranašumai:

  • Paprasta įgyvendinti.
  • Lengva valdyti ir projektuoti.

Fiksuoto skaidymo atminties valdymo schemų trūkumai:

  • Ši schema kenčia nuo vidinio susiskaidymo.
  • Skirsnių skaičius nurodomas sistemos generavimo metu.

Dinaminis skaidymas

Dinaminis skaidymas buvo sukurtas siekiant įveikti fiksuotos skaidymo schemos problemas. Dinaminėje skaidymo schemoje kiekvienas procesas užima tik tiek atminties, kiek reikia įkeliant apdoroti. Prašomiems procesams priskiriama atmintis, kol išnaudojama visa fizinė atmintis arba likusios vietos neužtenka užklausos procesui laikyti. Šioje schemoje naudojami skirsniai yra kintamo dydžio, o skirsnių skaičius sistemos generavimo metu neapibrėžiamas.

Dinaminio skaidymo atminties valdymo schemų pranašumai:

  • Paprasta įgyvendinti.
  • Lengva valdyti ir projektuoti.

Dinaminio skaidymo atminties valdymo schemų trūkumai:

  • Ši schema taip pat kenčia nuo vidinio susiskaidymo.
  • Skyrių skaičius nurodomas sistemos segmentavimo metu.

Negretimos atminties valdymo schemos:

Negretimos atminties valdymo schemoje programa yra padalinta į skirtingus blokus ir įkeliama į skirtingas atminties dalis, kurios nebūtinai turi būti greta viena kitos. Ši schema gali būti klasifikuojama atsižvelgiant į blokų dydį ir nuo to, ar blokai yra pagrindinėje atmintyje, ar ne.

Kas yra ieškojimas?

Puslapis yra metodas, kuris pašalina gretimo pagrindinės atminties paskirstymo reikalavimus. Šiuo atveju pagrindinė atmintis yra padalinta į fiksuoto dydžio fizinės atminties blokus, vadinamus rėmeliais. Kad padidintumėte pagrindinę atmintį ir išvengtumėte išorinio suskaidymo, kadro dydis turėtų būti toks pat kaip ir puslapio dydis.

Puslapio privalumai:

  • Puslapiai sumažina išorinį susiskaidymą.
  • Paprasta įgyvendinti.
  • Efektyvi atmintis.
  • Dėl vienodo dydžio rėmelių sukeisti tampa labai paprasta.
  • Jis naudojamas greitesnei prieigai prie duomenų.

Kas yra Segmentavimas?

Segmentavimas yra metodas, kuris pašalina gretimo pagrindinės atminties paskirstymo reikalavimus. Šiuo atveju pagrindinė atmintis yra padalinta į kintamo dydžio fizinės atminties blokus, vadinamus segmentais. Jis pagrįstas tuo, kaip programuotojas vadovaujasi struktūrizuodamas savo programas. Naudojant segmentuotą atminties paskirstymą, kiekviena užduotis yra padalinta į kelis skirtingo dydžio segmentus, po vieną kiekvienam moduliui. Funkcijos, paprogramės, kaminas, masyvas ir kt. yra tokių modulių pavyzdžiai.