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

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

e comunicação entre Processos

Apresentações semelhantes


Apresentação em tema: "e comunicação entre Processos"— Transcrição da apresentação:

1 e comunicação entre Processos
Sincronização e comunicação entre Processos 09/03/10 20:13 Claudio de Oliveira –

2 Claudio de Oliveira – claudio@infocao.com.br
Definições Década de 60, surgimento de sistemas multiprogramáveis. Aplicações compartilhando recursos do sistema, como arquivos, registros, dispositivos de E/S e áreas de memória. Soluções para sincronização de processos. Comando para implementação e concorrência ( FORK - JOIN, PARBEGIN – PAREND) 09/03/10 20:13 Claudio de Oliveira –

3 Claudio de Oliveira – claudio@infocao.com.br
Ilustração Processo gravador Gravação Processo Leitor Leitura dado Buffer 09/03/10 20:13 Claudio de Oliveira –

4 Solução para sincronização de processos
Princípio da Exclusão Mútua com Espera Ocupada (busy waiting): 1 – Inibição das Interrupções: 2 – Variáveis de Travamento ou Impedimentos (lock variables): 3 – Estrita Alternada (Alternância Obrigatória): 4 – Algoritmo de Dekker: 5 – Algoritmo de Dijkstra (pronúncia: déikstra): 6 – Solução de Peterson Princípio da Exclusão Mútua com Espera Bloqueada (blocked waiting): 1 – Uso das Primitivas SLEEP/WAKEUP: 2 – Semáforos 3 – Contadores de Eventos 4 – Monitores 5 – Troca de Mensagens 09/03/10 20:13 Claudio de Oliveira –

5 Principais soluções de sincronização
Semáforos Proposto por Dijkstra em 1965. Utiliza as instruções Down e UP, incremento e decremento a variável. Semáforos binários e semáforos contadores. Monitores Proposto por Brinch Hansen em 1972. A maioria das linguagens de programação disponibiliza rotinas para uso de semáforos e monitores. 09/03/10 20:13 Claudio de Oliveira –

6 Equivalência Entre os Algoritmos
Além dos algoritmos apresentados, muitos outros modelos já foram propostos para a implementação da exclusão mútua, como por exemplo, os Seqüenciadores (Reed e Kanodia – 1979), as Expressões de Caminho (Campbel e Habermann – 1974), Serializadores (Atkinson e Hewitt ), etc., porém, vale observar que muitos desses algoritmos são semanticamente equivalentes, pelo menos quando usamos um único processador, ou seja, com a utilização de qualquer um deles é possível construir todos os demais: Semáforos, Contadores de Eventos, Monitores e Troca de Mensagens. 09/03/10 20:13 Claudio de Oliveira –

7 Claudio de Oliveira – claudio@infocao.com.br
Compiladores Um compilador é um programa de computador que, a partir de um código fonte escrito em uma linguagem compilada, cria um programa semanticamente equivalente, porém escrito em outra linguagem, código objeto. O nome "compilador" é usado principalmente para os programas que traduzem o código de fonte de uma linguagem de programação de alto nível para uma linguagem de programação de baixo nível . Existem centenas de compiladores, alguns específicos para determinadas linguagens. 09/03/10 20:13 Claudio de Oliveira –

8 Compiladores C para Linux
Eclipse Anjuta Gcc/G++ Compilador C para Windows Turbo C Instalando o gcc/g++ no Ubuntu Via Synaptic Via comando 09/03/10 20:13 Claudio de Oliveira –

9 Instalando/Utilizando o gcc/g++
sudo apt-get install gcc-4.2 g++-4.2 Aplicações->Adicionar/Remover para abrir o Synaptic. Ao abrir a janela clique em Avançado. Na janela que abrir clique em Desenvolvimento na lista à sua esquerda. Procure por gcc e g++ na lista que aparecer à sua direita (selecione todos os que possuirem como descrição GNU C/C++ compiler). Agora clique em aplicar. 09/03/10 20:13 Claudio de Oliveira –

10 Claudio de Oliveira – claudio@infocao.com.br
Utilizando o GCC Abrir o terminal. Copiar o código fonte em um editor de textos como o gedit e salvar como teste.c: #include <stdio.h> int main() { printf("Isso é um teste\n"); return 0; } 09/03/10 20:13 Claudio de Oliveira –

11 Navegue até a pasta GCC e execute o arquivo teste.c
Quando estiver na pasta desejada, digite: gcc teste.c Isso gerará um arquivo a.out na pasta atual. Se nenhuma mensagem de erro apareceu o seu compilador está instalado corretamente Para abrir o programa digite ./a.out Deverá aparecer: Isso é um teste 09/03/10 20:13 Claudio de Oliveira –

12 Claudio de Oliveira – claudio@infocao.com.br
Comandos Básicos C #include <stdio.h> main() {int x, y, z; scanf("%d %d", &x, &y); z = x + y; printf("%d", z); } 09/03/10 20:13 Claudio de Oliveira –

13 Nomeando o arquivo compilado
Se você quiser dar um nome ao programa como teste.bin ou teste.exe, digite: gcc -o teste.bin teste.c 09/03/10 20:13 Claudio de Oliveira –

14 Compilando outros programas
Compile e teste as soluções para os problemas em C. Jantar dos Filósofos Barbeiros Leitores e Consumidores Exemplo: gcc [[nome_programa.c]] -o [[nome_programa]] - lpthread gcc filos.c –o filos.bin -lpthread 09/03/10 20:13 Claudio de Oliveira –


Carregar ppt "e comunicação entre Processos"

Apresentações semelhantes


Anúncios Google