АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология

Наследование приоритетов

Прочитайте:
  1. Аутосомно-доминантное наследование
  2. Аутосомно-рецессивное наследование
  3. Аутосомно-рецессивное наследование. 1 страница
  4. Аутосомно-рецессивное наследование. 10 страница
  5. Аутосомно-рецессивное наследование. 11 страница
  6. Аутосомно-рецессивное наследование. 2 страница
  7. Аутосомно-рецессивное наследование. 3 страница
  8. Аутосомно-рецессивное наследование. 4 страница
  9. Аутосомно-рецессивное наследование. 5 страница
  10. Аутосомно-рецессивное наследование. 6 страница

Требование 3. В ОС должна существовать система наследования приоритетов.

На самом деле именно этот механизм синхронизации и тот факт, что различные треды используют одно и то же пространство памяти, отличают их от процессов. Как мы уже знаем, процессы почти не разделяют одно и то же пространство па­мяти, а в основном работают в своих локальных адресных пространствах. Так, например, старые версии UNIX не являются мультитредовыми (multi-threaded). «Старый» UNIX — многозадачная ОС, где задачами являются процессы (а не треды), которые сообщаются через потоки (pipes) и разделяемую память. Оба эти механизма используют файловую систему, а ее поведение — непредсказуемо.

Комбинация приоритетов тредов и разделения ресурсов между ними приводит к другому явлению — классической проблеме инверсии приоритетов. Это можно проиллюстрировать на примере, когда есть как минимум три треда. Когда тред низшего приоритета захватил ресурс, разделяемый с тредом высшего приорите­та, и начал выполняться поток среднего приоритета, выполнение треда высшего приоритета будет приостановлено, пока не освободится ресурс и не отработает тред среднего приоритета. В этой ситуации время, необходимое для завершения треда высшего приоритета, зависит от нижних приоритетных уровней, — это и есть инверсия приоритетов. Ясно, что в такой ситуации трудно выдержать огра­ничение на время исполнения.

Чтобы устранить такие инверсии, ОСРВ должна допускать наследование при­оритета, то есть повышение уровня приоритета треда до уровня треда, который его вызывает. Наследование означает, что блокирующий ресурс тред наследу­ет приоритет треда, который он блокирует (разумеется, это справедливо лишь в том случае, если блокируемый тред имеет более высокий приоритет).

Иногда можно услышать утверждение, что в грамотно спроектированной систе­ме такая проблема не возникает. В случае сложных систем с этим нельзя согла­ситься. Единственный способ решения этой проблемы состоит в увеличении приоритета треда «вручную» прежде, чем ресурс окажется заблокированным. Разумеется, это возможно в случае, когда два треда разных приоритетов претен­дуют на один ресурс. В общем случае решения не существует.


Дата добавления: 2015-01-18 | Просмотры: 717 | Нарушение авторских прав



1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |



При использовании материала ссылка на сайт medlec.org обязательна! (0.002 сек.)