ioejnwitndg
2635 palavras
11 páginas
Programação ConcorrenteProcessos 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