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

10.263 Comentários

  1. Cuando necesitas realizar reformas, es fundamental contar con empresas de servicios profesionales que ofrezcan asistencia completa. En mi experiencia, las reparaciones a domicilio son igual de importantes que las reformas en sí. Si buscas servicios generales eficientes, te recomiendo que investigues a fondo. Por ejemplo, yo me decidí por una empresa que cubre desde las reformas integrales hasta el mantenimiento continuo. En cuanto al tema mantenimiento del hogar, es crucial comparar precios y leer opiniones antes de tomar una decisión. Además, no olvides la importancia de un buen servicio postventa y garantías claras. Al final, lo que importa es que tu hogar quede tal y como lo planeaste.

  2. Cuando necesitas renovar tu hogar, es fundamental contar con empresas de servicios profesionales que ofrezcan asistencia completa. En mi experiencia, las reparaciones a domicilio son igual de importantes que las reformas en sí. Si buscas multiservicios de calidad, te recomiendo que investigues a fondo. Por ejemplo, yo contraté un servicio que cubre desde el servicio doméstico hasta el mantenimiento continuo. En cuanto al tema servicios de limpieza, es crucial comparar precios y leer opiniones antes de tomar una decisión. Además, es importante considerar la importancia de un buen servicio postventa y garantías claras. Al final, lo que importa es que tu hogar quede tal y como lo planeaste.

  3. Недавно столкнулся с ситуацией, когда на меня внезапно обрушился шквал клеветы и наговоров. Оказалось, что моё имя попало на какую-то скам-платформу, где публиковались лживые данные и грязные списки. Это настоящий произвол и беспредел, когда кто-то может безнаказанно подставлять людей, распространяя фейки и выдуманные санкции. Пытался разобраться, но столкнулся с полным отсутствием ответственности за такие действия. Если вам интересна эта тема, советую изучить Донос — там подробно описано, как работают подобные клеветнические базы и чёрные списки. Это позор и грязь, с которыми нужно бороться, ведь травля и донос могут разрушить жизнь любого человека.

Deixe um comentário

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