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

1.2 Створення процесу

При написанні програм іноді виникає потреба у запуску із своєї програми іншої програми. В середовищі Windows це можна зробити за допомогою функції CreateProcess (Див. додаток 3). Така програма називається процесом.

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

Процес має декілька об’єктів: адресний простір, виконуваний модуль чи модулі, та все, що ці модулі створюють та відкривають. Як мінімум, процес повинен складатися з виконуваного модуля, власного адресного простору та потоку. Кожен процес має щонайменше один потік. Потік - це виконувана черга. Коли Windows вперше створює процес, то створюється тільки один потік для процесу.

1.3 Створення потоку

Коли Windows отримує команду для створення процесу, вона створює власний адресний простір для процесу, а потім завантажує виконуваний файл у цей простір. Після цього Windows створює основний потік для процесу.

Потік (thread) – це функція, яка виконується паралельно з батьківською програмою (програмою, котра створила потік). Потік виконується в тому самому батьківському процесі, тому він має доступ до всіх ресурсів процесу, глобальних змінних, дескрипторів і ін. Крім того, кожен потік має свій власний стек (тому локальні змінні в кожному потоці є приватними), власний набір регістрів (тому коли Windows завантажує новий потік, то попередній зберігає значення регістрів і відновлює їх після завершення породженого потоку).

Потоки можна розділити на дві категорії:

  1. Потік інтерфейсу користувача: потік такого виду створює своє власне вікно, тому він отримує віконні повідомлення. Потік може відповідати користувачеві з допомогою свого власного вікна.

  2. Активний потік. Такий тип потоку не створює вікна, тому він не може приймати повідомлень від Windows. Такий потік існує тільки для того, щоб виконувати визначене для нього завдання у фоновому режимі.

При використанні великої кількості потоків потрібно створити один потік, котрий буде займатися інтерфейсом користувача, а інші будуть виконуватись у фоновому режимі. Так у даному випадку основний потік буде керуючим, а інші потоки – підлеглими.

Для того щоб створити власний потік потрібно використати функцію CreateThread (Див. Додаток 5).

Функції CreateProcess і CreateThread завершує кінцева функція ExitProcess при виході із програми. Якщо існує потреба у знищенні процесу або потоку не виходячи із програми, то використовують функції TerminateProcess і TerminateThread. Перевірити чи процес є досі активним (виконується) можна за допомогою функції GetExitCodeProcess.

2. Хід роботи

  1. Ознайомитись з основними теоретичними відомостями даної лабораторної роботи.

  2. Ознайомитись з приведеними в основних теоретичних відомостях прикладами програм.

  3. Ознайомитись з додатковими джерелами, приведеними в п.6 (Література).

  4. Затвердити номер індивідуального завдання у викладача.

  5. Виконати завдання згідно з номером.

3. Зміст звіту

Звіт повинен містити:

  • титульну сторінку;

  • мету роботи;

  • завдання, робочий варіант тексту програми, результат виконання програми;

  • короткі висновки по проведеній роботі.

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