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.