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

8.958 Comentários

  1. JamesAmult JamesAmult

    Капельница на дому проводится только при возможности безопасного наблюдения. Если специалист выявляет симптомы острой сердечной, дыхательной или неврологической патологии, выраженной интоксикации, нестабильное давление либо риск тяжелого осложнения, он может рекомендовать вызвать скорую помощь и продолжить лечение в стационаре. В таких случаях домашней инфузии недостаточно.
    Узнать больше – stoimost-kapelnicy-na-domu

  2. MichaelFitly MichaelFitly

    Эта публикация раскрывает психологические механизмы зависимости и их роль в развитии расстройств. Читатель узнает о том, как психология влияет на формирование зависимостей и как профессиональная помощь может изменить ситуацию.
    Обратитесь за информацией – Закодироваться после алкоголя

  3. RonaldRhype RonaldRhype

    Высокая концентрация токсинов особенно опасна для людей с сердечной недостаточностью, заболеваниями печени, почек и нервной системы. Поэтому вывод из запоя на дому начинается с оценки противопоказаний. Если уровень риска высокий, лечение алкоголизма безопаснее проводить в стационаре.
    Дополнительная информация – раствор для вывода из запоя

  4. Запой — это продолжительное употребление алкоголя, при котором зависимый регулярно принимает новые дозы спиртного, чтобы временно уменьшить проявления абстиненции. Со временем самочувствие становится тяжелее: нарушаются сон и аппетит, растет тревожность, появляется слабость, раздражительность, сердцебиение, обезвоживание и токсическое воздействие на мозг, печень и сердце. Лечение запоя особенно важно, если больной пьет несколько дней подряд, не может самостоятельно остановиться или раньше уже переносил тяжелый синдром отмены.
    Дополнительная информация – vyvod-iz-zapoya-moskva-vyzov-narkologa-kapelnica

Deixe um comentário

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