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
ремонт бетонных конструкций материалы ремонт бетонных конструкций материалы .
гидроизоляция подвала изнутри цена м2 http://www.gidroizolyacziya-czena.ru .
помощь курсовые http://www.kupit-kursovuyu-22.ru .
шторы умный дом шторы умный дом .
шторы умный дом шторы умный дом .
умные шторы умные шторы .
курсовые купить https://kupit-kursovuyu-22.ru .
инъекционная гидроизоляция оборудование инъекционная гидроизоляция оборудование .
курсовые работы заказать kupit-kursovuyu-21.ru .
гидроизоляция цена за рулон гидроизоляция цена за рулон .
аренда погрузчик экскаватор https://arenda-ekskavatora-pogruzchika-5.ru .
вертикальная гидроизоляция стен подвала вертикальная гидроизоляция стен подвала .
гидроизоляция подвала жилого дома гидроизоляция подвала жилого дома .
гидроизоляция цена за работу гидроизоляция цена за работу .
написание курсовой на заказ цена kupit-kursovuyu-21.ru .
наплавляемая гидроизоляция цена наплавляемая гидроизоляция цена .
экскаватор заказать цена https://arenda-ekskavatora-pogruzchika-5.ru .
инъекционная гидроизоляция вводов коммуникаций inekczionnaya-gidroizolyacziya.ru .
ремонт бетонных конструкций трещины ремонт бетонных конструкций трещины .
наплавляемая гидроизоляция цена за м2 работа http://www.gidroizolyacziya-czena.ru .
аренда экскаватора смена http://www.arenda-ekskavatora-pogruzchika-6.ru .
гидроизоляция цена работы гидроизоляция цена работы .
внутренняя гидроизоляция подвала внутренняя гидроизоляция подвала .
гидроизоляция подвала монтаж гидроизоляция подвала монтаж .
услуги гидроизоляции подвала http://www.gidroizolyacziya-podvala-iznutri-czena1.ru .
AI Porn Chat AI Porn Chat .
решение курсовых работ на заказ http://kupit-kursovuyu-26.ru .
где можно купить курсовую работу где можно купить курсовую работу .
курсовая заказать недорого https://kupit-kursovuyu-21.ru/ .
сайт для заказа курсовых работ сайт для заказа курсовых работ .
заказать курсовую заказать курсовую .
помощь студентам курсовые http://www.kupit-kursovuyu-22.ru .
выполнение курсовых kupit-kursovuyu-23.ru .
написание курсовых работ на заказ цена http://kupit-kursovuyu-28.ru .
заказать качественную курсовую заказать качественную курсовую .
курсовая заказать [url=www.kupit-kursovuyu-30.ru]курсовая заказать[/url] .
курсовые работы заказать курсовые работы заказать .
курсовая работа купить москва http://kupit-kursovuyu-22.ru/ .
гидроизоляция подвала цена за м2 гидроизоляция подвала цена за м2 .
заказать практическую работу недорого цены https://www.kupit-kursovuyu-22.ru .
заказать студенческую работу http://kupit-kursovuyu-22.ru/ .
официальный сайт dyson фен https://fen-d-1.ru .
“Much appreciated! The Green Computing Strategy on Substack was very helpful”
pin up hisobni bloklash pinup5009.ru
pin up yuklash android https://pinup5012.ru
пин ап рулетка https://pinup5012.ru
пин ап новый бонус https://pinup5013.ru/
pin up bonus ro‘yxatdan o‘tish orqali http://www.pinup5014.ru
1vin вход https://www.1win5522.ru
1вин зеркало узбекистан http://1win5511.ru/