Impasses
Os sistemas de Computadores tem inúmeros recursos adequados ao uso de somente um processo a cada vez, exemplos comuns são impressoras, unidades de fita e entrada de tabela internas no sistema, se dois processos quiserem escrever simultaneamente na mesma impressora, acabará gerando uma bagunça, a tentativa de usarem a mesma entrada da tabela do sistema de arquivos inevitavelmente corromperá os arquivos, como consequência todos os S.O. devem ser capazes de garantir o acesso de um processo a certos recursos.
Para muitas aplicações, o processo necessitará de acessos exclusivos não só a um recurso, mas também a varios,por exemplo, dois processos queiram grava em um CD um documento escaneado,o processo A solicita permissão para usar o scanner e é autorizado, o processo B,que é programado diferentemente, solicita primeiro permissão para usar o gravador de CD e também é autorizado, então ,o processo A pede para usar o gravador de CD, mas a solicitação é negada até que o B o libere, infelizmente, em vez de liberar o gravador, o processo B pede pra usar o scanner, nesse ponto, ambos ficam bloqueados e permanecerão para sempre, isso é denominado impasse(deadlock).
Isto pode ocorrer entre maquinas, exemplo muitos escritórios têm redes locais com vários PCs conectados a elas, muitas vezes dispositivos como scanner, gravadores, impressora e unidades de fita são conectados como recursos compartilhados, disponíveis a qualquer usuário em qualquer máquina, se pudessem ser reservados remotamente, o impasse ocorrerá, situações mais complicadas poderão causar impasses que envolveram três ou mais dispositivos ou usuários.
Impasses podem ocorrer em diversas outras situações além daquelas que envolvem requisições simultâneas a dispositivos de E/S, em um sistema de banco de dados, um programa pode ter de bloquear o acesso a diversos registros que estiver usando, a fim de evitar condições de corrida.
Recursos Preemptíveis e não Preemptíveis
Um recurso