Какво е управление на паметта?
Управлението на паметта е процесът на контрол и координиране на компютърната памет, като се приписват части, известни като блокове, на различни работещи програми, за да се оптимизира цялостната производителност на системата.
Това е най-важната функция на операционната система, която управлява първичната памет. Той помага на процесите да се движат напред и назад между основната памет и изпълнителния диск. Помага на ОС да следи всяко място в паметта, независимо дали е разпределено за някакъв процес или остава безплатно.
В този урок за операционна система ще научите:
- Какво е управление на паметта?
- Защо да използвам управление на паметта?
- Техники за управление на паметта
- Какво е размяна?
- Какво е разпределението на паметта?
- Какво е пейджинг?
- Какво представлява методът на фрагментация?
- Какво е сегментиране?
- Какво е динамично зареждане?
- Какво е динамично свързване?
- Разлика между статично и динамично зареждане
- Разлика между статично и динамично свързване
Защо да използвам управление на паметта?
Ето причините за използването на управление на паметта:
- Тя ви позволява да проверите колко памет трябва да бъде разпределена за процеси, които решават кой процесор трябва да получи памет в кой момент.
- Проследява всеки път, когато инвентара се освободи или не разпредели. Според него ще актуализира статуса.
- Той разпределя пространството за подпрограми на приложения.
- Също така се уверете, че тези приложения не си пречат.
- Помага за защита на различни процеси един от друг
- Той поставя програмите в паметта, така че паметта да се използва в пълната си степен.
Техники за управление на паметта
Ето някои най-важни техники за управление на паметта:
Единично съседно разпределение
Това е най-лесната техника за управление на паметта. При този метод всички видове компютърна памет, с изключение на малка част, запазена за операционната система, са достъпни за едно приложение. Например операционната система MS-DOS разпределя паметта по този начин. Вградена система също работи на едно приложение.
Разпределено разпределение
Той разделя първичната памет на различни дялове на паметта, което е предимно съседни области на паметта. Всеки дял съхранява цялата информация за конкретна задача или работа. Този метод се състои в присвояване на дял на задание, когато той стартира и неразпределяне, когато завършва.
Странично управление на паметта
Този метод разделя основната памет на компютъра на единици с фиксиран размер, известни като рамки на страници. Този хардуерен модул за управление на паметта картографира страниците в рамки, които трябва да бъдат разпределени на страница.
Сегментирано управление на паметта
Сегментираната памет е единственият метод за управление на паметта, който не предоставя на програмата на потребителя линейно и непрекъснато адресно пространство.
Сегментите се нуждаят от хардуерна поддръжка под формата на сегментна таблица. Той съдържа физическия адрес на секцията в паметта, размера и други данни, като битове за защита на достъпа и състояние.
Какво е размяна?
Размяната е метод, при който процесът трябва да бъде временно заменен от основната памет към резервното хранилище. По-късно той ще бъде върнат в паметта за продължаване на изпълнението.
Магазинът за резервни копия е твърд диск или друго допълнително устройство за съхранение, което трябва да е достатъчно голямо, за да побере копия на всички изображения в паметта за всички потребители. Също така е в състояние да предложи директен достъп до тези изображения в паметта.
Ползи от размяната
Ето основните предимства / плюсове на размяната:
- Той предлага по-висока степен на мултипрограмиране.
- Позволява динамично преместване. Например, ако се използва свързване на адреси по време на изпълнение, тогава процесите могат да се разменят на различни места. В противен случай в случай на свързване на време за компилиране и зареждане, процесите трябва да бъдат преместени на същото място.
- Помага за по-добро използване на паметта.
- Минимално загуба на време на процесора при завършване, за да може лесно да се приложи към метод за планиране, базиран на приоритет, за да се подобри неговата производителност.
Какво е разпределението на паметта?
Разпределението на паметта е процес, чрез който на компютърните програми се присвоява памет или пространство.
Тук основната памет е разделена на два типа дялове
- Low Memory - Операционната система се намира в този тип памет.
- Висока памет - Потребителските процеси се съхраняват в голяма памет.
Разпределение на дялове
Паметта е разделена на различни блокове или дялове. Всеки процес се разпределя според изискването. Разпределението на дялове е идеален метод за избягване на вътрешна фрагментация.
По-долу са различните схеми за разпределение на дялове:
- First Fit : При този тип годни се разпределя дялът, който е първият достатъчен блок от началото на основната памет.
- Най-подходящо: Той разпределя процеса към дяла, който е първият най-малък дял сред безплатните дялове.
- Най-лошото приспособяване: Той разпределя процеса към дяла, който е най-големият достатъчно свободно наличен дял в основната памет.
- Next Fit: Той е най-вече подобен на първия Fit, но този Fit търси първия достатъчен дял от последната точка на разпределение.
Какво е пейджинг?
Пейджингът е механизъм за съхранение, който позволява на ОС да извлича процеси от вторичното хранилище в основната памет под формата на страници. В метода Paging основната памет е разделена на малки блокове с фиксиран размер на физическата памет, която се нарича кадри. Размерът на рамката трябва да бъде същият като този на страница, за да се използва максимално основната памет и да се избегне външно фрагментиране. Пейджингът се използва за по-бърз достъп до данни и е логична концепция.
Какво е фрагментация?
Процесите се съхраняват и премахват от паметта, което създава свободно пространство в паметта, което е твърде малко за използване от други процеси.
След понякога, че процесите, които не могат да разпределят към блокове памет, тъй като неговият малък размер и блоковете памет винаги остават неизползвани, се нарича фрагментация. Този тип проблеми се случват по време на динамична система за разпределение на паметта, когато свободните блокове са доста малки, така че не е в състояние да изпълни нито една заявка.
Два типа методи за фрагментация са:
- Външна фрагментация
- Вътрешна фрагментация
- Външната фрагментация може да бъде намалена чрез пренареждане на съдържанието на паметта, за да се постави цялата свободна памет заедно в един блок.
- Вътрешната фрагментация може да бъде намалена чрез присвояване на най-малкия дял, който все още е достатъчно добър, за да извърши целия процес.
Какво е сегментиране?
Методът на сегментиране работи почти подобно на пейджинга. Единствената разлика между двете е, че сегментите са с променлива дължина, докато при метода за пейджинг страниците винаги са с фиксиран размер.
Програмен сегмент включва основната функция на програмата, структурите от данни, полезните функции и др. ОС поддържа таблица на сегментната карта за всички процеси. Той също така включва списък с безплатни блокове памет заедно с неговия размер, номера на сегменти и местоположенията му в основната памет или виртуалната памет.
Какво е динамично зареждане?
Динамичното зареждане е рутина на програма, която не се зарежда, докато програмата не я извика. Всички подпрограми трябва да се съдържат на диск в преместваем формат за зареждане. Основната програма ще бъде заредена в паметта и ще бъде изпълнена. Динамичното зареждане също осигурява по-добро използване на пространството в паметта.
Какво е динамично свързване?
Свързването е метод, който помага на ОС да събира и обединява различни модули от код и данни в един изпълним файл. Файлът може да бъде зареден в паметта и изпълнен. OS може да свърже библиотеки на системно ниво в програма, която комбинира библиотеките по време на зареждане. В метода за динамично свързване библиотеките са свързани по време на изпълнение, така че размерът на програмния код може да остане малък.
Разлика между статично и динамично зареждане
Статично зареждане | Динамично зареждане |
Статичното зареждане се използва, когато искате да заредите статично програмата си. Тогава по време на компилацията цялата програма ще бъде свързана и компилирана без нужда от външен модул или програмна зависимост. | В динамично заредена програма ще бъдат предоставени препратки и зареждането ще бъде извършено по време на изпълнението. |
По време на зареждане цялата програма се зарежда в паметта и започва нейното изпълнение. | Подпрограмите на библиотеката се зареждат в паметта само когато са необходими в програмата. |
Разлика между статично и динамично свързване
Ето основните разлики между статичното и динамичното свързване:
Статично свързване | Динамично свързване |
Статичното свързване се използва за комбиниране на всички други модули, които се изискват от програмата, в един изпълним код. Това помага на операционната система да предотврати всякаква зависимост по време на изпълнение. | Когато се използва динамично свързване, не е необходимо да свързва действителния модул или библиотека с програмата. Вместо него използвайте препратка към динамичния модул, предоставен по време на компилирането и свързването. |
Резюме:
- Управлението на паметта е процесът на контрол и координиране на компютърната памет, присвояване на части, наречени блокове, на различни работещи програми за оптимизиране на цялостната производителност на системата.
- Тя ви позволява да проверите колко памет трябва да бъде разпределена за процеси, които решават кой процесор трябва да получи памет в кой момент.
- В Single Contiguous Allocation всички видове компютърна памет, с изключение на малка част, запазена за операционната система, са достъпни за едно приложение
- Методът на разпределено разпределение разделя първичната памет на различни дялове на паметта, което е предимно съседни области на паметта
- Методът за странично управление на паметта разделя основната памет на компютъра на единици с фиксиран размер, известни като рамки на страници
- Сегментираната памет е единственият метод за управление на паметта, който не предоставя на програмата на потребителя линейно и непрекъснато адресно пространство.
- Размяната е метод, при който процесът трябва да бъде временно заменен от основната памет към резервното хранилище. По-късно той ще бъде върнат в паметта за продължаване на изпълнението.
- Разпределението на паметта е процес, чрез който на компютърните програми се присвоява памет или пространство.
- Пейджингът е механизъм за съхранение, който позволява на ОС да извлича процеси от вторичното хранилище в основната памет под формата на страници.
- Фрагментацията се отнася до състоянието на диска, при което файловете са разделени на части, разпръснати около диска.
- Методът на сегментиране работи почти подобно на пейджинга. Единствената разлика между двете е, че сегментите са с променлива дължина, докато при метода за пейджинг страниците винаги са с фиксиран размер.
- Динамичното зареждане е рутина на програма, която не се зарежда, докато програмата не я извика.
- Свързването е метод, който помага на ОС да събира и обединява различни модули от код и данни в един изпълним файл.