Ir ao conteúdo

Exercicio 2 – Sistemas Operacionais II – INE5424 – UFSC

Trabalho 2 – EPOS
Implementação de Idle-waiting

    A implementação do exercicio 2, consiste em alteração da classe Syncronizer, onde na versão inicial a mesma utiliza yield gerando uma carga desnecessária para o processador. A alteração deve ser semelhante a realizada no exercicio um, fazendo com que não seja gasto recursos sem necessidade.
    Durante as discussões sobre a implementação imaginamos uma nova váriavel dentro de cada Thread para monitorar se a mesma está em uma estrutura como Semaphoro, Mutex ou váriavel condicional. Assim sendo possivel a verificação se está ou não, permitindo que nós façamos as devidas verificações para que o método resume e suspend não possam ser chamados quando a mesma estivesse esperando. Após algum tempo discutindo e analise dos códigos foi imaginada uma abordagem que em vez de criar uma váriavel nova para cada Thread seria necessário simplesmente a criação de um novo estado, denominado por nós de WAITING. Junto a isso foi criada uma fila para cada “Synchronizer”, que possui os processos que estão esperando para serem acordados. Os métodos que acordam os outros processos (wakeup e wakeup_all) foram implementados de forma não bloqueante, ou seja, as threads acordadas são apenas colocadas na fila “_ready”, sem troca imediata de contexto.
    Outras alterações também foram realizadas nos arquivos synchronizer.h, thread.cc, condition.h e semaphore.h, para que os mesmos funcionem corretamente com o novo estado WAITING. Por exemplo, no arquivo Thread.cc as implementações de Join, Resume e exit foram alteradas para a utilização deste novo estado, neste arquivo também foram criados novos métodos denominados sleep e wakeup. Que basicamente tratam a parte de colocar para dormir e botar neste novo estado e também na fila do “Synchronizer”. As devidas alterações foram realizadas nos demais arquivos, para que os mesmos funcionem com o novo estado WAITING.
    Também implementamos o busy waiting no “Synchronizer”, para o usuário poder escolher entre busy e idle waiting alterando uma variável booleana.

Arquivos Modificados:
synchronizer
condition.h
semaphore
thread

14.460 Comentários

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

  2. Rudolphlorry Rudolphlorry

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

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

  4. Alfreddoump Alfreddoump

    Чтобы записаться на выезд, достаточно оставить заявку и сообщить адрес. Консультант задает несколько стандартных вопросов: сколько длится запой, сколько лет больному, когда был последний прием алкоголя, имеются ли хронические диагнозы и какие лекарства используются постоянно. Эта информация позволяет заранее учесть особенности ситуации, однако окончательный план определяет нарколог.
    Подробнее – https://n.vyvod-iz-zapoya-kemerovo18.ru/

  5. AlfonsoLag AlfonsoLag

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

Deixe um comentário

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