Você deve fazer este EP em C, usando o pacote LinuxThreads, que implementa o padrão pthreads (POSIX Threads) para Linux 2.x. A biblioteca LinuxThreads e sua documentação estão disponíveis na nossa rede Linux. Para mais informações sobre o pacote LinuxThreads, veja
http://pauillac.inria.fr/~xleroy/linuxthreads/
Todas as funções POSIX Threads tem nome começando com
``pthread_''. Para listar essas funções, diga
apropos pthread_
Neste exercício você não precisará de todas as funções
pthread_.... Você usará funções básicas de gerenciamento de
threads (pthread_create, por exemplo), mutexes
(pthread_mutex_...) e variáveis de condição
(pthread_cond_...). Não é permitido o uso de outras
bibliotecas de suporte a programação multithreaded (bibliotecas de
semáforos, por exemplo).
O material sobre pthreads está na pasta 48 do xerox do CAMAT. Vários tutoriais sobre pthreads estão disponíveis na Internet:
http://www.uq.edu.au/~cmamuys/humbug/talks/pthreads/pthreads.html
http://dis.cs.umass.edu/~wagner/threads_html/tutorial.html
http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html
(O material na terceira URL parece ser o mais completo.)
Este é um FAQ com informações variadas sobre programação com threads (incluindo ``Microsoft-style threads'', caso você precise um dia...):
http://www.serpentine.com/~bos/threads-faq/