Três falhas de rotina que ocorrem nos sistemas operacionais e aplicativos de software são: 
 1. 
 vazamentos de memória: Isso ocorre quando um programa aloca memória, mas não a liberta quando não é mais necessário. Com o tempo, isso leva a um esgotamento gradual da memória disponível, eventualmente fazendo com que o sistema desacelere, se torne instável ou falha. Este é um problema comum nos aplicativos com tempos de execução longa ou aqueles que lidam com muitos objetos.  
 2. 
 Dealtimentos de recurso: Isso acontece quando dois ou mais processos são bloqueados indefinidamente, aguardando que ele libere recursos de que precisam. Imagine dois processos, A e B:A detém o recurso X e precisa de recursos Y, enquanto B detém o recurso Y e precisa de recursos X. Nenhum dos dois pode prosseguir, resultando em uma parada. Isso pode congelar todo o sistema ou partes dele.  
 3. 
 Condições de corrida: Eles ocorrem quando vários processos ou threads acessam e manipulam recursos compartilhados simultaneamente, e o resultado final depende da ordem imprevisível na qual esses acessos acontecem. Se o tempo estiver "errado", pode levar a dados incorretos ou inconsistentes, comportamento inesperado ou trava. Isso é particularmente problemático na programação multithread.   
 Estes são apenas três exemplos; Muitos outros tipos de falhas existem, mas são relativamente comuns e representam diferentes categorias de problemas.