Межпроцессное взаимодействие в OC WINDOWS Vista

При работе системы происходит постоянный обмен информации между потоками.

Механизмы обмена:

1. Канал (именованные и неименованные);

2. Почтовые слоты (mail slots. Механизм почтовых слотов похож на механизм каналов. Отличие заключается в том, что с помощью почтовых слотов информация отсылается одновременно нескольких получателям. Доставка не гарантирована);

3. Сокеты (чаще всего используются для передачи информации по сети);

4. Совместное использование объектов.

Данные 4 механизма представляют собой взаимодействие в виде передачи информации.

Межпроцессное взаимодействие в OC WINDOWS Vista - №1 - открытая онлайн библиотека

Процессы также могут использовать различные виды и типы объектов для синхронизации.

С объектами синхронизации работают только потоки.

Объекты синхронизации:

· Семафоры;

· Мьютекс;

· Критическая область;

· События (события делятся на: события уведомления и события синхронизации).

Реализация процессов и потоков в OC WINDOWS Vista.

Процессы в ОС Vista являются контейнерами для ресурсов и потоков. Потоки это абстракция ядра для планирования процессов. Каждый поток имеет два стека: один стек в режиме ядра, второй – в режиме пользователя. Процессы и потоки представляют собой объекты. В OS Windows Vista cуществует структура job (задание). Данная структура была создана, чтобы группировать процесс.

При работе системы происходит постоянный обмен информации между потоками.

Механизмы обмена:

5. Канал (именованные и неименованные);

6. Почтовые слоты (mail slots. Механизм почтовых слотов похож на механизм каналов. Отличие заключается в том, что с помощью почтовых слотов информация отсылается одновременно нескольких получателям. Доставка не гарантирована);

7. Сокеты (чаще всего используются для передачи информации по сети);

8. Совместное использование объектов.

Данные 4 механизма представляют собой взаимодействие в виде передачи информации.

Процессы также могут использовать различные виды и типы объектов для синхронизации.

С объектами синхронизации работают только потоки.

Объекты синхронизации:

· Семафоры;

· Мьютекс;

· Критическая область;

· События (события делятся на: события уведомления и события синхронизации).

31. Планирование в OC WINDOWS Vista. Условия вызова планировщика.

1. Планирование происходит на основе потоков. После завершения работы поток входит в режим ядра, вызывает планировщик и после этого происходит переключение на другой поток. Поток вызывает планировщик в следующей ситуации:

1) Текущий, выполняющийся поток блокируется на семафоре мьютексе, семафоре, событии и т. д.;

2) Поток сигнализирует объект;

3) Истекает квант времени;

4) Завершается операция ввода/вывода;

5) Истекает время ожидания.

В первом случае поток работает в режиме ядра. Поток не может выполнять работу с процессором, а поэтому вызывает планировщик для следующего потока.

Во втором случае поток также находится в режиме ядра. При этом событии поток не блокируется, однако всё равно вызывается планировщик. Вызывается он потому что, возможно существует поток с более высоким приоритетом.

В третьем случае происходит прерывание в режиме ядра.

Четвертый случай подразумевает запуск потока после того как он дождался и завершил операцию ввода/вывода.


Планирование в OC WINDOWS Vista. Система приоритетов.

В системе Windows Vista используется приоритетный алгоритм планирования. Существуют два понятия: базовый приоритет и текущий приоритет. Базовый приоритет устанавливается по умолчанию при создании процесса/потока. Текущий приоритет изменяется динамически во время работы системы. В системе всего существует 32 уровня приоритетов (от 0 до 31). От 1 до 15 – пользовательские потоки. От 16 до 31 – системные потоки. Процесс с приоритетом «0» - это поток обнуления страниц.

Также существует понятие класс приоритетов и относительный приоритет.

Класс – задает приоритет для процесса и всех потоков, находящихся в нём. Допустимые значения:

Real-time

High

Above normal

Normal

Idle

Класс устанавливается для процесса, но влияет на приоритеты потоков.

Относительный приоритет. Допустимые значения:

Time critical

Highest

Above normal

Normal

Below normal

Lowest

Idle

Базовый алгоритм планированиям ОС Vista поддерживает массив с 32 элементами. Элементы массива соответствуют приоритетам от 0 до 31. Каждому элементу массива соответствует список процессов соответствующего приоритета. Планировщик просматривает этот массив, начиная с самого высокого приоритета и ищет не пустой список потоков. Как только будет найден данный список, выбирается первый в очереди поток и выполняется в течение одного кванта времени. Если выбранный поток не успел выполниться, то он ставится в конец очереди своего приоритета. То есть на каком-либо уровне приоритетов потоки планируются циклически. В дополнении к базовым алгоритмам планирования используются механизм динамического изменения текущего приоритета.




Планирование в OC WINDOWS Vista. Условия изменения приоритетов.

Условие повышения приоритета:

- в первом случае: поток завершил операцию ввода/вывода, и готов приступить к вычислениям. Величина повышения приоритета зависит от устройства, с которым работает данный поток.

- во втором случае: поток ждал изменение семафора, мьютекса, события и после данного события его приоритет повышается(на один или два уровня).

Условия понижения приоритета:

При повышении приоритета, его значение не всегда остается постоянным. Поток, получивший прирост текущего приоритета может использовать данную ситуацию в течение одного кванта времени. По истечении этого кванта времени приоритет снижается на единицу, вплоть до значения базового приоритета.