3. Processos
• Vários computadores modernos são capazes
de fazer várias coisas ao mesmo tempo;
• Como os computadores conseguem fazer isso
quando possuem apenas uma CPU ?
Pseudoparalelismo
Processos Seqüenciais
4. Processo – O Modelo de Processo
• Modelo de Processos -> Todos os softwares que podem ser
executados em um computador são organizados em vários
processos seqüenciais (ou simplesmente processo).
• Processos
– Programa em execução;
– Valores atuais do contador de programa (CPU Virtual);
– Registradores;
– Variáveis (dados do programa);
5. Processos – Criação de Processos
• Os processos são criados quando:
– Se inicia o sistema:
• Processos de segundo plano: servidores,
messenger, impressão. (daemons)
• Processos de primeiro plano: usados para
interagir com usuários (humanos).
– Se executa uma chamada ao sistema de criação de
processo;
– Solicitação do usuário para se criar um novo
processo;
– Início de um Job em lote;
6. Processos – Término de Processos
• Condições que levam a término do processo:
– Saída normal (voluntária);
– Saída por erro (voluntária);
– Erro fatal (involuntária);
– Cancelamento por um outro processo
(involuntário);
8. Processos - Estados de Processos
• Possíveis estados de um processo:
– Em execução;
– Bloqueado;
– Pronto para executar;
9. Processos - Implementação de
Processos
• Sistema operacional mantém uma tabela
chamada de tabela de processos;
10. Processos – Tratamento de
Interrupção
1. A cada E/S existe uma posição de memória com o
endereço de procedimento a ser executado;
2. O usuário digita uma tecla. O hardware coloca no
barramento a interrupção do E/S teclado;
3. Imediatamente o contador de programas é
colocado na pilha pelo HW de interrupção
juntamente com outras informações necessárias;
4. Então o contador de programas assume o
endereço de procedimento apontado pela
interrupção teclado;
11. Processos – Tratamento de
Interrupção
5. Com o CP (PC) apontando para o endereço do procedimento certo a
CPU executa o procedimento que quase sempre começa salvando
os registradores atuais do processo anterior;
6. Quando o procedimento é terminado, o escalonador volta em ação
para colocar outro processo a disposição da CPU
Resumidamente:
12. Modelo de Threads
• Processos ->Espaço de endereçamento protegido com um único fluxo de
controle;
– Agrupamento de recursos (dados, arquivos, processos filhos);
– Código de execução;
– Execução única (thread de execução);
• Threads -> Um espaço de endereçamento e múltiplos fluxos de controle;
– Recursos particulares (CP, registradores, pilha);
– Recursos compartilhados (espaço de endereço – variáveis globais,
arquivos e etc);
– Múltiplas execuções no mesmo ambiente do processo – com
certa independência entre as execuções;
– Unidade a ser escalonada
18. Threads - Vantagens
• É mais fácil criar uma thread do que um processo
(cerca de 100 vezes mais rápido);
• É mais rápido terminar uma thread do que um
processo;
• É mais rápido chavear entre threads de um mesmo
processo;
• Threads podem se comunicar sem invocar nenhuma
primitiva ou dispositivo do SO, jáque compartilham
memória e arquivos de um mesmo processo;
19. Threads - Desvantagens
• Suspender um processo implica em suspender
todas as threads deste processo já que
compartilham o mesmo espaço de
endereçamento;
• O término de um processo implica no término
de todas as threads deste processo;
20. Threads – Exemplo de Uso
• Aplicação: Processador de Texto
• Uso de 3 Threads:
– Interação com o usuário;
– Formatação de texto;
– Cópia de documento;
• Solução com 3 processos X Solução com 3 threads;
– Processos não compartilham memória (documento
que esta sendo editado);