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

11.003 Comentários

  1. Люди помогите Менеджеры врут про материалы То сроки по полгода Короче, единственные кто не наваривается — кухни СПб от производителя Замер на следующий день В общем, сохраняйте в закладки — ленинградские кухни https://kuhni-spb-lvk.ru Не ведитесь на салоны-прокладки Сам мучался теперь делюсь

  2. Na 888starz siedze juz z kilka tygodni i w koncu postanowilem, ze podziele sie. Tak z reka na sercu — dorwalem link na jakims forum i jakos zostalem. Jako gracz z Polski nie ma zbyt wielu sensownych opcji, wiec kazde takie od razu sprawdzam dokladnie.

    Najbardziej siedze w slotach i jest w czym wybierac. Spokojnie ponad dwa tys. tytulow, od Pragmatic Play po NetEnt, Play’n GO oraz Yggdrasil. Standardowe Gates of Olympus i Book of Dead masz od reki, ale szczerze najczesciej siedze na jednego czy dwoch tytulow. Ladowanie dziala gladko nawet na slabszym telefonie.

    Jak ktos woli live — obsluguje to Evolution, z prawdziwymi krupierami, do tego te cale teleturnieje w stylu Crazy Time. Wciaga niesamowicie. Co do kasy — korzystam z BLIK-a i crypto, da sie tez Mastercard. Pierwszy raz mialem na koncie w niecale pol dnia, na e-wallecie ida najszybciej. Mozesz podejrzec swieze oferty u bonus 888starz zanim sie zapiszesz, regularnie sie aktualizuje.

    Bonus na start wyglada przyzwoicie — jest do 1500 euro i do tego jakies 150 free spinow. Ruch to okolo x40, co szczerze jest standardem, ale jak zawsze czlowiek musi ogarnac zasady. Wejscie to grosze, rejestracja trwala doslownie pare minut. Aplikacja na androida tez jest bez wiekszych zgrzytow, apk ze strony.

    Nie wszystko jest idealne — obsluga bywa ze mieli wolno, zwlaszcza wieczorami. Weryfikacja konta delikatnie wkurzyla, choc rozumiem, ze z powodu licencji to norma. Tak po calosci — jestem raczej zadowolony, zdania na forach sa rozne, dlatego wyrob sobie wlasne, zanim wrzucisz kase.

Deixe um comentário

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