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

1.751 Comentários

  1. Michaelkem Michaelkem

    An astrology portal burcler with daily horoscopes, natal charts, and forecasts. Online consultations, zodiac sign compatibility, and personalized recommendations will help you better understand yourself and make important decisions.

  2. Шпаклевка стен https://shpaklevka-sten.ru и потолков в Москве — выравнивание поверхностей под покраску и обои. Качественные материалы, опытные мастера и соблюдение технологий. Выполняем работы быстро, аккуратно и с гарантией результата по доступной цене.

  3. Richardrhima Richardrhima

    Dream Interpretations 2026 https://yuxu-yozmalari.com.az/ learn the meaning of your dreams with AI artificial intelligence. Dream interpretation from A to Z, folk belief interpretation, psychological approach. Free online dream interpretation.

  4. Teddyrek Teddyrek

    An online numerology numerologiya profile analyzes your destiny, talents, and finances. Accurate calculations, number interpretation, and personalized recommendations will help you better understand yourself and choose the right direction in life.

  5. Сайт міста Одеса https://faine-misto.od.ua новини, події, афіша, довідник компаній та корисна інформація. Дізнавайтесь актуальні новини, знаходьте послуги, заклади і маршрути. Все про життя Одеси для мешканців і гостей міста в одному місці.

  6. Сайт міста Львів https://faine-misto.lviv.ua новини, події, афіша та довідник компаній. Актуальна інформація про життя міста, транспорт, послуги і заклади. Усе необхідне для мешканців і туристів Львова в одному зручному онлайн-порталі.

  7. Сайт міста Житомир https://faine-misto.zt.ua новини, події, афіша та довідник компаній. Актуальна інформація про життя міста, транспорт, послуги і заклади. Усе необхідне для мешканців і гостей Житомира в одному зручному онлайн-порталі.

  8. У місті Одеса https://u-misti.odesa.ua актуальні новини, події, афіша та корисна інформація для мешканців і гостей. Дізнавайтесь про життя міста, транспорт, заклади і послуги. Все найважливіше про Одесу в одному зручному онлайн-порталі.

  9. Житомир онлайн https://u-misti.zhitomir.ua міський портал з новинами, афішею та довідником. Дізнавайтесь про події, транспорт, бізнес і послуги. Усе для комфортного життя та відпочинку в Житомирі в одному місці.

  10. У місті Вінниця https://u-misti.vinnica.ua новини, афіша заходів, довідник закладів і корисні сервіси. Дізнавайтесь про події, відкривайте нові місця і плануйте свій час у Вінниці легко та зручно.

  11. Hey would you mind letting me know which webhost you’re utilizing? I’ve loaded your blog in 3 completely different browsers and I must say this blog loads a lot faster then most. Can you recommend a good internet hosting provider at a honest price? Many thanks, I appreciate it!

Deixe um comentário

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