Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



“Інформаційні управляючі системи та технології” 080402 “Інформаційні технології проектування” Одеса 2010

“Інформаційні управляючі системи та технології” 080402 “Інформаційні технології проектування” Одеса 2010




Сторінка12/24
Дата конвертації10.03.2017
Розмір1.41 Mb.
1   ...   8   9   10   11   12   13   14   15   ...   24

Очікування завершення виконання потоків


Для очікування завершення виконання потоків використовують функцію pthread_join(). Вона має такий синтаксис:

int pthread_join(pthread_t th,,void **status);



Ця функція блокує потік, де вона була викликана, доти, поки потік, заданий дескриптором th, не завершить своє виконання. Якщо status не є нульовим покажчиком, після виклику він вказуватиме на дані, повернені потоком (аргумент функції pthread_exit()). Якщо потік уже завершився до моменту виклику функції pthread_join(), його інформація має бути зчитана негайно.

Висновки


  • Процеси і потоки є активними ресурсами обчислювальних систем, які реалізують виконання програмного коду. Потоком називають набір послідовно виконуваних команд процесора. Процес є сукупністі одго або декількох потоків і захищеного адресного простору, в якому вони виконуються. Потоки одного адресного простору можуть разом використовувати спільні дані, для потоків різних процесів без використання спеціальних засобів це неможливо. У традиційних системах кожен процес міг виконувати тільки один потік, виконання програмного коду пов’язували із процесами. Сучасні ОС підтримують концепцію багатопотоковості.

  • Використання потоків у застосуванні означає внесення в нього паралелізму – можливості одночасного виконання дій різними фрагментами коду. Паралелізм у програмах відображає ясинхронний характер навколишнього світу, його джералами є виконання коду на декількох процесорах, операції введення-виведення, взаємодія з користувачем, запити застосувань-клієнтів.
    Світ - назва планети Земля з людської точки зору, як місце заселене людськими істотами. Термін часто вживається для означення суми людського досвіду та історії, людського стану взагалі. На земній кулі проживає понад 7 мільярдів людей.
    Багатопотоковість у застосуваннях дає змогу природно реалізувати цей паралелізм і домогтися високої ефективності.

  • Розрізняють потоки коритувача, які виконуються в в режимі корстувача в адресному просторі процесу, і потоки ядра, з якими працює ядро ОС. Взаємовідношення між ними визначають схему реалізації моделі потоків. На практиці найчастіше вткористовують схему 1:1, коли кожному потоку користувача відповідає один потік ядра, і саме ядро відповідає за керування потоками користувача.

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

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


Розділ 4 Планування процесів і потоків


Можливість паралельного виконання потоків залежить від кількості доступних процесорів. Якщо процесор один , паралельне виконання неможливо принцопово (у кожен момент часу може виконуватися тильки один потік). Якщо кількість процесорів N>1, паралельне виконання може бути реалізоване тільки для N потоків (по одному потокові на процесор).

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

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

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


4. 1 Загальні принципи планування


Розглянемо основні принципи, що лежать в основі планування.

4. 1. 1 Особливості виконання потоків


З погляду планування виконання потоку можна зобразити як цикл чергування періодів обчислень (використання процесора) і періодів очікування введення-виведення. Інтервал часу, у продовж якого потік виконує тільки інструкції процесора, називають інтервалом використання процесора (CPU birst), інтервал часу, коли потік очікує введення-виведення, - інтервалом введення-виведення (I/O burst). Найчастіше ці інтервали мають довжину від 2 до 8 мс.

Потоки, які більше часу витрачають на обчислення і менше – на введення-виведення, називають обмеженими можливостями процесора (CPU bound). Вони активно використовують процесор. Основною їхньою характеристикою є час, витрачений на обчислення, інтервали використання процесора для них довші. Потокі, яки більшу частину часу перебувають в очікуванні введення-виведення, називають обмеженими можливостями введення-виведення (I/O bound). Такі потоки завантажують процесор значно менше, а середня довжина інтервалу використання прцесора для них невелика. Що вище тактова частота процесора, то більше потоків можна віднести до другої категорії.

Потік, обмежений процесором (перемножування матриць)

Потік, обмежений введенням-виведенням (текстовий редактор)





Інтервал введення-виведення (I/O bound)



Інтервал використання процесора (CPU bound)

Рисунок 4.1 Класифікація потоків з погляду планування

4. 1.2 Механізми і політика планування


Слід ролщрізняти механізм і політику планування. До механізмів планування належать засоби перемикання контексту, засоби синхронізації потоків тощо, до політики планування – засоби визначення моменту часу, коли необхідно перемкнути контескт.
Озна́чення, ви́значення чи дефіні́ція (від лат. definitio) - роз'яснення чи витлумачення значення (сенсу) терміну чи поняття. Слід зауважити, що означення завжди стосується символів, оскільки тільки символи мають сенс що його покликане роз'яснити означення.
Ту частину системи, яка відповідає за політику планування називають планувальником (scheduler), а алгоритм, що використовують при цьому – алгоритмом планування (scheduling algorithm).

Є різіні критерії оцінкиполітики планування, одні з ніх застосовні для всіх систем, інші – лише для пакетних систем або лище для інтерактивних.

Крите́рій (від лат. critērium, яке зводиться до грец. χριτήριον - здатність розрізнення; засіб судження, мірило, пов'язаного з грец. χρινω - розділяю, розрізняю) - мірило, вимоги, випробування для визначення або оцінки людини, предмета, явища; ознака, взята за основу класифікації.



Сьогодні найчастіше використовують три критерії оцінки досягнення мети.

  • Мінімальний час відгуку. Це найважливіший крітерій для інтерактивних систем. під часом відгуку розуміють час між запуском потоку (або введенням користувачем інтерактивної команди) і отриманням першої відповіді. Для сучасних систем прийнятим часом відгуку вважають 50-150мс.

  • Максимальна пропускна здатність. Це кількість задача, які система може виконувати за одиницю часу (наприклад, за секунду).Такий критерій доцільно застосовувати у пакетних системах; в інтерактивних системах він може бути використаний для фонових задач. Щоб підвищити пропускну здатність, необхідно:

  • Скорочувати час даремного навантаження (наприклад, час, необхідний для перемикання контексту);

  • Ефективніше використати ресурси (для того, щоб ані процесор, ані пристрої введення-виведення не простоювали).

  • Третім критерієм є справедливість, яка полягає в тому, що процесорний часпотокам виділяють відповідно до їх важливості. Справедливість забезпечує такий розподіл процесорного часу, що всі потоки просуваються у своєму виконанні, і жоден не протоює.
    Справедливість - мораль та чеснота, вразливість як на суспільне добро, так і на суспільне зло. За Платоном, справедливість - це найвища чеснота, що утримує мужність, поміркованість та мудрість в повній рівновазі й гармонії («кожному своє»).
    Відзначимо, що реалізація справедливої політики планування не завжди приводить до зменшення середнього часу відгуку. Іноді для цього потрібно зробити систему менш справедливою.

4. 1. 3 Застосовність принципів планування


Принципи планування потоків застосовні насамперед до багатопотокових систем із реалізацією схеми 1:1(тут плануються винятково потоки ядра), а також до систем з реалізацією модулі процесів.
Мікросхе́ма, інтегральна мікросхема (англ. integrated circuit) - електронна схема, що реалізована у вигляді напівпровідникового кристалу (чипу) та виконує певну функцію. Винайдена у 1958 році американськими винахідниками Джеком Кілбі та Робертом Нойсом.
В останньому випадку замість терміна “потік” можна вживати термін “процес”, а інформацію, необхіжну для планування, зберігати в структурах даних процесів. Складніші принципи планування використовують у багатопотокових системах, для яких кількість потоків користувача не збігається з кількістю потоків ядра (схеми 1:M і M:N). Для них потрібні два планувальники: один для роботи на рівні ядра, інший – у режимі користувача.
1   ...   8   9   10   11   12   13   14   15   ...   24



  • Висновки
  • Розділ 4 Планування процесів і потоків
  • 4. 1 Загальні принципи планування
  • 4. 1.2 Механізми і політика планування
  • 4. 1. 3 Застосовність принципів планування