COMEÇO DO CONTEÚDO DA P1
SO_Semana1.pdf
4) Processes
1. O que é um processo?
- Um processo pode ser considerado similar a um programa em funcionamento. Já que, quando o processo não está em execução ele é apenas uma série de bytes parados no disco rígido.
<aside>
💡 Basicamente um processo pode ser definido como um programa em execução . Quando não está em execução um programa é apenas um apanhado de bytes descansando no Disco rígido. Quando são executado ( através de um process API create ) eles se tornam um processo. Uma CPU pode estar executando milhares de processos ao "mesmo tempo" através da virtualização da CPU e time sharing.
</aside>
2. Quais os estados de um processo?

- Running (Executando)
- Ready (Pronto para rodar, mas o S.O escolheu não rodar)
- Blocked (Não está pronto para rodar)
<aside>
💡 Basicamente os estados de um processo são Running, Ready e Blocked . É necessário também citar que além desses três estados básicos processos também podem ter um estado inicial e um estado final.
</aside>
3. É possível determinar em que ordem os processos executam em um SO? Essa ordem pode mudar de execução em execução, mesmo se os mesmos processos estejam executando todas as vezes?


- De forma geral, não podemos fazer grandes premissas sobre qual processo irá executar primeiro, fenômeno que chamamos de não-determinismo. Sim, a ordem pode mudar, baseadas, por exemplo, num contexto geral dos outros processos, como mudanças de prioridade ou estado e etc.


4. Quais os dados devemos armazenar para poder gerenciar processos? Determine um exemplo de estrutura com esses dados
- Lista de processos para processos em cada estado (ready, running e blocked) e informações adicionais (PCB) para os processos. Dados que são armazenados de forma geral: PID, Endereço de memória, Tamanho da memória do processo, entre outros.

5) Process API
1. Quais as três chamadas principais da API de um sistema UNIX são utilizadas para gestão de processos? Como cada uma delas funciona?