861270865 cap1
2392 palavras
10 páginas
Sistemas DistribuídosProcessos e Threads
Gustavo Reis gustavo.reis@ifsudestemg.edu.br - O que são Processos?
Uma abstração de um programa em execução.
Mantêm a capacidade de operações (pseudo)concorrentes, mesmo quando há apenas uma CPU disponível.
Transformam uma única CPU em várias CPUs virtuais.
Possuem programa, entrada, saída e um estado.
Um único processador pode ser compartilhado entre os vários processos, com algum algoritmo de escalonamento usado para determinar quando parar o trabalho sobre um processo e servir outro.
- Criação de Processos
Em sistemas muito simples, ou em sistemas projetados para executar apenas uma única aplicação, pode ser possível que todos os processos que serão necessários seja criados quando o sistema é ligado.
Em sistemas de propósito geral, é necessário algum mecanismo para criar e terminar processos durante a operação, quando for preciso. Há quatro eventos principais que fazem com que processos sejam criados:
Iníco do sistema
Execução de uma chamada de sistema de criação de processo por um processo em execução
Uma requisição do usuário para criar um novo processo
Início de uma tarefa em lote (batch lote)
- Estados de Processo
Embora cada processo seja uma entidade independente, com seu próprio contador de programa e estado interno, muitas vezes os processos precisam interagir com outros.
Um processo pode gerar uma saída que outro processo usa como entrada.
Ex.:
cat chapter1 chapter2 chapter3 | grep tree
O primeiro processo, que executa cat, gera como saída a concatenação dos três arquivos.
O segundo processo, que executa grep, seleciona todas as linhas contendo a palavra “tree”.
- Estados de Processo
Estados:
Em execução → realmente usando a CPU naquele momento.
Pronto → executável; temporariamente parado para dar lugar a outro processo.
Bloqueado → incapaz de executar enquanto não ocorrer um evento externo.
Em execução
1
3
Bloqueado
2
Pronto
4
1. O processo bloqueia