Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Eltrica ENG04008 Sistemas de Tempo Real
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
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
Estados de um Processo
Pronto Esperando que a CPU que livre Estado inicial Executando Bloqueado Esperando algum evento externo
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
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
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
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
Modelos de Concorrncia
Estrutura Esttica Nmero de processos xo Dinnica Nmero de processos varivel Nvel Aninhado Pode ser denida uma hierarquia de processos Plano
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
Representao de Concorrncia
Representao de Concorrncia
Fork/join Fork dispara um processo em paralelo (lho) Join fora o sincronismo entre os processos
Representao de Concorrncia
Representao de Concorrncia
Threads
Semelhantes a processos, no entanto compartilham o mesmo segmento de dados No POSIX threads podem existir dentro de processos