Этот вопрос касается возможности настройки ядра Windows в режиме реального времени, например oses, и способов сделать это. Это довольно специфическая узкая тема, требующая глубокого уровня знаний - вы либо знаете, либо нет.
Я на платформе WS2016 x64, и я могу установить разрешение таймера только до 500us (0.5ms), вызывая NtSetTimerResolution()
в библиотеке ntdll.dll
. Я думаю, что это значение привязано к временному интервалу sheduler.
Тем не менее, я хочу увеличить его до 100US. Измерение может включать вызов NtDelayExecution()
обернутый в QueryPerformanceCounter()
много раз внутри цикла, а затем анализ статистики, такой как джиттер, стандартное отклонение и т.д.
Как это сделать? Есть ли в реестре / файл настройки, где я могу установить Arbiraty Windows Sheduler Timeslice?
PS. Некоторые люди могут спросить: « Зачем вам это нужно?"или заявить " Не делай этого, это неправильно!». Я предвижу подобные мысли и отвечу заранее.
- Это всего лишь программный эксперимент. Это просто для проверки возможности и физических результатов этого.
- Я знаю, что это может привести к потенциальным проблемам, таким как дополнительное время процессора, потраченное только на переключение контекста, нестабильность системы, безответственность, потеря данных и любые другие проблемы, которые это может вызвать. Я принимаю любые негативные последствия, если буду делать это заранее и брать на себя всю ответственность. Даже если бы дым и блестки вышли бы из моей машины :)
- В соответствии с поиском или поиском здесь - конечно, я сделал это и не смог найти полезную информацию, потому что эта тема довольно узкая, касающаяся работы планировщиков ОС. И делать практически бессмысленно на любой windows-машине. Я знаю, что не могу превратить его в реальное время. Этот поиск по сайту "sheduler timeslice" не дает результата.