Aluno
Sistemas de Computação
Lab1: Processos
Nome: Yuri Resende da Silva Meneses
Matrícula: 0322951
07/12/2012
Sumário
1. Objetivos 3
2. Metodologia 3 Utilizando linguagem de programação C para realizar as chamadas de sistemas responsáveis por criar novos processos ou executar comandos necessários para passar por parâmetros para as call systems. 3
3. Resultados 5
4. Análise dos Resultados 7
5. Conclusão 7
6. Referências 7
7
1. Objetivos
Utilizar as chamadas de sistema em Linux, e verificar a criação de processos além de utilizar a chamada de sistema que chama um programa do disco.
2. Metodologia Utilizando linguagem de programação C para realizar as chamadas de sistemas responsáveis por criar novos processos ou executar comandos necessários para passar por parâmetros para as call systems.
1-Para se criar um programa que execute a chamada fork e imprimir na tela o pid do processo pai e filho:
#include
#include
#include
#include int main(void){ pid_t pid; int i; if ((pid = fork()) < 0) { perror("fork"); exit(1); } if (pid == 0) { while(1) printf("Filho %d\n",getpid()); }else { while(1) printf("Pai %d\n",getpid()); } write(1, "\n", 1); exit(0);
} código 2.1
2 Para provar que o processo filho tem o mesmo mapa de memoria do processo pai imprimimos a valor de alguma variável criada antes da execução do fork e imprimimos seu valor nos dois processos, se a variável for alterada na execução de um dos processos o outro não devera ser alterado. int i = 50 if (pid == 0) { i = 10; while(1){ printf("Filho %d ",getpid()); printf("i = %d\n", i); } }else { while(1){ printf("Pai %d ",getpid()); printf("i = %d\n", i); } } código 2.2
3- Depois de criado o processo filho executamos execv(kill) para fazer o processo filho