Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
740.35 Кб
Скачать

2.2. Взаємодія між процесами

Процесам часто буває необхідно взаємодіяти між собою.

Наприклад, в конвеєрі ядра вихідні дані першого процесу повинні передаватися

другому процесу і далі по ланцюжку. Тому на перший план виходить завдання

правильно організувати взаємодію між процесами, по можливості не

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

взаємодії між процесами (InterProcess Communication, IPC).

Якщо не вдаватися в подробиці, проблема має три аспекти. Про перший ми вже

згадали - це передача інформації від одного процесу до іншого. Другий

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

процесу не «перетнуться» в критичних ситуаціях (уявіть собі два

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

Третій стосується узгодження дій процесів: якщо процес А відповідає за

поставку даних, а процес В за їх виведення на друк, то процес В повинен чекати,

не починаючи друкувати, поки не надійдуть дані від процесу А. Всі три аспекти

розглядаються в цьому розділі.

Не можна не згадати про те, що два з перерахованих аспектів проблеми взаємодії

взаємодії в рівній мірі відносяться до програмних потокам. Перший -

передача інформації - не представляє великої складності, якщо всі програмні

потоки знаходяться в єдиному адресному просторі.

Розділ 5

Файлові системи

Всім комп'ютерним програмам потрібно зберігати і отримувати інформацію.

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

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

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

Для вирішення проблеми необхідно відокремити інформацію від процесу.

Таким чином, до пристроїв довготривалого зберігання інформації пред'являються три важливі вимоги:

1  пристрої повинні забезпечувати зберігання дуже великих обсягів даних;

2  інформація повинна залишатися в цілості після припинення роботи

використовує її процесу;

 3 кілька процесів повинні мати можливість паралельного доступу до

інформації.

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

Процеси можуть у міру потреби читати їх і створювати нові файли.

Інформація, що зберігається в файлах, повинна бути стійкою (persistent), тобто на неї

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

З точки зору користувача, найважливіше в файлової системи - це механізм

взаємодії з нею, тобто користувачеві важливо знати, як забезпечити іменування і захист файлів, як виконувати операції з файлами і т. д. Деталі внутрішнього устрою, вкрай важливі для розробників файлової системи, представляють для користувача набагато менший інтерес. Наприклад, користувачеві не важливо, що застосовується для відстеження вільних і зайнятих блоків диска, списки або бітові карти, також йому зовсім не цікаво, скільки фізичних секторів в логічному блоці. З цієї причини ми розбили голову на кілька частин. Перші два розділи присвячені користувача інтерфейсу файлів і каталогів. У наступних розділах ми розглянемо способи реалізації файлової системи. Після ознайомлення з механізмами безпеки і захисту ми завершимо главу описом файлової системи MINIX 3.

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