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

1.088 Comentários

  1. jtmnewqpr jtmnewqpr

    1. Added sound effects2. Introduced AI templates3. Bug fixes and performance optimizations.If you have any questions, please contact us via the following methods.Instagram: @vnvideoeditorYoutube丨Telegram: @vnvideoeditorappEmail: vn.support+ios@uiOfficial website: vlognow.me Deciding on the best mobile video editor comes down to your creative ambitions, device, and how much time you want to dedicate to learning new tools. CapCut is a great choice for anyone who desires straightforward editing with minimal effort or prior experience. VN provides a stepping stone, combining simplicity with the resources you need to advance your skills through community support and hands-on examples. If you’re seeking powerful, professional features and you own an iOS device, LumaFusion stands out as the premium choice. Whatever you decide, be assured that all three apps can help you build skills and produce videos you’ll be proud to share.
    https://thepizzamia.com/how-to-download-n1-casino-safely-in-new-zealand/
    Congratulations! You are my saviour, and for millions. You are the best user friendly app. I would suggest this to million people a million times ever. Honestly this is the most best app for creators. And it’s the one and only app which have everything required for the creator in it ! Love this app to the core. I will definitely be the lifetime user. ❤️️ It’s easy to overlook pre-loaded apps like Apple’s own Clips but, with the weight of the tech giant’s best brains behind it, this video editing app has plenty of powerful features to admire. Take their live tiles setting as an example. This lets you create animated captions and titles that appear automatically as you speak. Turn your photos into meaningful stories. Create your own slideshows with text, effects, and music with Videoleap app. No video editing experience needed.

  2. Nice post. I was checking constantly this blog and I’m impressed! Very helpful info specifically the remaining phase 🙂 I care for such information much. I was seeking this certain information for a very lengthy time. Thank you and best of luck.

Deixe um comentário

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