|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
petrav, Ты столько раз написал слово фоновый поток. Но фоновый поток ничего не блокирует. И не должен блокировать. И с мьютексом не взаимодействует. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2021, 15:25 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
mayton petrav пропущено... Ох, ну и ну. Если мы находимся в таких условиях, то в большинстве случаев нагрузка на ЦПУ не равномерна. У низкоприоритетного потока всегда есть шанс захватить мьютекс. Хоть мгновенно, хоть не мгновенно. А после этого обрушить логику работы высокоприоритетных потоков. Я читал где-то про такой алгоритм приоритезации. Кажется во FreeBSD. Вобщем поток имеющий низкий приоритет (голодающий) в то врема когда 100% квантов потребляют более важные потоки, всё таки имеет гарантированный шанс получить свой квант даже в таких условиях. Это что-то вроде защиты от зависания потока. Вот насчет FreeBSD я не уверен сильно. В пятой версии (2003) представили новый планировщик (ULE) который должен был решить все эти проблемы, но он был по умолчанию выключен и работал стандартный планировщик. Только в 2008 (7 версия ОС) BSD планировщик был заменен на ULE "из коробки". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2021, 17:04 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
petrav Интересный вопрос мне тут задали. Поток 1 захватил мьютекс, потом поток 2 пытается захватить этот мьютекс и поток 2 блокируется. Потом поток 1 отпускает мьютекс. Вопрос: через какое время мьютекс будет захвачен потоком 2? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 21:46 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
Alex_Ustinov petrav Интересный вопрос мне тут задали. Поток 1 захватил мьютекс, потом поток 2 пытается захватить этот мьютекс и поток 2 блокируется. Потом поток 1 отпускает мьютекс. Вопрос: через какое время мьютекс будет захвачен потоком 2? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 09:17 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
petrav x1ca4064, 2. В чём смысл такого вопроса с точки зрения разработки многопоточных программ? Ведь поток 2 не может знать висел ли он на ожидании мьютекса или нет. Бывает интересно, сколько времени поток проводит в ожидании занятого ресурса (мьютекса), насколько эффективна организация многопоточности. Для оценки простоя можно использовать минимум 2 способа. 1. мерять высокоточно время до и после получения ресурса. 2. Использовать не функцию захвата ресурса, а попытки захвата, которая вернется сразу же если он не доступен, и подсчитывать количество неудачных попыток. Другой вопрос, что можно сделать, получив эти данные, как и что оптимизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 10:56 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
teo609, >для ЭФФЕКТИВНОСТИ организации многопоточности в топике вообще нет никаких исходных данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 12:16 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
Кстати даже проблема которую моделирует автор - будет иметь разные имплементации на windows-threads, linux/p_threads e.t.c. Поэтому и изучать эту проблему в разрезе С++ безмысленно. Нам придется смотреть что-то более конкретное к ОС и железу. Может у него - QNX/Neutrino? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 12:49 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
Получается планировщик знает кто ожидает мьютекс и сразу же запускает ожидающий поток? Где можно про это почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 13:16 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
da17 Получается планировщик знает кто ожидает мьютекс и сразу же запускает ожидающий поток? Где можно про это почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 14:38 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
Но код ReleaseMutex способен поставить нового владельца в голову списка и отдать остаток своего кванта, причём не возвращаясь в пользовательский режим. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 14:42 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Но код ReleaseMutex способен поставить нового владельца в голову списка и отдать остаток своего кванта, причём не возвращаясь в пользовательский режим. Это если оба потока на одном ядре. Если на разных ядрах, то задача становится неоднозначной - переключение потока на другое ядро далеко не бесплатная операция. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 14:51 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
da17 Получается планировщик знает кто ожидает мьютекс и сразу же запускает ожидающий поток? Где можно про это почитать? Можно наверное начать читать отсюда https://en.wikipedia.org/wiki/Completely_Fair_Scheduler по Linux. По Windows - не знаю. Но возможно Рихтер и Руссинович где-то писали об этом в своих книгах и статьях. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 15:56 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
da17 Получается планировщик знает кто ожидает мьютекс и сразу же запускает ожидающий поток? Где можно про это почитать? Э. Таненбаум Х. Бос "Современные операционные системы" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 03:39 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
mayton Кстати даже проблема которую моделирует автор - будет иметь разные имплементации на windows-threads, linux/p_threads e.t.c. Поэтому и изучать эту проблему в разрезе С++ безмысленно . Нам придется смотреть что-то более конкретное к ОС и железу. Может у него - QNX/Neutrino? Нет, вопрос был задан именно так как я его озвучил. И именно не в контексте какой-то ОС. PS: * Бессмысленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 20:09 |
|
Через какое время будет заблокирован мьютекс?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Но код ReleaseMutex способен поставить нового владельца в голову списка и отдать остаток своего кванта, причём не возвращаясь в пользовательский режим. Т.е. вы хотите сказать, что эти остатки этого кванта пользовательский поток будет работать в режиме ядра? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 20:14 |
|
|
start [/forum/topic.php?fid=57&msg=40077291&tid=2017200]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 251ms |
total: | 406ms |
0 / 0 |