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

10.954 Comentários

  1. At this time it seems like Expression Engine is the preferred blogging platform out there right now. (from what I’ve read) Is that what you are using on your blog?

  2. 1xbet indir işlemini nasıl yapacağımı çok araştırdım valla. Play Store’da resmi olanı bulamayınca çok hayal kırıklığı yaşadım. Sonunda tüm teknik detayları inceleyip sistemi test ettim. En sonunda güvendiğim bir kaynağa ulaştım ve size de tüm detayları aktarmak istedim, güncel bilgilere buradan bakabilirsiniz: 1xbet nasıl indirilir 1xbet nasıl indirilir. Şimdi size kısaca özet geçeyim — mobil uygulaması gerçekten akıcı ve sorunsuz çalışıyor.

    güncellemeleri de düzenli olarak yapılıyor. İşin doğrusunu söylemek gerekirse — başka yerde vakit kaybetmeyin yani. Herkese hayırlı olsun…

  3. Fobertnar Fobertnar

    I think one of the best things about this post is that it feels authentic and simple to engage with, while still offering enough context and perspective to keep the discussion worth following, balanced, and relevant for a wide range of different readers online.

    childrens kids sexual xxx porn pills

  4. BlakeJoync BlakeJoync

    Читатели получат представление о том, как современные технологии влияют на развитие медицины. Обсуждаются новые методы лечения, персонализированный подход и роль цифровых решений в повышении качества медицинских услуг.
    Получить профессиональную консультацию – kirzhach clinica plus

  5. Donaldbox Donaldbox

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

  6. UpvoteRocket is the #1 automated voting service for private MMORPG servers. Climb toplist rankings on XtremeTop100, TopG, GTop100 with smart undetectable automation. Ragnarok, WoW, Mu Online & 20+ platforms supported. Pay only for delivered votes.

  7. Bruceram Bruceram

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

  8. Mobil bahis platformu arayışım epey uzun sürdü valla. Herkes farklı bir adres söylüyordu kime güveneceğimi şaşırdım. Sonunda tüm teknik detayları inceleyip sistemi test ettim. En sonunda güvendiğim bir kaynağa ulaştım ve size de tüm detayları aktarmak istedim, güncel bilgilere buradan bakabilirsiniz: 1xbet türkiye indir 1xbet türkiye indir. Yani anlatmak istediğim şu — mobil uygulaması gerçekten akıcı ve sorunsuz çalışıyor.

    Hiçbir sıkıntı yaşamadım indirme esnasında. Kendi deneyimlerimi aktarıyorum size — kesinlikle pişman olmazsınız deneyin derim. Herkese hayırlı olsun…

  9. UpvoteRocket is the #1 automated voting service for private MMORPG servers. Climb toplist rankings on XtremeTop100, TopG, GTop100 with smart undetectable automation. Ragnarok, WoW, Mu Online & 20+ platforms supported. Pay only for delivered votes.

  10. GichardDulge GichardDulge

    This post has a very good balance between being insightful and staying easy to understand, because the discussion remains easy to follow while still offering enough substance to make readers think about the topic more carefully.

    kids sexual xxx porn onlyfans

  11. Hi there! Do you know if they make any plugins to assist with SEO? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good success. If you know of any please share. Cheers!

  12. JefferyHaf JefferyHaf

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

  13. Anthonyhes Anthonyhes

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

  14. Robertmib Robertmib

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

  15. Michaeldiele Michaeldiele

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

  16. Bernardrig Bernardrig

    Этот краткий обзор предлагает сжатую информацию из области медицины, включая ключевые факты и последние новости. Мы стремимся сделать информацию доступной и понятной для широкой аудитории, что позволит читателям оставаться в курсе актуальных событий в здравоохранении.
    Ознакомиться с полной информацией – lipeck clinica plus

  17. Wileysom Wileysom

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

Deixe um comentário

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