Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Нитки (thread)

Багатозадачність – найважливіша якість ОС. Для її підтримки ОС визначає і створює для себе ті внутрішні одиниці роботи, між якими будуть розділятись всі ресурси комп’ютера.

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

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

Таким чином нитки мають власні:

1) програмний лічильник;

2) стек;

3) регістри;

4) треди-нащадки;

5) стани.

Треди розділяють:

1) адресний простір;

2) глобальні змінні;

3) відкриті файли;

4) таймера;

5) семафори;

6) статистичну інформацію про роботу системи.

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

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

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




Переглядів: 1103

<== попередня сторінка | наступна сторінка ==>
 | Призначення підсистеми керування ресурсами ОС.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.