Sistemas Operacionais – Aula 06 - Escalonamento de Processo

66.76k views3502 WordsCopy TextShare
UNIVESP
Engenharia de Computação - 12º Bimestre Disciplina: Sistemas Operacionais - EEO-001 Univesp - Univ...
Video Transcript:
[Música] Olá vamos então pra nossa sexta aula de sistemas operacionais falando sobre escalonamento de processos tá a gente eh definiu o processo e escalonamento falamos do escalonamento em em Sistemas Bet citamos três algoritmos três políticas e agora a gente vai para eh pras políticas em Sistemas interativos e em Sistemas de tempo real a gente já viu a parte de sistemas de Bet Então a gente vai agora passar para esses eh para esses dois escalonamento desses dois sistemas a saber os sistemas interativos e os sistemas aí de tempo real Então vamos Eh vamos começar então com
o escalonamento em Sistemas interativos os sistemas interativos como vocês sabem são sistemas que tem interação com o usuário tá sistema Bet são sistemas em lote e que não possuem a interação com o usuário só tem a interação no momento em que ele é submetido e em que a os resultados são coletados após o término desse sistema B tá sistema interativo então ele tem várias vários tipos de prioridade e o sistemas interativos ele é regido por uma coisa que a gente chama de time sharing né Ou seja é um tempo compartilhado aqui como o existe uma
interação e os usuários normalmente são impacientes eu tenho que fazer um escalonamento de forma que eu possa tentar agradar aí gregos e troianos tá eh E para isso eu tenho vários algoritmos por isso eu tenho várias propostas a gente tem várias propostas de algoritmos para que um sistema interativo que tem aí uma comunicação um processo que tem uma comunicação Direta com o processo né e com o usuário esse usuário então tem o que a gente chama de fair share né ou seja uma um compartilhamento justo entre os diversos processos de um eh de um sistema
intera tá primeiro mais conhecido aí né round robing parece o fif Tá o que que esse seria esse round dring é um um algoritmo mais antigo preemptivo tá no sistema interativo muitos eles são preemptivos porque eu não posso deixar um sistema eh utilizar todo todo o processador até o seu t tá Por quê Porque eu tenho vários processos interativos sendo que cada um desses processos possui o quê possui um usuário por trás Então tem que agradar esses gregos e troianos tá então cada processo ele recebe o que a gente chama de um Quantum de tempo
esse Quantum de tempo é o time Slice tá ou seja o tempo que é dedicado para cada um eu eh como se fosse assim eu tenho um bolo tá um bolo vai ser compartilhado com várias pessoas então Ten o quê ten dou uma fatia igual para cada pessoa aqui mesma coisa o bolo aqui seria o tempo no processador então se eu tenho um tempo pro processador esse tempo ela tem que ser o quê tem que ser um Fair share tem que ser compartilhado tem que ser do mesmo tamanho e esse tamanho então é é definido
como Quanto de tempo tá ao final desse tempo então o processo é suspenso e ele volta no final da fila é assim eu vol no banco e levo ess 10 contas para pagar chega o na na no no caixa o caixa ele tem o quê tem uma política que só pode pagar cinco contas terminou de pagar as cinco contas volto no final da fila para pagar os próximos cinco então isso isso é o quê isso é o algoritmo de Round Robin tá acho que eu tenho uma ilustração aqui então ele começa aqui com a com
o processo a e o processo a terminando a sua execução né no caso aqui eu tô executando aqui o processo B né o processo B aqui seria aqui o topo né Então a partir daqui eu tenho a CPU então ele é o primeiro aqui da fila e essa aqui é o quê essa aqui é o último da fila tá então o processo B ele não consegue concluir a sua execução e sendo assim Portanto ele volta para onde ele volta pro final da fila por isso que ele chama o quê round Robin né O primeiro é
que aqui é como se fosse um fifo Só Que Não Terminou o Quantum ele volta pro final da fila Então esse seria o quê esse seria um o primeiro algoritmo de sistemas e interativos né como eu expliquei aqui nesses slides né então o problema é que o tempo de existe um tempo de chaveamento esse tempo de chaveamento é caro por quê Porque eu tenho que tem dois tempos tem um tempo do dispatcher e tem um tempo do escalon tá o do dispater é curto do escalonador é grande no momento em que eu troco o processo
do tiro do processador e coloco outro processo aqui ó ó tá esse processo aqui de troca é um processo caro o round Rob em virtude desse quto de tempo ele tem o qu ele tem esse tempo de chaveamento de processo que se torna uma desvantagem tá um problema tá por outro lado se o Quantum for muito pequeno tá o a frequência de troca vai ser grande vai ser bastante grande se eu coloco um Quantum Grande a o a frequência dele vai ser menor tá então existe o quê existe essa esse dilema se eu defino um
Quantum pequeno ou se eu defino um Quantum grande tá esse seria um dilema e pelo se pelos cálculos vamos dizer assim se eu coloco 4 MS como tem para fazer o chaveamento de processo como tempo desculpa como o tempo do quanto e o tempo de chaveamento é em torno de 1 m obviamente que 25% do tempo vai ser dedicado a qu vai ser dedicado ao tempo do chaveamento tá então por outro esse é o Esse é dilema que a gente tem que seria a definição do quanto por outro lado se eu tenho 100 msos de
Quantum e 1 mso de troca de contexto esse tempo vai ser o quê esse tempo correspondente ao chaveamento de processo vai baixar para 1% tá então a definição do Quanto de tempo é o quê um problema de de projeto bastante delicado na definição durante a definição essas políticas de Round Rob o tempo o quanto razoável seria o quê o quanto razoável aí seria em torno de 20 a 50 msos eh de tamanho quê de tamanho desse do do do Quantum como citei aqui para vocês tá seguindo aqui então Eh próximo próximo próximo algoritmo algoritmo com
prioridade algoritmo com prioridade de novo ele é preemptivo pré intuitivo significa dizer que eu posso tirar do processador após o quê após o término do tempo do quanto tá que foi fatiado SL então depois do término desse Quanto eu posso tirar ele do processador e colocar um outro dentro do processador e tirar o que estourou o tempo tá o time out né então cada processo possui uma prioridade tá os processos prontos com maior prioridade são o qu são executados primeiro então existe o quê a mesma coisa do banco fila com o qu fila com prioridade
tem a fila convencional e tem é o quê é a fila com uma prioridade maior idosos eh crianças e pessoas com crianças no colo e assim por diante aqui uma uma eh uma questão intuitiva seria o quê seria colocar os processos do sistema operacional na fila de prioridades quando todo todos os processos da fila de prioridades terminar sua execução então entra o que entra os processos da fila convencional tá então aqui como eu citei para vocês existe o quê existe essas prioridades aqui a prioridade mais baixa e aqui a prioridade menor as prioridades mais baixas
são as prioridades o quê são as prioridades normalmente do do das aplicações dos usuários prioridades mais altas aplicações do sistema tá e obviamente nesse cenário aqui eu tenho o quê eu tenho um round Robin aqui também né então tenho uma mistura um round robing e uma fila de prioridade então aqui eu tenho uma round Robin então se ele não se essa aqui ele não conseguiu essa execução dentro um quanto ele volta para onde volta pro final da fila tá bom algoritmo com prioridades existem como eu falei para vocês eles podem esses processos aqui eles podem
sofrer in anina uma vez o quê uma vez que ele é o último da fila tá é o último que tem a o último da eh com a prioridade menor se esses processos não param de chegar esse aqui pode S de inan nação a propósito definindo de novo inan nação tá inanição desculpa inanição é o processo de que de starvation starvation significa fome fome significa dizer que um processo pode nunca vir a ser executado ele vai morrer eu não alimento uma cri vai mor de fome então mesmo cen aqui a gente chama in ou starvation
existe também algoritmo de múltiplas filas que eu aqui numa e funte forma existe como prprio nome diend mpl F nessas mpl fil eu eu um Quantum diente aqui aqui eu tenho eu tenho um cen que eu tenho um quum tá que é diferente tá diferente aonde diferente já vou explicar para vocês tá diferente aonde diferente para cada uma dessas filas aqui tá sendo que a prioridade maior a prioridade maior são o quê são as que tem o qu são as que tem o maior Quantum aqui tá E os que tem menor Quantum são as que
t a eh a voltando aqui vamos reformular aqui os que T maior prioridade são as que t o menor quanto então ele começa assim eu dou um Quantum para você eu dou 2 minutos para você terminar o seu trabalho Se ele não conseguir terminar em 2 minutos ele entra numa fila com menor prioridade e com quanto o quê com quanto maior tá então eu tento priorizo aqui tá as as ah os processos interativos que acabam mais mais rápido tá E os que demoram mais tempo o que que eu faço eu coloco ele com quanto maior
uma vez que ele não terminou em 2 minutos então vou colocar agora com 4 minutos e assim por diante tá Então essa é a fila de quê De prioridades a fila de prioridades fila desculpa múltiplas filas existem múltiplas filas e nessas múltiplas filas existem quantums diferentes quanto menor o Quantum quanto eh quanto menor for o tempo alocado para cada uma delas eu o sistema esse sistema eh de escalonamento ele dá uma prioridade maior tá um tempo menor e se não terminar nesse tempo ele passa pro próximo com a com um tempo maior e com a
fila numa fila de menor prioridade tá inclusive Esse sistema é bastante utilizado em Sistemas lí e Unix Linux e Windows né então processo vamos dizer assim um processo precisa de 100 qu sem o que que seria esse quanta de novo pessoal seria o qu seria pedaço de tempo esse pedaço de tempo genérico alocado para cada processo tá então ele tem precisa de uma unidade que seria sem quanta cada quanta como eu citei para vocês ele pode situar de 20 a 50 o qu de 20 a 50 milissegundos né ele pode situar entre 20 e 50
milos que seria o tempo adequado para esse quo bom se ele tem 100 MS e nas filas nota o seguinte aqui pessoal tem 2 4 8 16 e 32 64 quanto que que eu quero dizer com isso que aqui eu tenho o quê aqui com maior prioridade eu tenho do depois eu tenho 4 8 16 32 e 64 pergunta-se quantos quantos chaveamentos eu vou precisar eu vou precisar de o quê de chaveamento para cá primeiro depois eu vou precisar chavear para essa fila aqui de quatro quanta e depois para essa fila aqui essa fila aqui
essa e usar uma parte desse conta aqui precisar de quê de 1 2 3 4 5 6 7 tá sete chaveamentos para realizar o quê para realizar essa mudança aí de contexto bom agora eu tenho um outro algoritmo a gente falou round robing tá a gente falou aí de prioridade múltiplas filas e agora a gente vai falar do shorted process next tá que seria a mesma ideia do short Job first só que diferente do primeiro aqui é um sistema interativo Então os processos interativos a gente não não se conhece o tempo então aqui eu tenho
que o quê tenho que estimar estimar o tempo restante e com base nisso eu tenho que fazer o quê eu tenho que eu tenho como definir a fila aí de e de prioridade tá então esse seria o a a versão do shorted Job first para sistemas interativos tá que funciona da mesma forma que o job first tá outro algoritmo aqui algoritmo garantido como é que funciona esse algoritmo garantido o algoritmo garantido funciona da seguinte forma eu aloco um determinado eh tempo tá e específico tá Eh vamos assim específico garantido por cada usuário tá cada usuário
que seria por que que eu tô falando em usuário porque aqui a gente tá falando de sistemas interativos Então se a gente tem em torno de um eh em torno de temos exatamente 10 usuários eu vou ter o quê eu vou ter z0 um o quê 10% do tempo para cada um desses processos ou mesmo desses usuários tá então esse seria o quê esse seria o mecanismo ou melhor dizendo a política do algoritmo garantido eu tenho que garantir um tempo tá dedicado e compartilhado melhor dizendo compartilhado entre os os usuários que utilizam o quê que
utilizam esse o processos né processo tô falando de usuário porque cada um desses processos como tá num ambiente interativo ele possui o quê ele possui uma interação com o próprio usuário Então e se eu tenho 10 processos esses 10 processos são compartilhados entre eh Entre esses eh usuários que se encontram no sistema interativo próximo algoritmo algoritmo da loteria como é que funciona ess algoritmo da loteria Pessoal esse algoritmo da loteria funciona como uma loteria exatamente como uma loteria um Gamble tá então ele cada processo vai receber um bilhete e esse bilhete vai ser sorteado Então
vai contar um pouco com com a sorte por isso que ele é aleatório né vai possuir o aspecto aleatório nesse no na definição de de sistemas eh na na definição das filas tá como ele tem um problema como esse algoritmo possui o problema da aleatoriedade tá E ele pode o um determinado processo pode sofrer de inanição o que que o que que a gente pode fazer para equacionar né esse problema da inanição é uma forma seria o quê seria manter duas filas a primeira fila seria já dos bilhetes já sorteados tá a segunda fila dos
bilhetes ainda não sorteados e ele vai selecionar o quê vai selecionar fazer uma loteria fazer um sorteio a começar com quê a começar dos eh dos bilhetes ainda não sorteados dessa forma eu torno o quê eu torno o sistema mais justo quando não houver mais nenhum bilhete nesse cenário aqui então eu volto para onde eu volto para sortear os bilhetes já ados tá então esse é o cenário que eu vou utilizar no algoritmo da loteria tá bom algoritmo Fair share continuando o sistema interativo pessoal existem vários sistemas interativos Note que todos eles são o quê
são algoritmos preemptivos e por isso eles possuem o quê possuem Esse aspecto de poder tirar do processador e retornar de volta pro processador no momento em que ele termina estora o tempo que seria ou Quanto de tempo tá então o dono do processo é levado em conta aqui se o usuário a possui nove processos e o usuário B né e o usuário a possui nove e o usuário B possui 2 obviamente que o o a ganha o qu a ganha 90% tá isso se não tiver o quê se não tiver o Fair share tá o
algoritmo interativo agora se houver o Fair share o que que acontece o algoritmo um ó uso usuário um possui esses processos aqui a b c e d Note que a gente tá pessoal no sistema interativo então a gente não pode deixar o usuário esperando para sempre tem que haver o quê Tem que haver ali um rodízio tá então Justamente esse algoritmo tenta eh compor né e equacionar essa essa questão então usuário a possui a b c id e o usuário e possui o quê possui apenas o processo e então foi prometido o qu 50 por
eh nesse cenário aqui para cada um dos usuários Então como é que vai funcionar a e a e b e c e e assim por diante dessa forma o que que eu tô fazendo eu tenho o quê eu tenho um algoritmo de compartilhamento justo onde 50% do tempo é compartilhado pro usuário um e oos 50 outros 50% é compartilhado pelo usuário 2 tá se for 2/3 que deve ir pro usuário 1 tá então ocorre o quê ocorre o a o e o CD o e e assim por diante ou seja 66% pro usuário um e
33% aqui para quem para usuário dois tá então esse é o algoritmo do F share bom algoritmo de tempo real falamos do algoritmo e escalonamento em sistema Bet falamos do escalonamento em Sistemas interativos agora vamos falar rapidamente sobre algoritmos de tempo real sistema de tempo real já expliquei para vocês é um sistema crítico norment incorpora sistemas críticos o que que seriam sistemas críticos sistemas críticos são sistemas onde um erro nesse sistema pode levar o qu pode levar a uma perda de vida humana ou pode causar um dano para uma pessoa tá então isso é o
o conceito que a gente chama de sistema crítico Então se um piloto automático ele falha isso pode levar o quê pode levar à morte de pessoas tá mesma coisa monitoramento de pacientes tá ou controle de automação em fábricas Ok então existem dois tipos de algoritmo de tempo real tá dois tipos de sistema de tempo real bem dizer tá o sistema de tempo real que a gente chama de hard Real Time que seria um sistema onde os atrasos não são tolerados tá então as usinas nucleares ali de fukushima os aviões todos eles possuem o quê possuem
sistema de tempo real que são chamado de hard né onde o tempo é bastante crítico existi os softs né o soft seria o quê o soft seria o sistema de tempo real onde os atrasos ocasionais são e eh eventualmente tolerados exemplo aqui eh sistemas de multimídia uma perda de um pixel uma perda de uma parte da voz no Skype por exemplo não vai ser o quê não vai ser prejudicial ela pode continuar chamada sem que o sistema tá tenha que parar diferente do primeiro da primeira modalidade tá bom eh o algoritmo de tempo real os
eventos é que causam a execução de processos quando um sensor detecta uma determinado um determinado evento ele o escalonador ele deve o quê arrumar os processos né de forma o qu de modo que todos os prazos sejam cumpridos ou seja organização desses processos é importante e começa com quê começa com cumprimento de quê com cumprimento do prazo tá os eventos podem ser considerados periódicos ou podem ser considerados eh a periódico periódicos quando orre o qu uma leitura periódica então se eu vou ler uma a qualidade do ar tá e a partir dessa qualidade do ar
posso detectar uma radioatividade ou não tá esse intervalo de tempo é regular Então a gente tem o quê um sistema aí de eh evento periódico a periódico é quando ocorre um determinado evento E aí ele tem que disparar um alarme Então esse é um evento o quê um evento ap periódico que ocorre em intervalos não programados tá os algoritmos de tempo real podem ser classificados em algoritmos estáticos e algoritmos dinâmicos tá os estáticos as decisões de escalonamento são realizados eh antes de rodar né e os dinâmicos as decisões de escalonamento São executados em tempo de
execução tá essa diferença de um sistema de de tempo real estático e um sistema de tempo real dinâmico tá bom com isso eu chego ao último slide tá gostaria mais uma vez de agradecer a atenção de vocês tá lembrando que o assunto abordado na aula de hoje foi escalonamento de sistemas o quê interativos e sistema de tempo real tá a nossa bibliografia continua sendo aqui do segundo capítulo né Tá e na próxima aula então a gente vai abordar um outro assunto bastante importante que seria o assunto de thd Muito obrigado pela atenção [Música] [Música] p
[Música] [Música]
Copyright © 2024. Made with ♥ in London by YTScribe.com