Trabalho 4/5 – EPOS
Idle Thread
Timing Mechanisms
Nos exercícios 4 e 5 deveríamos criar uma Idle-Thread, a qual deveria somente ser escalonada quando não existirem mais processos prontos para execução. Também tínhamos que eiminar bugs, como o timer handler acordar indesejadamente as threads, e remover o busy-waiting do método delay.
A nova Thread é criada no thread_init.cc, o método passado para ela executar inicialmente é o idle, que foi modificado pra ter um loop, e seu status inicial é WAITING. Para garantir que ela não esteja em nenhuma fila, foram realizadas alterações no método body, para que caso o estado inicial seja WAITING, não acontecer nada. Uma nova variável estática para Thread foi criada, que sempre aponta para a Thread _idle, assim permitindo que qualquer Thread passe a execução para a mesma.
Foi criado um novo método switch_threads(Thread * next), que faz a mudança da thread atual para a thread recebida como parâmetro. Todos os métodos que chamavam a idle() ao perceberem que não possuia ninguém na fila foram alterados para mudar o contexto para a Thread _idle.
O construtor de Alarm foi alterado para receber uma Thread ao invés de uma referência para um método. O método delay foi alterado para suspender a Thread e criar um novo Alarm com uma referência para ela. Assim ela é acordada apenas no tempo programado, elimindando o busy-waiting. Para garantir que ao resumir uma Thread não haveria perdas de informações importantes os resumes são dados somente no final do método timer_handler, mantendo a consistência da fila de Alarms.
O tratador master foi mantido como referência para um método, permitindo que outros tipos de escalonamento sejam definidos. Na definição atual, o mesmo chama o método yield do objeto em execução, caso existam outras Threads prontas para execução ele muda o contexto para a próxima thread. Isto nos gerou outro bug, porque quando a Thread IDLE era executada e chamava o método yield, se já existiam pessoas para continuar a execução ela era inserida na fila de READY, passando a ser tratada como um processo normal. Isso foi corrigido verificando se a thread que estava dando YIELD era a thread _idle, caso fosse, não inseria na lista e não mudava o _state.
Arquivos Modificados:
alarm
thread
alarm
thread_init
thread
1 xbet 1 xbet .
xbet xbet .
ремонт двигателей авто teletype.in/@alexd78/OPvNLCcH14h .
1x lite http://www.1xbet-13.com .
1xbet g?ncel adres 1xbet g?ncel adres .
слот the dog house http://wwwpsy.ru/ .
1xbet tr giri? https://1xbet-13.com .
1xbet giri? 1xbet giri? .
1 xbet giri? http://www.1xbet-16.com .
как получить промокод на мелбет https://www.melbet5002.ru
1 xbet 1 xbet .
918kiss png 918kiss png .
918kiss old version 918kiss old version .
kiss918 apk kiss918 apk .
вывод денег с мелбет отзывы вывод денег с мелбет отзывы
1xbet giri? g?ncel 1xbet giri? g?ncel .
xbet [url=https://1xbet-16.com/]xbet[/url] .
1xbet giri? 2025 1xbet giri? 2025 .
918kiss 5.0 apk download 918kiss 5.0 apk download .
melbet plângeri melbet plângeri
păreri melbet păreri melbet
melbet freebet la înregistrare http://www.melbet5012.ru
написание курсовой на заказ цена https://kupit-kursovuyu-2.ru/ .
стоимость написания курсовой работы на заказ http://www.kupit-kursovuyu-3.ru .
chicken road игра перейди дорогу https://kurica2.ru/kz .
курсовой проект купить цена kupit-kursovuyu-1.ru .
написание курсовых на заказ написание курсовых на заказ .
купить курсовую сайт купить курсовую сайт .
курсовая работа купить курсовая работа купить .
курсовая заказать http://kupit-kursovuyu-6.ru .
курсовая работа на заказ цена kupit-kursovuyu-6.ru .
топ агентств seo продвижения https://reiting-seo-kompanii.ru/ .
помощь курсовые https://kupit-kursovuyu-8.ru .
заказ курсовых работ заказ курсовых работ .
курсовой проект цена http://kupit-kursovuyu-6.ru .
melbet limitări cont https://melbet5013.ru/
рейтинг seo агентств рейтинг seo агентств .
рейтинг сео компаний рейтинг сео компаний .
melbet login mobil http://melbet5014.ru
melbet freebet la înregistrare http://melbet5013.ru/
seo agency ranking http://www.reiting-seo-kompanii.ru .
кухни на заказ санкт петербург от производителя https://www.kuhni-spb-11.ru .
seo agents seo agents .
кухни на заказ спб кухни на заказ спб .
глория мебель https://www.kuhni-spb-11.ru .
aviation game aviation game .
aviator x aviator-game-winner.com .
рейтинг сео рейтинг сео .
отделка ремонт квартир москва [url=http://www.luchshie-remontnye-kompanii-moskvy.com]http://www.luchshie-remontnye-kompanii-moskvy.com[/url] .
каталог seo агентств https://reiting-seo-kompanii.ru .