Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sincronização e Comunicação Entre Processos Sistemas Operacionais Prof. M. Sc. Demétrio Renó Magalhães Introdução Com o surgimento dos sistemas multi programáveis, passou a ser possível estruturar aplicações de maneira que partes diferentes do código do programa pudessem executar concorrentemente. Muitas vezes, em aplicações concorrentes e/ou em aplicações paralelas, é necessário que processos se comuniquem. Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Aplicações Concorrentes u Execução cooperativa de múltiplos processos ou threads, que trabalham em uma mesma tarefa na busca de um resultado comum; u Processos de aplicações concorrentes compartilham diversos recursos do sistema; u Os processos concorrentes devem ter suas execuções sincronizadas, para evitar comprometer a execução de aplicações; u Os mecanismos que garantem a comunicação entre processos concorrentes e os acessos aos recursos compartilhados são chamados MECANISMOS DE SINCRONIZAÇÃO. Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG u Mecanismo de Sincronização Processo gravador Processo leitor dado Sincronização lei tu ra gravação Buffer Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Especificação de Concorrência São as partes de um programa que devem ser executadas concorrentemente u 1ª notação de especificação de concorrência (FORK e JOIN) Sincronização e Comunicação Entre Processos u 2ª notação de especificação de concorrência (PARBEGIN e PAREND) Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Concorrência em Programas Processo principal Processo principal Processo 1 Processo 2 Processo n PARBEGIN Comando_1; Comando_2; . . Comando_n; PAREND Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Problemas de Compartilhamento de Recursos Os sistemas operacionais multiprogramáveis executam diversos processos concorrentemente, e cada processo por sua vez, pode executar diversas partes do seu ódigo concorrentemente também, ou seja, cada processo pode ter diversas threads. Como processos executando concorrentemente ou em paralelo compartilham recursos do sistema, isso pode ocasionar alguns problemas. Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Compartilhamento de Arquivo em Disco Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Gravar valor na memória Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Exclusão Mútua u Enquanto um processo estiver acessando um recurso, todos os demais processos que queiram acessar o mesmo recurso deverão aguardar o término da utilização do recurso. u Situação Indesejada u STARVATION (espera indefinida) u Processo fora da RC impede que outros processos entrem na RC Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Exclusão Mútua u Solução de Hardware u Desabilitar de interrupções u Instrução Test-and-Set u Instrução Test-and-Set Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Exclusão Mútua Soluções de software Primeiro algoritmo Segundo algoritmo Terceiro algoritmo Quarto algoritmo Algoritmo de Peterson Sincronização e Comunicação Entre Processos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Créditos Seminário de Sistemas Operacionais - Grupo 1 – Sincronização e Comunicação Entre Processos- UnilesteMG Sincronização e Comunicação Entre Processos David Cristian Leonardo Augusto Rodolfo Duarte Shayne Lima
Compartilhar