Currently in Windows, 3 quantums are equal to either 10 milliseconds (single processor) or 15 milliseconds (multiple-processor Pentium). This depends on the hardware abstraction layer (HAL) selected for your computer. Original Equipment Manufacturer (OEM) HALs may have a different value. Time slices that are fixed at 36 quantums are currently used when background services are selected (as you might choose in a typical server installation).
Получается (10ms / 3) * 36 = 120ms
Хотя там еще дополнения всякие написаны, причем кажется только для win2k. Может, кто имеет обобщенную информацию для 2000/XP/2003 ?
Здравствуйте, oziro, Вы писали:
O>Интересуют бекграундные процессы. 1 процессор\1ядро.
O>Надо мне это, что бы представлять, как работает программа, в которой пахнет RT
ты это, определись, rt или back vocal.
На эту тему есть статьи ищи, При этом Виста и XP работают по разному в выделении слайса.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, Сергей Мухин, Вы писали:
СМ>ты это, определись, rt или back vocal.
Ыы Что винда понимает под back vocal? Мне нужен сервис
Проблема в том, что хотелось бы соблюсти переодичность хотя бы до 5 мс максимум при средней загрузки системы... Сам код не тяжелый, просто всякие переключения контекстов давят на корню благое начинание
Нет, я понимаю, использование sleep и приоритетов помогает, кое-что я достиг уже, около 2-3мс даже. Но конкретно ясности в вопросе об этом Time slices нет.
И почему-то вдруг при повышении приоритета потока(ов) иногда глюки загадочные появляются...
СМ>На эту тему есть статьи ищи, При этом Виста и XP работают по разному в выделении слайса.
Виста хоть и наше будущее, но пока не интересует Больше всякие 2к и 2к3.
СМ>>На эту тему есть статьи ищи, При этом Виста и XP работают по разному в выделении слайса. O>Виста хоть и наше будущее, но пока не интересует Больше всякие 2к и 2к3.
Виста — наше настоящее. завтра убиваю последнюю XP на работе (исключая бухгалтерию, охрану и директора)
Здравствуйте, oziro, Вы писали:
O>Здравствуйте, Сергей Мухин, Вы писали:
СМ>>Виста — наше настоящее. завтра убиваю последнюю XP на работе (исключая бухгалтерию, охрану и директора)
O>Можешь отнести меня к охране и директору
зарплату какую получать будешь охраны или директора
Ну нет в требованиях — висты. Да, может появится. Да, это будет жопа по сегодняшнему состоянию проекта. И я согласен, что стоило закладывать в расчете на нее, но чего нет сейчас того нет, и я это решить не могу. оффтопик это Кстати, плохой пример, не для подражания.
Благодарю. Интересный пример, к тому же, работа с микросекундными отсчетами.
timeBeginPeriod юзаю. Кстати не знал, что Миранда меняет его.
И объяснилась недавняя волшебная загадка — вдруг квант изменился ни с того ни с сего. А ведь на самом деле в миранде дело было.
Вообще, работа с timeBeginPeriod(1) это штатный режим? Никаких последствий не должно быть кажется... Как я понял, 10 было по умолчанию из-за возможно слабой машины
Под штатным WinNT? Захочется какому-нибудь драйверу или, скажем, хитрому антивирусу чуть подвиснуть -- и пришёл 3.14здец. Ставь какой-нибудь RTX (за счёт того, кто взял этот проект ) и вперёд.
Здравствуйте, superlexx, Вы писали:
S>Здравствуйте, oziro, Вы писали: O>>пахнет RT
S>Под штатным WinNT? Захочется какому-нибудь драйверу или, скажем, хитрому антивирусу чуть подвиснуть -- и пришёл 3.14здец. Ставь какой-нибудь RTX (за счёт того, кто взял этот проект ) и вперёд.
Знаю. Это Ж-па. Мб и с RTX решится что-нибудь когда-нибудь... Ладно, RT у меня не особо жесткое, пару раз подвиснет что-нить — пофих. Антивиря вероятно там вообще стоять не будет Еще раз повторюсь — это достаточно плохой пример, не для подражания Основные принципы — машина изолирована, ничего на ней лишнего не стоит, к инету доступа нет, все свои потоки загнать в критикал-приоритет. Это не я решал, и кажется кое-как даже будет работать
сухой остаток: Windows не есть RTOS, даже если Вам нужен 5мс latency — дать гарантий равномерности или отсутствия запаздываний — не получится.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Valery A. Boronin, Вы написали много интересных ссылок
Благодарю
VAB>сухой остаток: Windows не есть RTOS, даже если Вам нужен 5мс latency — дать гарантий равномерности или отсутствия запаздываний — не получится.
С этим иллюзий не возникало. На чистой машине сносно 2мс держатся, ну и ладно...
ветки: менять время переключения контекста . Имхо, решается, как я уже писал довольно элементарно у меня: на нужный поток ставится приортитет CRITICAL, обязательно раз в 1000-5000 итераций вызывается Sleep(1). В итоге имеем "полный" контроль над системой, давая поработать всему остальному за Sleep(1). Под пользовательской нагрузкой, типа архивирования, просадка раза в 2-4, это допустимо, и это будет не часто. Если какой драйвер влезет тогда уже да, плохо, но если машина не общего пользования, а специально выделенная, то не стоит заморачиваться. Вообщем, вот так у меня получилось, может кому пригодится
Здравствуйте, oziro, Вы писали:
O> Основные принципы — машина изолирована, ничего на ней лишнего не стоит, к инету доступа нет, все свои потоки загнать в критикал-приоритет. Это не я решал, и кажется кое-как даже будет работать
Здравствуйте, oziro, Вы писали:
O>Вообще, работа с timeBeginPeriod(1) это штатный режим?
Явно это не документировано. Хотя используют все подряд.
O>Никаких последствий не должно быть кажется... Как я понял, 10 было по умолчанию из-за возможно слабой машины
псевдокод функций ОС — перепрограммируется таймер (от которого работает планировщик). 10 — обычное значение для не сервера.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth