У овом чланку ћемо детаљно разумети управљање меморијом.
Шта подразумевате под управљањем меморијом?
Меморија је важан део рачунара који се користи за складиштење података. Његово управљање је критично за рачунарски систем јер је количина главне меморије доступне у рачунарском систему веома ограничена. У сваком тренутку, многи процеси се надмећу за то. Штавише, да би се повећале перформансе, неколико процеса се извршавају истовремено. За ово морамо да задржимо неколико процеса у главној меморији, па је још важније ефикасно управљати њима.
Улога управљања меморијом
Следе важне улоге управљања меморијом у рачунарском систему:
- Менаџер меморије се користи за праћење статуса меморијских локација, било да је слободна или додељена. Он се бави примарном меморијом обезбеђујући апстракције тако да софтвер примети да му је додељена велика меморија.
- Мемори манагер дозвољава рачунарима са малом количином главне меморије да извршавају програме веће од величине или количине доступне меморије. То ради померањем информација напред-назад између примарне и секундарне меморије коришћењем концепта размене.
- Менаџер меморије је одговоран за заштиту меморије додељене сваком процесу од оштећења другим процесом. Ако то није осигурано, онда систем може показати непредвидиво понашање.
- Менаџери меморије треба да омогуће дељење меморијског простора између процеса. Дакле, два програма могу да се налазе на истој меморијској локацији иако у различито време.
Технике управљања меморијом:
Технике управљања меморијом могу се класификовати у следеће главне категорије:
- Континуалне шеме управљања меморијом
- Шеме управљања меморијом које нису повезане
Континуалне шеме управљања меморијом:
У шеми управљања непрекидном меморијом, сваки програм заузима један узастопни блок локација за складиштење, тј. скуп меморијских локација са узастопним адресама.
Шеме управљања једном непрекидном меморијом:
Шема управљања једном континуалном меморијом је најједноставнија шема управљања меморијом која се користи у најранијој генерацији рачунарских система. У овој шеми, главна меморија је подељена на две суседне области или партиције. Оперативни системи се стално налазе на једној партицији, углавном у нижој меморији, а кориснички процес се учитава у другу партицију.
Предности шеме управљања једном континуалном меморијом:
- Једноставан за имплементацију.
- Једноставан за управљање и дизајн.
- У шеми управљања једном континуалном меморијом, када се процес учита, даје му се пуно процесорско време и ниједан други процесор га неће прекинути.
Недостаци шема управљања једном континуалном меморијом:
- Губитак меморијског простора због неискоришћене меморије јер је мало вероватно да ће процес искористити сав расположиви меморијски простор.
- ЦПУ остаје неактиван, чекајући да диск учита бинарну слику у главну меморију.
- Не може се извршити ако је програм превелик да стане у цео расположиви главни меморијски простор.
- Не подржава мултипрограмирање, тј. не може истовремено да рукује са више програма.
Вишеструко партиционисање:
Јединствена шема за управљање меморијом је неефикасна јер ограничава рачунаре да извршавају само један програм у исто време, што резултира губитком меморијског простора и ЦПУ времена. Проблем неефикасне употребе ЦПУ-а може се превазићи коришћењем вишеструког програмирања које омогућава истовремено покретање више од једног програма. За пребацивање између два процеса, оперативни системи морају да учитају оба процеса у главну меморију. Оперативни систем треба да подели доступну главну меморију на више делова да би учитао више процеса у главну меморију. Тако више процеса може истовремено боравити у главној меморији.
Шеме вишеструких партиција могу бити два типа:
- Фиксно партиционисање
- Динамиц Партитионинг
Фиксно партиционисање
Главна меморија је подељена на неколико партиција фиксне величине у шеми управљања меморијом фиксне партиције или статичком партиционисању. Ове преграде могу бити исте величине или различитих величина. Свака партиција може да држи један процес. Број партиција одређује степен мултипрограмирања, односно максималан број процеса у меморији. Ове партиције се праве у време генерисања система и остају фиксне након тога.
Предности шема управљања меморијом са фиксним партиционирањем:
- Једноставан за имплементацију.
- Једноставан за управљање и дизајн.
Недостаци шема управљања меморијом са фиксним партиционирањем:
- Ова шема пати од унутрашње фрагментације.
- Број партиција је наведен у тренутку генерисања система.
Динамиц Партитионинг
Динамичко партиционисање је дизајнирано да превазиђе проблеме фиксне шеме партиционисања. У шеми динамичког партиционисања, сваки процес заузима само онолико меморије колико им је потребно када се учита за обраду. Траженим процесима се додељује меморија док се цела физичка меморија не исцрпи или док преостали простор није довољан да задржи процес који захтева. У овој шеми коришћене партиције су променљиве величине, а број партиција није дефинисан у време генерисања система.
Предности шеме управљања меморијом динамичког партиционисања:
- Једноставан за имплементацију.
- Једноставан за управљање и дизајн.
Недостаци шема управљања меморијом динамичког партиционисања:
- Ова шема такође пати од унутрашње фрагментације.
- Број партиција је наведен у тренутку сегментације система.
Шеме управљања меморијом које нису континуалне:
У шеми управљања меморијом која није континуална, програм је подељен на различите блокове и учитава се у различите делове меморије који не морају нужно да буду у близини. Ова шема се може класификовати у зависности од величине блокова и од тога да ли се блокови налазе у главној меморији или не.
Шта је пејџинг?
Страничење је техника која елиминише захтеве континуалне алокације главне меморије. У овом случају, главна меморија је подељена на блокове физичке меморије фиксне величине који се називају оквири. Величина оквира треба да буде иста као и величина странице да би се максимизирала главна меморија и избегла спољна фрагментација.
танак алгоритам
Предности страница:
- Странице смањују спољну фрагментацију.
- Једноставан за имплементацију.
- Ефикасна меморија.
- Због једнаке величине оквира, замена постаје веома лака.
- Користи се за бржи приступ подацима.
Шта је сегментација?
Сегментација је техника која елиминише захтеве континуалне алокације главне меморије. При томе је главна меморија подељена на блокове физичке меморије променљиве величине који се називају сегменти. Заснован је на начину на који програмер прати да структурира своје програме. Са сегментираном алокацијом меморије, сваки посао је подељен на неколико сегмената различитих величина, по један за сваки модул. Функције, потпрограми, стек, низ, итд., су примери таквих модула.