Ir ao conteúdo

Exercicio 1 – Sistemas Operacionais II – INE5424 – UFSC

Trabalho 1 – EPOS
Idle-waiting Thread Joining
– Este trabalho tinha como objetivo alterar o modo que era feito o “join” em uma Thread. Sendo que o mesmo inicialmente era feito da seguinte maneira:
[code lang=”c”] while(_state != FINISHING)
yield();
[/code]

O mesmo consiste basicamente, em verificar o estado da thread que se esta dando join e caso o estado nao seja FINISHING dar a vez a outro processo. Esta solucao, acarreta no consumo excessivo de recursos ja que o mesmo sempre retorna para a fila de _ready. E eh executado novamente quando o escalonador escolher esta thread. O trabalho pede que seja modificado de modo que o consumo de recursos nao seja excessivo.

Arquivos Modificados:
thread.cc
Thread.h

Solucao:
     Foi criada uma variável adicional em threads.h, _waiting_for_me, que é um ponteiro para uma thread. Quando o método “join” é chamado, a thread que está executando é colocada no _waiting_for_me da thread chamada e é suspensa. Se a thread já finalizou ou alguém já chamou “join” nela, nada é feito. No método “exit”, caso _waiting_for_me esteja preenchida, é chamado o método “resume” na thread referenciada.
     Pensamos em colocar uma lista de referências para várias threads poderem dar “join” na mesma thread, porém vimos na documentação do POSIX que isso era considerado um erro lógico, e achamos que acarretaria um consumo de recursos adicional desnecessário, pois não seria possível usar o _link já existente na thread, já que ela teria de estar tanto na lista de suspensos quanto na lista _waiting_for_me da outra thread.

Explicacao mais detalhada da implementacao escolhida e outras solucoes pensadas.

1.804 Comentários

  1. free money online pokies canada, bet365 united statesn roulette tips and cash freuky who owns blue chip casino (Prince) free chips, or bet365 new zealandn roulette tips

  2. Wonderful goods from you, man. I have understand your stuff previous to
    and you’re just extremely fantastic. I actually like what you’ve acquired here, really like what you’re stating and the way in which you say it.
    You make it enjoyable and you still take care of to keep it wise.

    I can not wait to read far more from you.
    This is actually a wonderful web site.

    Look into my blog … gambling queens

  3. It’s actually a great and useful piece of info. I am satisfied that you
    simply shared this useful information with us.
    Please stay us up to date like this. Thank you for sharing.

    my page :: roulette wheel spinner app (Dustin)

  4. Thanks , I’ve recently been searching for info about this topic for ages and yours is the best I have discovered so far. But, what concerning the bottom line? Are you certain concerning the source?

  5. best real money online pokies new zealand, uk no deposit casino
    bonus 2021 and all australian casino bonus codes, or uk slot sites not on gamstop

    Review my webpage: what do roulette bets pay – Hermine,

  6. native united statesn gambling rights, free money online casino canada and run it
    once poker canada, or casino in australia near
    detroit

    Here is my blog … what is the ball on a roulette wheel called – Millard,

Deixe um comentário

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