Buscar

APS (1)

Prévia do material em texto

Centro Universitário das Faculdades Metropolitanas Unidas Instituição de ensino superior
Kauan Rios de Melo	RA: 2900830
Flávia Aragão Lopes	RA: 2163501
Victor Hiromi Maisaka	RA: 2322323 Danilo Guarnieri 	RA: 2084396 Caio Marques de Souza	RA: 1303757
Relatório Técnico de Atividades Práticas Supervisionadas (APS)
São Paulo 15/05/2024
Kauan Rios de Melo	RA: 2900830
Flávia Aragão Lopes	RA: 2163501
Victor Hiromi Maisaka	RA: 2322323 Danilo Guarnieri 	RA: 2084396 Caio Marques de Souza	RA: 1303757
Relatório Técnico de Atividades Práticas Supervisionadas (APS)
Trabalho da disciplina de Sistemas Operacionais apresentado ao Curso de Engenharia da Computação, da FMU como requisito parcial à obtenção de nota N2.
Orientador: Profº Rita de Cássia
São Paulo 15/05/20243
Métodos de Escalonamento de Processos
Abstract. Neste artigo sobre Métodos de Escalonamento de Processos
trataremos sobre o chaveamento dos processos ativos, de acordo com regras
bem estabelecidas, de forma que todos os processos tenham chance de utilizar
a UCP. O escalonador é a parte do SO encarregada de decidir entre os
processos prontos, qual será colocado em execução.
1. A troca de processos é feita pelo escalonador de processos.
Escalonador é o processo que escolhe qual será o próximo processo a ser
executado. Existem diversas técnicas/algoritmos para escalonamento de processos. O
Escalonador é o componente do sistema operacional que detém a maior prioridade. Uma
vez que, ele que vai escolher os processos do sistema operacional.
2. Mudança de Contexto.
 A mudança de contexto leva a um overhead de tempo (tarefa cara). É preciso
salvar as informações do processo que está deixando/entrando na CPU em seu BCP ,
salvar o conteúdo dos registradores. A mudança de contexto nada mais é do que fazer
essa mudança de estados. Mudança de execução e bloqueado, pois o processo precisa
fazer uma leitura no disco. É uma tarefa, porque é necessário tirar uma foto do que está
acontecendo na execução, para tirar os dados temporários e colocar isso na memória
principal.
2.1. Componentes Envolvidos.
Despachante (Dispatcher);
Armazena e recupera o contexto;
Atualiza as informações no BCP;
Processo relativamente rápido (0,1 ms);
Escalonador (Scheduler);
Escolhe a próxima tarefa a receber o processador;
Parte mais demorada;
3. Quando o escalonador é chamado?
Um novo processo é criado;
Quando um processo cria outro, qual executar? Pai ou filho?
Um processo terminou e um processo pronto deve ser executado;
Quando um processo é bloqueado (dependência de entrada e saída - E/S), outro deve ser
executado.
4. Quando E/S ocorre , o escalonador deve:
 Executar o processo que estava esperando esse evento, continuar executando
o processo que já estava sendo executado, ou executar um terceiro processo que esteja
pronto para ser executado
5. Categorias do escalonador.
Preemptivo:
Quando um processo pode, por algum motivo, perder seu uso da CP;.
Provoca uma interrupção forçada de um processo para que o outro possa usar a CPU ;
Não preemptivo:
Permite que o processo sendo executado continue executando;
Condições: Termine de executar, solicite uma operação de entrada/saída, libere
explicitamente o processador, voltando a fila de prontos.
6. Algoritmos de Escalonamento.
Sistema Batch (Lote);
Sistemas Interativos;
Sistemas de Tempo Real;
6.1 Algoritmos de Escalonamento em Batch (lote).
First Come First Served (ou FIFO); 
Shortest Job First (SJF);
Shortest Remaining Time Next (SRTN);
6.2 First Come First Served.
Não preemptivo;
Processos são executados na CPU seguindo a ordem de requisição;
Fácil de entender e programar; 
Desvantagens: Ineficiente quando há processos que demoram na sua execução.
6.3 First Come First Served (Lote).
Há uma fila de prontos (3,2,1);
O processo 0 sendo executado na CPU;
Processo só é interrompido por E/S, ou quando é finalizado;
6.4 Shortest Job First (Lote).
Não preemptivo;
Deve-se prever o tempo de execução do processo;
Menor processo da lista é executado primeiro;
Menor turnaround (médio);
Desvantagens: Todos os jobs precisam ser conhecidos de antemão. Se os jobs curtos
começarem a chegar, os longos podem demorar a ser executados.
6.5 Algoritmo shortest Remaining Time Next (lote).
Preemptivo; 
Versão preemptiva do shortest Job First;
Processos com menor tempo de execução são executados primeiro;
Se um processo novo chega e seu tempo de execução é menor do que o processo
corrente na CPU, a CPU suspende o processo corrente e executa o processo que acabou
de chegar;
Desvantagem: Processos que consomem mais tempo podem demorar muito para serem
finalizados se muitos processos pequenos chegarem (inanição ou starvation) Exceto
que, pela preempção no shortest Remaining Time Next, o processo, mesmo rodando, seja
interrompido. No Shortest Job First, se der a sorte de começar a rodar, vai até o fim.
6.6 Escalonamento e m S Interativos.
Round - Robin; 
Prioridade;
Múltiplas Filas; 
Shortest Process Next;
Garantido; 
Lottery;
Fair Share.
Round Robin (S. Interativos). 
Antigo, mais simples e mais utilizado;
Preemptivo; 
Cada processo recebe um tempo de execução chamado 'quantum; Ao final desse tempo, o processo é suspenso e outro processo é colocado em execução; Também suspenso em casa do interrupção; Escalonador mantém uma fila de processos prontos;
Os processos são colocados em uma fila circular (de prontos) e executados um a um;
Quando seu tempo acaba, o processo é suspenso e volta para o final da fila; 
Outro processo (primeiro da fila) é então colocado em execução; Quando um processo solicita E/S, vai para a fila de bloqueados e, ao terminar a operação, volta para o final da fila de prontos;
Problema: tempo de chaveamento de processos; Quantum: Se for muito pequeno,
ocorrem muitas trocas diminuindo, assim, a eficiência da CPU; Se for muito longo, o tempo de resposta é comprometido.
 Algoritmos com Prioridades
Cada processo possui uma prioridade;
Os processos prontos com maior prioridade são executados primeiro; 
Prioridades são atribuídas dinamicamente (pelo sistema) ou estaticamente;
Preemptivo; 
Round - Robin pressupõe igual prioridade para todos os processos;
Enquanto houver processos na classe maior: rode cada um de seus processos usando Round - Robin (quantum fixo de tempo); 
Se essa classe não tiver mais processos: passe a de menor prioridade; 
Não esqueça de ajustar as prioridades de alguma forma. Do contrário, as menos
prioritárias podem nunca rodar (inanição) Starvation.
Múltiplas Filas (S. Interativos). 
Cada vez que um processo é executado e suspenso, ele recebe mais tempo para
execução;Inicialmente recebe 1 quantum, e é suspenso;
Então muda de classe e recebe 2, sendo suspenso; 
Reduz o número de trocas de processo; Os mais curtos terminam logo; 
Aos mais longos é dado mais tempo, progressivamente; 
Preemptivo. 
Shortest Process Next (S. Inter.).
Mesma ideia do Shortest Job First;
Processos Interativos: não se conhece o tempo necessário para execução;
Como empregar esse algoritmo: Estimativa de Tempo; 
Com base em execuções antigas da mesma tarefa; 
Verificar o comportamento passado do processo e estimar o tempo.
Algoritmo garantido ( S. Inter.). 
Garantias são dadas aos processos dos usuários;
‘N’ usuários (ou processos, em sistemas mono usuário
Algoritmo da Loteria (S. Interat.).
Cada processo recebe "bilhetes" que lhe dão direito a recursos do sistema (inclusive
processador); 
Fatias de processamento iguais por bilhete; 
Quando um escalonamento deve ser feito, escolhe-se aleatoriamente um bilhete.
Processos mais importantes podem receber mais bilhetes; 
Processos podem doar bilhetes para colaboração com outros ;
Precisa garantir que todos terão sua vez de rodar a modo de manter duas filas: bilhetes
já sorteados e bilhetes ainda não sorteados; 
Quando a lista de não sorteados se esvazia, os bilhetes da lista de sorteados são
transferidos a ela, reiniciando o processo.
Algoritmo da Loteria (S. Interat.). 
Cada processo recebe "bilhetes"que lhe dão direito a recursos do sistema (inclusive
processador); 
Fatias de processamento iguais por bilhete; 
Quando um escalonamento deve ser feito, escolhe-se aleatoriamente um bilhete;
Processos mais importantes podem receber mais bilhetes; 
Processos podem doar bilhetes para colaboração com outros ; 
Precisa garantir que todos terão sua vez de rodar a modo de manter duas filas: bilhetes
já sorteados e bilhetes ainda não sorteados;
Quando a lista de não sorteados se esvazia, os bilhetes da lista de sorteados são
transferidos a ela, reiniciando o processo
Algoritmo Fair Share (S. Inter.).
O dono do processo é levado em conta; 
Se um usuário A possui 9 processos e um usuário B apenas 2 processos o usuário A
ganha 90% do uso da CPU com Round Robin (injusto); 
Se a um usuário foi prometida uma certa fatia de tempo ele a receberá
independentemente do número do processo (ex.: 50% para A e 50% para B)
Algoritmos de Tempo Real.
Tempo é um fator crítico; 
Tipicamente, um ou mais aparatos externos ao computador geram estímulos;
O comutador deve reagir apropriadamente dentro de um intervalo fixo de tempo; 
Sistemas críticos: piloto automático de aviões, monitoramento de pacientes em
hospitais; 
Controle de automação em fábricas; 
Eventos causam a execução de processos; 
Quando um evento externo (sensor?) é detectado, cabe ao escalonador arrumar os
processos de modo que todos os prazos sejam cumpridos; 
Eventos podem ser classificados como: periódicos: ocorrem em intervalos regulares de
tempo; periódicos: ocorrem em intervalos irregulares de tempo.
Algoritmos podem ser estáticos ou dinâmicos. 
Estáticos: decisões de escalonamento antes do sistema começar a rodar; informação
disponível previamente sobre tarefas e prazos. 
Dinâmicos: decisões de escalonamento em tempo de execução.
7. Referências
- Sistemas Operacionais Modernos; Tanenbaum, A.S 4° Edição.
 PAGE 10
image2.png
image4.png
image1.jpg
image3.png

Mais conteúdos dessa disciplina