A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Processos Concorrentes

Apresentações semelhantes


Apresentação em tema: "Processos Concorrentes"— Transcrição da apresentação:

1 Processos Concorrentes
Configurações de Processador Único Sincronização de Múltiplos Processos Programação para Múltiplos Processadores

2 Processos em apenas Uma CPU Estados de Programas e Processos
Na medida que o programa se movimenta pelo sistema, ele se encontra em um dos cinco estados possíveis: NOVO, PRONTO, EM EXECUÇÃO, EM ESPERA e TERMINADO. NOVO PRONTO TERM EXEC ESPERA Escalonador de Programas (equilibrando a utilização dos recursos: MEM, E/S...) Escalonador de Processos (algoritmo) Escalonador de Programas Escalonador de Processos (liberam recursos) Escalonador de Processos (requisição de E/S ...) Escalonador de Processos (sinal do gerenciador de dispositivos ou de interrupção de páginas) Interrupção de Tempo

3 Processos em Várias CPUs
PRONTO EXEC ESPERA Interrupção de Tempo NOVO TERM

4 Processos Concorrentes
É uma complexidade exponencial no sentido do volume de processos. Exemplos típicos: fila no drive-thru, restaurante fast food, entre outros. A SINCRONIZAÇÃO é a chave do sistema. Quanto mais flexível o sistema, mais complexo.

5 Processos Concorrentes Configurações Típicas
Mestre-Escravo Fracamente Acoplado Simétrica

6 Processos Concorrentes Configuração Mestre-Escravo
É uma configuração assimétrica, onde um processador é responsável pelo gerenciamento dos demais. O processador mestre responsabiliza-se pelo gerenciamento de todo o sistema (arquivos, dispositivos, memória, etc), e distribui tarefas para os demais porém sendo responsável pelos controles de todo o ambiente. A principal vantagem é a simplicidade, porém possui três sérias desvantagens: Processador mestre pode falhar e parar todo o ambiente. Centralização no processador Mestre. Muitas interrupções sobre o processador Mestre.

7 Processos Concorrentes Configuração Fracamente Acoplada
São Sistemas Independentes que cooperam entre si. Cada Sistema possui sua própria estrutura de controle individual, porém há um esforço em compartilhar tarefas entre os processadores, de forma a permitir que novos processos sejam alocados ao processador menos carregado. É uma configuração mais robusta, porém mais difícil de detectar problemas.

8 Processos Concorrentes Configuração Simétrica
É uma implementação mais viável quando todos os processadores são do mesmo tipo. Esta implementação necessita de um controle efetivo de sincronização para evitar disputas e impasses. Os controles feito pelo escalonador são descentralizados, onde uma única cópia do SO é mantida no sistema. As tabelas de controles são atualizadas pelos processadores e os processos são controlados por um algoritmo comum a todo o ambiente. Portanto, a SINCRONIZAÇÃO DE PROCESSOS torna-se fundamental nesta configuração.

9 Processos Concorrentes Softwares de Sincronização
O sucesso da sincronização depende da capacidade do SO em tornar um recurso ocupado com determinado processo e indisponível para a todos os demais. Em um cenário de sincronização, cada processador deve: Consultar a lista de processos e verificar qual deles deve ser executado em seguida. Recuperar o processo para execução. Incrementar a lista PRONTO para o processo seguinte. Executar o processo.

10 Processos Concorrentes Softwares de Sincronização
Há o conceito de REGIÃO CRÍTICA que deve ser considerado, ou seja, é uma unidade de execução em que o processo deve garantir a execução do início ao fim sem permitir qualquer risco para o sistema por intermédio de outro processo. Para garantir que um processo trabalhe na RC, alguns mecanismos de bloqueio, geralmente baseados no conceito de *chaves* ou *tokens*, foram desenvolvidos: TEST-AND-SET WAIT e SIGNAL SEMÁFOROS

11 Processos Concorrentes Softwares de Sincronização
TEST-AND-SET É um controlador de dois estados: liberado (0) ou reservado (1). Antes de entrar em uma Região Crítica, um processo testa o estado do TS para saber se pode continuar ou não. Há o problema da *lista de espera* que deve ser administrado para evitar abandono, porém critérios como *primeiro a chegar, primeiro a ser atendido*. WAIT e SIGNAL Estas operações foram acrescentadas ao test-and-set para eliminar o problema de *lista de espera*. WAIT é assinalado no BCP quando o processador esta reservado (1), e SIGNAL quando o processador esta liberado (0), sendo que o escalonador atende outros processos, deixando na fila de PRONTO aquelas que estão em SIGNAL.

12 Processos Concorrentes Softwares de Sincronização
SEMÁFOROS É uma variável inteira usada como FLAG. Indica SE e QUANDO um recurso esta livre e pode ser apropriado a um processo. Definições: s (semáforo) V (incrementar) P (testar) Exemplo: V(s): s:= s+1 P(s): Se s > 0, então s := s-1

13 Processos Concorrentes Softwares de Sincronização
SEMÁFOROS Tarefas de Execução: Incremento de 1 em s (semáforo) – operação V(s) Em seguida, seqüência de busca, incremento e armazenagem s (semáforo) fica reservado e nenhum outro processo acessa A instrução P(s) testa o semáforo, se > 0, faz o decremento de 1 Em seguida, sequência de teste, busca, decremento e armazenagem As operações P e V são executadas pelo SO em resposta a um chamado de qualquer processo que nomeie um semáforo como parâmetro. Se s = 0, o processo que estiver chamando a operação P deverá esperar até que s > 0.

14 Processos Concorrentes Softwares de Sincronização
A sequência de estados para quatro processos chamando pelas operações P e V no semáforo s. Número do Processo Chamando Operação Estado a Operação P1 P(s) P1 V(s) P2 P(s) P3 P(s) P4 P(s) P2 V(s) . P3 V(s) P4 V(s) Ações Resultados Região Bloqueado em s Valor de s Crítica 1 P1 0 P2 0 P2 P3 0 P2 P3,P4 0 P3 P4 0 P4 0

15 Processos Concorrentes Softwares de Sincronização
Estas operações sobre o semáforo s obedecem ao conceito de exclusão mútua, ou seja, cada operação é executada unicamente, sem concorrência. Este modelo de semáforo recebe o nome de Mutex: P(mutex): se mutex > 0, então mutex := mutex – 1 V(mutex): mutex := mutex + 1 O conceito de Região Crítca (RC) passou a ser fundamental visto que processos necessitam compartilhar a mesma área de dados enquanto executam.

16 Processos Concorrentes Cooperação entre Processos
Produtores e Consumidores Caso clássico onde processos produzem dados que serão consumidos mais tarde por outros processos. Leitores e Escritores Situação clássica onde dois tipos de processos precisam acessar um mesmo recurso compartilhado.

17 Processos Concorrentes Cooperação entre Processos
Produtores e Consumidores Manter o equilíbrio entre recursos produzidos e os consumidos para evitar que processos *consumidores* aguardem indefinidamente por recursos a serem produzidos, bem como os processos *produtores* aguardem por espaços nas regiões de armazenagem por não terem sido consumidos (buffer lotado). O uso de Semáforos aplica-se ao controle deste ambiente por garantir a exclusão mútua entre os processos.

18 Processos Concorrentes Cooperação entre Processos
Leitores e Escritores No cenário em que processos disputam por acessos a recursos compartilhados, como arquivos por exemplo, este mecanismo permite um equilíbrio entre processos que bloqueiam os recursos para atualizações, considerando que outros processos que apenas querem ler os dados (Leitores), tenham condições de fazê-lo tão logo o recurso esteja liberado, mesmo havendo outros processos para bloquear novamente o recurso (Escritores).

19 Processos Concorrentes Conclusão
Sistemas de Multiprocessamento tem duas ou mais CPUs e devem ser sincronizadas pelo Gerenciador de Processos. Multiprocessamento pode ocorrer em sistemas de processador único, onde há processos que interagem e obtêm controle da CPU em momentos diferentes (Linux-SMP) Mecanismos de hardware e software são utilizados na sincronização dos vários processos, mas alguns com cuidado especial: clientes não atendidos, sincronização entre produtores e consumidores, exclusão mútua de leitores e escritores.


Carregar ppt "Processos Concorrentes"

Apresentações semelhantes


Anúncios Google