"Керування оперативною памя’ттю"
Завантажити презентаціюПрезентація по слайдам:
Лекція 7. Керування оперативною памя’ттю. Викладач: Карчевська Ольга Ігорівна, асистент кафедри інформаційних систем та технологій, Інститут підприємництва та перспективних технологій Національного університету “Львівська політехніка”
Лекція 7. Керування оперативною памя’ттю. План лекції. 1. Ієрархія пам’яті. 2. Функції операційної системи по керуванню пам’яттю. 3. Логічні та фізичні адреси. 4. Способи розподілу пам’яті.
1. Ієрархія пам’яті магнітний диск основна пам’ять кеш регістри типи пам’яті приблизна швидкість доступу приблизні обсяги 1 нс 2 нс 10 нс 10 мс 1 Кбайт 4-15 Мбайт 1 ГБ – 8 ГБ 250 ГБ –2000 ГБ Пам’ять призначена для зберігання інформації, з якою працює процесор. Найкращим є варіант, коли доступ до пам’яті є максимально швидким. Але така пам’ять є дуже дорогою. Тому в комп’ютері використовують різні види пам’яті; при цьому дані, котрі використовуються часто, розміщують у швидшій пам’яті. Система пам’яті складається з ієрархії рівнів, котру можна зобразити наступним чином:
2. Функції операційної системи по керуванню пам’яттю Оперативна пам’ять – це набір комірок у запам’ятовувальному пристрої, кожна з котрих має свою адресу. Основними функціями операційної системи з управління пам’яттю є: облік вільної та зайнятої пам’яті; виділення пам’яті процесам та її вивільнення; вивантаження даних та коду процесів на диск у файл підкачки, у випадку нестачі оперативної пам’яті; переведення логічних адрес у фізичні адреси пам’яті; дефрагментація пам’яті.
3. Логічні та фізичні адреси У процесі роботи з пам’яттю використовуються наступні засоби: Символьна змінна – ідентифікатор об’єкту у мові програмування. Логічна адреса – адреса, яку генерує програма. Фізична адреса – адреса, якою оперує мікросхема пам‘яті. Схема перетворення символьних змінних у фізичні адреси пам’яті: Символьні імена надає об’єктам програміст при написанні програми. Транслятор в процесі переведення програми у машинний код генерує логічну адресу пам‘яті, з котрої потрібно зчитати наступну команду чи дані. (цю операцію виконує система програмування) Пристрій керування пам’яттю перетворює цю адресу у фізичну адресу оперативної пам’яті, де розміщено дані. (цю операцію виконує операційна система) Транслятор Пристрій керування пам’яттю (MMU) Логічна адреса Оперативна пам’ять Фізична адреса Програма Символьна змінна
4. Способи розподілу пам’яті 1. Розподіл пам’яті без використання зовнішньої пам’яті: Розподіл фіксованими розділами Розподіл змінними розділами Розподіл переміщуваними розділами 2. Розподіл пам’яті з використанням зовнішньої пам’яті: Сегментація пам’яті Сторінкова організація пам’яті Сторінково-сегментна організація пам’яті
Розподіл пам’яті без використання зовнішньої пам’яті Розподіл пам’яті фіксованими розділами передбачає поділ оперативної пам’яті на розділи фіксованої довжини. У кожен з цих розділів поміщається програма при її завантаженні. Переваги: простота реалізації. Недоліки: можна завантажити тільки обмежену кількість програм, котра дорівнює кількості розділів; неефективний розподіл пам’яті у випадку розміщення невеликої програми у великому розділі. Розподіл пам’яті змінними розділами. В такому випадку пам’ять не поділяється завчасно на розділи. Новий розділ виділяється при завантаженні нової програми відповідно до її обсягу. Якщо розділу потрібного обсягу не існує, то програма відправляється у чергу та чекає, доки інша задача не звільнить потрібний розділ. Переваги: гнучкість в процесі розподілу пам’яті. Недоліки: фрагментація пам’яті внаслідок інтенсивного завантаження/вивантаження програм. Розподіл переміщуваними розділами. Аналогічний до розподілу зі змінними розділами. Відрізняється тим, що або після вивантаження чергової задачі, або у випадку відсутності місця для нової задачі, здійснюється переміщення усіх зайнятих розділів у бік старших чи молодших адрес (стиснення). Переваги: ефективний розподіл пам’яті. Недоліки: значні витрати часу на процедуру стистення.
Розподіл пам’яті з використанням зовнішньої пам’яті (технології віртуальної пам’яті) Віртуальна пам’ять – це сукупність програмно-апаратних засобів, котрі дозволяють оперувати більшим обсягом пам’яті, ніж є наявної фізичної пам‘яті. Використання віртуальної пам’яті дозволяє вирішити наступні задачі: Виконувати процеси, котрим потрібно більше оперативної пам’яті, ніж встановлено на комп’ютері; Виділяти додаткову пам’ять процесу під час його виконання; Перетворювати логічні адреси у фізичні адреси пам’яті. Проблеми реалізації віртуальної пам’яті: Ефективність реалізації (механізм вибору найбільш використовуваних даних) Фрагментація пам’яті
Сегментація пам’яті Суть: адресний простір процесу поділяється на логічні сегменти різної довжини, у котрих можуть міститися окремі дані чи блоки коду (сегмент даних, сегмент коду, сегмент стеку, тощо. Принцип формування адрес: Логічна адреса = номер сегменту + зміщення всередині сегменту Фізична адреса = адреса сегменту + зміщення всередині сегменту. Під час завантаження програми у пам’ять створюється таблиця дескрипторів сегментів процесу, кожен елемент якої відповідає одному сегменту та складається з: - базової адреси сегменту; - значення межі (довжини сегменту); - прав доступу до цього фрагменту пам’яті. Переваги: можливість зберігати дані різної природи (наприклад, потрібно розмежувати доступ до різних сегментів програми); окремі сегменти можуть використовуватись різними процесорами; Недоліки: повільне перетворення адрес; необхідність керування блоками пам’яті змінної довжини; зовнішня фрагментація пам’яті (між сегментами можуть бути вільні ділянки пам’яті). Приклад: OS/2 ранніх версій.
Сегментація пам’яті Перетворення адреси у разі сегментації Логічна адреса 2 128 Номер сегмента База 0х1000 Ліміт 512 Права доступу rw 0 1 2 ? Перевірка, чи зсув < ліміт і перевірка прав ? + помилка доступу ні Основна пам’ять зсув 128 сегмент 0х1000 0х1000+512 так зсув 0х1000+128 Таблиця сегментів
Логічний і фізичний адресний простір у разі сегментації Логічна пам’ять Фізична (основна) пам’ять
Сторінкова організація пам’яті Суть: фізичну пам’ять розбивають на блоки однакової фіксованої довжини – сторінкові блоки, логічну пам’ять розбивають на блоки такої ж довжини - сторінки. Принцип формування адрес: Логічна адреса = номер сторінки + зміщення Фізична адреса = номер_блоку * 2ⁿ + зміщення. (2ⁿ - розмір сторінки) Під час завантаження програми у пам’ять створюється таблиця сторінок, кожен елемент якої відповідає одній сторінці та складається з: - номеру сторінки; - базової адреси сторінкового блоку; - прав доступу до цього фрагменту пам’яті. Переваги: спрощення розподілу та звільнення пам’яті, оскільки всі сегменти рівноправні; Спрощення операцій з диском (диск теж можна розбити на фіксовані ділянки); Недоліки: таблиці сторінок значно більші за розміром, ніж таблиці сегментів; внутрішня фрагментація пам’яті (в середині сторінок можуть бути вільні ділянки пам’яті). Приклад: UNIX, Windows.
Сторінкова організація пам’яті Перетворення адреси у разі сторінкової організації пам’яті Логічна адреса 2 128 Номер сегмента Номер стор. блоку 1 Права доступу rw 0 1 2 ? Перевірка прав. ? + помилка доступу Немає прав Основна пам’ять зсув 128 Сторінковий блок 0х1000 0х1000+512 Права є зсув 0х1000+128 Таблиця сторінок n біт + Визначення фізичної адреси за формулою: номер_блоку * 2ⁿ + зсув. Номер сторінки Фізичні адреси
Логічний і фізичний адресний простір у разі сторінкової організації пам’яті Логічна пам’ять Фізична (основна) пам’ять Сторінка 1 3 Сторінка 3 Сторінка 0 Сторінка 0 Сторінка 2 4 6 Сторінка 2 Таблиця сторінок Сторінка 3 0 2 1 Номер фрейму Номер сторінки 1 3 Сторінка 1 Номер фрейму 0 1 2 4 5 6 3
Сторінково-сегментна організація пам’яті Суть: здійснюється комбінація сторінкової та сегментної організації пам’яті, віртуальна пам’ять поділяється на сегменти, а сегменти – на сторінки. Етапи перетворення логічної адреси у фізичну: У програмі задають логічну адресу з використанням сегменту і зміщення, Логічну адресу перетворюють у віртуальну адресу за правилами сегментації, Віртуальну адресу перетворюють за правилами, заданими для сторінкової організації.
Висновки: 1. Основними видами пам’яті є: регістри, кеш, оперативна пам’ять, жорсткий диск. 2. Оперативна пам’ять – це набір комірок у запам’ятовувальному пристрої, кожна з котрих має свою адресу. 3. У процесі роботи з пам’яттю використовуються символьні змінні, логічні адреси та фізичні адреси. 4. Виділяють розподіл пам’яті без використання зовнішньої пам’яті та з використанням зовнішньої пам’яті. 5. До методів розподілу пам’яті без використання зовнішньої пам’яті відносять розподіл фіксованими розділами, розподіл змінними розділами, розподіл переміщуваними розділами. 6. До методів розподілу пам’яті використанням зовнішньої пам’яті відносять сегментацію пам’яті, сторінкову організацію пам’яті, сторінково-сегментну організацію пам’яті.
Література: Шеховцов В. А. Операційні системи. – К.: BHV, 2005 . -576 с. Таненбаум. Э. Современные операционные системы.2-е изд. – СПб.: Питер, 2002. – 1040 с.
Схожі презентації
Категорії