English:
In computer science, a deadlock is a condition whereby two processes are waiting for a particular resource which the other has and will release only after receiving the resource for which it is waiting. Thus, the only way the resource will become available for one of the processes is if the other releases it — which neither will do, until it receives the resource that the other has.
For example, suppose Process A has a block of memory, and needs to access a disk drive. Meanwhile, Process B has control of the disk drive, and needs to put its information in memory — specifically, it needs the block of memory Process A controls. Process A will hold onto its block of memory and wait for the disk drive to become available, while Process B will hold onto the disk drive and wait for the memory to become available. Both processes are dependent on the other, thus they will wait for each other forever.
Thus, this situation is a vicious circle (as mentioned earlier) and is a good example of a Deadlock. This type of situation has also been referred to as a deadly embrace. A deadlock is, of course, an undesirable state in a computing system.
The deadlock is not only an informatical problem, the situation occurs in human society and my be refered to as Catch 22, or vicious cycle (or circle). A familiar example of this circumstance occurs in the context of job searching. In moving from school to a career, one may encounter a Catch-22 where one cannot get a job without work experience, but one cannot gain experience without a job. Catch-22 situations are also sometimes called the chicken and egg problems.
Italiano:
***work in progress***
Fonti:
en.wikipedia.org (ricerca ispirata dal gruppo ska-punk Catch-22)
|