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

3.264 Comentários

  1. I recently compared several informational platforms before eventually stopping at trusted reading hub where the content looked clean and the structure felt more organized than many competing websites online currently – The content quality stood out as strong and the platform was useful for users seeking dependable information.

  2. While exploring online shopping trend platforms and fashion discovery hubs, I found Modern Trend Stop Network integrated into the article – There is cool stuff everywhere, and my friends always ask where I shop because the styles always feel distinctive, fashionable, and noticeably more appealing than standard stores

  3. During my search for useful shopping destinations and organized product websites, I reached active shopping portal after browsing several recommendations, and the clean layout together with easily accessible product details created a stable and enjoyable online browsing experience.

  4. While browsing creative websites and inspiration platforms online, I came across artistic ideas corner – The website provided a welcoming atmosphere with well arranged information, making it enjoyable to explore different sections while discovering useful and inspiring creative content throughout the visit.

  5. Now setting aside time on my next free afternoon to read more from the archives, and a stop at discovernewhorizons confirmed that time will be well spent, the rare site whose archive deserves a dedicated reading session rather than just casual sampling is the kind of resource worth scheduling around and this one qualifies clearly.

Deixe um comentário

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