Ir ao conteúdo

Exercicio 1 – Sistemas Operacionais II – INE5424 – UFSC

Trabalho 1 – EPOS
Idle-waiting Thread Joining
– Este trabalho tinha como objetivo alterar o modo que era feito o “join” em uma Thread. Sendo que o mesmo inicialmente era feito da seguinte maneira:
[code lang=”c”] while(_state != FINISHING)
yield();
[/code]

O mesmo consiste basicamente, em verificar o estado da thread que se esta dando join e caso o estado nao seja FINISHING dar a vez a outro processo. Esta solucao, acarreta no consumo excessivo de recursos ja que o mesmo sempre retorna para a fila de _ready. E eh executado novamente quando o escalonador escolher esta thread. O trabalho pede que seja modificado de modo que o consumo de recursos nao seja excessivo.

Arquivos Modificados:
thread.cc
Thread.h

Solucao:
     Foi criada uma variável adicional em threads.h, _waiting_for_me, que é um ponteiro para uma thread. Quando o método “join” é chamado, a thread que está executando é colocada no _waiting_for_me da thread chamada e é suspensa. Se a thread já finalizou ou alguém já chamou “join” nela, nada é feito. No método “exit”, caso _waiting_for_me esteja preenchida, é chamado o método “resume” na thread referenciada.
     Pensamos em colocar uma lista de referências para várias threads poderem dar “join” na mesma thread, porém vimos na documentação do POSIX que isso era considerado um erro lógico, e achamos que acarretaria um consumo de recursos adicional desnecessário, pois não seria possível usar o _link já existente na thread, já que ela teria de estar tanto na lista de suspensos quanto na lista _waiting_for_me da outra thread.

Explicacao mais detalhada da implementacao escolhida e outras solucoes pensadas.

10.306 Comentários

  1. Jeremytrusy Jeremytrusy

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

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

  3. Jeremytrusy Jeremytrusy

    Наркологическая клиника в Красноярске принимает людей с алкогольной и наркотической зависимостью, абстиненцией, психическими и соматическими расстройствами. Лечение начинается с приема врача и диагностики. Специалисты уточняют длительность употребления алкоголя или других психоактивных веществ, оценивают клинические проявления интоксикации, хронические заболевания и поведение человека. После обследования клиника формирует индивидуальную программу, куда могут входить дезинтоксикационная терапия, психотерапия, кодирование и реабилитация.
    Узнать больше – https://4.narkologicheskaya-klinika-v-krasnoyarske17.ru

  4. Curtissib Curtissib

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

Deixe um comentário

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