Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
А чем отличается критическая секция от мьютекса? По сути ведь критическая секция в Windows это тот же мьютекс перед которым сначала запускается на некоторое время spinlock. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2012, 15:36 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
мьютекс - это у ядра. критическая секция - это у программы (процесса). а так одно и то же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2012, 19:29 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаА чем отличается критическая секция от мьютекса? По сути ведь критическая секция в Windows это тот же мьютекс перед которым сначала запускается на некоторое время spinlock.Тем же чем перекресток отличается от светофора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2012, 19:48 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютекса, По назначению и возможностям с точки зрения логики работы кода это одно и то же. Есть только две особенности, очень важные. 1) мьютекс —объект ядра и он медленнее критической секции. 2) крит. секция принадлежит одному процессу, за счет этого она быстрая, но она не может работать в нескольких процессах, только в одном. У неё нет имени, только адрес, который определен в рамках одного процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2012, 20:25 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
MasterZivкритическая секция от мьютекса, По назначению и возможностям с точки зрения логики работы кода это одно и то же. Есть только две особенности, очень важные. 1) мьютекс —объект ядра и он медленнее критической секции. 2) крит. секция принадлежит одному процессу, за счет этого она быстрая, но она не может работать в нескольких процессах, только в одном. У неё нет имени, только адрес, который определен в рамках одного процесса. А с чем связано то, что в языках есть только мьютексы, и нету критических секций, а вызывать их можно только через WINAPI? И есть ли критические секции под Linux/Unix? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2012, 23:16 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаА с чем связано то, что в языках есть только мьютексы, и нету критических секций, а вызывать их можно только через WINAPI? И есть ли критические секции под Linux/Unix?Тут идет мешанина из терминов и "облегчений жизни" которые все усложняют. В теоретической CS, "критическая секция" это кусок кода который обращается к общему ресурсу. Кроме этого в виндах (и только в них) есть специальное API для работы с критическими секциями. Смотри EnterCriticalSection В теоретической CS, mutex это сокращение от "mutual exclusive", теория описывающая критические секции. Кроме этого существуют библиотеки синхронизации (вариант семафоров и/или замков реализованные через семафоры и/или замки) которые имеют в своих названиях и именах функций слово mutex. Они есть и под винды и под юниксы. Смотри CreateMutex и Pthread Mutex Functions . А теперь вопрос на засыпку, о каких критических секциях и мьютексах говорили те кто отметился в этом топике? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2012, 23:33 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
Например я говорил об boost::mutex и WINAPI EnterCriticalSection. Но мне казалось, что теория и практика для критических секций одинакова. Она же одинакова для мьютексов. Насколько я понял под Linux/Unix нету критических секций, а есть только мьютексы, семафоры и спинлоки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2012, 00:05 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаНапример я говорил об boost::mutex и WINAPI EnterCriticalSection. Но мне казалось, что теория и практика для критических секций одинакова. Она же одинакова для мьютексов. Насколько я понял под Linux/Unix нету критических секций, а есть только мьютексы, семафоры и спинлоки?Ты не правильно понял. Критические секции есть всегда если есть общий ресурс для нескольких процессов или нитей. То что в виндах придумали упрощающие функции неявно создающие объекты-мьютексы и/или семафоры вовсе не означает что критические секции есть только в виндах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2012, 02:23 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
White OwlА теперь вопрос на засыпку, о каких критических секциях и мьютексах говорили те кто отметился в этом топике? :) о виндовых. мьютексы именуются, благодаря чему разные процессы имеют возможность работать с одним и тем же мьютексом. у критикал секшион (в винде) есть только адрес внутри процесса. и получить к нему доступ из вне с обычными привелениями нельзя. да и ненужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2012, 10:49 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
White Owlкритическая секция от мьютексаНапример я говорил об boost::mutex и WINAPI EnterCriticalSection. Но мне казалось, что теория и практика для критических секций одинакова. Она же одинакова для мьютексов. Насколько я понял под Linux/Unix нету критических секций, а есть только мьютексы, семафоры и спинлоки?Ты не правильно понял. Критические секции есть всегда если есть общий ресурс для нескольких процессов или нитей. То что в виндах придумали упрощающие функции неявно создающие объекты-мьютексы и/или семафоры вовсе не означает что критические секции есть только в виндах. А в Linux или Unix есть именно аналог виндовой функции критической секции, т.е. более быстрой чем мьютекс? И есть ли она в boost? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2012, 12:13 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаА в Linux или Unix есть именно аналог виндовой функции критической секции, т.е. более быстрой чем мьютекс?А почему ты считаешь что она более быстрая? Виндовый набор EnterCriticalSection/LeaveCriticalSection это по существу те-же самые самые методы синхронизации, что и ты сам бы делал через ручное создание мьютексов, семафоров или замков. Я не знаю какой именно механизм винда использует в данном конкретном случае, но магии не бывает. Винда ДОЛЖНА использовать один из этих синхронизирующих механизмов. критическая секция от мьютексаИ есть ли она в boost?Понятия не имею, я boost'ом не пользуюсь. Может и есть, но если нету то наваять свои собственные никаких проблем не составляет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. А будешь ты использовать semaphors, spinlocks или boost::mutex, и как ты будешь хранить список этих автоматически созданных объектов синхронизации решать тебе. Что удобней, то и бери. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2012, 18:51 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
а для критической секции предусмотрен кейс, подобный "отказу от мьютекса"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2012, 21:28 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
White Owlкритическая секция от мьютексаА в Linux или Unix есть именно аналог виндовой функции критической секции, т.е. более быстрой чем мьютекс?А почему ты считаешь что она более быстрая? MasterZiv утверждает, что она быстрее MasterZivЕсть только две особенности, очень важные. 1) мьютекс —объект ядра и он медленнее критической секции . 2) крит. секция принадлежит одному процессу, за счет этого она быстрая , но она не может работать в нескольких процессах, только в одном. У неё нет имени, только адрес, который определен в рамках одного процесса. Вот меня и интересует, а можно ли в рамках какого либо языка или в частности C++ boost использовать именно быструю критическую секцию и именно из стандарта языка или библиотеки boost? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2012, 23:33 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаWhite Owlпропущено... А почему ты считаешь что она более быстрая? MasterZiv утверждает, что она быстрее Нууу... я уверен, что в данном случае он ошибается, либо сказал не то что думал :) Нельзя говорить о скорости работы, когда мы используем объекты синхронизации смысл которых остановить выполнение работы до какого-то момента. С другой стороны, если ты в виндах, то можешь либо один раз написать EnterCriticalSection() и все, либо вручную создать синхронизирующий объект и вручную же прописывать работу с ним. Меньше писать, меньше думать - выше скорость написания программы. критическая секция от мьютексаВот меня и интересует, а можно ли в рамках какого либо языка или в частности C++ boost использовать именно быструю критическую секцию и именно из стандарта языка или библиотеки boost?ээээ... отдели мух от котлет пожалуйста. Если ты хочешь использовать функции вот этой группы , то ты можешь их использовать напрямую из С. Никакого boost или других библиотек, только чистый WinAPI. Из других языков возможно будут проблемы - WinAPI рассчитан на чистый Cи остальные языки (включая С++) - чем ближе к Си, тем проще использовать WinAPI. А так как это WinAPI, то забудь про все остальные ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 05:43 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
White OwlНельзя говорить о скорости работы, когда мы используем объекты синхронизации смысл которых остановить выполнение работы до какого-то момента.Можно говорить о скорости работы. Смысл объектов синхронизации - не остановить выполнение, а гарантировать отсутствие конфликтов. Захват свободного мьютекса - это в любом случае сотни тактов процессора, поскольку системный вызов и переключение контекста. Захват свободной критической секции - единицы тактов, все на пользовательском уровне, без обращения к функциям ядра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 07:23 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаНапример я говорил об boost::mutex и WINAPI EnterCriticalSection. Но мне казалось, что теория и практика для критических секций одинакова. Она же одинакова для мьютексов. Насколько я понял под Linux/Unix нету критических секций, а есть только мьютексы, семафоры и спинлоки? Я лично говорил только об объектах синхронизации Win32/64 API. В линуксах (на самом деле это POSIX) критических секций нет, там есть более хорошо настраиваемые мьютексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 10:45 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
А с чем связано то, что в языках есть только мьютексы, и нету критических секций, а вызывать их можно только через WINAPI? И есть ли критические секции под Linux/Unix?[/quot] Мьютекс в языке -- это совсем другое. Общее только название. Как оно внутри реализовано -- только автору известно, и ещё может быть по-разному на разных платформах, потому как API OS разное. Да, кстати -- boost::mutex -- это ни фига не "в языке". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 10:50 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
А почему ты считаешь что она более быстрая? Ну, потому что я сказал :-) Виндовый набор EnterCriticalSection/LeaveCriticalSection это по существу те-же самые самые методы синхронизации, что и ты сам бы делал через ручное создание мьютексов, семафоров или замков. Я не знаю какой именно механизм винда использует в данном конкретном случае, но магии не бывает. Винда ДОЛЖНА использовать один из этих синхронизирующих механизмов. Там унутре вроде бы InterlockedIncrement/Decrement и InterlockedCheck используются, они быстрее чем обычный мьютекс. Не знаю, за счёт чего. Но это всё было писано ещё у Рихтера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 10:53 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
Яростный Меча для критической секции предусмотрен кейс, подобный "отказу от мьютекса"? Кстати да, я про это забыл, ещё есть разные нюансы при ненормальном поведении программы/потока. если ты абортируешь поток/процесс с захваченным мьютексом, он вроде бы будет автоматом освобождён, а с крит. секцией всё гораздо хуже. Но эти детали надо читать в API, они ещё и меняются со временем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 10:56 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
MasterZivкритическая секция от мьютексаА с чем связано то, что в языках есть только мьютексы, и нету критических секций, а вызывать их можно только через WINAPI? И есть ли критические секции под Linux/Unix? Мьютекс в языке -- это совсем другое. Общее только название. Как оно внутри реализовано -- только автору известно, и ещё может быть по-разному на разных платформах, потому как API OS разное. Да, кстати -- boost::mutex -- это ни фига не "в языке". Ок, std::mutex :) White Owlкритическая секция от мьютексаВот меня и интересует, а можно ли в рамках какого либо языка или в частности C++ boost использовать именно быструю критическую секцию и именно из стандарта языка или библиотеки boost?ээээ... отдели мух от котлет пожалуйста. Если ты хочешь использовать функции вот этой группы , то ты можешь их использовать напрямую из С. Никакого boost или других библиотек, только чистый WinAPI. Из других языков возможно будут проблемы - WinAPI рассчитан на чистый Cи остальные языки (включая С++) - чем ближе к Си, тем проще использовать WinAPI. А так как это WinAPI, то забудь про все остальные ОС. Не, меня больше интересует 2 вопроса: 1. Не в WINAPI, а в самих стандартах языков например C++11 и Java нет такого понятия как критическая секция? 2. И если критическая секция по сути тоже что и мьютекс, то зачем в WINAPI есть аж 3 их вида? - критическая секция - мьютекс - фаст мьютекс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 12:49 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 13:13 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаА в Linux или Unix есть именно аналог виндовой функции критической секции, т.е. более быстрой чем мьютекс? http://en.wikipedia.org/wiki/Futex ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 13:23 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаНе, меня больше интересует 2 вопроса: 1. Не в WINAPI, а в самих стандартах языков например C++11 и Java нет такого понятия как критическая секция?Есть конечно. Это понятие есть всегда если есть общие ресурсы и доступ к ним из разных процессов. Забудь о виндовой "критической секции", называя группу WinAPI функций "критической секцией" ты путаешь и сам себя и тех кто тебя читает. критическая секция от мьютекса2. И если критическая секция по сути тоже что и мьютекс,Еще раз повторяю: В теоретической computer science, Mutual Exclusion (mutex) это проблема описывающая работу с критическими секциями. Это вовсе не одно и тоже, близко, неразрывано связано, но не одно и тоже. критическая секция от мьютекса то зачем в WINAPI есть аж 3 их вида? - критическая секция - мьютекс - фаст мьютексА это ты говоришь о методах решения проблемы синхронизации. О классах объектов которые можно создавать в винде для решения проблемы синхронизации. Этих классов на самом деле больше (около десятка), у них разные ограничения, разные принципы реализации, разные области применения. Какой использовать в конкретном случае - надо смотреть по задаче и по возможностям класса. Загляни сюда: http://msdn.microsoft.com/en-us/library/windows/desktop/ms686360%28v=vs.85%29.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2012, 19:40 |
|
||
|
Чем отличается критическая секция от мьютекса?
|
|||
|---|---|---|---|
|
#18+
критическая секция от мьютексаВот меня и интересует, а можно ли в рамках какого либо языка или в частности C++ boost использовать именно быструю критическую секцию и именно из стандарта языка или библиотеки boost?Правильно написаная библиотека для тех же к примеру pthread_mutex_* функций должна использовать правильную реализацию - CriticalSection в windows и futex в linux. Что там реально в бусте - сами в исходниках посмотрите :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2012, 08:18 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37823525&tid=1340288]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 166ms |

| 0 / 0 |
