ВУЗ:
Составители:
может воспользоваться теорией расписаний или имитационным
моделированием, хотя и это может оказаться бесполезным. На
сегодняшний день не имеется иного решения, поэтому понятие приоритета
нити необходимо.
Требование 3. ОС должна обеспечивать предсказуемые
механизмы синхронизации задач
Задачи разделяют данные (ресурсы) и должны сообщаться друг с
другом, следовательно, должны существовать механизмы блокирования и
коммуникации.
Требование 4. Должна существовать система наследования
приоритетов
На самом деле, именно этот механизм синхронизации и тот факт, что
различные нити используют одно и то же пространство памяти, отличают
нити от процессов. Процессы не разделяют одно и то же пространство
памяти. Так, например, старые версии UNIX не являются многонитевыми.
Старый UNIX – многозадачная ОС, где задачами являются процессы,
которые сообщаются через потоки (pipes) и разделяемую память. Оба эти
механизма используют файловую систему, а ее поведение непредсказуемо.
Комбинация приоритета нити и разделение ресурсов между ними приводит
к другому явлению: классической проблеме инверсии приоритетов. Это
можно проиллюстрировать на примере, где есть, как минимум, три нити.
Когда нить низшего приоритета заняла ресурс, разделяемый с нитью
высшего приоритета, а сначала выполняется нить среднего приоритета,
выполнение нити высшего приоритета будет приостановлено, пока не
освободится ресурс и не отработает нить среднего приоритета. В этой
34
может воспользоваться теорией расписаний или имитационным моделированием, хотя и это может оказаться бесполезным. На сегодняшний день не имеется иного решения, поэтому понятие приоритета нити необходимо. Требование 3. ОС должна обеспечивать предсказуемые механизмы синхронизации задач Задачи разделяют данные (ресурсы) и должны сообщаться друг с другом, следовательно, должны существовать механизмы блокирования и коммуникации. Требование 4. Должна существовать система наследования приоритетов На самом деле, именно этот механизм синхронизации и тот факт, что различные нити используют одно и то же пространство памяти, отличают нити от процессов. Процессы не разделяют одно и то же пространство памяти. Так, например, старые версии UNIX не являются многонитевыми. Старый UNIX – многозадачная ОС, где задачами являются процессы, которые сообщаются через потоки (pipes) и разделяемую память. Оба эти механизма используют файловую систему, а ее поведение непредсказуемо. Комбинация приоритета нити и разделение ресурсов между ними приводит к другому явлению: классической проблеме инверсии приоритетов. Это можно проиллюстрировать на примере, где есть, как минимум, три нити. Когда нить низшего приоритета заняла ресурс, разделяемый с нитью высшего приоритета, а сначала выполняется нить среднего приоритета, выполнение нити высшего приоритета будет приостановлено, пока не освободится ресурс и не отработает нить среднего приоритета. В этой 34
Страницы
- « первая
- ‹ предыдущая
- …
- 32
- 33
- 34
- 35
- 36
- …
- следующая ›
- последняя »