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

  1. frostshoregoods frostshoregoods

    Now adjusting my mental model of how the topic fits into the broader landscape, and a look at frostshoregoods extended that adjustment, content that affects my structural understanding rather than just my factual knowledge is content with deeper impact and this site is providing those structural updates at a meaningful rate consistently across topics.

  2. Danielwhads Danielwhads

    Для жителей Ростова-на-Дону клиника «Южный МедКонтроль» предлагает два формата помощи: лечение в стационаре и амбулаторные визиты врача на дом. Стационар оборудован всем необходимым для круглосуточного медицинского наблюдения, проведения инфузионных процедур и лабораторной диагностики. Пациентам предоставляется комфортное размещение, спокойная обстановка и постоянный контроль состояния. При выезде на дом врачи действуют оперативно — приезжают в течение часа, проводят осмотр, устанавливают капельницы, купируют абстиненцию и дают рекомендации по дальнейшему лечению.
    Исследовать вопрос подробнее – наркологическая клиника цены в ростове-на-дону

  3. Williamthync Williamthync

    Эта информационная публикация освещает широкий спектр тем из мира медицины. Мы предлагаем читателям ясные и понятные объяснения современных заболеваний, методов профилактики и лечения. Информация будет полезна как пациентам, так и медицинским работникам, желающим поддержать уровень своих знаний.
    Практические советы ждут тебя – Похмельная служба Москва

  4. Robertsmoom Robertsmoom

    В этом исследовании рассмотрены методы лечения зависимостей и их эффективность. Мы проанализируем различные подходы, используемые в реабилитационных центрах, и представим данные о результативности программ. Читатели получат надежные и научно обоснованные сведения о данной проблеме.
    Открыть полностью – Наркологическая клиника «Похмельная служба» в Нижнем Новгороде.

  5. Robertdom Robertdom

    В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
    Не упусти шанс – Похмельная служба Новосибирск

  6. Donaldvug Donaldvug

    Вызов нарколога на дом в Калининграде — это современное и безопасное решение, позволяющее получить квалифицированную медицинскую помощь в привычной обстановке, без необходимости посещения стационара. В наркологической клинике «БалтикМед» услуги оказываются круглосуточно, с выездом специалиста по любому адресу города и области, что особенно важно при острых состояниях, требующих незамедлительного вмешательства.
    Исследовать вопрос подробнее – психиатр нарколог на дом калининград

  7. SheltonBip SheltonBip

    Алкогольный запой представляет собой тяжелое состояние, вызванное длительным бесконтрольным употреблением спиртных напитков. Без медицинского вмешательства вывести организм из запоя может быть сложно и даже опасно. Срочная помощь нарколога требуется при следующих признаках:
    Узнать больше – http://kapelnica-ot-zapoya-nizhniy-novgorod0.ru

  8. Michaellof Michaellof

    Этот документ охватывает важные аспекты медицинской науки, сосредотачиваясь на ключевых вопросах, касающихся здоровья населения. Мы рассматриваем свежие исследования, клинические рекомендации и лучшие практики, которые помогут улучшить качество лечения и профилактики заболеваний. Читатели получат возможность углубиться в различные медицинские дисциплины.
    Перейти к полной версии – стоп алко

  9. mysticbaygoods mysticbaygoods

    Generally my attention drifts on long posts but this one held it through the end, and a stop at mysticbaygoods earned the same sustained focus, content that defeats my drift tendency is content with substantive pulling power and this site has demonstrated that pulling power across multiple pieces in a session that has now run quite long actually.

  10. Профессиональный вывод из запоя на дому в Луганске ЛНР организован по отлаженной схеме, которая включает несколько этапов, позволяющих обеспечить максимально безопасное и эффективное лечение.
    Углубиться в тему – http://kapelnica-ot-zapoya-lugansk-lnr0.ru/

  11. Russelljax Russelljax

    Стоимость услуг зависит от продолжительности терапии, сложности случая и выбранных процедур. Однако клиника предоставляет гибкую систему оплаты, включая рассрочку и страховое покрытие.
    Ознакомиться с деталями – наркологическая клиника нарколог

Deixe um comentário

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