Ir ao conteúdo

Exercicio 3 – Sistemas Operacionais II – INE5424 – UFSC

Trabalho 3 – EPOS
System Object Destruction

    No exercício três deviamos implementar o controle de destrução de objetos, o qual não deve corromper o sistema e também deve estar de acordo com a semântica da linguagem de programação.
    A implementação adotada funciona da seguinte maneira: na class Thread foi adicionado um campo _container, nele é guardada a fila em que a Thread se encontra no momento. Os métodos desta classe foram alterados para que a consistência do campo _container seja mantida. No método join, por exemplo, o campo _container é atualizado com o endereço da fila _waiting_for_me do objeto em que se da join.
    Quando uma thread entra para o estado RUNNING o seu campo container não é atualizado, já que caso o mesmo seja deletado (ou auto-deletado), ele tentará se remover de uma fila em que não está, não causando mais problemas.
    Quando uma thread que possui elementos na sua fila _waiting_for_me é deletada, ela não acorda aquelas que a estão esperando, entrando em uma situação de deadlock. Nosso sistema, por conseguir detectar essa situação facilmente, gera um aviso. Porém, caso a Thread que tente se dar join já tiver sido destruída e removida da memória, a thread em execução trava, como nosso sistema não consegue detectar esse erro ele não é informado.
    Quando um objeto que extende a classe Synchronizer é deletado, seu destrutor chama wakeup_all, fazendo com que todos as threads que estiverem travadas nele continuem a execução.

Arquivos Modificados:
Thread.h
Thread.cc
Sycronizer.h

1.767 Comentários

  1. Shoppers exploring creative vendor marketplaces often shared positive impressions of sites such as Wild Harbor Bazaar Desk – the wide range of items made exploration engaging, while shipping reliability and fast order processing were commonly mentioned benefits among returning customers.

  2. People who enjoy elegant ecommerce presentation often engage with sites like Stone Collective Gilded Luxury Hub where items are displayed in a sophisticated and visually cohesive format – The interface creates a premium shopping experience that feels structured, stylish, and consistent with high end branding expectations across all categories.

  3. In discussions about improving user experience on marketplace websites, many contributors point out how structured navigation reduces confusion, and the inclusion of Orchard Shop Navigator supports this idea by offering a clearer path through various listings, helping users reach relevant products more efficiently.

  4. After browsing through several websites that varied in clarity and design, I discovered check this resource and noticed it had a nice overall structure, making everything easy to access and view while navigating through different pages smoothly.

  5. Online shoppers frequently prioritize platforms that reduce friction during browsing and help them find products quickly without unnecessary complexity, especially when catalogs are large and diverse, and this is reflected in ShopCove Atelier – the design focuses on fast loading performance and structured navigation so users can move smoothly between categories and complete their shopping experience with ease.

  6. Users exploring modern ecommerce galleries often appreciate how fluid visual layouts improve engagement when browsing platforms such as Ginger Stone Art Galleria Hub where products are arranged in a stylish exhibition format that enhances clarity – The galleria style layout creates a smooth and visually engaging browsing experience, making it easy for users to explore products while enjoying a balanced and aesthetically appealing interface.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *