- •Тема 2.1 Базові поняття процесів і потоків
- •2.1.1 Процеси і потоки в сучасних ос
- •Моделі процесів і потоків
- •2.1.3 Складові елементи процесів і потоків
- •Тема 2.2 Багатопотоковість та її реалізація
- •2.2.1 Поняття паралелізму
- •Види паралелізму
- •Переваги і недоліки багато потоковості
- •2.2.4 Способи реалізації моделі потоків
- •2.3 Тема Стани процесів
- •2.3.1 Стан процесу
- •2.3.2 Двох -станова модель процесу
- •2.3.3 Пяти-станова модель процесу
- •2.3.4 Процес та його життєвий цикл
- •2.4.1 Керуючі блоки процесів і потоків
- •2.4.2 Образи процесу і потоку.
- •2.5 Тема Перемикання контексту й обробка переривань
- •2.5.1Організація перемикання контексту
- •2.5.2 Обробка переривань
- •2.6 Тема Створення і завершення процесів і потоків
- •2.6.1 Створення процесів
- •2.6.2 Ієрархія процесів
- •2.6.3 Керування адресним простором під час створення процесів
- •2.6.4 Особливості завершення процесів
- •2.6.5 Створення і завершення потоків
- •2.7 Тема Мультипроцесування
- •2.7.1 Підходи реалізації мультипроцесування.
- •7.2.2 Види комп’ютерних систем з використанням декількох центральних процесорів
- •2.8 Тема Види міжпроцесової взаємодії
- •2.8.1.Проблеми міжпроцесової взаємодії
- •2.8.2 Види міжпроцесової взаємодії.
- •2.8.3 Особливості міжпроцесової взаємодії.
- •2.9 Тема Базові механізми міжпроцесової взаємодії
- •2.9.1 Міжпроцесова взаємодія на базі спільної пам'яті.
- •2.9.2 Основи передавання повідомлень.
- •2.10 Тема Керування процесами у Windows xp
- •2.10.1 Складові елементи процесу
- •2.10.2 Структури даних процесу
- •2.10.3 Створення процесів
- •2.10.4.Завершення процесів
- •2.10.5 Програмний інтерфейс керування процесами Win32 арі
- •2.11 Тема Керування потоками у Windows xp
- •2.11.1 Складові елементи потоку
- •2.11.2 Структури даних потоку
- •2.11.3 Створення потоків
- •2.11.4 Особливості програмного інтерфейсу потоків
- •2.11.5 Завершення потоків у Win32 api
- •2.12 Тема Керування процесами та потоками в unix і Linux
- •2.12.1 Керування процесами в unix і Linux
- •Керування потоками в Linux
Моделі процесів і потоків
Максимально можлива кількість процесів (захищених адресних просторів) і потоків, які в них виконуються, може варіюватися в різних системах.
В однозадачних системах є тільки один адресний простір, у якому в кожен момент часу може виконуватися один потік.
У деяких вбудованих системах теж є один адресний простір (один процес), але в ньому дозволене виконання багатьох потоків. У цьому разі можна організовувати паралельні обчислення, але захист даних застосувань не реалізовано.
У системах, подібних до традиційних версій UNIX, допускається наявність багатьох процесів, але в рамках адресного простору процесу виконується тільки один потік. Це традиційна однопотокова модель процесів. Поняття потоку в даній моделі не застосовують, а використовують терміни «перемикання між процесами», «планування виконання процесів», «послідовність команд процесу» тощо (тут під процесом розуміють його єдиний потік).
У більшості сучасних ОС (таких, як лінія Windows XP, сучасні версії UNIX) може бути багато процесів, а в адресному просторі кожного процесу - багато потоків. Ці системи підтримують багато потоковість або реалізують модель потоків. Процес у такій системі називають багато потоковим процесом.
Надалі для позначення послідовності виконуваних команд вживатимемо термін «потік», за винятком ситуацій, коли обговорюватиметься реалізація моделі процесів.
2.1.3 Складові елементи процесів і потоків
До елементів процесу належать:
захищений адресний простір;
дані, спільні для всього процесу (ці дані можуть спільно використовувати всі його потоки);
інформація про використання ресурсів (відкриті файли, мережні з'єднання тощо);
інформація про потоки процесу. Потік містить такі елементи:
стан процесора (набір поточних даних із його регістрів), зокрема лічильник поточної інструкції процесора;
стек потоку (ділянка пам'яті, де перебувають локальні змінні потоку й адреси повернення функцій, що викликані у його коді).
Лекція №5
Тема 2.2 Багатопотоковість та її реалізація
План
1. Поняття паралелізму.
2. Види паралелізму.
3. Переваги і недоліки багатопотоковісті.
4. Способи реалізації моделі потоків.
Мета: Вивчити поняття та види паралелізму. Знати переваги і недоліки багатопотоковісті. Вміти визначати способи реалізації моделі потоків.
2.2.1 Поняття паралелізму
Використання декількох потоків у застосуванні означає внесення в нього паралелізму (concurrency). Паралелізм — це одночасне (з погляду прикладного програміста) виконання дій різними фрагментами коду застосування. Така одночасність може бути реалізована на одному процесорі шляхом перемикання задач (випадок псевдопаралелізму), а може ґрунтуватися на паралельному виконанні коду на декількох процесорах (випадок справжнього паралелізму). Потоки абстрагують цю відмінність, даючи можливість розробляти застосування, які в однопроцесорних системах використовують псевдопаралелізм, а при додаванні процесорів — справжній паралелізм (такі застосування масштабуються зі збільшенням кількості процесорів).
Багатозадачні системи базуються на понятті мультипроцесування та мультипрограмування.
Мультипрограмування – одночасне виконання декількох задач на одному процесорі.
Мультипроцесування - використання декількох процесорів для одночасного виконання задач.
