Quando um processo é criado, o sistema fica verificando qual dos
processos da fila podem ser executados para usar de maneira
eficiente a rápida a CPU
Quando algo utiliza I/O, o processo é bloqueado até que seja
possível usar o recurso, caso esteja sendo usado por outro processo
ainda
Processos Single thread possuem um PC(contador de programa),
executando uma única instrução por vez
Processos multithreading possuem um PC para cada thread
OS pode executar vários processos ao mesmo tempo
OS gerencia os processos → criando, deletando, sincronizando(ao se
comunicar, um deve ser o SEND e o outro o RECV), trata deadlocks,
etc
deadlock (famoso jantar dos filósofos) → quando os processos
precisam de recursos, mas cada um pega uma parte e nenhum deles
consegue pegar o suficiente para rodar de maneira correta
ao fazer um FORK de um processo (criar) você aloca mais memória para
o novo processo
ao fazer um DELETE de algum arquivo, você marca a região que o
arquivo estava como usável, podendo ser sobrescrito por outro novo.
Sendo assim, o arquivo não é deletado de fato
bufferização → armazenamento de dados temporários enquanto estão
sendo transferidos
spooling → enfileira tarefas, e faz com que uma tarefa não
sobreponha a outra (possui uma pequena memória que coloca em fila os
jobs)
quando um processo gerar um arquivo, outro até pode ler no mesmo
momento, mas não consegue escrever junto