реклама на сайте
подробности

 
 
> Семафоры и Мютексы
toweroff
сообщение Jun 9 2018, 16:52
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Товарищи, объясните разницу
Мютекс - запрещает доступ от разных процессов
Семафор - имеет счетчик вхождений
получается, мютекс - вырожденная форма семафора с количеством вхождений ==1?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
haker_fox
сообщение Jun 10 2018, 10:47
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (toweroff @ Jun 10 2018, 00:52) *
Товарищи, объясните разницу

Своими словами: мьютекс предназначен для "атомарного доступа". И это доступ к переменным, аппаратному обспечению, коду и т.п. Если один из процессов желает получить доступ к общему ресурсу (который и другие процессы могут использовать), то сначала он должен захватить мьютекс. Если мьютекс свободен, то процесс сразу получает доступ к ресурсу. В противном случае он вынуждет ждать - в течение указанного таймаута. Может дождаться, а может и не дождаться.

Семафоры предназначены для "сигнализации" одним процессом другому. Например, наша задача "А" должна дождаться, пока другая задача "В" выполнит какой-то фрагмент когда, затем послать сигнал в ждущую задачу "А". Задача "А", в свою очередь может продолжить выполняться.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 10 2018, 11:17
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(haker_fox @ Jun 10 2018, 13:47) *
Семафоры предназначены для "сигнализации" одним процессом другому. Например, наша задача "А" должна дождаться, пока другая задача "В" выполнит какой-то фрагмент когда, затем послать сигнал в ждущую задачу "А". Задача "А", в свою очередь может продолжить выполняться.

Не знаю с чего Вы это взяли, но я на uCOS-II вполне себе много лет уже использую семафоры для разграничения доступа задач ОС к разделяемым ресурсам.
И вообще, имхо, значения этих терминов в разных ОС трактуются не одинаково.
Так что вопрос терминологии бессмысленен без привязки к конкретной ОС.
К тому же исходный вопрос ТС ещё и поставлен некорректно: вопрос "в чём отличия функциональности" и "для чего можно применять" - совершенно разные вопросы. Для разделяемого доступа к ресурсам я могу применять хоть семафоры, хоть мьютексы, хоть даже мэйлбоксы или критические секции (или вообще сделать разделяемый доступ на атомарных операциях LDREX/STREX и Sleep(); или очередях и Sleep()) - всё зависит от понимания работы инструмента и уровня компетентности разработчика. laughing.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- toweroff   Семафоры и Мютексы   Jun 9 2018, 16:52
- - Serge V Iz   Цитата(toweroff @ Jun 9 2018, 17:52) мюте...   Jun 9 2018, 17:07
- - Arlleex   Не совсем так. Мьютекс - это объект синхронизации,...   Jun 9 2018, 17:13
|- - AlexandrY   Цитата(Arlleex @ Jun 9 2018, 20:13) Мьюте...   Jun 10 2018, 14:27
|- - Viktuar   Цитата(AlexandrY @ Jun 10 2018, 15:27) Но...   Jun 10 2018, 15:13
|- - Forger   Цитата(AlexandrY @ Jun 10 2018, 17:27) Но...   Jun 10 2018, 16:04
|- - AlexandrY   Цитата(Forger @ Jun 10 2018, 19:04) Доста...   Jun 11 2018, 05:45
|- - Forger   Цитата(AlexandrY @ Jun 11 2018, 08:43) вс...   Jun 11 2018, 05:51
||- - AlexandrY   Цитата(Forger @ Jun 11 2018, 08:51) Вы ак...   Jun 11 2018, 06:02
||- - Forger   Цитата(AlexandrY @ Jun 11 2018, 09:02) Де...   Jun 11 2018, 06:16
|- - Viktuar   Цитата(AlexandrY @ Jun 11 2018, 05:45) Да...   Jun 11 2018, 13:54
|- - AlexandrY   Цитата(Viktuar @ Jun 11 2018, 16:54) Испо...   Jun 11 2018, 19:16
|- - Forger   Цитата(AlexandrY @ Jun 11 2018, 22:16) Ст...   Jun 11 2018, 19:33
|- - AlexandrY   Цитата(Forger @ Jun 11 2018, 22:33) ТС ни...   Jun 11 2018, 20:07
|- - Forger   Цитата(AlexandrY @ Jun 11 2018, 23:07) Ес...   Jun 11 2018, 20:16
- - Forger   Цитата(toweroff @ Jun 9 2018, 19:52) Това...   Jun 9 2018, 20:04
|- - ViKo   Цитата(Forger @ Jun 9 2018, 23:04) Вот по...   Jun 10 2018, 10:38
|- - Forger   Цитата(ViKo @ Jun 10 2018, 13:38) По како...   Jun 10 2018, 11:48
|- - k155la3   Цитата(Forger @ Jun 10 2018, 14:48) По лю...   Jun 11 2018, 08:04
|- - Forger   Цитата(k155la3 @ Jun 11 2018, 11:04) ...   Jun 11 2018, 09:25
|- - Herz   Цитата(Forger @ Jun 11 2018, 12:25) Если ...   Jun 11 2018, 14:51
|- - Forger   Цитата(Herz @ Jun 11 2018, 17:51) Здесь р...   Jun 11 2018, 15:47
|- - haker_fox   QUOTE (jcxz @ Jun 10 2018, 19:17) Не знаю...   Jun 10 2018, 12:43
- - ViKo   ЦитатаMutex stands for “Mutual Exclusion”. In real...   Jun 11 2018, 08:50
- - Serge V Iz   А очереди не должны приводить к лишним переключени...   Jun 11 2018, 14:33
- - Herz   Я согласен, многое можно выяснить самостоятельно. ...   Jun 11 2018, 18:13
|- - Forger   Цитата(Herz @ Jun 11 2018, 21:13) Как Вы ...   Jun 11 2018, 18:25
|- - Herz   Цитата(Forger @ Jun 11 2018, 21:25) А вот...   Jun 12 2018, 11:34
- - toweroff   ТС не молчит, праздники... спасибо за обсуждение, ...   Jun 12 2018, 05:39
- - Forger   Цитата(toweroff @ Jun 12 2018, 08:39) в р...   Jun 12 2018, 06:36


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 05:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016