Exercícios Sobre Processos
Por: Alexandre Martins • 11/3/2020 • Trabalho acadêmico • 328 Palavras (2 Páginas) • 166 Visualizações
)
TRABALHO DE SISTEMAS OPERACIONAIS
1 Programa Básico
O Fork() é uma função que cria um novo processo FILHO, que é imagem e semelhança do processo pai. A Função Fork() deve retornar:
- Se >0 retorna o processo PAI
- Se -1 retorna ERRO
- Se 0 retorna o processo FILHO
A função getpid() - retorna o ID(PID) do processo “FiLHO” em execução.
A função getppid() - retorna o ID(PID) do processo “PAI” em execução.
ERROS NO PROGRAMA exemple_to_be_completed.c
O programa compila, porém apresenta vários warnings por falta das seguintes bibliotecas:
Não é possível afirmar pois o escalonador pode mudar as mensagens impressas na tela de acordo com seus próprios critérios para tratamento de processos.
Serão criados 8 processos ao final do laço. O laço é executado 3 vezes, a cada iteração do laço é dado um fork() que cria 1 novo processo (“filho”) que é a imagem do pai. Somando assim 2 processos na primeira iteração. Na segunda e nas iterações posteriores, cada processo receberá um novo fork(), tanto os processos que são pais e os processos que são filhos. Podemos chegar na seguinte fórmula de recorrência P = 2n - tal que P é o número de processos e “n” o número de iterações do laço.
Analisando o código, vemos que o processo pai cria processos filhos, esses processos filhos, por sua vez, ao serem executados criam novos processos filhos, o que torna-os também processos pais, é uma relação parental. Como a ordem em que esses processos serão impressos na tela é decidido pelo escalonador de forma “aleatória”, podemos ver que processos filhos tinham outros processos como pai.
2 Programa intermediário
Através da função EXEC() podemos mudar a imagem do processo filho e fazê-lo executar outro código.
A função WAIT() realiza uma chamada ao sistema que faz com que um processo pai espere pelo término de um de seus processos filhos
...