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

2.607 Comentários

  1. Many online shoppers look for platforms that make browsing feel natural and enjoyable, and I recently discovered Smile Market Easy Cart Hub which seems helpful – A well-organized shopping website that focuses on simplicity and user comfort, allowing visitors to browse products easily while enjoying a smooth and friendly interface throughout their visit.

  2. While reviewing layout and testing navigation, I saw that open this link integrates into a clear system – I spent some time on it, and it feels like a reliable and simple platform overall.

  3. People interested in collaborative innovation often prefer platforms with applied examples, and I recently discovered Innovation Driven Ideas Hub which looks useful – The concept is really interesting and well thought out, and I hope they expand it with more case studies soon to make it even more helpful for understanding real-world implementation.

  4. DouglasDiano DouglasDiano

    В этой статье представлен занимательный и актуальный контент, который заставит вас задуматься. Мы обсуждаем насущные вопросы и проблемы, а также освещаем истории, которые вдохновляют на действия и изменения. Узнайте, что стоит за событиями нашего времени!
    Получить больше информации – нарколог на дом недорого москва

  5. While reviewing online directories for corporate partnerships and trust based networks I encountered a resource placed in the middle of search results Trusted Enterprise Link Portal – It appeared consistent and I would likely share it with colleagues looking for stable partnership options

  6. Many individuals focused on continuous improvement often browse platforms that encourage learning through sharing and mutual support, and they may discover Smart Learning Collaboration Hub which promotes educational exchange – A supportive environment where users participate in discussions, share resources, and grow their understanding through consistent collaboration and interactive knowledge-sharing activities with others worldwide.

  7. As I explored business mindset articles and team performance discussions, I added browse growth leadership site into my notes – the content highlights forward thinking approaches and encourages building stronger collaborative environments.

Deixe um comentário

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