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.555 Comentários

  1. Users exploring online systems usually expect fast performance, intuitive navigation, and well-organized content that helps them quickly understand and access information ShiftUrban Flow Node – The UrbanShift platform provides a smooth experience where pages load easily and navigation is straightforward, ensuring users can browse content without difficulty.

  2. Many users interested in online retail trends often explore new stores that offer innovative and engaging product experiences, and I discovered Impact NextWave Shopping Hub which looks promising – A creative online shop that showcases evolving product ideas and unique offerings, making it a platform worth revisiting to see future updates and developments.

  3. For those who enjoy modern online stores, exploring simple retail choice – a platform designed for smooth browsing offers users an easy shopping experience with organized layouts and efficient product discovery tools.

  4. While going through different sections and observing usability, I found that visit this link enhances the experience – I like the structure here; it is simple yet effective for users overall.

  5. Modern professionals often struggle with choosing between multiple career paths, especially when industries evolve rapidly and job requirements change frequently across different sectors Career Navigation Tool which simplifies decision-making by offering structured comparisons and clear direction based on user interests – A supportive platform that assists users in evaluating career options, understanding industry trends, and making confident professional choices based on clear information

Deixe um comentário

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