Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
putanya_do_kkr_i_isputy (1).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
135 Кб
Скачать
☆
  1. Запобігання тупиків за рахунок порушення умов виникнення тупиків

Під час відсутності інформації про майбутні запити єдиний спосіб уникнути взаємоблокування - домогтися

невиконання хоча б однієї з умов роздягнула "Умови виникнення тупиків".

  1. Виявлення тупиків та відновлення після тупиків

Виявлення тупиків

Виявлення взаємоблокування зводиться до фіксації тупикової ситуації й виявленню залучених у неї процесів.

Для цього виробляється перевірка наявності циклічного очікування у випадках, коли виконані перші три умови

виникнення тупика. Методи виявлення активно використають графи розподілу ресурсів.

Розглянемо модельну ситуацію.

· Процес P1 очікує ресурс R1.

· Процес P2 утримує ресурс R2 й очікує ресурс R1.

· Процес P3 утримує ресурс R1 й очікує ресурс R3.

· Процес P4 очікує ресурс R2.

· Процес P5 утримує ресурс R3 й очікує ресурс R2.

  1. Фізична організація пам'яті комп'ютера

Фізична організація пам'яті комп'ютера

Запам'ятовувальні пристрої комп'ютера розділяють, як мінімум, на два рівні: основну (головну, оперативну,

фізичну) і вторинну (зовнішню) пам'ять.

Основна пам'ять являє собою впорядкований масив однобайтових комірок, кожна з яких має свою унікальну

адресу (номер). Процесор витягає команду з основної пам'яті, декодує і виконує її. Для виконання команди можуть

знадобитися обігу ще до декількох комірок основної пам'яті. Звичайно основна пам'ять виготовляється із застосуванням

напівпровідникових технологій і губить свій уміст при відключенні харчування.

Вторинну пам'ять (це головним чином диски) також можна розглядати як одномірний лінійний адресний простір,

що складається з послідовності байтів. На відміну від оперативної пам'яті, вона є енергонезалежної, має істотно більшу

ємність і використається як розширення основної пам'яті

  1. Логічна пам'ять, локальність, зв'язування адрес

Апаратна організація пам'яті у вигляді лінійного набору комірок не відповідає поданням програміста про те, як

організоване зберігання програм і даних. Більшість програм являє собою набір модулів, створених незалежно друг від

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

простір адрес. Однак частіше модулі містяться в різні області пам'яті й використаються по-різному.

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

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

адресація. Сегменти містять процедури, масиви, стек або скалярні величини, але звичайно не містять інформацію

змішаного типу.

Очевидно, спочатку сегменти пам'яті з'явилися у зв'язку з необхідністю усуспільнення процесами фрагментів

програмного коду (текстовий редактор, тригонометричні бібліотеки й т.д.), без чого кожен процес повинен був зберігати у

своєму адресному просторі дублюючу інформацію. Ці окремі ділянки пам'яті, що зберігають інформацію, що система

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

перетворилася у двовимірну. Адреса складається із двох компонентів: номер сегмента, зсув усередині сегмента. Далі

виявилося зручним розміщати в різних сегментах різні компоненти процесу (код програми, дані, стік і т.д.). Попутно

з'ясувалося, що можна контролювати характер роботи з конкретним сегментом, приписавши йому атрибути, наприклад

правий доступу або типи операцій, які дозволяється робити з даними, що зберігаються в сегмент

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