Coise

459 palavras 2 páginas
Fundamentos de Sistemas de Operação
FCT/UNL - 2009/2010
Trabalho prático 3
Sincronização de processos – Semáforos

Introdução

Este trabalho pretende ilustrar aspectos apresentados nas aulas teóricas relacionados com a programação concorrente, concretamente o uso de semáforos para a sincronização de processos e a definição de zonas de memória partilhada entre processos.

Descrição

Este trabalho, foi constituído por duas fases: a primeira fase consistia simplesmente em que, um processo escrevia todas as suas mensagens, e só quando todas as mensagens do primeiro processo tivessem sido escritas, é que o programa passava para o processo seguinte, e escrivia as respectivas mensagens; a segunda fase consistia em que cada processo escrevia uma mensagem de índice i, só quando todos os processos tiverem escrito as respectivas mensagens do mesmo índice, o primeiro processo pode escrever a sua mensagem de índice i+1.
Para resolver o problema da primeira fase, fez-se um “include” de “sem.h” para se fazer a chamada dos métodos de semáforo, como por exemplo o “createSem”, para se fazer a implementação do semáforo, e assim resolver o problema. Implementou-se o semáforo junto à zona crítica, fazendo um decremento antes, e um incremento após. Na segunda fase, fez-se um “include” de “sem.h” e de “shm.h”, para fazer a chamada dos métodos dos semáforos e da memória partilhada, respectivamente. Criou-se um método barreira, que faz a sincronização para que cada processo só continue a sua execução quando todos tiverem chegado à barreira, assim, só quando todos os processos tiverem escrito a mensagem i, é que podem avançar para a mensagem i+1, e criou-se uma variável de memória partilhada dentro da barreira, na qual os processos verificam o seu estado, para saber o índice de mensagem que devem escrever.

Código

Ficheiro “nim.c” fase 1

#include
#include
#include
#include
#include "sem.h"

#define N_NIM 5

void nim( int i );

int main(int argc, char

Relacionados

  • Coise
    418 palavras | 2 páginas
  • Coise
    546 palavras | 3 páginas
  • coise
    4303 palavras | 18 páginas
  • Coise
    649 palavras | 3 páginas
  • Coise
    344 palavras | 2 páginas
  • coise
    2930 palavras | 12 páginas
  • coise
    532 palavras | 3 páginas
  • Coise
    366 palavras | 2 páginas
  • BUROCRACIA DO PROCESSO DE EXPORTAÇÃO NO POLO INDUSTRIAL DE MANAUS
    4391 palavras | 18 páginas
  • Nao tenho trabalho
    1462 palavras | 6 páginas