Trabalho Semaforos
Exercícios de Programação Concorrente
Prof. Fernando Salles Claro
Curso: Ciência da Computação
Semestre: 7º - Ano: 2015
RA
Nome do Aluno
3715672332
Décio Vladimir Moreira Junior
Padrão Posix
O que é o Padrão POSIX? é a forma em que ele é responsável em permitir aplicações “rodarem” tanto nas plataformas Unix (Solaris, Mac OS X, BSD Unix, …) quanto em Unix-like (Linux, FreeBSD, QNX, …).
O Padrão POSIX é constituído por uma série de regras que determinam como o programador deve escrever o código-fonte de seu sistema de modo que ele possa ser portável entre os sistemas operacionais baseados no Unix.
Portável nesse caso significa que bastará recompilar o programa, usando o compilador adequado para torná-lo compatível com o sistema desejado, sem a necessidade de fazer alterações no código fonte. É graças a essa Interface POSIX que existe um razoável nível de compatibilidade entre os programas escritos para o Linux, FreeBSD e para outras versões do UNIX.
Sem_t: sem_t é uma variável que deve ser inicializada antes de ser utilizada é aindicação do tipo do semáforo.
Um semáforo possui uma localização do tipo SEM_T, ou seja, SEM_T é um tipo de definição de uma variável para defini-la em Semáforo, um tipo que abre a função semáforo.
Sintaxe:
#include<semaphore.h>
sem_t sem;
Sem_close: fecha um semáforo
Quando o semáforo deixa de ser necessário a um processo, ele deve ser fechado, assim, continuando a execução de outros processos ou funções.
Sintaxe:
#include <semaphore.h> intsem_close(sem_t * sem);
Sem_wait:
Down. Decrementa o semáforo. Se o valor resultante for menor que zero a entidade de processamento é bloqueada
Sintaxe: intsem_wait(sem_t * sem) { mutex_lock(&sem->lock); while (sem->value == 0) cond_wait(&sem->cond, &sem->lock); sem->value--; mutex_unlock(&sem->lock); return 0;
}
Sem_unlink: elimina o semáforo
O último processo a aceder ao semáforo deve, depois de o fechar,