I/O Bound CPU Bound
CPU Bound: é quando o tempo de processamento depende mais do processador do que das entradas e saídas, fazendo assim com que atrapalhe o tempo total de processamento.
Exemplo:
Alguns jogos eletrônicos que utilizam recursos gráficos em 3D de alta complexidade.
I/O Bound: é um termo utilizado para designar os Sistemas que fazem uso intensivo de entrada e saída (I/O). Todos os sistemas operacionais executam processos de entrada e saída.
Exemplo:
Algum usuário querendo copiar um arquivo para o Pen Drive, esses processos são conhecidos como I/O Bound porque faz pouco uso da CPU.
O que é Starvation e DeadLock?
Quando escrevemos um programa envolvendo vários Threads que disputam recursos do sistema, temos que assegurar a equidade.
Equidade existe quando cada thread do programa recebe os recursos necessários para progredir sem problemas e de forma razoável.
Quando um sistema tem equidade, ele evita que ocorra duas coisas: Starvation e DeadLock.
Starvation: é quando um processo nunca é executado. Isso ocorre quando processos de prioridades maiores são executados e deixam processos de prioridade baixa no fim da fila de processos, o que ocorre de nunca serem executados (em outras palavras, eles “morrem de fome”).
Essa fila de processos é chamada de Escalonamento de processos ou agendador de tarefas, cuja a atividade é organizar os processos da CPU ou de um sistema distribuído, possibilitando executar os processos mais viáveis e concorrentes, dando prioridade para determinados tipos de processos, como os de I/O Bound.
Concluindo, starvation ocorre quando um ou mais threads não conseguem obter recursos no sistema e não podem progredir.
DeadLock: acontece quando dois ou mais processos bloqueiam um ao outro permanentemente, sendo que cada uma tem o bloqueio de um recurso, que o outro processo está tentando