  In this paper, we introduce two algorithms that solve the mutual exclusion
problem for concurrent processes that communicate through shared variables,
[2]. Our algorithms guarantee that any process trying to enter the critical
section, eventually, does enter it. They are formally proven to be correct. The
first algorithm uses a special coordinator process in order to ensure equal
chances to processes waiting for the critical section. In the second algorithm,
with no coordinator, the process exiting the critical section is in charge to
fairly elect the following one. In the case that no process is waiting, the
turn is marked free and will be determined by future waiting processes. The
type of shared variables used are a turn variable, readable and writable by all
processes; and a flag array, readable by all with flag[i] writable only by
process i. There is a version of the first algorithm where no writable by all
variable is used. The bibliography reviewed for this paper is [4] and [3], all
the rest is original work.
