I understand that synchronization can be easily done using a semaphore in a single core processor. But where we have multi-cores, if multiple processes want to enter the critical section at the same time instant, does all of them enter the critical section or only one wins? The winner process wins for what criteria?