🇧🇷/🇵🇹 A maioria dos sistemas operacionais modernos permitem a programação concorrente, onde dois ou mais processos são executados de forma simultânea. Apesar disso evitar ao máximo a ociosidade da CPU, alguns problemas podem acontecer, como dois ou mais processos tentarem acessar ao mesmo tempo os mesmos recursos, impactando no desempenho do programa. Um exemplo onde isso fica claro são nas atividades do tipo Produtor-Consumidor. Para sanar este problema e exercitar os conceitos vistos em sala de aula, o presente trabalho apresenta a implementação de um semáforo para leitura e consumo de matrizes em threads compartilhadas. São expostas as tecnologias, bibliotecas e constantes utilizadas para completar esta tarefa, bem como dicas para compilação e execução do código.
🇬🇧/🇺🇸 Most modern operating systems allow concurrent programming, where two or more processes run simultaneously. Although this avoids CPU idleness as much as possible, some problems can happen, such as two or more processes trying to access the same resources at the same time, impacting the program's performance. An example where this is clear is in the activities of the Producer-Consumer type. To solve this problem and exercise the concepts seen in the classroom, the present work presents the implementation of a semaphore for reading and consuming matrices in shared threads. The technologies, libraries and constants used to complete this task are exposed, as well as tips for compiling and executing the code.