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

  1. WilliamMed WilliamMed

    Если ситуация требует круглосуточного наблюдения, лабораторной диагностики, постоянного контроля показателей или использования сложного оборудования, врач предложит клинику. Такое решение связано не с удобством персонала, а с безопасностью человека. В стационаре доступны комплексные диагностические процессы, современное оборудование, лабораторные исследования и возможность быстро изменить лечение при возникновении осложнений.
    Дополнительная информация – https://nadomu4.kapelnica-ot-zapoya-v-moskve14-1.ru/

  2. DavidTat DavidTat

    Наркологическая помощь на дому строится с учетом возраста пациента, стажа алкоголизма или наркомании, сопутствующих заболеваний, ранее проведенного лечения и лекарств, которые уже использовались. Врач может назначить препараты, провести снятие выраженных проявлений абстиненции, выполнить детоксикацию и определить необходимость дальнейшей терапии. Если пациент много лет живет с зависимостью, лечение обычно не ограничивается одной процедурой: дополнительно могут применяться кодирование, психотерапия, лечение в клинике и реабилитация.
    Узнать больше – врач нарколог на дом

  3. Jeffreycot Jeffreycot

    Наша философия проста: минимум медикаментов, максимум управляемости процесса. Мы не используем «универсальные капельницы», а собираем схему под клиническую картину: длительность запоя, выраженность тремора и тошноты, качество сна, уровень тревоги, исходное давление и частоту пульса, сопутствующие заболевания, текущие лекарства (антигипертензивные, антиаритмические, сахароснижающие, средства для сна). Скорость инфузии задаётся инфузоматом, витальные показатели контролируются портативным кардиомонитором и пульсоксиметром, глюкоза и электролиты — по экспресс-панелям. Такой подход снижает риск осложнений и делает результат предсказуемым и устойчивым.
    Выяснить больше – https://narcolog-na-dom-krasnodar14.ru/narkolog-i-psikhiatr-v-krasnodare

Deixe um comentário

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