Size: a a a

2020 December 15

A

Alexander in Embedded Group
Задача занимает ресурс (удерживает мьютекс), потом отдает мьютекс, позволяя другим задачам получить к этому ресурсу доступ.
источник

A

Alexander in Embedded Group
Aleksander Mironov
В том, что в документации прямо написано, что мутекс это двоичный семафор С.
Что подразумевает одинаковую функциональность.
Не подразумевает.
источник

MP

Max Payne in Embedded Group
Aleksander Mironov
В том, что в документации прямо написано, что мутекс это двоичный семафор С.
Что подразумевает одинаковую функциональность.
на ЗНО (аналог ЕГЭ) не зря дают текст прочитать и ответить на вопросы. теперь я знаю почему ;)
источник

m

mila in Embedded Group
Aleksander Mironov
В том, что в документации прямо написано, что мутекс это двоичный семафор С.
Что подразумевает одинаковую функциональность.
бинарный семафор может быть мьютексом, но мьютекс не может быть семафором
источник

AM

Aleksander Mironov in Embedded Group
Max Payne
на ЗНО (аналог ЕГЭ) не зря дают текст прочитать и ответить на вопросы. теперь я знаю почему ;)
Да, что бы потом было в конфах попонтоваться кому то хотя бы им.
источник

L

LexsZero in Embedded Group
все тлен
источник

A

Alexander in Embedded Group
LexsZero
все тлен
Тлен-пипен
источник

L

LexsZero in Embedded Group
в фриртоси вообще единственный примитив синхронизации это очередь, а все остальное - синтаксический сахар вокруг очереди.
источник

AM

Aleksander Mironov in Embedded Group
mila
бинарный семафор может быть мьютексом, но мьютекс не может быть семафором
Ок. Просто не очень понятно, как это из доков следует. Т.к. по факту там нет запрета, разговор большую заточенность =\.

Я черт знает как еще "are the better choice" перевести. Наверно на ЕГЭ почаще ходить, лол.
источник

A

Alexander in Embedded Group
LexsZero
в фриртоси вообще единственный примитив синхронизации это очередь, а все остальное - синтаксический сахар вокруг очереди.
А как же критические секции? :D
источник

MP

Max Payne in Embedded Group
Aleksander Mironov
Ок. Просто не очень понятно, как это из доков следует. Т.к. по факту там нет запрета, разговор большую заточенность =\.

Я черт знает как еще "are the better choice" перевести. Наверно на ЕГЭ почаще ходить, лол.
потому что synchronization != preventing race conditions
источник

A

Alexander in Embedded Group
Aleksander Mironov
Ок. Просто не очень понятно, как это из доков следует. Т.к. по факту там нет запрета, разговор большую заточенность =\.

Я черт знает как еще "are the better choice" перевести. Наверно на ЕГЭ почаще ходить, лол.
Помимо офф. документации есть относительно свежая книжуля "Mastering RTOS: Hands on FreeRTOS and STM32Fx with Debugging".

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

MP

Max Payne in Embedded Group
мютексы надо что бы ты в ногу себе не выстрелил. полноценная синхронизация подразумевает еще и правильную, с т.з. приложения очередность доступа к ресурсам
источник

m

mila in Embedded Group
Aleksander Mironov
Ок. Просто не очень понятно, как это из доков следует. Т.к. по факту там нет запрета, разговор большую заточенность =\.

Я черт знает как еще "are the better choice" перевести. Наверно на ЕГЭ почаще ходить, лол.
там у них есть отдельная страница про бинарный семафор https://freertos.org/Embedded-RTOS-Binary-Semaphores.html но да, соглашусь, что тот кусок документации запутанный какой то. лучше наверное такое дабл чекать вне freertos документации
источник

AM

Aleksander Mironov in Embedded Group
mila
там у них есть отдельная страница про бинарный семафор https://freertos.org/Embedded-RTOS-Binary-Semaphores.html но да, соглашусь, что тот кусок документации запутанный какой то. лучше наверное такое дабл чекать вне freertos документации
Ок. Услышал, что хотел, а то уже начал думать что я реально не умею написанный текст понимать.

Спасибо за ответы.
источник

L

LexsZero in Embedded Group
mila
бинарный семафор может быть мьютексом, но мьютекс не может быть семафором
не всегда, вон там в фриртосовских доках пишут про финт с приоритетами же
источник

L

LexsZero in Embedded Group
This means the mutex must always be ‘given’ back – otherwise the higher priority task will never be able to obtain the mutex, and the lower priority task will never ‘disinherit’ the priority.
...
A binary semaphore need not be given back once obtained, so task synchronisation can be implemented by one task/interrupt continuously ‘giving’ the semaphore while another continuously ‘takes’ the semaphore.
источник

m

mila in Embedded Group
LexsZero
This means the mutex must always be ‘given’ back – otherwise the higher priority task will never be able to obtain the mutex, and the lower priority task will never ‘disinherit’ the priority.
...
A binary semaphore need not be given back once obtained, so task synchronisation can be implemented by one task/interrupt continuously ‘giving’ the semaphore while another continuously ‘takes’ the semaphore.
🧐 не всегда что?
источник

L

LexsZero in Embedded Group
не всегда эту функциональность мьютекса возможно реализовать семафором, если он будет браться из таска с высшим приоритетом из-за того, что берущий тред заблочится и не даст уже держащему доделать дело и отпустить.
источник

m

mila in Embedded Group
ну так это не противоречит тому, что бинарный семафор можно в некоторых случаях использовать в качестве мьютекса, разве нет ?
источник