У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


ГОТОВНІСТЬ. Поки одна нитка заблокована, інша нитка того ж процесу може виконуватися. Нитки розділяють процесор так, як це роблять процеси, відповідно до різних варіантів планування.

Однак різні нитки в рамках одного процесу не настільки незалежні, як окремі процеси. Усі такі нитки мають той самий адресний простір. Це означає, що вони розділяють ті самі глобальні змінні. Оскільки кожна нитка може мати доступ до кожної ВА, одна нитка може використовувати стек іншої нитки. Між нитками немає повного захисту, тому що, по-перше, це неможливо, а по-друге, не потрібно. Усі нитки одного процесу завжди вирішують загальну задачу одного користувача, і апарат ниток використовується тут для більш швидкого рішення задачі шляхом її разпаралелювання. При цьому програмісту дуже важливо одержати у своє розпорядження зручні засоби організації взаємодії частин однієї задачі. Крім поділу адресного простору, усі нитки розділяють також набір відкритих файлів, таймерів, сигналів і т.п. Отже, нитки мають власні: програмний лічильник, стек, регістри, нитки-нащадки, стан. Нитки розділяють: адресний простір, глобальні змінні, відкриті файли, таймери, семафори, статистичну інформацію.

Багатониткова обробка підвищує ефективність роботи системи в порівнянні з багатозадачною обробкою. Наприклад, у багатозадачному середовищі Windows можна одночасно працювати з електронною таблицею і текстовим редактором. Однак, якщо користувач запитує перерахування свого робочого листа, електронна таблиця блокується доти, поки ця операція не завершиться, що може зажадати значного часу. У багатонитковому середовищу у випадку, якщо електронна таблиця була розроблена з урахуванням можливостей багатониткової обробки, наданих програмісту, цієї проблеми не виникає, і користувач завжди має доступ до електронної таблиці.

1.3. Керування процесами

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

Щоб процес міг бути виконаний, ОС повинна призначити йому область ОП, у якій будуть розміщені коди і дані процесу, а також надати йому необхідну кількість процесорного часу. Крім того, процесу може знадобитися доступ до таких ресурсів, як файли і пристрої в/в.

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

У мультипрограмній ОС одночасно може існувати кілька процесів. Частина процесів породжується з ініціативи користувачів і їхніх додатків, такі процеси звичайно називають користувальницькими. Інші процеси, називані системними, ініціалізуються самою ОС для виконання своїх функцій.

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

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

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

В ОС немає однозначної відповідності між процесами і програмами. Той самий програмний файл може породити декілька паралельно виконуваних процесів, а процес може в ході свого виконання змінити програмний файл і почати виконувати іншу програму.

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

В багатозадачній системі процес може знаходитися в одному з трьох основних станів:

ВИКОНАННЯ - активний стан процесу, під час якого процес володіє всіма необхідними ресурсами і безпосередньо виконується процесором;

ОЧІКУВАННЯ - пасивний стан процесу, процес заблокований, він не може виконуватися по своїх внутрішніх причинах, він чекає виконання деякої події, наприклад, завершення операції в/в, одержання повідомлення від іншого процесу, звільнення якого-небудь необхідного йому ресурсу;

ГОТОВНІСТЬ - також пасивний стан процесу, але в цьому випадку процес заблокований у зв'язку з зовнішніми стосовно нього обставинами: процес має всі необхідні для нього ресурси, він готовий виконуватися, однак процесор зайнятий виконанням іншого процесу.

У ході життєвого циклу кожен процес переходить з одного стану в інший відповідно до алгоритму планування процесів, реалізованим у даній ОС. Типовий граф станів процесу показаний на малюнку 6.

У стані ВИКОНАННЯ в однопроцесорній системі може знаходитися тільки один процес, а в кожному зі станів ОЧІКУВАННЯ і ГОТОВНІСТЬ - кілька процесів, ці процеси утворять черги відповідно очікуючих і готових процесів. Життєвий цикл процесу починається зі стану ГОТОВНІСТЬ, коли процес готовий до виконання і чекає своєї черги. При активізації процес переходить у стан ВИКОНАННЯ і знаходиться в ньому доти, доки або він сам звільнить процесор, перейшовши в стан ОЧІКУВАННЯ якої-небудь події, або буде насильно "витиснутий" із процесора, наприклад, унаслідок вичерпання відведеного даному процесу кванта процесорного часу. В


Сторінки: 1 2 3 4 5 6 7 8