salve galera tudo bem com vocês sejam bem-vindos à disciplina de sistemas operacionais na aula de hoje a gente vai estar falando de tipos de escalonamento ok chega junto que essa aula tá muito legal né Eu produzi algumas animações para tentar explicar como esses tipos de escalonamento é realizam os procedimentos para selecionar os processos que estão em execução que serão executados pela CPU Ok vamos lá então escalonamentos basicamente terminamos a aula passada falando das duas principais categorias de escalonamento quando se trata da CPU de um computador né E aí nós vimos as categorias sendo classificados de
duas maneiras no modo pré e repentivo e do modo não preemptivo o primitivo ocorre a interrupção processos que estão em execução pela CPU Ok então a gente já vai saber de início que todos os tipos de escalonamentos que estão nessa categoria eles realizam a interrupção se for necessário nos processos que estão em execução pelo processador pela CPU do computador já os tipos de escalonamento é que estarão aqui dentro da classificação de não preemptivo como o nome já diz não realiza a interrupção dos processos tá Então essas são as duas principais características quando nós terminamos a
nossa aula passada se você não assistiu vou deixar disponível no card aqui em cima para você conferir Lembrando que as nossas aulas são sequenciais Então vamos dar continuidade a partir daqui falando dos tipos de escalonamento vamos começar pelo escalonamento não preemptivo e aí a gente vai até representar cada um dos próximos slides com essa caixinha aqui não preemptivo você não esquecer a classificação de cada um desses tipos nós veremos esses quatro tipos de escalonamento que são da categoria não preemptivo o primeiro escalonamento primeiro a entrar primeiro a sair que é o fifo o segundo escalonamento
menor de obra primeiro o sjf o terceiro que a gente vai ver escalamento pela próxima taxa de resposta mais alta o hrn e por fim o escalonamento cooperativo tudo bem vamos começar então falando dois calonamento fifo aí você já pode estar se perguntando o que que é esse tipo né então ele vem do termo em inglês de first em Post out primeiro a entrar primeiro a sair por isso que fala que escalonamento primeiro entrar primeiro a sair a gente pelo nome a gente já consegue dedução significa que o que que os processos que chegarem primeiro
na fila estarão no estado de pronto serão os primeiros a serem executados isso funciona no nosso dia a dia né a gente pode citar o cotidiano de uma fila de um caixa de supermercado você pegou uma ficha para você ser atendido no médico né uma senha onde você vai ser atendido sequencialmente né E aqui é da mesma maneira conforme os processos vão chegando o primeiro a chegar no estado de pronto tende a ser os primeiros a ser executados os processos que passam para o estado de pronto entram no final da fila e são escalonados quando
chegam no seu início eles vão para o final da fila quando chega no início que ele é o primeiro da fila então ele é o próximo a ser executado pelo processador aqui tem a impossibilidade de se prever quando um processo terá sua execução iniciada Então esse aqui é um ponto importante de anotar né já que isso varia em função do tempo de execução dos demais processos posicionados a sua frente na fila de pronto então não tem como você prever exatamente né É quando que esse processo que tá ali no meio da fila vai ser executado
porque ele vai esperar Lembrando que a gente tá aqui o tipo de escalonamento não preemptivo ou seja ele não interrompe a execução do processador ele vai seguir essa sequência da fila até chegar no processo né que tá ali aguardando tá então são informações importantes se vocês escalonamento FIFA Bora apresentar aqui para vocês uma ilustração tá desse tipo de escalonamento que nós vimos né é o estado de criação vamos imaginar que Aqui é onde parte os processos é a partir daqui ó vai ser dado início aos nossos processos que estão entrando numa fila então aqui a
fila dos processos no estado de pronto tem aqui o último da fila é esse né aí depois tem esse aqui que tá no meio e esse é o primeiro da fila Então nesse tipo de escalonamento a CPU simplesmente vai chegar nessa fila e vai começar a executar o primeiro processo que tá na firma se ele concluir tudo certo ele entra no estado de terno finaliza ali o trâmite ele passa para o próximo e assim por diante porém caso esse processo aqui ele tem que entrar no estado de espera para guardar uma execução de uma outra
operação ele volta para o final da fila certo e aí ele vai aguardar de novo depois que executar os outros que estão na frente até chegar a vez dele novamente basicamente é assim que funciona galera tá bom ficou Claro até aqui né Tudo bem vamos Seguindo para o próximo tipo de escalonamento é o sjf tá desse termo em inglês aqui ó Job first alongamento menor de obra primeiro fica mais fácil de entender assim né e o nome já diz muito né o processador Nossa CPU vai selecionar o processo que tiver o menor tempo de processador
a ser executado então em outras palavras o menor Job é a menor tarefa então ele vai tentar selecionar os processos que são menores para executar Esse é o desse tipo de escalonamento dessa forma o processo em estado de pronto e necessitar de menos tempo de CPU para terminar o seu processamento é selecionado para execução então bem tranquilo também essa aqui né pode ocasionar a situação de estar baixa esse starvation aqui é inanição o que que vem a ser inanição se você jogar aí no dicionário na missão é tipo assim um estado de vazio de enfraquecimento
do processo ou então de até mesmo de um certo envelhecimento desse processo daqueles que tem um tempo maior de execução pode causar a situação de estar deixam aqui na missão para processos com tempo de processador muito longo é uma problemática desse tipo de escalonador porque se chegar somente processo pequenos para ser executado aquele que tem o maior tempo sempre vai ficar no final da fila e talvez nunca chega a ser executado ou demore muito para ser executado né então é porque o processador sempre vai priorizar os processos menores tudo bem vamos também aqui para animação
né Lembrando que é um instalador não preemptivo ele não vai fazer interrupção por mais que tenha um processo muito grande lá atrás que seja crítico ele entra na fila e aguarda o momento dele depois de executar os menores processos primeiro então daqui o estado de criação estamos criando aqui vários processos E aí Perceba o seguinte que agora eles não estão exatamente numa fila eles estão aqui organizadas de uma maneira que a gente tem que considerar o tempo de execução então o tempo de execução desse primeiro processo está representado através dessa barra esse segundo processo através
dela esse terceiro processo através desta barra e esse quarto processo através desta barra que que acontece Nossa CPU vai selecionar qual o terceiro processo Lembrando que a gente está mostrando de forma né ilustrada mas é que é feito um cálculo algoritmo que mensura né o tempo de execução de cada para poder sempre chegar e escolher aquele processo então ele vai começar pelo terceiro depois ele vai passar para o segundo depois ele vai passar para o quarto e o último Vai ser isso aqui tá E aí claro né ele finalizando todo a execução da tarefa ele
entra no estado de término tudo bem caso ele tenha que entrar no modo de espera né não tá aparecendo aqui mas ele volta para cá e mesmo que ele tem um tempo pequeno ele pode ser selecionado primeiro que outros já estavam aqui essa é a grande questão que nós falamos no slide anterior do starmation da lição por exemplo esse primeiro processo aqui que é o maior de tempo de execução ele pode ficar aguardando muito tempo se chegar outros processos sempre menores do que ele tá então tem esse detalhe aí com relação esse tipo de escalonamento
aqui belezinha Ok tranquilo vamos para o próximo tipo de escalonamento agora é o hrn lá vem outro termo inglês aqui para a gente anotar né em português é escalonamento pela próxima taxa de resposta mais alta Então esse aqui é importante você tomar nota disso taxa de resposta mais alta tá do inglês aqui ó Hi test responsável next Ok não tô muito afiado no inglês mas vamos lá esse escalonamento em que são priorizados os processos que possuem tempo de execução mais curto semelhante ao sjf que nós vimos agora pouco né do menor Job Só que tem
uma diferença ele leva em consideração também o tempo de espera em outras palavras pessoal ele faz isso aqui a prioridade desse tipo de escalonamento é ele pega o tempo de espera do processo e soma com o tempo de serviço um tempo de execução tá então em outras palavras ele faz uma soma do tempo de execução e do tempo de espera que aquele processo está aguardando tá enquanto que no escalonador sjf que nós acabamos de ver do menor Job ele sempre pega o menor tempo de execução o menor tempo de serviço tá Então tome Só cuidado
aqui que aqui ficou tempo de serviço ele é o similar ao tempo de execução que nós vemos no slide anterior do outro escalar Então esse aqui esse escalando hrn ele considera não só o tempo de serviço mas ele soma com o tempo de espera a quantidade de tempo que aquele processo guardando lá na fila ok então ele tende a considerar é uma matemática que aprimora um pouco mais né os processos que estão ali né então de certa forma é uma forma de otimizar melhorar um pouco mais aquele escalonador que nós acabamos de ver vamos ver
então como é que isso acontece nessa ilustração tá então a gente está falando de um outro de desses escalonador que é não preemptivo ele não vai interromper mas Estamos conhecendo a estratégia de como ele seleciona os processos que estão aguardando então temos aqui os nossos quatro processos foram criados aqui os processos E aí nós temos aqui o tempo de execução até aqui é similar o que nós vimos na escala mandou anterior né que é o do menor de homem ele pega o menor tempo de execução no caso foi aqui o terceiro só que esse escalonador
ele considera uma outra coisa o tempo de espera então ele soma os dois tempos de execução mas o tempo de espera dos processos e ele vai pegar o quê escalamento pela próxima taxa de resposta mais alta aquele que tiver a taxa mais alta somando tempo de execução mas o tempo de espera esse será selecionado pelo processador então aqui ó nosso CPU vai selecionar qual o primeiro processo né porque ele tem um tempo de execução grande ele já tá aguardando também a um certo tempo aqui então ele vai começar pelo primeiro processo depois ele passa para
o último para o quarto depois ele passa para o terceiro e depois para o segundo nessa ilustração Beleza então acho que ficou bem claro esse tipo de escalonamento é importante você tomar nota tá de como se comporta cada um dos escalonadores aqui não preemptivo vamos para o último tipo de escalonador dessa categoria não tem repetitivo que é o cooperativo ele é um digamos assim eu não vou nem apresentar uma imagem dele porque ele é muito mais conceitual um processo em execução pode voluntariamente liberar o processador nesse tipo de escalonamento retornando para a filha de pronto
então de forma cooperativa de forma voluntária como tá falando aqui o processo o processo ele está executando ali no processador quando ele tem ali um time Zinho que ele já considera ser suficiente ele solicita que o processador veja se tem outros processos da guardando Se tiver ele libera o processador para atender outros ele volta para filho é esse é o isolamento cooperativo possibilitando que um novo processo seja escalonado e assim permitir melhor distribuição no uso do processador certo então o processo em execução ele verifica periodicamente a fila de mensagens para determinar se existem outros processos
na fila de pronto então esse é o conceito de descolamento cooperativo eu quero que vocês tome nota disso tá então o processo que está sendo executado pela CPU ele constantemente fica verificando né através aqui ó em execução Verifica a fila de que tem ali dos processos que estão E aí se ele tiver num time já considerava de execução ele libera o processador volta para filho e passa a vez para o próximo processo né Ele é muito Cortez né esse tipo escalonamento tá então o próprio processo fica sempre sinalizando o processador você tem para outros processos
na fila para ele ceder a vez e assim vai rodando tá esse escalamento cooperativo beleza ok finalizamos aqui os não preemptivo e agora a gente vai trazer os tipos de escaladores da categoria para repetir Ou seja que fazem a interrupção de um processo que esteja executando na CPU e aí temos aqui três tipos escalamento circular escolar no momento por prioridades e escalonamento por múltiplas finas vamos lá cada um deles o escalonamento circular ou Road Robin a característica dele é o seguinte ele é semelhante ao vivo do Fortim flexial a ti do primeiro entrar o primeiro
a sair tem uma fila né dos processos que são executados Porém quando um processo passa para o estado de execução existe um tempo enquanto que no forch outlaw não tem um tempo ele executa integralmente aquele processo aqui tem um tempo limite para o uso contínuo do processador denominado fatia de tempo ou times Slice tá ou quanto então ele da vez né para aquele processo e ele tem um tempo acabou o tempo ele interrompe e passa a vez para o próximo então ele faz a interrupção é por isso que a gente pensamento primitivo faz um interrupção
Quando acaba a fatia do tempo para o próximo processo caso a fatia de tempo expire o so interrompe o processo que está em execução salvo o seu contexto o que foi feito até ali e de direcionam para o final da fila de pronto então ele volta para o final da feira de pronto e passa a vez para o próximo então praticamente é um é uma fila né que nem eu vivo porém ele tem um tempo a diferença é essa ele atua como uma fila sequencial só que ele tem uma fatia de tempo que Quando encerra
ele pega aquele processo e coloca no final e chama o próximo esse mecanismo de interromper o processo e colocar ele no final da fila né e interromper ele colocar lá e chamar o próximo é preempção por tempo então a única forma de interromper um processo que está em execução é pelo fator tempo somente vamos ver a imagem aqui desses colonador o estado de criação aqui né criando aqui os nossos processos percebo que os processos estão enfileirados que nem no FIFA pelos processos no estado de pronto e aí esse primeiro processo está em execução aqui ó
pela CPU certo se tudo der certo ele finaliza e termina E aí chama o próximo Porém tem duas situações que podem fazer esse processo que estava em execução voltar para o final da fila o primeiro é excelente no estado de espera então ele tava executando ele tá esperando um recurso de uma outra de uma outra de um outro processo né um recurso externo então ele entrou no modo de espera volta para o final da fila até aqui ele tá se comportando igualzinho FIFA né daquela fila que nós vimos só que aqui é primitivo então em
algum momento tem que ter interrupção que não seja espontânea como essa aqui e aí a interrupção olha só é apreensão por tempo então ele tava executando que o processo ele tava no meio lá da execução do processo e acabou o tempo dele então ele pergunta aquele processo faz apreensão por tempo e joga ele para o final da fila também E aí chama o próximo processo E aí a mesma coisa acontece com ele se acabar o tempo dele faz uma permissão por tempo e joga ele para o final da fila e chama o próximo então esse
aqui é o diferencial desse escalonamento ele ator como se fosse uma fila porém ele tem interrupção por tempo quando acaba o tempo daquele processo ele joga ele para o final da fila e chama o próximo e assim por diante beleza OK vamos então para o próximo escalonamento que é por prioridades Estamos escalamento por prioridades o processo com maior prioridade no estado de pronto é sempre o escolhido para execução e processo com valores iguais se eu tiver dois processos de prioridade igual né então eles são escalados seguindo o critério do Fifa então é interessante anotar isso
porque se eu tenho lá um processo com maior prioridade ele vai interromper aquele um outro processo que estava em execução para poder colocar isso em prioridade né Então porque a gente tá falando de escalamento para impe então ele vai interromper o processador né e vai colocar aquele processo que tem maior prioridade Caso haja dois ou mais processos com a mesma tipo de prioridade então ele vai seguir o critério de quem chegou primeiro ok a perda do uso do processador só ocorrerá no caso de uma mudança voluntária para o estado de espera Ok Isso é o
que acontece lá não tem impeditivo os exclamadores não tem repetições quando entra no modo espera eles realmente né Coloca aquele processo na fila de volta né devolve até aqui Ok só que o que tem de diferente aqui é ou quando um processo de prioridade maior paz para o estado de pronto então esse ponto aqui é bem importante deveria ter sublinhado essa parte aqui né ou quando um processo de prioridade maior ele entra no estado de pronto aí a CP Opa entrou ali um processo com a prioridade muito alta e o que eu tô executando Aqui
tem uma prioridade mais baixa Então pega ele devolve para lá entra na fila e chama executa o processo de maior prioridade neste caso o so deverá interromper o processo que está correndo né que tá corrente salvar o seu contexto e colocá-lo no estado de pronto esse mecanismo de interromper o processo da minha execução e colocar aquele prioritário é chamado de preposição por prioridade tá aí o nome né então a interrupção Considerando o fator prioridade vamos ver a imagem aqui também escalamento por prioridades aqui tem um estado de criação estamos criando os processos perceba que eles
estão aqui numa fila né E aí olha só nessa fila eu tenho aqui uma fila de processo de prioridade P1 tá vamos imaginar aqui são processos mais alta prioridade está classificado nessa fila aqui de p1 abaixo dele eu tenho aqui uma fila de processo que estão classificados na prioridade P2 e assim por diante são várias critérios né para classificar os processos aqui por prioridade então aqui então todos eles enfileirados e eles solicitam a atenção os recursos da CPU e aí sim essas duas requisições aqui das duas filhas Quem tá na prioridade P1 certinho terminou a
execução ele vem aqui para o estado de terno ele vai passar por qual para o segundo processo da fila de prioridade P1 enquanto os outros três aqui do P2 está aqui aguardando e os demais também se tiver outras prioridades Aqui para baixo né terminou esse segundo entra para o estado de pronto de término aqui né E eles executa o terceiro aqui de prioridade P1 e ele só vai passar por prioridade P2 quando encerrar todos os processos de maior prioridade certo aqui ó caso esse último aqui nesse último processo entre no estado de espera ou qualquer
um deles né Aí ele chama o próximo ok né ou então vamos imaginar aqui que ele tá executando ele executou todos os processos de prioridade P1 e ele tava executando aqui o processo de prioridade P2 estava aqui nesse cara né E aí no meio que ele tava executando aqui no meio da execução de um processo de prioridade P2 entrou na fila um outro processo P1 e tem maior prioridade Então nesse caso Olha o que vai acontecer ele vai pegar esse processo P2 que tava em execução vai fazer uma preempção por prioridade vai interromper a execução
desse processo P2 vai devolver ele aqui para fila e vai executar um processo pelo que acabou de chegar Beleza então essa aqui é mais uma forma da gente visualizar esse tipo de escalonamento por prioridades Ok vamos para o último escalonamento de múltiplas filas escalamento por múltiplas os processos são Associados a filas em função de características próprias aqui pessoal imagine aquela mesma fila de prioridades nós acabamos de ver só que aqui são filas de processos que tem relação com a execução do sistema mas categorias de processo dentro do próprio sistema operacional dentro do contexto da organização
da arquitetura do computador já já vai mostrar a imagem para você visualizar Então são Associados a filas em função das características próprias de execução desse processo como a importância para a aplicação tipo de processamento área de memória acessada aquele tenta classificar as filas por isso que ele fala de múltiplas finas por categorias acho que esse é o termo mais correto a principal vantagem de múltiplas filas é a possibilidade da convivência de mecanismo de escalonamento distintos em um mesmo sistema operacional ele possibilita que o escalonamento haja vários mecanismo de escalonamento para atender cada uma dessas categorias
de filas estão organizadas de acordo com a sua aplicação dentro do computador tá então a gente vai trazer até uma imagem aqui para ilustrar um pouco melhor esse tipo de escalonamento de múltiplas finas basicamente ele estabelece também uma questão de prioridade uma hierarquia aqui né onde As feiras que estão aqui na parte superior da nossa imagem terão maior prioridade eles que estão aqui embaixo era o menor prioridade só que agora estarão esse processo de acordo com a sua aplicação dentro do sistema computacional vamos ver aqui a imagem né estamos gerando aqui uma fila de processos
né estão no estado de pronto e essa fila aqui de processo são do sistema essa segunda feira de processos são de processos interativos de interação com usuário e tudo mais de solicitações de entrada e saída né e assim ele vai criando filas classificando esses processos de uma maneira onde os de maior prioridade são os processos do sistema depois vem os interativos depois vem o dinheiro de sistema de arquivos depois vem os processos Beth Então os que vão ficar mais para baixo terão menor prioridade é parecido com o que a gente viu só que aquele classifica
de acordo com exemplo um tipo de execução que esse processo realizam no computador E aí nós temos a CPU que recebe a requisição de todos eles né E aí ele vai para estabelecer aqui o de maior prioridade pelas filas de processo de sistema então isso aqui permite com que o processador tenha uma visão não somente da prioridade de maior prioridade e de menor mas sim dos tipos de processos que estão classificados nessas filas aqui tá bom então essa aqui é o conceito desse clonamento de múltiplas finas finalizamos Então a nossa aula de hoje trouxemos esses
conceitos mais gerais sobre escalonamento tá E aí Espero que vocês tenham gostado tomem nota que é muito importante né diferenciar um escalonamento do outro tá fica à disposição de vocês aí meu endereço de e-mail curte esse vídeo se você ainda não curtiu se inscreve no canal e vai ter muito conteúdo bacana por aqui tá bom eu vou ficando por aqui eu vejo vocês na nossa próxima aula até lá tchau