861270865 cap1

2392 palavras 10 páginas
Sistemas Distribuídos

Processos 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

Relacionados