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
ремонт стиральный найти мастера стиральной машины
mostbet kifizetés előtt azonosítás mostbet kifizetés előtt azonosítás
pin-up tezkor yechish http://pinup84537.help
xbet giriş xbet giriş
мелбет бк вход https://melbet15928.help
1xbet yeni adresi 1xbet yeni adresi
88starz bet http://888starz-bet1.com .
888starz uz kirish http://www.888starz-bet1.com .
1xbet giriş 1xbet giriş
888 starz.com http://888starz-bet1.com/ .
рулонные шторы купить москва недорого рулонные шторы купить москва недорого
1xbet spor bahislerinin adresi 1xbet spor bahislerinin adresi
Необходимость обращения за наркологической помощью определяется по совокупности симптомов и их выраженности. При ухудшении состояния важно ориентироваться на объективные признаки, а не ждать самостоятельного улучшения.
Разобраться лучше – круглосуточная наркологическая помощь в нижнем новгороде
mostbet çıxarış üsulları Azərbaycan http://mostbet47152.help/
mostbet bepul aylantirish mostbet bepul aylantirish
mostbet çıxarış statusu http://mostbet47152.help/
Interested in UFC? ufc 250 anniversary unique mixed martial arts tournament will take place on June 14, 2026, in Washington, D.C., on the South Lawn of the White House. It will be the first professional sporting event in history to be held directly on the grounds of the U.S. presidential residence.
xbet xbet
электрокарниз купить в москве электрокарниз купить в москве
1xbet spor bahislerinin adresi 1xbet spor bahislerinin adresi
aktuelle sportwetten bonus
My page; neue wettseiten (Maggie)
pferderennen Basketball nba Wetten Tipps
Такой алгоритм помогает врачу быстро устранить симптомы и восстановить пациента без стресса. Процедура занимает от 40 до 90 минут, в зависимости от состояния и применяемых препаратов.
Разобраться лучше – вызов нарколога на дом в тольятти
1xbet yeni adresi 1xbet yeni adresi