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

7.603 Comentários

  1. After I initially left a comment I appear to have clicked on the -Notify me when new comments are added- checkbox and from now on every time a comment is added I receive 4 emails with the exact same comment. Is there a way you can remove me from that service? Thank you!

  2. Güvenli bahis deneyimi için 1xbet güncel adresini kullanabilirsiniz.
    1xbet hesabınıza erişim sağlamak. Bu siteye erişim için birkaç adım yeterlidir. İlk olarak doğru adresin kullanılması önemlidir. Güvenli bağlantı sayesinde bilgileriniz korunur.

    Kullanıcılar giriş yapmak için ana sayfadaki giriş linkini kullanmalıdır. Doğru kullanıcı adı ve şifre girilmesi çok önemlidir. Her zaman resmi site olduğundan emin olunması gerekir.

    Yeni kullanıcılar kolayca siteye kayıt olabilirler. Bilgilerin eksiksiz ve doğru doldurulması önem taşır. Bazı durumlarda hesabınızı onaylemek için ek adımlar uygulanabilir.

    Siteye giriş sonrası birçok seçenek sizleri bekler. Bahisler, canlı casino ve diğer oyunlar gibi aktiviteler erişilebilir hale gelir. Bonuslar ve özel tekliflerle kazancınızı artırabilirsiniz.

  3. Güvenli bahis deneyimi için 1xbet güncel adresini kullanabilirsiniz.
    son derece hızlı ve pratik. Giriş yaparken dikkat edilmesi gereken bazı noktalar vardır. Kullanıcılar giriş yapmak için doğru siteyi seçmelidir. Site güvenliğine verilen önem yüksektir.

    Kullanıcılar giriş yapmak için ana sayfadaki giriş linkini kullanmalıdır. Kullanıcı adı ve şifre alanları özenle doldurulmalıdır. Kişisel bilgilerinizi girmeden önce sayfanın orijinalliği onaylanmalıdır.

    Üyeliğiniz yoksa, kayıt işlemi birkaç dakika içinde tamamlanabilir. Bilgilerin eksiksiz ve doğru doldurulması önem taşır. Hesap güvenliği için doğrulama zorunlu olabilir.

    1xbet girişi yaptıktan sonra pek çok fırsattan yararlanabilirsiniz. Çeşitli spor dallarında bahis yapma imkanı sunulur. Bonuslar ve özel tekliflerle kazancınızı artırabilirsiniz.

Deixe um comentário

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