#05 - Interface de sincronização de Threads POSIX: Exclusão mútua
Objectivos
Apresentação das primitivas básicas de sincronização por exclusão mútua da interface de Threads Posix. Realização de um exercício em que se simula a gestão de uma base de dados bancária num ambiente multi-threaded.
Novas chamadas ao sistema
#include <pthread.h> int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); int pthread_mutex_destroy(pthread_mutex_t *mutex); int pthread_mutex_lock(pthread_mutex_t *mutex)); int pthread_mutex_unlock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex);
Exercícios propostos
- Implemente um programa de gestão de uma base de dados de contas bancárias. As contas são compostas por nome do titular e saldo corrente e são identificadas por um número. As operações disponíveis deverão ser a consulta e o lançamento de valores numa conta especificada. Assuma que o número de contas é fixo (não haverá criação nem encerramento de contas). As operações disponíveis deverão ser pensadas de forma a que possam ser utilizadas num cenário multi-threaded.
- Modifique o programa anterior de forma a disponibilizar a operação de transferência entre contas.
- Modifique o progama anterior de forma a suportar as operações de criação e encerramento de contas.