Skip to content

Entrega da Etapa 1: libtslog e Arquitetura

Choose a tag to compare

@marinaggc marinaggc released this 26 Sep 19:29
· 2 commits to master since this release

LPII - Trabalho Final: Programação Concorrente - Etapa 1

Este é o repositório para o trabalho final da disciplina de LPII.
Esta entrega corresponde à Etapa 1: libtslog e Arquitetura.


Funcionalidades Entregues na Etapa 1

  • Biblioteca de Log Thread-Safe (libtslog): Foi implementada uma biblioteca de log simples, encapsulada na classe Logger, que permite a escrita concorrente em um arquivo de log. A exclusão mútua é garantida pelo uso de std::mutex para evitar condições de corrida.

  • Teste CLI de Concorrência: Um programa principal (main.cpp) foi desenvolvido para simular um ambiente com múltiplas threads (10 threads, cada uma escrevendo 100 mensagens) que utilizam a biblioteca de log simultaneamente para demonstrar que ela é, de fato, thread-safe.

  • Arquitetura Inicial (Tema A: Servidor de Chat): Foi definida a arquitetura inicial para o projeto.

    • [cite_start]Headers Principais: Foram criados os arquivos de cabeçalho Server.h e Client.h com a declaração das classes e seus principais atributos e métodos. [cite: 59]
    • [cite_start]Diagramas: Foram produzidos o diagrama de sequência, para ilustrar o fluxo de comunicação, e o diagrama de classes, para mostrar a estrutura estática do projeto. [cite: 59]

Como Compilar e Executar

Este projeto utiliza make para a compilação.

  1. Pré-requisitos:

    • Compilador C++ (G++)
    • Make
  2. Compilar o projeto:
    No terminal, na raiz do projeto, execute o comando:

    make
  3. Executar o teste da biblioteca de log:
    Após a compilação, execute o programa de teste:

    ./bin/teste.exe
  4. Verificar o resultado:
    Um arquivo chamado log_concorrente.txt será criado na raiz do projeto, contendo as mensagens de todas as threads de forma organizada.