В тази статия ще разберем подробно управлението на паметта.
Какво имате предвид под управление на паметта?
Паметта е важната част от компютъра, която се използва за съхраняване на данни. Неговото управление е критично за компютърната система, тъй като обемът на наличната основна памет в компютърната система е много ограничен. По всяко време много процеси се конкурират за него. Освен това, за да се увеличи производителността, няколко процеса се изпълняват едновременно. За целта трябва да поддържаме няколко процеса в основната памет, така че е още по-важно да ги управляваме ефективно.
Роля на управлението на паметта
Следват важните роли на управлението на паметта в компютърна система:
- Мениджърът на паметта се използва за проследяване на състоянието на местата в паметта, независимо дали е свободна или разпределена. Той адресира първичната памет чрез предоставяне на абстракции, така че софтуерът да възприема, че за него е разпределена голяма памет.
- Мениджърът на паметта позволява на компютри с малко количество основна памет да изпълняват програми, по-големи от размера или обема на наличната памет. Той прави това, като премества информация напред и назад между първичната памет и вторичната памет, като използва концепцията за размяна.
- Мениджърът на паметта е отговорен за защитата на паметта, разпределена за всеки процес, от повреда от друг процес. Ако това не е осигурено, тогава системата може да прояви непредсказуемо поведение.
- Мениджърите на паметта трябва да позволяват споделяне на пространство в паметта между процесите. По този начин две програми могат да се намират на едно и също място в паметта, но в различно време.
Техники за управление на паметта:
Техниките за управление на паметта могат да бъдат класифицирани в следните основни категории:
- Схеми за управление на непрекъсната памет
- Схеми за управление на несвързана памет
Схеми за управление на непрекъсната памет:
В схема за управление на непрекъсната памет всяка програма заема единичен непрекъснат блок от места за съхранение, т.е. набор от места в паметта с последователни адреси.
c програми
Схеми за управление на единична непрекъсната памет:
Схемата за управление на единична непрекъсната памет е най-простата схема за управление на паметта, използвана в най-ранното поколение компютърни системи. В тази схема основната памет е разделена на две съседни области или дялове. Операционните системи се намират постоянно в един дял, обикновено в долната памет, а потребителският процес се зарежда в другия дял.
Предимства на схемите за управление на единична непрекъсната памет:
- Лесен за изпълнение.
- Лесен за управление и дизайн.
- В схема за управление на единична непрекъсната памет, след като процесът бъде зареден, му се дава пълно време на процесора и никой друг процесор няма да го прекъсне.
Недостатъци на схемите за управление на единична непрекъсната памет:
- Загуба на пространство в паметта поради неизползвана памет, тъй като е малко вероятно процесът да използва цялото налично пространство в паметта.
- Централният процесор остава неактивен, чакайки дискът да зареди двоичното изображение в основната памет.
- Не може да се изпълни, ако програмата е твърде голяма, за да побере цялото налично пространство на основната памет.
- Не поддържа мултипрограмиране, т.е. не може да работи с няколко програми едновременно.
Множество дялове:
Схемата за единично управление на непрекъсната памет е неефективна, тъй като ограничава компютрите да изпълняват само една програма наведнъж, което води до загуба на пространство в паметта и процесорно време. Проблемът с неефективното използване на процесора може да бъде преодолян чрез мултипрограмиране, което позволява едновременното изпълнение на повече от една програма. За да превключвате между два процеса, операционните системи трябва да заредят и двата процеса в основната памет. Операционната система трябва да раздели наличната основна памет на множество части, за да зареди множество процеси в основната памет. По този начин множество процеси могат да се намират в основната памет едновременно.
Множествените схеми за разделяне могат да бъдат два вида:
как да изтеглите видео от youtube vlc
- Фиксирано разделяне
- Динамично разделяне
Фиксирано разделяне
Основната памет е разделена на няколко дяла с фиксиран размер в схема за управление на паметта с фиксиран дял или статично разделяне. Тези прегради могат да бъдат с еднакъв размер или различни размери. Всеки дял може да съдържа един процес. Броят на дяловете определя степента на мултипрограмиране, т.е. максималния брой процеси в паметта. Тези дялове се правят по време на генерирането на системата и остават фиксирани след това.
Предимства на схемите за управление на паметта с фиксирано разделяне:
- Лесен за изпълнение.
- Лесен за управление и дизайн.
Недостатъци на схемите за управление на паметта с фиксирано разделяне:
- Тази схема страда от вътрешна фрагментация.
- Броят на дяловете се определя по време на генериране на системата.
Динамично разделяне
Динамичното разделяне е предназначено да преодолее проблемите на фиксирана схема за разделяне. В схема за динамично разделяне всеки процес заема само толкова памет, колкото им е необходима, когато се зарежда за обработка. Заявените процеси се разпределят в памет, докато цялата физическа памет не бъде изчерпана или оставащото пространство не е достатъчно, за да задържи искащия процес. В тази схема използваните дялове са с променлив размер и броят на дяловете не е дефиниран по време на генериране на системата.
Предимства на схемите за управление на паметта с динамично разделяне:
- Лесен за изпълнение.
- Лесен за управление и дизайн.
Недостатъци на схемите за управление на паметта с динамично разделяне:
- Тази схема също страда от вътрешна фрагментация.
- Броят на дяловете се определя по време на сегментирането на системата.
Схеми за управление на несвързана памет:
В схема за управление на несвързана памет програмата се разделя на различни блокове и се зарежда в различни части на паметта, които не е задължително да са съседни една на друга. Тази схема може да бъде класифицирана в зависимост от размера на блоковете и дали блоковете се намират в основната памет или не.
Какво е пейджинг?
Пейджингът е техника, която елиминира изискванията за непрекъснато разпределение на основната памет. При това основната памет е разделена на блокове физическа памет с фиксиран размер, наречени рамки. Размерът на рамката трябва да бъде същият като този на страницата, за да се увеличи максимално основната памет и да се избегне външна фрагментация.
покажи на потребителите mysql
Предимства на пейджинг:
- Страниците намаляват външната фрагментация.
- Лесен за изпълнение.
- Ефективна памет.
- Благодарение на еднаквия размер на рамките, смяната става много лесна.
- Използва се за по-бърз достъп до данни.
Какво е сегментиране?
Сегментирането е техника, която елиминира изискванията за непрекъснато разпределение на основната памет. При това основната памет е разделена на блокове с променлив размер от физическа памет, наречени сегменти. Базира се на начина, по който програмистът следва да структурира своите програми. Със сегментираното разпределение на паметта всяко задание се разделя на няколко сегмента с различни размери, по един за всеки модул. Функции, подпрограми, стек, масив и т.н. са примери за такива модули.