Cтраница 1
Переключение контекста ( context switch) некоторого потока происходит, когда центральный процессор переключается на этот поток или отключается от него. Данный показатель следит за тем, сколько раз в секунду это происходит. Одним из важных преимуществ многопоточной обработки является то, что она уменьшает число переключений контекстов, расходующих большое количество ресурсов системы. [1]
![]() |
Использование единой структуры данных для планирования мультипроцессора. [2] |
Переключение контекста также может случиться, когда истекает квант процесса. Мультипроцессор обладает определенными свойствами, которыми не обладают однопроцессорные системы. [3]
![]() |
Набор регистров ВЕ51. [4] |
Использование наборов рабочих регистров позволяет существенно уменьшить длительность переключения контекстов ЦП, что очень важно для МС реального времени. [5]
Примером такого побочного влияния на результаты измерений и является переключение контекстов, значительно замедляющее исполнение прикладной программы. [6]
Очевидное преимущество разделения пространства заключается в устранении многозадачности, что снижает накладные расходы по переключению контекста. Однако ее недостаток состоит в потерях времени при блокировке центрального процессора. Поэтому проводились активные поиски алгоритма, пытающегося планировать одновременно в пространстве и времени, особенно для процессов, создающих большое количество потоков, которым, как правило, требуется возможность общения друг с другом. [7]
Если выбранный страничный блок грязный, страница заносится в график записи на диск и происходит переключение контекста, приостанавливающее вызвавший прерывание процесс и позволяющее работать другому процессу до тех пор, пока не будет выполнен перенос страницы на диск. В любом случае блок отмечается как занятый, чтобы предотвратить его использование в других целях. [8]
Главная проблема такого подхода, и проблема микроядер вообще, заключается в снижении производительности, вызываемом дополнительными переключениями контекста. Однако практически вся работа по созданию микроядер была выполнена много лет назад, когда центральные процессоры были значительно медленнее. Сегодня не так уж много приложений, использующих каждую каплю мощности процессора, которые не могут смириться с малейшей потерей производительности. В конце концов, когда работает текстовый редактор или web - браузер, центральный процессор простаивает около 90 % времени. Если операционная система, основанная на микроядре, превращает систему с процессором, работающем на частоте 900 МГц, в надежную систему, аналогичную по производительности системе с частотой 800 МГц, мало кто из пользователей станет жаловаться. [9]
Главная проблема такого подхода, и проблема микроядер вообще, заключается в снижении производительности, вызываемом дополнительными переключениями контекста. Однако практически вся работа по созданию микроядер была выполнена много лет назад, когда центральные процессоры были значительно медленнее. Сегодня не так уж много приложений, использующих каждую каплю мощности процессора, которые не могут смириться с малейшей потерей производительности. В конце концов, когда работает текстовый редактор или web - браузер, центральный процессор простаивает около 90 % времени. Если операционная система, основанная на микроядре, превращает систему с процессором, работающем на частоте 900 МГц, в надежную систему, аналогичную по производительности системе с частотой 800 МГц, мало кто из пользователей станет жаловаться. [10]
Переключение от одной программы к другой без завершения какой-либо из них. Переключение контекста позволяет одновременно работать с несколькими программами, однако истинная многозадачность при этом не реализуется, поскольку когда вы работаете с какой-то программой, выполнение всех остальных загруженных программ приостанавливается. [11]
Обычно переключение контекста предполагает запоминание содержимого всех регистров ЦПУ и иногда адреса возврата. [12]
Лучшие результаты достигались тогда, когда система учитывала несколько последних интервалов ожидания и предполагала, что следующий интервал ожидания будет близок по величине к предыдущим. Например, снова предполагая, что переключение контекста занимает 1 мс, поток будет ожидать в цикле максимум 2 мс, но запоминать при этом, сколько времени он на самом деле провел в состоянии ожидания. Если ему не удается захватить мьютекс и он видит, что за предыдущие три попытки он ждал в среднем 200 мкс, значит, ему следует ждать 2 мс, прежде чем переключаться. Однако если он находился в цикле ожидания целые 2 мс в каждую из своих предыдущих попыток, то он должен переключиться немедленно, не тратя на ожидание ни одного цикла. [13]
Поэтому все последующие вызовы этой функции требуют одинакового количества циклов. Функция realcc () позволяет выявить такой побочный эффект, как влияние переключения контекстов. Здесь важно различать системные вызовы, обусловленные самой исследуемой программой ( как было бы в случае, если бы функция вызова printf находилась в основном цикле), и обращения к операционной системе, никак не связанные с выполнением приложения. [14]
Буфер, или сегмент памяти ЭВМ, отведенный для использования центральному процессорному устройству. Как правило, используется для сохранения информации о состоянии, которое необходимо для переключения контекста. [15]