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

14.802 Comentários

  1. crazy_sbOi crazy_sbOi

    Seguo Crazy Time da parecchi mesi ormai, quindi ho abbastanza sessioni alle spalle. Prima giocavo esclusivamente da desktop, poi ho installato l’app e la resa e’ un’altra cosa. La diretta si blocca molto meno, le puntate si piazzano senza quel ritardo fastidioso.

    Se non ci avete mai giocato, Crazy Time e’ il game show di Evolution, con quattro giochi bonus collegati: Cash Hunt, Pachinko, Coin Flip e il Crazy Time vero e proprio. Il ritorno teorico sta sul 96 per cento, ma dipende molto da come si distribuiscono le puntate. La puntata minima parte da pochi centesimi, quindi si puo’ provare senza svenarsi.

    Sul file di installazione una precisazione: su Android l’installazione e’ manuale con il file apk, visto che le regole dello store bloccano parte di queste app. Su iOS si usa il collegamento sulla home, e funziona praticamente uguale. La guida all’installazione e il file corretto stanno su crazy time download almeno si evitano le copie modificate.

    Il consumo dati e’ contenuto, pero’ il segnale deve reggere. Con poca copertura la diretta cala di definizione, ma le puntate continuano a registrarsi. Testato su un Samsung e su un Xiaomi, senza blocchi degni di nota. Pesa pochi decine di mega.

    Sul ritiro delle vincite nessun problema: su Skrill entro la giornata, in banca due o tre giorni. Il controllo dei documenti conviene farlo prima di vincere, perche’ dopo diventa un’attesa inutile. La chat e’ in italiano in pochi minuti. In sintesi vale il tempo, purche’ si giochi con budget deciso prima.

  2. Thomasplach Thomasplach

    Экстренный вывод из запоя на дому — это управляемая медицинская последовательность, а не «сильная капельница на удачу». В наркологической клинике «КалининградМедПрофи» мы выстраиваем помощь вокруг трёх опор: безопасность, конфиденциальность и предсказуемый результат. Выездная бригада приезжает круглосуточно, работает в гражданской одежде и без опознавательных знаков, чтобы не привлекать внимания соседей. Каждое вмешательство имеет измеримую цель, окно проверки и прозрачный критерий перехода к следующему шагу. Благодаря этому темп лечения остаётся мягким, а динамика — понятной для пациента и близких.
    Детальнее – http://narkologicheskaya-klinika-v-kaliningrade15.ru/

Deixe um comentário

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