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

Керування процесами і потоками. Керування процесами у Windows. Складові елементи процесу. Структури даних процесу.

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

Адресний простір процесу складається з набору адрес віртуальної пам'яті, які він може використати. Ці адреси можуть бути пов'язані з оперативною па­ м'яттю, а можуть — з відображеними у пам'ять ресурсами. Адресний простір процесу недоступний іншим процесам.

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

Процес містить деяку стартову інформацію для потоків, які в ньому створю­ ватимуться. Наприклад, це інформація про базовий пріоритет і прив'язання до процесора.

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

Структури даних процесу Розглянемо структури даних, пов'язані із процесом у Windows ХР. Зазначимо, що у роботі з цими структурами система використовує об'єктну модель. Для ви­ конавчої системи Windows ХР кожний процес зображається об'єктом-процесом виконавчої системи (executive process object); його також називають керуючим блоком процесу (executive process block, EPROCESS). Для ядра системи процес зображається об'єктом-процесом ядра (kernel process object), його також назива­ ють блоком процесу ядра (process kernel block, KPROCESS). У режимі користувача доступним є блок оточення процесу (process environ­ ment block, РЕВ), що перебуває в адресному просторі цього процесу. Розглянемо структури даних процесу докладніше. Зазначимо, що EPROCESS і KPROCESS, на відміну від РЕВ, доступні тільки із привілейованого режиму. Керуючий блок процесу містить такі основні елементи:

блок процесу ядра (KPROCESS); • ідентифікаційну інформацію; • інформацію про адресний простір процесу • інформацію про ресурси, доступні процесу, та обмеження на використання цих ресурсів; • блок оточення процесу (РЕВ); • інформацію для підсистеми безпеки. До ідентифікаційної інформації належать: • ідентифікатор процесу (pid);• ідентифікатор процесу, що створив цей процес (незважаючи на те, що Win­ dows ХР не підтримує відносини «предок-нащадок» автоматично, вони мо­ жуть бути задані програмним шляхом, тобто нащадок може сам призначити собі предка, задавши цей ідентифікатор); • ім'я завантаженого програмного файла. Блок процесу ядра містить усю інформацію, що належить до потоків цього процесу: • покажчик на ланцюжок блоків потоків ядра, де кожний блок відповідає потоку;• базову інформацію, необхідну ядру системи для планування потоків (ця ін­ формація буде успадкована потоками, пов'язаними із цим процесом; її буде розглянуто в розділі 4). Блок оточення процесу містить інформацію про процес, яка призначена для доступу з режиму користувача: • початкову адресу ділянки пам'яті, куди завантажився програмний файл; • покажчик на динамічну ділянку пам'яті, доступну процесу. Цю інформацію може використати завантажувач програм або процес підсисте­ ми Win32.

Реалізація файлових систем. Інтерфейс віртуальної файлової системи vfs.

Основною метою VFS є забезпечення можливості роботи ОС із максимально ши¬роким набором файлових систем. Цей рівень програмного забезпечення перетво¬рює стандартні системні виклики UNIX для керування файлами у виклики функ¬цій низького рівня, реалізованих розробником конкретної файлової системи. Рівень VFS забезпечує доступ через стандартні файлові системні виклики до будь-якого рівня програмного забезпечення, що реалізує інтерфейс файлової системи. Це програмне забезпечення може взагалі не працювати із дисковою файловою системою, а, наприклад, генерувати всю інформацію «на льоту». Програмні модулі, що реалізують інтерфейс файлової системи, називаються модулями під¬тримки файлових систем.

Файлові системи, підтримувані VFS, можуть бути розділені на три основні категорії.

Дискові є файловими системами в їхньому традиційному розумінні (розташова¬ні на диску). Вони можуть мати будь-яку внутрішню структуру, важливо тіль¬ки, щоб відповідне програмне забезпечення реалізовувано інтерфейс файлової системи. Серед дискових файлових систем, які підтримує VFS, можна виділити розроблені спеціально для Linux (ext2fs, ext3fs, ReiserFS); Windows ХР (лінія FAT, NTFS); інших версій UNIX (FFS, XFS); CD-ROM (IS09660).

Мережні реалізують прозорий доступ до файлів на інших комп’ютерах через мережу. До них належать NFS (забезпечує доступ до інших UNIX-серверів) і SMB (виконує аналогічні функції для серверів мережі Microsoft).

Спеціальні або віртуальні відображають у вигляді файлової системи те, що на-справді файловою системою не є. Вони не керують дисковим простором ні ло-кально, ні віддалено. Прикладом віртуальної файлової системи є файлова сис¬тема /ргос, про яку йтиметься у розділі 13.3.

. Базова архітектура VFS визначає три основних об’єктних типи.

Об'єкт індексного дескриптора (об’єкт inode, inode object) описує набір атри¬бутів і методів, за допомогою яких відображують файл на рівні файлової сис¬теми. Його назва свідчить про те, що більшість файлових систем в UNIX використовує індексоване розміщення даних; насправді цей об’єкт може ін- капсулювати будь-яку структуру фізичного розміщення файла на диску.

Об’єкт відкритого файла (об’єкт file, file object) відображає відкритий файл на рівні процесу.

об’єкт файлової системи (filesystem object) відображає всю файлову систему; у Linux його називають об’єктом суперблока (superblock object).

ЕКЗАМЕНАЦІЙНИЙ БІЛЕТ № 9

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