КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Базові поняття процесів та потоків
Тема 3: Процеси та потоки Усі сучасні обчислювальні засоби можуть виконувати декілька завдань. Наприклад, читання даних з диску та їх друкування, приймання даних з мережі та запис їх на диск, обробка даних за допомогою електронної таблиці та демонстрація їх користувачу, та інше. При цьому, в кожен конкретний момент часу процесор працює тільки з одним завданням, але декілька разів на секунду переключаючись з виконання одного завдання на інше, створює ілюзію одночасного виконання їх усіх (паралельної обробки). Така паралельна обробка дозволяє ефективно використовувати ресурси обчислювальних засобів, тим більше, якщо ці ресурси функціонують значно повільніше ніж основний процесор. Для підтримки паралельної обробки в операційних системах реалізується механізм процесів та потоків. Поняття „обчислювальний процес” є одним із основних при вивченні операційних систем. Притримуємось такого визначення: Процес (або задача) – це програма під час виконання на процесорі із послідовним виконанням команд. Сам процес розглядається в двох аспектах: 1) Він є носієм даних; 2) Виконує операції, пов’язані з обробкою цих даних. Процесом може бути: виконання утиліти; виконання прикладної програми; трансляція вихідної програми (одної програми – один процес, іншої програми – інший процес). Процесом називають сукупність одного або декількох потоків і захищеного адресного простору, у якому ці потоки виконуються. Захищеність адресного простору процесу є його найважливішою характеристикою. Код і дані процесу не можуть бути прямо прочитані або перезаписані іншим процесом; у такий спосіб захищаються від багатьох програмних помилок і спроб несанкціонованого доступу. Природно, що неприпустимим є тільки прямий доступ (наприклад, запис у пам’ять за допомогою простої інструкції перенесення даних); обмін даними між процесами принципово можливий, але для цього мають бути використані спеціальні засоби, які називають засобами міжпроцесової взаємодії. Такі засоби складніші за прямий доступ і працюють повільніше, але при цьому забезпечують захист від випадкових помилок у разі доступу до даних. Потоком (потік керування, нитка, thread) називають набір послідовно виконуваних команд процесора, які використовують загальний адресний простір процесу. Оскільки в системі може одночасно бути багато потоків, завданням ОС є організація перемикання процесора між ними і планування їхнього виконання. У багатопроцесорних системах код окремих потоків може виконуватися на окремих процесорах. На відміну від процесів потоки розпоряджаються загальною пам’яттю. Дані потоку не захищені від доступу до них інших потоків за умови, що всі вони виконуються в адресному просторі одного процесу. Це надає додаткові можливості для розробки застосувань, але ускладнює програмування.
Розглядаємо комп’ютер з одним центральним процесором, але всі подальші міркування справедливі і для багатопроцесорних систем.
За період свого існування процес приймає ряд дискретних станів. Зміну станів процесу можуть викликати різні події. Процес знаходиться в стані виконання, якщо в біжучий момент йому надається центральний процесор (CPU). Процес знаходиться в стані готовності, якщо він міг би одразу використати CPU, який знаходиться в його розпорядженні. Процес знаходиться в стані блокування, якщо він очікує на деяку подію (наприклад, завершення операції вводу/виводу) для того, щоби отримати можливість продовжити виконання. В одно-процесорному комп’ютері в кожний конкретний момент часу може виконуватись тільки один процес, але декілька можуть знаходитись в стані готовності, а деякі – бути заблокованими. Тому створюються: - список процесів, готових до виконання; - список заблокованих процесів. Перший список впорядкований за пріоритетом. Таким чином наступний процес, що отримує в своє розпорядження CPU, буде першим з цього списку. Другий список не впорядкований. Не передбачається ніякого пріоритетного порядку розблокування процесів (тобто їх переводу в стан готовності). Розблокування відбувається в тому порядку, в якому відбуваються події, які очікуються заблокованими процесами. В ОС, як правило, процес з’являється при запуску довільної програми. Коли процес створено, він займає місце в кінці списку готових процесів. Він поступово просувається до початку списку – у відповідності з тим, як завершується виконання попередніх процесів. Коли процес буде першим у списку готових процесів, і коли звільниться CPU, цьому процесу виділяється CPU і кажуть, що відбувається зміна станів процесу. Він переходить від стану готовності до стану виконання. Вибір процесу для виконання називається „Пуском”, і це виконується за допомогою програми ОС, яка називається диспетчером. В мультипрограмних системах для того, щоби запобігти випадковому або навмисному захопленню ресурсів комп’ютерної системи одним довільним процесом, ОС встановлює в спеціальному апаратному таймері переривань деяке значення, яке визначає часовий інтервал або квант часу, на протязі якого, біжучому процесу користувача дозволяється утримувати CPU в своєму розпорядженні. Після закінчення кванту часу таймер виробить сигнал переривання, за яким керування буде передано ОС. Після цього ОС переводить процес, що перед цим виконувався, в стан готовності, а перший процес із списку готових – в стан виконання. Якщо процес, що виконується, ще до закінчення кванту часу генерує операцію вводу/виводу, він тим самим сам звільнює ЦП (тобто сам себе блокує на час закінчення операції вводу/виводу). В системі з трьома активними станами процесу, можлива ще одна зміна станів – після завершення операцій вводу/виводу. Процес переходить із заблокованого стану в стан готовності. Таким чином маємо чотири можливі зміни станів процесу. Єдина зміна станів, що викликається самим процесом користувача – блокування. Інші три зміни викликаються об’єктами, що є зовнішніми по відношенню до біжучого процесу. Процес із пасивного стану може перейти в стан готовності в таких випадках: 1. За командою користувача. Це має місце в тих інтерактивних (діалогових) ОС, де програма може мати статус задачі, а не просто бути файлом виконання. І тільки на час виконання вона може отримувати статус задачі, тобто процесу. 2. При виборі з черги планувальником процесів. 3. За викликом із іншої задачі (один процес може створити, ініціювати, призупинити, зупинити, знищити інший процес). 4. За перериванням від зовнішнього пристрою (сигнал від виконання деякої події може запустити відповідну задачу). 5. При надходженні запланованого часу запуску програми. Із стану виконання процес може вийти з таких причин: 1. Процес завершується, при цьому він передає керування ОС і повідомляє про своє завершення. В результаті процес або переходить в пасивний стан, або знищується. Знищується не сама програма, а саме активний процес, який відповідав виконанню деякої програми. В пасивний стан процес може бути переведений примусово за командою оператора. 2. Процес переводиться ОС в стан готовності у зв’язку з виникненням задачі з вищим пріоритетом або через завершення виділеного кванту часу. 3. Процес блокується або через запит операції вводу/виводу, або через те, що йому неможливо надати ресурс, на який виник запит, або за командою оператора на призупинення задачі. З початком відповідної події процес деблокується і переводиться в стан готовності до виконання. Таким чином, силою, яка міняє стани процесів, є події. Один із основних видів подій - переривання.
Дата добавления: 2014-01-11; Просмотров: 7726; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |