Page 25 - 6111
P. 25

важливо одержати у своє розпорядження зручні засоби організації
                            взаємодії частин однієї задачі. Крім поділу адресного простору, всі
                            нитки розділяють також набір відкритих файлів, таймерів, сигналів
                            і т.п.
                                Отже, нитки мають власні:
                                - програмний лічильник;
                                - стек;
                                - регістри;
                                - нитки-нащадки;
                                - стан.
                                Нитки розділяють:
                                - адресний простір;
                                - глобальні змінні;
                                - відкриті файли;
                                - таймери;
                                - семафори;
                                - статистичну інформацію.
                                Багатониткова обробка підвищує ефективність роботи системи
                            в  порівнянні  з  багатозадачною  обробкою.  Наприклад,  у
                            багатозадачному середовищі Windows можна одночасно працювати
                            з  електронною  таблицею  і  текстовим  редактором.  Однак,  якщо
                            користувач  запитує  перерахування  свого  робочого  листа,
                            електронна  таблиця  блокується  до  тих  пір,  поки  ця  операція  не
                            завершиться, що може зажадати значного часу. У багатонитковому
                            середовищі у випадку, якщо електронна таблиця була розроблена з
                            урахуванням  можливостей  багатониткової  обробки,  що  надаються
                            програмісту,  цієї  проблеми  не  виникає,  і  користувач  завжди  має
                            доступ до електронної таблиці.
                                Широке  застосування  знаходить  багатониткова  обробка  в
                            розподілених системах.
                                Деякі     прикладні     завдання     легше     програмувати,
                            використовуючи  паралелізм,  в  яких  одна  нитка  виконує  запис  у
                            буфер,  а  інша  зчитує  записи  з  нього.  Оскільки  вони  поділяють
                            спільний  буфер,  не  варто  їх  робити  окремими  процесами.  Інший
                            приклад використання ниток - це управління сигналами, такими як
                            переривання з клавіатури (del або break). Замість обробки сигналу
                            переривання, одна нитка призначається для постійного  очікування
                            надходження  сигналів.  Таким  чином,  використання  ниток  може
                            скоротити необхідність в перериваннях користувальницького рівня.
                            У  цих  прикладах  не  настільки  важливо  паралельне  виконання,
                            наскільки важлива ясність програми.
                                Нарешті,  в  мультипроцесорних  системах  для  ниток  з  одного
                            адресного  простору  є  можливість  виконуватися  паралельно  на
                                                              24
   20   21   22   23   24   25   26   27   28   29   30