Mutual Exclusion: if one thread is in the CS, then no other isProgress: threads waiting for access to CS are not prevented from entering by threads not in the CS; threads do not wait indefinitely.Bounded Waiting (no starvation): all waiting threads are guaranteed to eventually get access to the CS.Performance: The overhead of entering and exiting the CS is small compared to the work done within it.Atomic instruction: A machine instruction that can be executed in a single clock cycle.lock() when it tries to acquire the lock: pthread: https://linux.die.net/man/3/pthread_mutex_locklock() will disable interrupts.unlock() will enable interrupts.