ioejnwitndg

2635 palavras 11 páginas
Programação Concorrente

Processos e Threads
Prof. Eduardo Alchieri

Processos


O conceito mais central em qualquer sistema operacional é o processo 

Uma abstração de um programa em execução




Um programa por si só não é um processo. Um programa é uma entidade passiva, enquanto o processo é uma entidade ativa
Processos são programas em execução, constituidos por: código executável, pilha de execução, estado do processo, prioridade do processo, valor do contador de programa (registrador PC), valor do apontador de pilha
(registrador SP), valores de demais registradores

Processos


Processo x Programa


Exemplo: preparação de bolo de aniversário


A receita – programa (algoritmo)



Os ingredientes – dados de entrada



O cozinheiro – processador



Atividade de preparar o bolo (processo)



Caso o filho do cozinheiro for picado por uma abelha – interrupção e chaveamento para um novo processo




Processo de fornecer cuidados médicos: livro de primeiros socorros (programa), remédios (dados de entrada), o cozinheiro (processador) e atividade de cuidar da picada
(processo)
Quando terminar, volta para o processo de preparar o bolo

Processos
(modelo de processos)


Através de processos é possível ter ''operações concorrentes''




Transformam um única CPU em várias CPUs virtuais
Pseudoparalelismo: rápida alternância entre os processos na CPU
(multiprogramação)

Processos
(modelo de processos)


Recursos utilizados por um processo








Memória: um processo precisa de memória para armazenar suas instruções e seus dados
CPU: um processo precisa estar de posse da CPU para executar suas instruções
Dispositivos: via de regra, um processo precisa realizar alguma tarefa de entrada e saída, em algum dispositivo, como por exemplo receber o valor de uma variável via teclado, ler um disco, etc.
Arquivos: um processo, geralmente, precisa gravar ou

Relacionados