Buscar

Laboratório de Sistemas Operacionais - CEFETMG - Prática12: Utilização de Semáforos com Processos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Engenharia de Computação 
Sistemas Operacionais / Laboratório de Sistemas Operacionais 
 
 
Trabalho Prático 12 
 
 
 
 
 
 
 
Utilização de Semáforos com Processos 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aluno: ​Larisse Stefany Pires Amorim 
 
Engenharia de Computação 
Sistemas Operacionais / Laboratório de Sistemas Operacionais 
 
Objetivo 
Implementar um programa que atualiza o valor da variável “sum” 
compartilhada através de processos e utilizar semáforos para controlar o acesso à 
variável compartilhada. 
 
Desenvolvimento e resultados obtidos 
Para o conceito de semáforos para controlar o acesso à variável 
compartilhada dentro da sessão crítica pelos processos, foi criado uma fila que 
gerencia a região de memória compartilhada. 
Os processos filhos irão escrever na fila o valor a ser somado na variável 
sum​ e os valores lá escrito serão somados na variável ​resultado​. 
A lógica para implementação foi bem parecida com aquela que foi utilizada 
para calcular o valor de pi através de filas de mensagens. 
Nas imagens abaixo poderão ser vistos trechos do programa: 
Figura 1: procedimento para acesso à sessão crítica. 
 
Na figura, sem_wait(&s) e sem_post(&s) são operações equivalentes ao 
Down ​e​ Up​, respectivamente no padrão POSIX. 
Figura 2: os processos filhos escrevem na fila de mensagens os valores. 
 
Engenharia de Computação 
Sistemas Operacionais / Laboratório de Sistemas Operacionais 
Figura 3: após os processos filhos terminarem, é feita a soma dos valores que estão na fila. 
 
Os resultados da compilação foram: 
Figura 4: Resultado da execução 1 - Criação dos processos 
Figura 5: Resultado da execução 2 - escrita na fila 
 
Engenharia de Computação 
Sistemas Operacionais / Laboratório de Sistemas Operacionais 
Figura 6: Resultado da execução 3 - resultado final 
 
Como compilar e executar o programa: 
● gcc semaforo.c -o semaforo -lpthread 
○ ./semaforo

Continue navegando