Numerous processes run at the same time. In a multiprogramming system, they compete for available resources. In this type of situation, a deadlock may arise. Deadlock is a type of synchronization problem that occurs when several processes compete for available shared resources, such as files, I/O devices, or locks