Anda di halaman 1dari 15

Processos Concorrentes

Walter Fetter Lages


w.fetter@ieee.org

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Eltrica ENG04008 Sistemas de Tempo Real

Copyright (c) Walter Fetter Lages p.1/15

Introduo

Sistemas de tempo real so inerentemente concorrentes Programas concorrentes podem ser vistos como um conjunto de programa sequenciais executados em paralelo Linguagens de programao concorrente incorporam a noo de processo Um processo possui apenas um uxo de controle

Copyright (c) Walter Fetter Lages p.2/15

Execuo de Processos

Multiplexados em uma nica CPU Pseudoparalelismo Multiplexados em diversas CPUs com memria compartilhada Paralelismo espacial Multiplexados em diversas CPUs sem memria compartilhada Sistemas distribudos Execuo de instrues em pipeline Paralelismo temporal

Copyright (c) Walter Fetter Lages p.3/15

Estados de um Processo

Pronto Esperando que a CPU que livre Estado inicial Executando Bloqueado Esperando algum evento externo

Copyright (c) Walter Fetter Lages p.4/15

Implementao de Processos

Contexto do processo Registradores da CPU Contador de programa Ponteiro de pilha Alocao de memria Arquivos abertos Etc... Cada processo tem seus segmentos Cdigo Dados Pilha

Copyright (c) Walter Fetter Lages p.5/15

Chaveamento de Processos

Realizado pelo sistema operacional O contexto do processo salvo na tabela de processos Suporte de hardware em alguns casos selecionado um novo processo entre os que esto no estado de pronto (scheduling) O contexto do novo processo obtido da tabela de processos e carregado na CPU Do ponto de vista do processo como se ele nunca tivesse deixado de executar

Copyright (c) Walter Fetter Lages p.6/15

Suporte Concorrncia

Linguagens concorrentes Mais legvel e mais fcil de manter Torna o programa mais portvel Dispensa o uso de sistema operacional O compilador pode fazer vericaes Sistemas operacionais Possibilita o uso de diversas linguagens em um nico sistema Implementar a noo de concorrncia de determinadas linguagens pode ser difcil em certos sistemas operacionais

Copyright (c) Walter Fetter Lages p.7/15

Programao Concorrente

Facilidades necessrias Expresso da concorrncia atravs da noo de processos Sincronizao de processos Comunicao entre processos Tipos de interao entre processos Independentes Cooperantes Competidores

Copyright (c) Walter Fetter Lages p.8/15

Modelos de Concorrncia

Estrutura Esttica Nmero de processos xo Dinnica Nmero de processos varivel Nvel Aninhado Pode ser denida uma hierarquia de processos Plano

Copyright (c) Walter Fetter Lages p.9/15

Modelos de Concorrncia

Granularidade Grossa ou Fina Inicializao Parmetros passados na inicializao Parmetros comunicados aps a inicializao Terminao Ao completar o corpo do processo Suicdio Aborto Erro Nunca Quando no for mais necessrio

Copyright (c) Walter Fetter Lages p.10/15

Representao de Concorrncia

Co-rotinas Transferncia explcita do controle atravs de resume

Copyright (c) Walter Fetter Lages p.11/15

Representao de Concorrncia

Fork/join Fork dispara um processo em paralelo (lho) Join fora o sincronismo entre os processos

Copyright (c) Walter Fetter Lages p.12/15

Representao de Concorrncia

cobegin/coend Forma estruturada de explicitar o paralelismo

Copyright (c) Walter Fetter Lages p.13/15

Representao de Concorrncia

Declarao explcita de processos

Copyright (c) Walter Fetter Lages p.14/15

Threads

Semelhantes a processos, no entanto compartilham o mesmo segmento de dados No POSIX threads podem existir dentro de processos

Copyright (c) Walter Fetter Lages p.15/15

Anda mungkin juga menyukai