Разделы презентаций


Процеси та потоки

Содержание

Базові поняття процесів і потоків Під процесом (process) або задачею (task) розуміють абстракцію ОС, яка об'єднує все необхідне для виконання однієї програми в певний момент часу.Програма – це деяка послідовність машинних

Слайды и текст этой презентации

Слайд 1Процеси та потоки

Процеси та потоки

Слайд 2Базові поняття процесів і потоків
Під процесом (process) або задачею (task)

розуміють абстракцію ОС, яка об'єднує все необхідне для виконання однієї

програми в певний момент часу.
Програма – це деяка послідовність машинних команд, що зберігається на диску, в разі необхідності завантажується у пам'ять і виконується. Можна сказати, що під час виконання програму представляє процес.
Однозначна відповідність між програмою і процесом встановлюється тільки в конкретний момент часу: один процес у різний час може виконувати код декількох програм, код однієї програми можуть виконувати декілька процесів одночасно.
Базові поняття процесів і потоків Під процесом (process) або задачею (task) розуміють абстракцію ОС, яка об'єднує все

Слайд 3Базові поняття процесів і потоків

Для успішного виконання програми процесу потрібні

певні ресурси. До них належать:
ресурси, необхідні для послідовного виконання програмного

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

Слайд 4Базові поняття процесів і потоків
Ці групи ресурсів визначають дві складові

частини процесу:
послідовність виконуваних команд процесора;
набір адрес пам'яті (адресний простір), у

якому розташовані ці команди і дані для них.

Потоком (потік керування, нитка, thread) або легким процесом (lightweight process) називають набір послідовно виконуваних команд процесора, які використовують загальний адресний простір процесу.
Базові поняття процесів і потоків Ці групи ресурсів визначають дві складові частини процесу:послідовність виконуваних команд процесора;набір адрес

Слайд 5Базові поняття процесів і потоків
Захищеність адресного простору процесу є його

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

прочитані або перезаписані іншим процесом; у такий спосіб захищаються від багатьох програмних помилок і спроб несанкціонованого доступу. Природно, що неприпустимим є тільки прямий доступ (наприк-лад, запис у пам'ять за допомогою простої інструкції перенесення даних); обмін даними між процесами принципово можливий, але для цього мають бути використані спеціальні засоби, які називають засобами міжпроцесової взаємодії. Такі засоби складніші за прямий доступ і пра-цюють повільніше, але при цьому забезпечують захист від випадкових помилок у разі доступу до даних.
Базові поняття процесів і потоків Захищеність адресного простору процесу є його найважливішою характеристикою. Код і дані процесу

Слайд 6Базові поняття процесів і потоків
На відміну від процесів потоки розпоряджа-ються

загальною пам'яттю. Дані потоку не захищені від доступу до них

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

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

Базові поняття процесів і потоків На відміну від процесів потоки розпоряджа-ються загальною пам'яттю. Дані потоку не захищені

Слайд 7Базові поняття процесів і потоків

Адресний простір процесу не завжди відпо-відає

адресам оперативної пам'яті. Наприклад, у нього можуть відображатися файли або

регістри контролерів введення-виведення, тому запис за певною адресою в цьому просторі призведе до запису у файл або до виконання операції введення-виведення. Таку технологію називають відображенням у пам'ять (memory mapping).

Базові поняття процесів і потоків Адресний простір процесу не завжди відпо-відає адресам оперативної пам'яті. Наприклад, у нього

Слайд 8Базові поняття процесів і потоків
Тепер можна дати ще одне означення

процесу.

Процесом називають сукупність одного або декількох потоків і захищеного адресного

простору, у якому ці потоки виконуються.

Оскільки в системі може одночасно бути багато потоків, завданням ОС є організація перемикання процесора між ними і планування їхнього виконання. У багатопроцесорних систе-мах код окремих потоків може виконуватися на окремих процесорах.

Базові поняття процесів і потоків Тепер можна дати ще одне означення процесу.Процесом називають сукупність одного або декількох

Слайд 9Поняття паралелізму
Використання декількох потоків у додатку означає внесення в нього

паралелізму (concurrency).
Паралелізм – це одночасне виконання дій різними фрагментами

коду додатку. Така одночасність може бути реалізована на одному процесорі шляхом перемикання задач (випадок псевдопаралелізму), а може ґрунтуватися на паралельному виконанні коду на декількох процесорах (випадок справжнього паралелізму).
Потоки абстрагують цю відмінність, даючи можливість розробляти додатки, які в однопроцесорних системах використовують псевдопаралелізм, а при доданні процесорів – справжній паралелізм (такі додатки масшта-буються зі збільшенням кількості процесорів).

Поняття паралелізму Використання декількох потоків у додатку означає внесення в нього паралелізму (concurrency). Паралелізм – це одночасне

Слайд 10Як відбувається паралельне виконання декількох процесів на одному процесорі?
Основна пам'ять
0
1000
5000
8000
12000
Диспетчер
Процес

А
Процес В
Процес С
Лічильник команд
8000
Поняття паралелізму

Як відбувається паралельне виконання декількох процесів на одному процесорі?Основна пам'ять010005000800012000ДиспетчерПроцес АПроцес ВПроцес СЛічильник команд8000Поняття паралелізму

Слайд 11Види паралелізму
Можна виділити такі основні види паралелізму.
паралелізм багатопроцесорних систем;
паралелізм операцій

введення-виведення;
паралелізм взаємодії з користувачем;
паралелізм розподілених систем.

Перший з них є справжнім

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

Види паралелізму Можна виділити такі основні види паралелізму.паралелізм багатопроцесорних систем;паралелізм операцій введення-виведення;паралелізм взаємодії з користувачем;паралелізм розподілених систем.Перший

Слайд 12Паралелізм операцій введення-виведення
Під час виконання операції введення-виведення (наприклад, обміну даними

із диском) низько-рівневий код доступу до диска і код додатку

не можуть виконуватись одночасно. У цьому разі додатку треба почекати завершення операції введення-виведення, звільнивши на цей час про-цесор. Природним вважається зайняти на цей час процесор інструкціями іншої задачі.
Багатопотоковий додаток може реалізувати цей вид паралелізму через створення нових потоків, які виконуватимуться, коли поточний потік очікує операції введення-виведення. Так реалізується асинхронне введення-виведення, коли додаток продовжує своє виконання, не чекаючи на завершення операцій введення-виведення.
Паралелізм операцій введення-виведення Під час виконання операції введення-виведення (наприклад, обміну даними із диском) низько-рівневий код доступу до

Слайд 13Паралелізм взаємодії з користувачем
Під час інтерактивного сеансу роботи користувач може

виконувати різні дії із додатком (і очікувати негайної реакції на

них) до завершення обробки попередніх дій. Наприклад, після запуску команди «друк документа» він може негайно продовжити введення тексту, не чекаючи завершення друку.

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

Слайд 14Паралелізм розподілених застосувань

Розглянемо серверне застосування, яке очікує запити від клієнтів

і виконує дії у відповідь на запит. Якщо клієнтів багато,

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

Слайд 15Переваги і недоліки багатопотоковості
Переваги багатопотоковості:
Використання потоків дає змогу реалізувати різні

види паралелізму і дозволяє додатку масштабуватися із ростом кількості процесорів.
Для

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

Слайд 16Способи реалізації моделі потоків
Потік користувача (user-level threads, ULT) – це

послідовність виконання команд в адресному просторі процесу. Ядро ОС не

має інформації про такі потоки, вся робота з ними виконується в режимі користувача. Засоби підтримки потоків користувача надають спеціальні системні бібліотеки; вони доступні для прикладних програмістів у вигляді бібліотечних функцій.
Потік ядра (kernel-level thread, KLT) – це послідовність виконання команд в адресному просторі ядра. Потоками ядра управляє ОС, перемикання ними можливе тільки у привілейо-ваному режимі. Є потоки ядра, які відповідають потокам користувача, і потоки, що не мають такої відповідності.
Способи реалізації моделі потоківПотік користувача (user-level threads, ULT) – це послідовність виконання команд в адресному просторі процесу.

Слайд 17Схема багатопотоковості М:1

Схема багатопотоковості М:1

Слайд 18Схема багатопотоковості М:1
Схема багатопотоковості М:1 (є найраннішою) реалізує багатопотоковість винятково

в режимі користувача. При цьому кожен процес може містити багато

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

Слайд 19Схема багатопотоковості М:1
Схема М:1 не дає змоги скористатися багатопроцесорними архітектурами,

оскільки визначити, який саме код виконуватиметься на кожному із процесорів,

може тільки ядро ОС. У результаті всі потоки одного процесу завжди виконуватимуться на одному процесорі.
Оскільки системні виклики обробляються на рівні ядра ОС, блокувальний системний виклик (наприклад, виклик, який очікує введення даних користувачем) зупинятиме всі потоки процесу, а не лише той, що зробив цей виклик.
Схема багатопотоковості М:1Схема М:1 не дає змоги скористатися багатопроцесорними архітектурами, оскільки визначити, який саме код виконуватиметься на

Слайд 20Схема багатопотоковості 1:1

Схема багатопотоковості 1:1

Слайд 21Схема багатопотоковості 1:1
Схема багатопотоковості 1:1 ставить у відповідність кожному потоку

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

контексту зачіпають лише потоки ядра, у режимі користувача ці функції не реалізовані. Оскільки ядро ОС має інформацію про потоки, ця схема вільна від недоліків попередньої (різні потоки можуть виконуватися на різних процесорах, а при зупиненні одного потоку інші продовжують роботу). Вона проста і надійна в реалізації і сьогодні є найпоширенішою. Хоча схема передбачає, що під час керування потоками треба постійно перемикатися між режимами процесора, на практиці втрата продуктивності внаслідок цього виявляється незначною.
Схема багатопотоковості 1:1Схема багатопотоковості 1:1 ставить у відповідність кожному потоку користувача один потік ядра. У цьому разі

Слайд 22Схема багатопотоковості M:N

Схема багатопотоковості M:N

Слайд 23Схема багатопотоковості M:N
У цій схемі присутні як потоки ядра, так

і потоки користувача, які відображаються на потоки ядра так, що

один потік ядра може відповідати декільком потокам користувача. Число потоків ядра може бути змінене програмістом для досягнення максимальної продуктивності. Розподіл потоків користувача по потоках ядра виконується в режимі користувача, планування потоків ядра – у режимі ядра. Схема є складною в реалізації і сьогодні здає свої позиції схемі 1:1.
Схема багатопотоковості M:NУ цій схемі присутні як потоки ядра, так і потоки користувача, які відображаються на потоки

Слайд 24Стани процесів і потоків

Стани процесів і потоків

Слайд 25Стани процесів і потоків
створення (new) – потік перебуває у процесі

створення;
виконання (running) – інструкції потоку виконує процесор (у конкретний момент

часу на одному процесорі тільки один потік може бути в такому стані);
очікування (waiting) – потік очікує деякої події (наприклад, завершення операції введення-виведення); такий стан називають також заблокованим, а потік – припиненим;
готовність (ready) – потік очікує, що планувальник перемкне процесор на нього, при цьому він має всі необхідні йому ресурси, крім процесорного часу;
завершення (terminated) – потік завершив виконання (якщо при цьому його ресурси не були вилучені з системи, він переходить у додатковий стан – стан зомбі).
Стани процесів і потоківстворення (new) – потік перебуває у процесі створення;виконання (running) – інструкції потоку виконує процесор

Слайд 26Стани процесів і потоків
Перехід потоків між станами очікування і готовності

реалізовано на основі планування задач, або планування потоків. Під час

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

Слайд 27Стани процесів і потоків

Стани процесів і потоків

Слайд 28Стани процесів і потоків

Стани процесів і потоків

Слайд 29Керуючі блоки процесів і потоків
Для керування розподілом ресурсів ОС повинна

підтримувати структури даних, які містять інформацію, що описує процеси, потоки

і ресурси.
До таких структур даних належать:
таблиці розподілу ресурсів: таблиці пам'яті, таблиці введення-виведення, таблиці файлів тощо;
таблиці процесів і таблиці потоків, де міститься інформація про процеси і потоки, присутні у системі в конкретний момент.
Керуючі блоки процесів і потоківДля керування розподілом ресурсів ОС повинна підтримувати структури даних, які містять інформацію, що

Слайд 30Керуючі блоки процесів і потоків

Керуючі блоки процесів і потоків

Слайд 31Керуючі блоки процесів і потоків

Керуючі блоки процесів і потоків

Слайд 32Керуючі блоки процесів і потоків
Інформацію про процеси і потоки в

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

процесів і керуючими блоками потоків. Ці структури дуже важливі для роботи ОС, оскільки на підставі їхньої інформації система здійснює керування процесами і потоками.
Керуючий блок потоку (Thread Control Вlоск, ТСВ) відповідає активному потоку, тобто тому, який перебуває у стані готовності, очікування або виконання.
Керуючі блоки процесів і потоківІнформацію про процеси і потоки в системі зберігають у спеціальних структурах даних, які

Слайд 33Керуючі блоки процесів і потоків
Керуючий блок потоку (Thread Control Вlоск,

ТСВ) може містити таку інформацію:
ідентифікаційні дані потоку (зазвичай його унікальний

ідентифікатор);
стан та контекст виконання потоку: користувацькі регістри процесора, лічильник інструкцій, покажчик на стек;
інформацію для планування потоків.

Таблиця потоків – це зв'язний список або масив керуючих блоків потоку. Вона розташована в захищеній області пам'яті ОС.

Керуючі блоки процесів і потоківКеруючий блок потоку (Thread Control Вlоск, ТСВ) може містити таку інформацію:ідентифікаційні дані потоку

Слайд 34Керуючі блоки процесів і потоків

Керуючі блоки процесів і потоків

Слайд 35Керуючі блоки процесів і потоків
Керуючий блок процесу (Process Control Вlоск,

РСВ) відповідає процесу, що присутній у системі. Такий блок може

містити:
ідентифікаційні дані процесу (унікальний ідентифікатор, інформацію про інші процеси, пов'язані з даним);
інформацію про потоки, які виконуються в адресному просторі процесу (наприклад, покажчики на їхні керуючі блоки);
інформацію, на основі якої можна визначити права процесу на використання різних ресурсів (наприклад, ідентифікатор користу-вача, який створив процес);
інформацію з розподілу адресного простору процесу;
інформацію про ресурси введення-виведення та файли, які використовує процес.
Керуючі блоки процесів і потоківКеруючий блок процесу (Process Control Вlоск, РСВ) відповідає процесу, що присутній у системі.

Слайд 36Керуючі блоки процесів і потоків

Керуючі блоки процесів і потоків

Слайд 37Основні функції ОС з управління процесами і потоками:
Створення і завершення

процесів
Планування і диспетчеризація
Перемикання процесів
Синхронізація процесів
Організація блоків управління процесами

Основні функції ОС  з управління процесами і потоками:Створення і завершення процесівПланування і диспетчеризаціяПеремикання процесівСинхронізація процесівОрганізація блоків

Слайд 38Створення процесів
Присвоїти новому процесу унікальний ідентифікатор (Process ID, PID)
Виділити простір

для процесу
Ініціалізувати блок управління процесом
Встановити необхідні зв'язки
Створити або розширити інші

структури даних
Створення процесівПрисвоїти новому процесу унікальний ідентифікатор (Process ID, PID)Виділити простір для процесуІніціалізувати блок управління процесомВстановити необхідні зв'язкиСтворити

Слайд 39Завершення процесів
Причини завершення процесів:
Звичайне завершення
Перевищення ліміту часу
Недостатній об'єм пам'яті
Вихід за

межі відведеної області пам'яті
Помилка захисту
Арифметична помилка
Зайве очікування
Помилка введення-виведення
Невірна команда
Команда з

неприпустимими привілеями
Неправильне використання даних
Втручання оператора або операційної системи
Завершення батьківського процесу
Запит з боку батьківського процесу
Завершення процесівПричини завершення процесів:Звичайне завершенняПеревищення ліміту часуНедостатній об'єм пам'ятіВихід за межі відведеної області пам'ятіПомилка захистуАрифметична помилкаЗайве очікуванняПомилка

Слайд 40Перемикання контексту процесів і потоків
Найважливішим завданням операційної системи під час

керування процесами і потоками є організація перемикання контексту – передачі

керування від одного потоку до іншого зі збереженням стану процесора.
Для цього потрібно виконати такі операції:
зберегти стан процесора потоку в деякій ділянці пам'яті (області зберігання стану процесора потоку);
визначити, який потік слід виконувати наступним;
завантажити стан процесора цього потоку із його області зберігання;
продовжити виконання коду нового потоку.
Перемикання контексту процесів і потоківНайважливішим завданням операційної системи під час керування процесами і потоками є організація перемикання

Слайд 41Перемикання контексту процесів і потоків
Перемикання контексту звичайно здійсню-ється із залученням

засобів апаратної підтримки.
Так в архітектурі ІА-32 для збереження стану

процесора кожної задачі (вмісту пов'язаних із нею регістрів процесора) використовують спеціальну ділянку пам'яті – сегмент стану задачі ТSS. Адресу цієї області можна одержати з регістра задачі ТR (це системний адресний регістр).
Для перемикання задач досить завантажити нові дані в регістр ТR. У результаті значення регістрів процесора поточної задачі автома-тично збережуться в її сегменті стану, після чого в регістри процесора буде завантажено стан процесора нової (або раніше перерваної) задачі й почнеться виконання її інструкцій.
Перемикання контексту процесів і потоківПеремикання контексту звичайно здійсню-ється із залученням засобів апаратної підтримки. Так в архітектурі ІА-32

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика