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

1.3. Анатомія процесу

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

ч­ні змінні процесу. Розділ стеків містить локально створювані змінні і параме­три, які передаються функціям. Оскільки процес може викликати як системні функції, так і функції, визначені користувачем, в стековому розділі підтриму­ю­ться два стеки: стек користувача і стек ядра. При виклику функції створюєть­ся стеків фрейм функції, якій розміщується в стек користувача або стек ядра в залежності від того, в якому режимі перебуває процес в даний час: в користу­ва­цький або привілейований (режим ядра). Стеків розділ має тенденцію рости в напрямі розділу даних. При виході з функції її стеків фрейм виймається з стеку. Розділи коду, даних і стеків, а також блок керування процесом створюють час­тину того, з чого складається образ процесу (process image).

Адресний простір процесу віртуальний. Застосування віртуальної пам’­яті дозволяє відокремити адреси, що використовуються в біжучому процесі, від адрес, реально доступних у внутрішній пам’яті. Тим самим значно збільшуєть­ся задіяний адресний простір пам’яті у порівнянні з реально доступними адре­са­ми. Розділи віртуального адресного простору процесу являють собою суміжні блоки пам’яті. Кожний такий розділ і фізичний адресний простір розділені на ділянки пам’яті, які називаються сторінками. У кожної сторінки є унікальний номер сторінкового блоку (page frame number). В якості індексу для входу в та­б­лиці сторінкових блоків (page frame table) використовують номер віртуального сторінкового блоку. Кожен елемент таблиці сторінкових блоків містить номер фізичного сторінкового блоку, що дозволяє встановити відповідність між вірту­альними і фізичними сторінковими блоками. Така відповідність показана на рис. 2. Як бачите, віртуальний адресний простір неперервний, але відповідність яка встановлюється між фізичним сторінками не є впорядкованою. Іншими словами, при послідовних віртуальних адресах відповідні їм фізичні сторінки не будуть послідовними.

Не дивлячись на те що віртуальний адресний простір кожного процесу захищено, тобто прийнято заходи по запобіганню доступу до нього зі сторони іншого процесу, текстовий розділ процесу може спільно використовуватися де­кількома процесами. На рис. 2 також показано, як два процеси можуть поділяти один і той же програмний код. При цьому в елементах таблиць сторінкових блоків обох процесів зберігається один і той же номер фізичного сторінкового блоку. Як показано на рис. 2, віртуальний сторінковий блок з номером 0 проце­су А відповідає фізичному сторінковому блоку з номером 5, що також справед­ливо і для віртуального сторінкового блоку з номером 2 процесу В.

Щ об операційна система могла керувати всіма процесами, які зберігаються у внутрішній пам’яті, вона створює і підтримує таблиці процесів (process table). В дійсності операційна система містить окремі таблиці для всіх об’єктів, якими вона керує. Необхідно розуміти, що операційна система керує не тільки процесами, але і всіма ресурсами комп’ютера, тобто пристроями вво­ду-виводу, пам’яттю і файлами. Частина пам’яті, пристроїв і файлів керуються від імені користувацьких процесів. Ця інформація відображається в БУП-бло­ках як ресурси, виділені процесу. Таблиця процесів повинна мати відповідну структуру для кожного образу процесу в пам’яті. Кожна така структура містить ідентифікатори (id) самого процесу і батьківського процесу, ідентифікатори реального і ефективного користувачів, ідентифікатори груп, список вивішених сигналів, місцезнаходження текстового і стекового розділів, а також біжучий стан процесу. Якщо операційній системі необхідний доступ до певного ресурсу, в таблиці процесів розшукується інформація про нього, а потім в пам’яті розмі­щується його образ (рис. 3).

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