Теория операционных систем. Урок 3. Межпроцессное взаимодействие – состояние состязания, критические |
Автор megabax | ||
22.11.2023 г. | ||
Теория операционных систем. Урок 3. Межпроцессное взаимодействие – состояние состязания, критические области.Чтобы смотреть урок полностью, подпишитесь на платный раздел. В платном разделе статья находится здесь. На прошлом уроке мы с вами рассмотрели такую функцию операционной системы, как управление процессами. Узнали что такое "процесс", когда процессы запускаются и удаляются, когда происходит переключение между процессами и в каких они могут быть состояниях. Сегодня займемся межпроцессорным взаимодействием. Итак, очевидно, что данные одного процесса могут понадобиться данным другого процесса. Вот ситуации, когда процессам приходиться взаимодействовать:
Вторые два случае справедливы также и для потока, в первом
случае у потоков нет проблем, так как они используют одно и тоже адресное
пространство. Итак, в чем же проблема взаимодействия между процессорами? Дело в том, что ... ... ... ... ... ... Данный эмулятор имитирует наш пример: два процесса кладут файлы в очередь, а спулер их печатает:
Этот эмулятор повторяет описанный нами несовершенный алгоритм. На скриншоте мы отлично видим, как теряются файлы. Но если у нас будет один потом, все файлы нормально отправляются на печать:
Количество процессов задается в конструкторе эмулятор операционной системы:
|
||
Последнее обновление ( 22.11.2023 г. ) |