Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПЗ_лекції.docx
Скачиваний:
148
Добавлен:
23.02.2016
Размер:
136.33 Кб
Скачать

8. Уникнення взаємоблокувань шляхом порушення умов їх здійснення

Якщо в системі немає ресурсів, які відданні в одноосібне користування одному процесу, то система не попаде в тупік. Але якщо дозволити двом процесам одночасно друкувати данні на прінтері, то відбудеться змішування інформації. Використовуючи підкачку результуючих даних для друку, декілька процесів можуть одночасно генерувати результуючі дані (спулінг-підкачка). В такій моделі тільки один процес, який фактично вимагає фізичного принтера, є демоном принтера (схована від користувача службова програма, що працює в фоновому режимі). Оскільки ця програма не потребує інших ресурсів, то для прінтера тупіки виключаються.

Якщо процеси, що займають деякі ресурси, вберегти від очікування решти ресурсів, то зникає ситуація взаємоблокування. Один з способів досягнення цієї мети полягає у вимозі: будь-який процес повинен вимагати всі необхідні ресурси до початку роботу. Якщо всі ресурси доступні, то процес отримує все, що йому потрібно; якщо один або декілька ресурсів зайняті, то процесу потрібно чекати.

Хоча є ще такий метод: процес, що потребує ресурсу, повинен спочатку вивільнити всі решту ресурсів.

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

Лекція 6. Основні поняття керування пам’яттю.

1.Однозадачна система без підкачки на диск.

Системи керування пам'яттю розділяють на класи :

  1. Ті, що переміщають процеси між ОП і диском під час їх виконання, тобто здійснюючи підкачку процесів повністю swapping або використовуючи сторінкову підкачку spaging;

  2. Ті, що цього не роблять.

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

Рис. 6.1. Три прості моделі організації пам’яті, при наявності ОС і одного користувацького процесу.

2.Багатозадачність з фіксованими розділами

Рис.6.2.Фіксовані розділи пам’яті з окремими вхідними чергами для кожного

розділу (а), фіксовані розділи пам’яті з однією чергою на вхід (б).

Більшість сучасних систем дозволяють одночасний запуск декількох процесів. Багатозадачність збільшує завантаженість центрального процесора. Найпростіший спосіб досягнення багатозадачності представляє собою простий розподіл пам’яті на N можливо нерівних розділів. Оскільки в даній схемі розміри розділів не змінюються, то увесь простір в розділі який не використовується процесом не використовується.

Недоліком сортування вхідних процесів по окремих чергах є те, що наприклад на рис.6.2. (а) для великого завдання не має черг. Альтернативна схема на рис.6.2. (б). В черзі відшуковується велике завдання і поміщається в пам’ять, а менші завдання ігноруються, тому для них потрібно створювати хоча б один малий розділ. При цьому підході (рис.6.(б)) встановлюється правило: задачу, що має право бути вибраною для обробки, можна пропустити не більше к разів. Після цього її вже не пропускають (використовуються лічильник).