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

6.657 Comentários

  1. Друзья ситуация жуткая. Попал я в переплёт конкретный. Муж просто пропадает. Жена в слезах. Платные клиники просят бешеные деньги. Короче, нормальные врачи нашлись — профессиональное выведение из запоя капельницей. Приехали через час. В общем, там контакты и прайс — вывод из запоя вызов вывод из запоя вызов Каждая минута дорога. Скиньте другу в беде.

  2. Здорово, народ. Муж просто исчез в бутылке. Родные не знают, за что хвататься. В бесплатную наркологию — табу. Короче говоря, спасла только эта служба — вывод из запоя на дому срочно. Сняли алкогольную интоксикацию. В общем, жмите, чтобы не потерять — вывод из запоя с выездом вывод из запоя с выездом Каждая минута на вес золота. Вдруг пригодится.

  3. Самарцы всем привет. Жесть случилась полная. Брат пьёт без остановки. Дети не спят ночами. Скорая не едет. Короче, только это и спасло — анонимный вывод из запоя без последствий. Приехали через час. В общем, сохраняйте на будущее — вывод из запоя доктор на дом вывод из запоя доктор на дом Не тяните. Скиньте другу в беде.

  4. Народ выручайте. Жесть случилась полная. Брат пьёт без остановки. Дети не спят ночами. В диспансер везти — учёт на всю жизнь. Короче, только это и спасло — срочный вывод из запоя круглосуточно. Отошёл за полчаса. В общем, там контакты и прайс — вывод из запоя частный врач https://vyvod-iz-zapoya-na-domu-samara-vwx.ru Не тяните. Перешлите тому кому надо.

  5. استارز 888
    تُعرف 888starz بتقديم مجموعة واسعة من الألعاب والخدمات المصممة لراحة اللاعبين وتلبية احتياجاتهم.

    القسم الثاني:
    تشمل مجموعة الألعاب لدى 888starz خيارات متعددة تناسب مختلف الأذواق ومستويات المهارة.

    القسم الثالث:
    يوفر موقع 888starz خيارات مراهنات رياضية تغطي بطولات ودوريات عالمية ومحلية.

    القسم الرابع:
    تسهّل المنصة عمليات الدفع عبر واجهات موثوقة وبإجراءات سريعة لتقليل وقت الانتظار.

  6. Wish I’d thought of this. Am in the field, but I procrastinate alot and haven’t written as much as I’d like. Thanks.

Deixe um comentário

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