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
мостбет результаты live мостбет результаты live
Нужен юрист? юрист арбитражный суд цены представительство в арбитражном суде, защита интересов бизнеса, взыскание задолженности, споры по договорам и сопровождение судебных процессов для компаний и предпринимателей.
мостбет crash коэффициенты мостбет crash коэффициенты
seo продвижение и раскрутка сайта prodvizhenie-sajtov-v-moskve9.ru .
1win recompense zilnice 1win83062.help
Discover the thrill of real-money live casino action at how to clear blackjack bonus at Maxispin, where you can enjoy live dealers, top software providers, and exclusive promotions.
Customer support is available to assist with questions or technical issues.
1win https://www.1win83254.help
codestackr – Color palette felt calming, nothing distracting, just focused, thoughtful design.
seo partner program prodvizhenie-sajtov-v-moskve9.ru .
сделать аудит сайта цена prodvizhenie-sajtov-v-moskve9.ru .
1вин тасдиқи ҳуҷҷат https://1win83254.help/
Discover the thrill of real-money live casino action at https://maxispin-au.com/, where you can enjoy live dealers, top software providers, and exclusive promotions.
The platform promotes responsible use and ensures fair play within its services.
заказать сео анализ сайта пушка заказать сео анализ сайта пушка .
mostbet сайт не работает https://mostbet49271.help
1win маҳдудияти ҳисоб 1win83254.help
монтаж газового пожаротушения для серверной монтаж газового пожаротушения для серверной .
mostbet восстановление аккаунта http://www.mostbet15247.help
1win pariuri fotbal [url=https://1win83062.help]https://1win83062.help[/url]
мостбет коэффициенты футбол Кыргызстан mostbet96810.help
shipkit – Navigation felt smooth, found everything quickly without any confusing steps.
мостбет скачать приложение с сайта http://www.mostbet49271.help
commitkit – Overall, professional vibe here; trustworthy, polished, and pleasantly minimal throughout.
1вин mines https://1win32786.help
1win как пополнить через мбанк https://1win68017.help/
flowbot – Navigation felt smooth, found everything quickly without any confusing steps.
promptkit – Navigation felt smooth, found everything quickly without any confusing steps.
1вин как установить apk 1вин как установить apk
mostbet регистрация Киргизия mostbet49271.help
дохил шудан ба 1win http://1win83254.help
мостбет минимальный депозит mostbet49271.help
1вин как скачать 1win68017.help
1вин Oson пополнение 1вин Oson пополнение
cum depun cu Payeer pe 1win https://1win38174.help/
1вин paynet депозит http://1win36247.help
Good day! Do you use Twitter? I’d like to follow you if that would be ok. I’m definitely enjoying your blog and look forward to new updates.
как пополнить mostbet https://mostbet58041.help
1win crash strategie https://www.1win38174.help
taskpipe – Found practical insights today; sharing this article with colleagues later.
mostbet ставки Казахстан https://mostbet58041.help
cum activez bonusul 1win http://1win38174.help/
1win о деньги вывод 1win о деньги вывод
1вин официальный сайт регистрация 1вин официальный сайт регистрация
authkit – Content reads clearly, helpful examples made concepts easy to grasp.
мостбет кэшбэк условия https://mostbet90753.help
pipelinesy – Pages loaded fast, images appeared sharp, and formatting stayed consistent.
1win ios Republica Moldova https://1win38174.help/
мостбет lucky jet мостбет lucky jet
мостбет app скачать мостбет app скачать
Marriage proposal options best places for a proposal in Barcelona
certified canadian online pharmacy