m (Explorer moved page Binary Semaphore 0C: to Semaphores)
Line 1: Line 1:
 
[[category: Free RTOS with Arduino]]
 
[[category: Free RTOS with Arduino]]
In the earlier example, we created 2 high priority task and an Idle task.<br>
+
In this tutorial, we will be discussing a Semaphore and its types ie. Binary, Mutex, Counting.<br>
In this tutorial, we will see how to use the scheduler Idle task to run the user function.<br><br>
+
Later we will see each semaphore in detail with its pros and cons.
 +
Also, we will be looking into priority inversion and priority inheritance.<br><br>
 +
 
 +
=What is a Semaphore?=
 +
Semaphores are a technique for synchronizing two/more task competing for the same resources. When a task wants to use a resource, it requests for the semaphore and will be granted if the semaphore is available. If the semaphore is not available then the requesting task will go to blocked state till the semaphore becomes free.

Revision as of 11:47, 12 July 2016

In this tutorial, we will be discussing a Semaphore and its types ie. Binary, Mutex, Counting.
Later we will see each semaphore in detail with its pros and cons. Also, we will be looking into priority inversion and priority inheritance.

What is a Semaphore?

Semaphores are a technique for synchronizing two/more task competing for the same resources. When a task wants to use a resource, it requests for the semaphore and will be granted if the semaphore is available. If the semaphore is not available then the requesting task will go to blocked state till the semaphore becomes free.