Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsiya_10.docx
Скачиваний:
5
Добавлен:
05.09.2019
Размер:
2 Mб
Скачать

Лекція №10 Управління пам'яттю

  1. Основні поняття і вимоги до управління пам'яттю

    1. Переміщення

    2. Захист

    3. Спільне використання

    4. Типи адрес

  2. Розподіл пам'яті без використання дискового простору

    1. Розподіл пам'яті фіксованими розділами

    2. Динамічний розподіл пам'яті

    3. Переміщувані розділи

    4. Система двійників

  3. Розподіл пам'яті з використанням дискового простору

    1. Поняття віртуальної пам'яті

    2. Сторінковий розподіл

    3. Сегментний розподіл

    4. Сторінково-сегментний розподіл

    5. Стопінг

    6. Стратегії управління сторінковою пам'яттю

  4. Основні алгоритми заміщення сторінок

    1. Оптимальний алгоритм (OPT)

    2. Виштовхування сторінки, яка найдовше не використовувалася (LRU)

    3. Першим увійшов - першим вийшов (FIFO)

    4. Часовий алгоритм

    5. Буферизація сторінок

    6. Стратегія заміщення і розмір кешу

Пам'ять є найважливішим ресурсом, що вимагає ретельного управління з боку мультипрограммной операційної системи. Розподілу підлягає вся оперативна пам'ять, не зайнята операційною системою. Зазвичай ОС розташовується в самих молодших адресах, однак може займати і самі старші адреси. Функціями ОС по управлінню пам'яттю є:

- Відстеження вільної і зайнятої пам'яті;

- Виділення пам'яті процесам і звільнення пам'яті при завершенні процесів;

- Витіснення процесів з оперативної пам'яті на диск, коли розміри основної пам'яті не достатні для розміщення в ній всіх процесів, і повернення їх в оперативну пам'ять, коли в ній звільняється місце;

- Настроювання адрес програми на конкретну область фізичної пам'яті.

10.1. Основні поняття і вимоги до управління пам'яттю

При розгляді різних механізмів і стратегій, які пов'язані з управлінням пам'яттю, корисно розуміти вимоги, яким вони повинні задовольняти.

10.1.1. Переміщення

У многозадачной системі доступна основна пам'ять розподіляється між багатьма процесами. Зазвичай програміст не знає, які програми будуть резидентно перебувати в основній пам'яті, під час виконання його програми. Крім того, для максимального завантаження процесора бажано мати великий пул (буфер) готових до виконання процесів. Для цього необхідно завантажувати і вивантажувати активні процеси з основної пам'яті. Вимога, щоб вивантажених з пам'яті програма була знову завантажена в одне і те ж місце, де вона була раніше, було б великим обмеженням. Тому вкрай бажано, щоб програма могла бути переміщена в іншу ділянку пам'яті.

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

10.1.2. Захист

Кожен процес має бути захищений від небажаного впливу інших процесів, випадкового або навмисного. Тому, код інших процесів не повинен мати можливості без дозволу звертатися до пам'яті даного процесу. Під час роботи програми необхідно виконати перевірку всіх звернень до пам'яті, які генеруються процесом, щоб переконатися, що всі вони - тільки до пам'яті, яка виділена даному процесу. Зазвичай, механізми підтримки переміщень забезпечують і підтримку захисту. Вимоги щодо захисту пам'яті повинні виконуватися на рівні процесора (апаратного забезпечення), а не на рівні ОС.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]