Existe um relacionamento muitos-para-um entre processo e programa, o que significa que um programa pode invocar vários processos ou, em outras palavras, vários processos podem fazer parte do mesmo programa.
Gráfico de comparação
Base para comparação | Programa | Processo |
---|---|---|
Basic | Programa é um conjunto de instruções. | Quando um programa é executado, é conhecido como processo. |
Natureza | Passiva | Ativo |
Vida útil | Mais longo | Limitado |
Recursos necessários | O programa é armazenado em disco em algum arquivo e não requer outros recursos. | O processo contém recursos como CPU, endereço de memória, disco, E / S etc. |
Definição de Programa
Um programa, em palavras simples, pode ser considerado como uma atividade do sistema. No sistema de processamento em lote, eles são chamados de execução de tarefas, enquanto em um sistema operacional em tempo real, são chamados de tarefas ou programas. Um usuário pode executar vários programas em que o sistema operacional facilita suas próprias atividades internas programadas, como o gerenciamento de memória, usando algumas técnicas.
Um programa é uma entidade passiva, por exemplo, um arquivo que acomoda um grupo de instruções a serem executadas (arquivo executável). Ele é assim chamado porque não executa nenhuma ação por si só, ele deve ser executado para realizar as ações especificadas nele.
O espaço de endereçamento de um programa é composto pela instrução, dados e pilha. Supondo que P é o programa que estamos escrevendo, para realizar a execução de P, o sistema operacional aloca memória para acomodar o espaço de endereço de P.
Definição de Processo
Um processo é uma execução de um programa. É considerado como uma entidade ativa e realiza as ações especificadas em um programa. Vários processos podem estar relacionados ao mesmo programa. Ele lida com as atividades do sistema operacional através de PCB (Bloco de controle de processo) que inclui contador de programa, pilha, estado, etc. O contador de programa armazena a próxima seqüência de instruções a ser executada posteriormente.
Ele precisa de recursos como processamento, memória e recursos de E / S para realizar tarefas de gerenciamento. Durante a execução de um programa, ele poderia envolver o processador ou a operação de E / S que torna um processo diferente de um programa.
Vamos entender isso de um exemplo; estamos escrevendo um programa em C Ao escrever e armazenar um programa em um arquivo, ele é apenas um script e não executa nenhuma ação, mas quando é executado, ele se transforma em processo, portanto, o processo é dinâmico por natureza. O compartilhamento de recursos entre vários processos é empregado pelas máquinas atuais, mas, na verdade, um único processador é distribuído entre vários processos.
Principais diferenças entre programa e processo
- Um programa é um grupo definido de operações ordenadas que devem ser executadas. Por outro lado, uma instância de um programa sendo executado é um processo.
- A natureza do programa é passiva, já que ele não faz nada até ser executado, enquanto um processo é dinâmico ou ativo por natureza, pois é uma instância de execução do programa e executa a ação específica.
- Um programa tem uma vida útil mais longa porque é armazenado na memória até que não seja excluído manualmente enquanto um processo tem um tempo de vida mais curto e limitado porque é finalizado após a conclusão da tarefa.
- O requisito de recurso é muito maior no caso de um processo; pode precisar de processamento, memória, recursos de E / S para a execução bem-sucedida. Em contraste, um programa requer apenas memória para armazenamento.
Conclusão
Programa e processo são relevantes, mas são diferentes. Um programa é apenas um script armazenado em disco ou parece ser o estágio anterior do processo. Pelo contrário, o processo é um evento de um programa em execução.