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

3.708 Comentários

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

  2. Многие семьи слишком долго откладывают обращение к услугам нарколога, надеясь, что человек «отойдет сам», выспится, восстановится за день-два или просто даст очередное обещание больше не повторять употребление. На практике такие ожидания часто только отнимают время. Если зависимость уже начала формироваться, самочувствие после алкоголя становится тяжелее, а промежутки между срывами сокращаются, это говорит о том, что проблема вышла за пределы бытовой и требует профессиональной оценки.
    Подробнее тут – http://narkologicheskaya-pomoshh-voronezh.ru

  3. https://ufc328.site/
    UFC 328 arrives at the Prudential Center on May 9, 2026 featuring a strong lineup. The UFC 328 main card is topped by champion Khamzat Chimaev defending the 185-pound title against Sean Strickland.

  4. DonaldHoove DonaldHoove

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

  5. Hello there! Do you know if they make any plugins to protect against hackers? I’m kinda paranoid about losing everything I’ve worked hard on. Any suggestions?

Deixe um comentário

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