Управление на паметта в ОС: непрекъснато, размяна, фрагментиране

Какво е управление на паметта?

Управление на паметта е процес на контролиране и координиране на паметта на компютъра, присвояване на части, известни като блокове, на различни работещи програми, за да се оптимизира цялостната производителност на системата.

Това е най-важната функция на операционната система, която управлява първичната памет. Той помага на процесите да се движат назад и напред между основната памет и диска за изпълнение. Помага на ОС да следи всяко място в паметта, независимо дали е разпределено за някакъв процес или остава свободно.

Защо да използвате управление на паметта?

Ето причините да използвате управление на паметта:

  • Тя ви позволява да проверите колко памет трябва да бъде разпределена за процеси, които решават кой процесор да получи памет по кое време.
  • Проследява всеки път, когато инвентарът се освобождава или неразпределя. Според него ще се актуализира състоянието.
  • Той разпределя пространството за рутините на приложението.
  • Също така се уверете, че тези приложения не си пречат едно на друго.
  • Помага за защита на различни процеси един от друг
  • Той поставя програмите в паметта, така че паметта да се използва в пълна степен.

Техники за управление на паметта

Ето някои от най-важните техники за управление на паметта:

Единично непрекъснато разпределение

Това е най-лесната техника за управление на паметта. При този метод всички типове памет на компютъра, с изключение на малка част, която е запазена за операционната система, са достъпни за едно приложение. Например операционната система MS-DOS разпределя памет по този начин. Вградената система също работи с едно приложение.

Разделено разпределение

Той разделя първичната памет на различни дялове на паметта, които са предимно съседни области на паметта. Всеки дял съхранява цялата информация за конкретна задача или работа. Този метод се състои в разпределяне на дял за задание, когато то започне, и неразпределение, когато приключи.

Управление на страничната памет

Този метод разделя основната памет на компютъра на единици с фиксиран размер, известни като рамки за страници. Това устройство за управление на хардуерна памет картографира страниците в рамки, които трябва да бъдат разпределени на страница.

Сегментирано управление на паметта

Сегментираната памет е единственият метод за управление на паметта, който не предоставя на програмата на потребителя линейно и непрекъснато адресно пространство.

Сегментите се нуждаят от хардуерна поддръжка под формата на сегментна таблица. Той съдържа физическия адрес на секцията в паметта, размера и други данни като битове за защита на достъпа и състояние.

Какво е размяна?

Размяната е метод, при който процесът трябва да бъде преместен временно от основната памет към резервното хранилище. По-късно ще бъде върнат обратно в паметта за продължаване на изпълнението.

Резервното хранилище е твърд диск или друго вторично устройство за съхранение, което трябва да е достатъчно голямо, за да побере копия на всички изображения на паметта за всички потребители. Освен това е в състояние да предложи директен достъп до тези изображения от паметта.

Замяната

Ползи от размяната

Ето основните предимства/плюсове от размяната:

  • Предлага по-висока степен на мултипрограмиране.
  • Позволява динамично преместване. Например, ако се използва обвързване на адрес по време на изпълнение, тогава процесите могат да се разменят на различни места. В противен случай, в случай на обвързване на времето за компилиране и зареждане, процесите трябва да бъдат преместени на същото място.
  • Помага за по-добро използване на паметта.
  • Минимална загуба на процесорно време при завършване, така че лесно да може да се приложи към базиран на приоритет метод за планиране, за да се подобри неговата производителност.

Какво е разпределение на паметта?

Разпределението на паметта е процес, чрез който на компютърните програми се присвоява памет или пространство.

Тук основната памет е разделена на два типа дялове

  1. Малко памет - Operaтинг система се намира в този тип памет.
  2. Висока памет– Потребителските процеси се съхраняват във висока памет.

Разпределение на дялове

Паметта е разделена на различни блокове или дялове. Всеки процес се разпределя според изискването. Разпределението на дялове е идеален метод за избягване на вътрешна фрагментация.

По-долу са различните схеми за разпределяне на дялове:

  • Първо прилягане: При този тип напасване се разпределя дялът, който е първият достатъчен блок от началото на основната памет.
  • Най-подходящо: Той разпределя процеса към дяла, който е първият най-малък дял сред свободните дялове.
  • Най-лошо прилягане: Той разпределя процеса на дял, който е най-големият достатъчно свободно достъпен дял в основната памет.
  • Следващо прилягане: До голяма степен е подобен на първия Fit, но този Fit търси първия достатъчен дял от последната точка за разпределение.

Какво е пейджинг?

Пейджингът е механизъм за съхранение, който позволява на ОС да извлича процеси от вторичното хранилище в основната памет под формата на страници. При метода на пейджинг основната памет е разделена на малки блокове с фиксиран размер физическа памет, които се наричат ​​рамки. Размерът на рамката трябва да бъде същият като този на страницата, за да се използва максимално основната памет и да се избегне външна фрагментация. пейджинг се използва за по-бърз достъп до данни и е логична концепция.

Какво е фрагментация?

Процесите се съхраняват и премахват от паметта, което създава свободно пространство в паметта, което е твърде малко, за да се използва от други процеси.

След като понякога процесите не могат да разпределят блокове памет, защото малкият му размер и блоковете памет винаги остават неизползвани, се нарича фрагментация. Този тип проблем се случва по време на система за динамично разпределение на паметта, когато свободните блокове са доста малки, така че не е в състояние да изпълни никаква заявка.

Два вида методи за фрагментиране са:

  1. Външна фрагментация
  2. Вътрешна фрагментация
  • Външната фрагментация може да бъде намалена чрез пренареждане на съдържанието на паметта, за да се постави цялата свободна памет заедно в един блок.
  • Вътрешната фрагментация може да бъде намалена чрез присвояване на най-малкия дял, който все още е достатъчно добър, за да извърши целия процес.

Какво е сегментиране?

Методът на сегментиране работи почти подобно на странирането. Единствената разлика между двете е, че сегментите са с променлива дължина, докато при метода на страниране страниците винаги са с фиксиран размер.

Програмният сегмент включва основната функция на програмата, структурите от данни, помощните функции и т.н. ОС поддържа таблица с карта на сегменти за всички процеси. Той също така включва списък със свободни блокове памет заедно с техния размер, номера на сегменти и местоположенията му в паметта в основната памет или виртуална памет.

Какво е динамично зареждане?

Динамичното зареждане е рутина на програма, която не се зарежда, докато програмата не я извика. Всички процедури трябва да се съдържат на диска във формат за зареждане с възможност за преместване. Основната програма ще бъде заредена в паметта и ще бъде изпълнена. Динамичното зареждане също осигурява по-добро използване на пространството в паметта.

Какво е динамично свързване?

Свързването е метод, който помага на OS да събира и обединява различни модули от код и данни в един изпълним файл. Файлът може да бъде зареден в паметта и изпълнен. ОС може да свърже библиотеки на системно ниво в програма, която комбинира библиотеките по време на зареждане. При метода на динамично свързване библиотеките се свързват по време на изпълнение, така че размерът на програмния код може да остане малък.

Разлика между статично и динамично натоварване

Статично натоварване Динамично зареждане
Статичното зареждане се използва, когато искате да заредите програмата си статично. След това по време на компилация цялата програма ще бъде свързана и компилирана без нужда от външен модул или зависимост от програмата. В динамично заредена програма ще бъдат предоставени препратки и зареждането ще се извърши по време на изпълнение.
По време на зареждане цялата програма се зарежда в паметта и започва своето изпълнение. Рутините на библиотеката се зареждат в паметта само когато са необходими в програмата.

Разлика между статично и динамично свързване

Ето основните разлики между статичното и динамичното свързване:

Статично свързване Динамично свързване
Статичното свързване се използва за комбиниране на всички други модули, които се изискват от програмата, в един изпълним код. Това помага на ОС да предотврати всякаква зависимост по време на изпълнение. Когато се използва динамично свързване, не е необходимо да се свързва действителният модул или библиотека с програмата. Вместо него използвайте препратка към динамичния модул, предоставен по време на компилирането и свързването.

Oбобщение

  • Управлението на паметта е процес на контролиране и координиране на паметта на компютъра, присвояване на части, наречени блокове, на различни работещи програми, за да се оптимизира цялостната производителност на системата.
  • Тя ви позволява да проверите колко памет трябва да бъде разпределена за процеси, които решават кой процесор да получи памет по кое време.
  • При единично непрекъснато разпределение всички видове памет на компютъра, с изключение на малка част, която е запазена за операционната система, са достъпни за едно приложение
  • Методът на разделено разпределение разделя първичната памет на различни дялове на паметта, които са предимно съседни области на паметта
  • Методът за странично управление на паметта разделя основната памет на компютъра на единици с фиксиран размер, известни като рамки за страници
  • Сегментираната памет е единственият метод за управление на паметта, който не предоставя на програмата на потребителя линейно и непрекъснато адресно пространство.
  • Размяната е метод, при който процесът трябва да бъде преместен временно от основната памет към резервното хранилище. По-късно ще бъде върнат обратно в паметта за продължаване на изпълнението.
  • Разпределението на паметта е процес, чрез който на компютърните програми се присвоява памет или пространство.
  • Пейджингът е механизъм за съхранение, който позволява на ОС да извлича процеси от вторичното хранилище в основната памет под формата на страници.
  • Фрагментирането се отнася до състоянието на диск, при което файловете са разделени на части, разпръснати около диска.
  • Методът на сегментиране работи почти подобно на странирането. Единствената разлика между двете е, че сегментите са с променлива дължина, докато при метода на страниране страниците винаги са с фиксиран размер.
  • Динамичното зареждане е рутина на програма, която не се зарежда, докато програмата не я извика.
  • Свързването е метод, който помага на OS да събира и обединява различни модули от код и данни в един изпълним файл.