Информация об изменениях

Сообщение Re[30]: А если бы все с начала ? от 17.01.2018 9:44

Изменено 17.01.2018 9:50 Pavel Dvorkin

Re[30]: А если бы все с начала ?
Здравствуйте, AlexRK, Вы писали:

ARK>Планировщик ОС работает постоянно и переключения контекста происходят много раз в секунду.


Совершенно верно, много раз в секунду. Именно много раз. Но по сравнению с временем выполнения команд это очень редко делается.

>В Singularity замеряли — скорость переключения между процессами в 3 раза быстрее, чем переключение контекста в традиционных системах.


Вполне возможно, вот только вопрос в проценте времени, уходящем на эти переключения процессов. В Windows WorkStation размер кванта 2 таймерных интервала, в Server — 12. Если за это время поток сам не освободит процессор (сон, ожидание и т.п.), то посчитай, сколько команд он успеет выполнить за эти 2 или 12 таймерных интервала(ов) , и без всякого переключения контекста, если не будет того, о чем пишу ниже.


ARK>Да если даже говорить только о системных вызовах — много ли вы сможете сделать без них? В типичных приложениях они происходят постоянно.


Постоянно, но очень редко. В основном при системных вызовах, ну и, конечно, при SEH исключениях. Тут и впрямь много. Но все же количество системных вызовов в секунду крайне невелико по сравнению с количеством обычных операций.
Re[30]: А если бы все с начала ?
Здравствуйте, AlexRK, Вы писали:

ARK>Планировщик ОС работает постоянно и переключения контекста происходят много раз в секунду.


Совершенно верно, много раз в секунду. Именно много раз. Но по сравнению с временем выполнения команд это очень редко делается.

>В Singularity замеряли — скорость переключения между процессами в 3 раза быстрее, чем переключение контекста в традиционных системах.


Вполне возможно, вот только вопрос в проценте времени, уходящем на эти переключения процессов. В Windows WorkStation размер кванта 2 таймерных интервала, в Server — 12. Если за это время поток сам не освободит процессор (сон, ожидание и т.п.), то посчитай, сколько команд он успеет выполнить за эти 2 или 12 таймерных интервала(ов) , и без всякого переключения контекста, если не будет того, о чем пишу ниже.

Ну и еще один момент. Переключение процессов в настольной системе — это (не всегда, конечно) следствие того, что пользователь выбрал иное окно. По той причине, что потоки оконных приложений, пока пользователь с их окнами не работает, в Windows обычно спят и процессор не загружают. А активация окна спящего GUI — потока — это такое количество всяких действий, на фоне которого переключение контекста есть всего лишь мелочь. Одна отрисовка окна чего стоит.


ARK>Да если даже говорить только о системных вызовах — много ли вы сможете сделать без них? В типичных приложениях они происходят постоянно.


Постоянно, но очень редко. В основном при системных вызовах, ну и, конечно, при SEH исключениях. Тут и впрямь много. Но все же количество системных вызовов в секунду крайне невелико по сравнению с количеством обычных операций.