А можно ли уменьшить в винде время переключения контента?
От: S4  
Дата: 06.10.04 10:23
Оценка:
Без побочных последствий. О реалтайме речь конечно не идет, но хотя бы до 1-3мс.
Есть у кого опыт?
Re: А можно ли уменьшить в винде время переключения контента
От: server_mouse Беларусь about:blank
Дата: 06.10.04 10:27
Оценка:
Здравствуйте, S4, Вы писали:

S4>Без побочных последствий. О реалтайме речь конечно не идет, но хотя бы до 1-3мс.

S4>Есть у кого опыт?

Перепрограммирование системного таймера — всё что приходит на ум.
Повреждение мозга после ректальной биопсии — редкая штука (с) Хаус
Re: А можно ли уменьшить в винде время переключения контента
От: Murr Россия  
Дата: 06.10.04 11:50
Оценка:
Здравствуйте, S4, Вы писали:

S4>Без побочных последствий. О реалтайме речь конечно не идет, но хотя бы до 1-3мс.

S4>Есть у кого опыт?

Время переключения чего? =)))
Может контекста? Переписать код ядра, который осуществляет переключение. =)

А при чем тут 1-3 мс? Контекст все-таки пошустрее переключается
1-3 мс — это уже близко к стандартному кванту.
Re[2]: А можно ли уменьшить в винде время переключения конте
От: Alex Alexandrov США  
Дата: 06.10.04 17:40
Оценка:
Здравствуйте, Murr, Вы писали:

M> Время переключения чего? =)))

M> Может контекста? Переписать код ядра, который осуществляет переключение.
M> =)
M>
M> А при чем тут 1-3 мс? Контекст все-таки пошустрее переключается
M> 1-3 мс — это уже близко к стандартному кванту.

В XP часы тикают с периодом 15 мсек. Контекст может переключаться и реже (если планировать больше нечего).

-- Всего хорошего!
-- Alex Alexandrov, e-mail: alex_alexandrov(at)fromru(dot)com
Posted via RSDN NNTP Server 1.9 gamma
It's kind of fun to do the impossible (Walt Disney)
Re[3]: А можно ли уменьшить в винде время переключения конте
От: Murr Россия  
Дата: 06.10.04 18:19
Оценка:
Здравствуйте, Alex Alexandrov, Вы писали:

AA>Здравствуйте, Murr, Вы писали:


M>> Время переключения чего? =)))

M>> Может контекста? Переписать код ядра, который осуществляет переключение.
M>> =)
M>>
M>> А при чем тут 1-3 мс? Контекст все-таки пошустрее переключается
M>> 1-3 мс — это уже близко к стандартному кванту.

AA>В XP часы тикают с периодом 15 мсек. Контекст может переключаться и реже (если планировать больше нечего).


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

По поводу 15 мс — не знал, но у меня есть некоторые сомнения, поскольку для ОС общего назначения квантовая единица обычно 10 мс (либо 1 мс).


AA>-- Всего хорошего!

AA>-- Alex Alexandrov, e-mail: alex_alexandrov(at)fromru(dot)com
Re[4]: А можно ли уменьшить в винде время переключения конте
От: Alex Alexandrov США  
Дата: 06.10.04 20:31
Оценка:
Здравствуйте, Murr, Вы писали:

M> Переключением контекста во всем мире называется процесс, начинающийся от

M> начала переключения контекста до завершения переключения контекста.
M> Процессорный ресурс, выделяемый нити, обычно называется квантом.
M> Собственно, я только об этом и написал.
M>
M> По поводу 15 мс — не знал, но у меня есть некоторые сомнения, поскольку
M> для ОС общего назначения квантовая единица обычно 10 мс (либо 1 мс).
M>
M>

ОК, я имел в виду "период переключения контекста" и просто подразумевал, что контекст может и не переключаться с истечением каждого кванта. В 2000-х квант, насколько я помню, был именно 10 мс. В XP — 15.

-- Всего хорошего!
-- Alex Alexandrov, e-mail: alex_alexandrov(at)fromru(dot)com
Posted via RSDN NNTP Server 1.9 gamma
It's kind of fun to do the impossible (Walt Disney)
Re[5]: А можно ли уменьшить в винде время переключения конте
От: S4  
Дата: 07.10.04 03:38
Оценка:
Здравствуйте, Alex Alexandrov, Вы писали:

AA>Здравствуйте, Murr, Вы писали:


M>> Переключением контекста во всем мире называется процесс, начинающийся от

M>> начала переключения контекста до завершения переключения контекста.
M>> Процессорный ресурс, выделяемый нити, обычно называется квантом.
M>> Собственно, я только об этом и написал.
M>>
M>> По поводу 15 мс — не знал, но у меня есть некоторые сомнения, поскольку
M>> для ОС общего назначения квантовая единица обычно 10 мс (либо 1 мс).
M>>
M>>

AA>ОК, я имел в виду "период переключения контекста" и просто подразумевал, что контекст может и не переключаться с истечением каждого кванта. В 2000-х квант, насколько я помню, был именно 10 мс. В XP — 15.


Если вы закончили разбираться с терминологией, может посоветуете, что либо конкретное?
Re[4]: о квантах Windows
От: Valerio Россия linkedin.com/in/boronin
Дата: 07.10.04 03:59
Оценка: 39 (7)
Здравствуйте, Murr, Вы писали:

AA>>В XP часы тикают с периодом 15 мсек. Контекст может переключаться и реже (если планировать больше нечего).


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


M>По поводу 15 мс — не знал, но у меня есть некоторые сомнения, поскольку для ОС общего назначения квантовая единица обычно 10 мс (либо 1 мс).


настройки временного интервала таймера по умолчанию в 2000й такие были — для большинства однопроцессорных систем 10 мс (у меня на 2003 сейчас тоже), а для многопроцессорных — 15 мс

определяется вообще говоря в HAL, а не в ядре ОС

все меряется в так называемых величинах кванта — когда происходит таймерное прерывание то его процедура обработки вычитает из кванта потока постоянную величину (на 2000й это 3), а ОС задает квант в интервалах системного таймера соотв. Т.е. от 3*2=6 до 3*N

в серверных ОС настройки по умолчанию подразумевают гораздо бОльшую величину — чтобы приложения пробуждаясь имели больше шансов успеть выполнить запрос до истечения кванта (на 2000 Server N=6 по дефолту к примеру)

если быть точным до конца, то существует некая матрица квантов (HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation) — с помощью которой можно задать не только 2 комбинации как в System->Advanced->Perfomance, а что угодно — для 2000й точная расшифровка была у Руссиновича, там 3 2-х битных поля — суть в том, что системе указывается какие кванты потоков активного процесса использовать (короткие\длинные), использовать ли переменные\фиксированные значения квантов и можно ли ей динамически чуть побольше выдать квант потокам активного процессу (динамический квант дабы у активного приложения было некое преймущество перед остальными без изменения механизма планирования).

при настройках OS усиленно этой таблицей пользуется:
Optimize for Programs — короткие и переменные кванты, при серверных настройках — длинные и фиксированные кванты

далее, одно из 2-х битных полей Win32PrioritySeparation содержит индекс в массиве (который в переменной ядра PspForegroundQuantum живет) — через который и задается N для всех случаев (короткие\длинные + переменные\фиксированные + по 3 каждых N), вот вам и матрица.

Кстати, кванты потоков фоновых процессов — первый элемент этой таблицы
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
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.
Re[6]: А можно ли уменьшить в винде время переключения конте
От: Valerio Россия linkedin.com/in/boronin
Дата: 07.10.04 04:10
Оценка:
Здравствуйте, S4, Вы писали:

S4>Если вы закончили разбираться с терминологией, может посоветуете, что либо конкретное?

поиск выдает по Вашей проблеме:
Re[5]: маленькая задержка
Автор: Maxim S. Shatskih
Дата: 31.05.04

Еще о виндах и риалтайме.
Автор: Maxim S. Shatskih
Дата: 31.05.04

Re: Delay
Автор: Valerio
Дата: 02.04.03
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
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.
Re[5]: о квантах Windows
От: Murr Россия  
Дата: 07.10.04 06:37
Оценка: 4 (1)
Спасибо, довольно информативно.
Re[6]: А можно ли уменьшить в винде время переключения конте
От: Murr Россия  
Дата: 07.10.04 06:41
Оценка:
Здравствуйте, S4, Вы писали:


AA>>ОК, я имел в виду "период переключения контекста" и просто подразумевал, что контекст может и не переключаться с истечением каждого кванта. В 2000-х квант, насколько я помню, был именно 10 мс. В XP — 15.


S4>Если вы закончили разбираться с терминологией, может посоветуете, что либо конкретное?


Дык это вам, а не нам разбираться нужно. Вы ж вопрос задали.

А для чего это вообще в итоге Вам нужно?
Re[7]: А можно ли уменьшить в винде время переключения конте
От: S4  
Дата: 07.10.04 07:09
Оценка:
Здравствуйте, Murr, Вы писали:


M>Дык это вам, а не нам разбираться нужно. Вы ж вопрос задали.


Я к тому, что вопрос поняли все, могли сразу по существу и ответить.

M>А для чего это вообще в итоге Вам нужно?


Есть несколько процессов первый из которых принимает данные, последний передает. Надо, чтобы задержка междй примем и передачей составляла от 50, до 100 мс. Лучше 50. Система не нагружена, т.е. основной тормоз именно скорость переключения между потоками. Если бы ее уменьшить, то все станет намного лучше.
Я надеюсь совет валерио поможет, но у меня нет Руссиновича. В Win32PrioritySeparation стоит значение 2. Кто-нибудь может подсказать на что его поменять?
Re[4]: А можно ли уменьшить в винде время переключения конте
От: Ivan Korotkov Россия  
Дата: 11.10.04 13:34
Оценка:
Здравствуйте, Murr, Вы писали:

M>По поводу 15 мс — не знал, но у меня есть некоторые сомнения, поскольку для ОС общего назначения квантовая единица обычно 10 мс (либо 1 мс).



Вообще-то его можно перепрограммировать. И время переключения потоков — тоже. Его задает определенный ключ в реестре. По умолчанию в не-серверных виндах это происходит каждые 3 тика этого таймера (то есть 30 мсек в 2000 и 45 в ХР).
--
Ivan
Re[8]: А можно ли уменьшить в винде время переключения конте
От: Denwer Россия  
Дата: 12.10.04 08:13
Оценка: 3 (1)
Здравствуйте, S4, Вы писали:

S4>Здравствуйте, Murr, Вы писали:



M>>Дык это вам, а не нам разбираться нужно. Вы ж вопрос задали.


S4>Я к тому, что вопрос поняли все, могли сразу по существу и ответить.


M>>А для чего это вообще в итоге Вам нужно?


S4>Есть несколько процессов первый из которых принимает данные, последний передает. Надо, чтобы задержка междй примем и передачей составляла от 50, до 100 мс. Лучше 50. Система не нагружена, т.е. основной тормоз именно скорость переключения между потоками. Если бы ее уменьшить, то все станет намного лучше.

S4>Я надеюсь совет валерио поможет, но у меня нет Руссиновича. В Win32PrioritySeparation стоит значение 2. Кто-нибудь может подсказать на что его поменять

Вот тебе мануал.

The Win32PrioritySeparation value name, a REG_DWORD data type, at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl, determines, in part, how much processor time the threads of a process receive each time they are scheduled, and how much the allotted time can vary. It also affects the relative priority of the threads of foreground and background processes.

The Win32PrioritySeparation value defaults to 0x02 and has a range of 0x0–0x3F (111111 binary).

The data value in this entry is a 6-bit bitmask consisting of three sets of two bits (AABBCC).

* The highest two bits (AABBCC) determine whether each processor interval is long or short.
* The middle two bits (AABBCC) determine whether the length of the interval varies or is fixed.
* The lowest two bits (AABBCC) determine whether the threads of foreground processes get more processor time than the threads of background processes.

The highest two bits (AABBCC) determine how long the threads of processes are permitted to run each time they are scheduled. This interval is specified as a range because threads can be preempted and processor time is not precisely determined.

Values of the highest two bits:
Value Meaning
00 or 11 Shorter intervals in Windows 2000 Professional, and longer intervals in Windows 2000 Server
01 Longer intervals
10 Shorter intervals

The middle two bits (AABBCC) determine whether the length of processor time varies or is fixed and whether the threads of foreground processes have longer processor intervals than those of background processes. If the processor interval is fixed, that interval applies equally to the threads of foreground and background processes. If the processor interval varies, the length of time each thread runs varies, but the ratio of processor time of foreground threads to background threads is fixed.

If a variable interval is specified, the ratio of foreground thread processor time to background thread processor time is determined by the value of the lowest set of bits.

Values of the middle two bits:
Value Meaning
00 or 11 Variable-length intervals in Windows 2000 Professional, and fixed-length intervals in Windows 2000 Server
01 Variable-length intervals
10 Fixed-length intervals

The lowest two bits (AABBCC) determine the ratio of processor time of foreground to background threads. This value is used only when the middle two bits in this mask specify a variable-length interval. Otherwise, the processor interval for foreground and background threads is the same.
Value Meaning
00 Equal and fixed. The threads of foreground processes get the same amount of processor time as the threads of background processes and as the threads of processes with a priority class of Idle. Also, the processor interval is fixed. This value overrides the specification of a variable-length interval in the middle two bits.
01 2:1. The threads of foreground processes get twice the processor time as the threads of background processes each time they are scheduled for the processor.
10 or 11 3:1. The threads of foreground processes get three times the processor time as the threads of background processes each time they are scheduled for the processor.

NOTE: The same value is interpreted differently on a computer running Windows 2000 Professional than on one running Windows 2000 Server.

On a computer running Windows 2000 Professional, the default value, 2 (000010), specifies shorter, variable intervals, in which foreground threads get three times the processor time as background threads.

On a computer running Windows 2000 Server, the same default value, 2 (000010), specifies longer, fixed intervals, in which foreground and background threads get the same amount of processor time.

These strategies optimize foreground processes on a workstation, and they accommodate the needs of processor-intensive services on a server.

To change the value of this entry, use Control Panel / System / Advanced / Performance Options. In the Application response section, select either Applications or Background services.

Selecting Applications sets the value of this entry to 100110, which provides short, variable length processor intervals in which foreground processes get three times as much processor time as do background processes.

Selectinb Background services sets the value of this entry to 011000, and provides for longer, fixed-length processor intervals in which foreground processes and background processes get equal processor priority.

Re[9]: В догонку
От: Denwer Россия  
Дата: 12.10.04 08:27
Оценка:
Вот кстати в своих залежах нашел ссылочку по оптимизации всякой

здесь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.