Интернет магазин китайских планшетных компьютеров



Компьютеры - Переключение контекста - Переключение контекста и ОС

23 января 2011


Оглавление:
1. Переключение контекста
2. Переключение контекста и производительность
3. Переключение контекста и ОС
4. Особенности процедуры шедулинга



С точки зрения прикладного уровня можно разделить voluntary и non-voluntary context switches: Выполняющийся процесс/поток может сам передать управление другому потоку либо ядро само может отобрать управление.

  1. Ядро ОС может отобрать управление у выполняющегося процесса/потока при истечении кванта времени выделенного на выполнение. С точки зрения программиста это означает что управление могло уйти от потока в «самый неподходящий» момент времени когда структуры данных могут находиться в противоречивом состоянии из-за того, что их изменение не было завершено.
  2. Выполнение блокирующего системного вызова. Когда приложение производит ввод-вывод, ядро может решить, что можно отдать управление другому потоку/процессу в ожидании, пока запрошенный данным потоком дисковый либо сетевой ввод-вывод будет выполнен. С точки зрения общей производительности системы, это самый «лучший» вариант.
  3. Синхронизирующие примитивы ядра. Мьютексы, Семафоры и т. д. Это и есть основной источник проблем с производительностью. Недостаточно продуманная работа с синхронизирующими примитивами может в «плохих случаях» приводить к десяткам тысяч, а при плохом проектировании и сотням тысяч переключений контекста в секунду.
  4. Системный вызов явно ожидающий наступления события либо момента времени. С точки зрения производительности — это хороший вариант, ядро ОС всегда знает, кто ждет и чего ждет.


Просмотров: 3375


<<< Системный вызов