|
|
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
http://www.periodicooficial.oaxaca.gob.mx/files/2011/05/EXT02-2011-05-19.pdf Context switches are not free; thread scheduling requires manipulating shared data structures in the OS and JVM. The OS and JVMuse the same CPUs your program does; more CPU time spent in JVM and OS code means less is available for your program. But OS and JVM activity is not the only cost of context switches. When a new thread is switched in, the data it needs is unlikely to be in the local processor cache, so a context switch causes a flurry of cache misses, and thus threads run a little more slowly when they are first scheduled. This is one of the reasons that schedulers give each runnable thread a certain minimum time quantum even when many other threads are waiting: it amortizes the cost of the context switch and its consequences over more uninterrupted execution time, improving overall throughput (at some cost to responsiveness) Не могу понять причинно следственной связи как отсутствие кеша(flurry of cache misses) связано с тем, что впервые зашедуленные трэды будут старторвать медленнее.(and thus threads run a little more slowly when they are first scheduled). Возможно проблема непонимания в том, что я не понимаю, что значит first scheduled А про шедулеры, которые дают каждому потоку минимальное число rквантов времени, вообще непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 14:09 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
Речь идет о кэше процессора(L1-L3), у каждого потока свой набор переменных, поэтому при контекст свитче они запрашиваются из main memory ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 14:36 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
забыл ник, Знание этого факта на первый взгляд мало что даёт для понимания заданных вопросов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 16:26 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
questionerЗнание этого факта на первый взгляд мало что даёт для понимания заданных вопросов) Вопросов не обнаружено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 16:30 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, 1. что значит first scheduled ? 2. Какова причинно-следственная связь между отсутствием кеша(flurry of cache misses) и с тем, что впервые зашедуленные трэды будут старторвать медленнее.(and thus threads run a little more slowly when they are first scheduled) ? 3. This is one of the reasons that schedulers give each runnable thread a certain minimum time quantum even when many other threads are waiting: it amortizes the cost of the context switch and its consequences over more uninterrupted execution time, improving overall throughput (at some cost to responsiveness). Как это корректно перевести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 16:40 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
questioner1. что значит first scheduled ? Scheduled здесь обозначает назначение потока на исполнение процессором https://msdn.microsoft.com/en-us/library/windows/desktop/ms685096(v=vs.85).aspx https://en.wikipedia.org/wiki/Scheduling_(computing) first - "в первый раз". questioner2. Какова причинно-следственная связь между отсутствием кеша(flurry of cache misses) и с тем, что впервые зашедуленные трэды будут старторвать медленнее.(and thus threads run a little more slowly when they are first scheduled) ? flurry of cache misses это не "отсутствием кеша". Это отсутствие данных нужных потоку в кеше. Есть понимание что отсутствие нужных данны в кеше ведёт к более медленной работе в сравнении с ситуацией когда данные там есть? questioner3. This is one of the reasons that schedulers give each runnable thread a certain minimum time quantum even when many other threads are waiting: it amortizes the cost of the context switch and its consequences over more uninterrupted execution time, improving overall throughput (at some cost to responsiveness). Как это корректно перевести? Это одна из причин по которой планировщик предоставляет каждому исполняемому потоку определенный минимальный квант времени даже если много других потоков находятся в ожидании: это амортизирует стоимость переключения контекста и соответствующих последствий за счет более продолжительного непрерывного исполнения и увеличивает пропускную способность (ценой небольшого уменьшения отзывчивости) Речь о spin lock, вероятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 17:20 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 18:18 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
Blazkowiczflurry of cache misses это не "отсутствием кеша". Это отсутствие данных нужных потоку в кеше. Есть понимание что отсутствие нужных данны в кеше ведёт к более медленной работе в сравнении с ситуацией когда данные там есть? Есть Blazkowiczquestioner3. This is one of the reasons that schedulers give each runnable thread a certain minimum time quantum even when many other threads are waiting: it amortizes the cost of the context switch and its consequences over more uninterrupted execution time, improving overall throughput (at some cost to responsiveness). Как это корректно перевести? Это одна из причин по которой планировщик предоставляет каждому исполняемому потоку определенный минимальный квант времени даже если много других потоков находятся в ожидании: это амортизирует стоимость переключения контекста и соответствующих последствий за счет более продолжительного непрерывного исполнения и увеличивает пропускную способность (ценой небольшого уменьшения отзывчивости) Речь о spin lock, вероятно. Перед этой фразой автор When a new thread is switched in, the data it needs is unlikely to be in the local processor cache, so a context switch causes a flurry of cache misses, and thus threads run a little more slowly when they are first scheduled. Я как-то не уловил причем тут spin lock. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 10:36 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, по поводу шедулинга Я понимаю, что это не сложная работа и каждой ОС она реализована по разному. Но может есть какие-то общие моменты? Вот допустим у нас 2 ядра и 10 потоков. Шедулер выделил по 10 секунд на поток. Что будет если число потоков увеличится? Подстраивает ли как-то шедулер время на поток в зависимости от накопленной статистики? и вот часто встречается фраза: time per operation is dominated by context switch. Время на операцию доминирует над переключением контекста. это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 12:23 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
автори вот часто встречается фраза: time per operation is dominated by context switch. Время на операцию доминирует над переключением контекста. это как? пишут что это когда большой contention ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 12:24 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
questionerЯ как-то не уловил причем тут spin lock. Ну, я ошибся. Но spin lock из той же оперы. Исполняющиеся потоки имеют приоритет над новыми и заблокированными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 12:35 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
questionertime per operation is dominated by context switch. Время на операцию доминирует над переключением контекста. это как? Блин, ну пассивный залог надо знать. Да, и фразы из контекста выдирать не стоит. Переключение контекста преобладает над временем отведённым на операцию. При низком contention - переключения контекста редкие. А при высоком - они частые и затраных на переключения становятся существенными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 12:40 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, о, спасибо. То есть шелдулер подстраивается таким образом, что чем больше потоков тем меньше кванты времени? или просто из-за большего контеншена за этот квант один поток успевает меньше сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 14:02 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
questionerТо есть шелдулер подстраивается таким образом, что чем больше потоков тем меньше кванты времени? Не обязательно. Грубо говоря квант делится на две части. Время в течении которого система думает - переключать ли контекст (и переключает контекст) и время основной работы. Если системе надо долго думать и много времени требуется на переключение контекста - на работу остается мало времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 14:58 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
questionerпо поводу шедулинга Я понимаю, что это не сложная работаЭк вы, батенька, маханули-то ... Шахматные правила просты, но на сложность игры это слабо влияет. Есть классы приоритетов. Пример - "пакетные неинтерактивные" и "реального времени". Целевая характеристика для первых - максимальная пропускная способность, для вторых - минимальное время ожидания "по готовности". Кроме того, не надо забывать, что единицей планирования является поток процесса, а единицей управления - процесс. Для процессов есть определённые гарантии на изоляцию ресурсов и (обычно) реализуются эти гарантии переключением карт памяти. Классы приоритетов требуют оптимизации по взаимно исключающим критериям, изоляция процессов - взаимодействия с диспетчером памяти и решения неоднозначной задачи выбора между переключением на потоки одного или разных процессов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2017, 09:18 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
questionerТо есть шелдулер подстраивается таким образом, что чем больше потоков тем меньше кванты времени?Квант времени - величина фиксированная. Типичное значение четверть века назад - ~20 миллисекунд. Сейчас - на порядок меньше. Чем больше потоков, тем реже по астрономическому времени поток будет получать исполнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2017, 09:22 |
|
||
|
Вопрос про переключение контекста [JCIP 11.3.1]
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovquestionerпо поводу шедулинга Я понимаю, что это не сложная работаЭк вы, батенька, маханули-то ... Шахматные правила просты, но на сложность игры это слабо влияет. Хотел написать непростая ... отвлекся пока писал и вышло, что вышло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2017, 11:07 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39414758&tid=2123087]: |
0ms |
get settings: |
4ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 357ms |

| 0 / 0 |
