escalonamento - eduardo san · escalonamento escalonadores short-term schedulerseleciona os...
TRANSCRIPT
![Page 1: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/1.jpg)
Escalonamento
Eduardo Ferreira dos Santos
Ciência da Computação
Centro Universitário de Brasília � UniCEUB
Abril, 2016
1 / 28
![Page 2: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/2.jpg)
Sumário
1 Multiprogramação
2 Escalonamento
3 Concorrência
2 / 28
![Page 3: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/3.jpg)
Multiprogramação
1 Multiprogramação
2 Escalonamento
3 Concorrência
3 / 28
![Page 4: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/4.jpg)
Multiprogramação
Estados dos processos
Durante o ciclo de vida de um processo ele passa por diferentes estados.Em sistemas Unix [Guarezi and Silva, 2010] são:
run Está sendo executado no processador;
ready ou executável Dispõe de todos os recursos que precisa e está prontopara ser executado;
sleep ou dormente Bloqueado à espera de algum recurso, e só pode serdesbloqueado se receber um sinal de outro processo;
zumbi Caso cada vez mais raro, onde um processo é criado por umprograma, que por sua vez é �nalizado antes de receber oresultado do processo;
parado Recebeu ordem do administrador para interromper aexecução. Será reiniciado se receber um sinal de continuação(CONT).
4 / 28
![Page 5: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/5.jpg)
Multiprogramação
Estados dos processos (Grá�co)
Figura 1.1: Estados dos processos [Chagas, 2016]
5 / 28
![Page 6: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/6.jpg)
Multiprogramação
Concorrência
Paradigma: controlar/restringir o acesso ao recurso em determinadoespaço de tempo;
O controle de acesso aos recursos é realizado através de eventos;
Eventos inesperados pode causar um desvio inesperado no �uxo deexecução.
De�nição [Chagas, 2016]:1 O programa perde o uso do processador;2 O programa retorna para continuar o processamento;3 O estado do programa deve ser idêntico ao do momento em que foi
interrompido.
O programa continua a execução exatemente na instrução seguinte.
6 / 28
![Page 7: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/7.jpg)
Multiprogramação
Troca de Contexto
Figura 1.2: Troca de Contexto [FARINES and MELO, 2000]
7 / 28
![Page 8: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/8.jpg)
Multiprogramação
Programação concorrente
Na programação concorrente existe mais de uma tarefa sendoexecutada ao mesmo tempo. Ex.: Fatorial
No caso de múltiplas tarefas é necessário haver comunicação entreelas.
Memória compartilhada As tarefas compartilham área de memória;
Troca de mensagens Sinais trocados entre processos.
8 / 28
![Page 9: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/9.jpg)
Escalonamento
1 Multiprogramação
2 Escalonamento
3 Concorrência
9 / 28
![Page 10: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/10.jpg)
Escalonamento
Conceitos
Objetivo: maximizar a utilização de CPU em programaçãoconcorrente;
O escalonador é o mecanismo que seleciona um dos processosdisponíveis na �la de pronto para ir à execução;
Troca de contexto entre os processos;
Organização da �la de prioridades.
10 / 28
![Page 11: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/11.jpg)
Escalonamento
Escalonamento
Figura 2.1: Descrição do escalonamento [Chagas, 2016]11 / 28
![Page 12: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/12.jpg)
Escalonamento
Troca de contexto
Figura 2.2: Organização da �la de pronto [Galvin et al., 2013]
12 / 28
![Page 13: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/13.jpg)
Escalonamento
Escalonadores
Short-term scheduler Seleciona os processos que vão para a CPU
Algumas vezes o único escalonador disponível;Bastante utilizado, ou seja, precisa ser rápido.
Long-term scheduler Seleciona os processos que devem ir à �la de pronto
Não é tão utilizado (menos frequente);Controla o grau de multiprogramação.
Os processos podem ser descritos como:
I/O-bound Gasta mais tempo realizando operações de I/O do quecomputações;
CPU-bound Mais tempo realizando computações.
13 / 28
![Page 14: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/14.jpg)
Concorrência
1 Multiprogramação
2 Escalonamento
3 Concorrência
14 / 28
![Page 15: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/15.jpg)
Concorrência
Conceitos
Na programação concorrente existe mais de uma tarefa sendoexecutado ao mesmo tempo. Ex.: Fatorial
No caso de múltiplas tarefas é necessário haver comunicação entreelas.
Memória compartilhada As tarefas compartilham área de memória;
Troca de mensagens Sinais trocados entre processos.
15 / 28
![Page 16: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/16.jpg)
Concorrência
Comunicação entre processos
Gerência de recursos de memória compartilhada: condição de corrida
Exclusão mútua;Semáforo;Monitor.
Comunicação por troca de mensagens: deadlocks
Leitura assíncrona;Método rendezvous.
16 / 28
![Page 17: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/17.jpg)
Concorrência
Condição de corrida
Situações onde dois ou mais processos estão acessando dados
compartilhados, e o resultado �nal do processamento depende de
quem roda quando.
Figura 3.1: Exemplo da condição de corrida
17 / 28
![Page 18: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/18.jpg)
Concorrência
Solução para condição de corrida
Uma boa solução para a condição de corrida requer quatro condições[Favacho, 2009]:
1 Dois ou mais processos não podem estar simultaneamente dentro desuas regiões críticas correspondentes;
2 Nenhuma consideração pode ser feita a respeito da velocidade relativados processos, ou a respeito do número de processadores disponíveis nosistema;
3 Nenhum processo que esteja executando fora de sua região crítica podebloquear a execução de outro processo;
4 Nenhum processo pode ser obrigado a esperar inde�nidamente paraentrar em sua região crítica.
18 / 28
![Page 19: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/19.jpg)
Concorrência
Exclusão mútua [Chagas, 2016]
Solução: impedir que mais de um processo acesse o dado ao mesmotempo.Deve ser executada somente quando um dos processos estiveracessando o recurso compartilhado;A parte do código onde o acesso ao recurso é feito é chamada deregião crítica.
Figura 3.2: Região crítica19 / 28
![Page 20: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/20.jpg)
Concorrência
Soluções para exclusão mutua I
Inibição das interrupções Inibir as interrupções de cada processo logo apóso ingresso na região crítica, habilitando-as novamente apósdeixá-las.
Desabilitar interrupções deve ser uma atribuição dokernel;Interferir no kernel pode não ser uma boa ideia.
Variáveis de travamento (locks) Utilização de variável única compartilhada(lock) que pode assumir 0 ou 1.
Se dois processos chegam ao mesmo tempo?Condição de corrida.
20 / 28
![Page 21: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/21.jpg)
Concorrência
Soluções para exclusão mutua II
Chaveamento obrigatório Utiliza a variável inteira turn
[Tanenbaum and Machado Filho, 1995].
A variável turn indica a vez de quem é de entrar na região crítica;
Se um dos processos for mais lento que o outro requer a soluçãoestritamente alternada;
Espera ocupada: teste contínuo do valor esperando por uma mudança.
Listing 1: awh i l e (TRUE) {
wh i l e ( t u rn !=0) /∗ ç l a o ∗/c r i t i c a l _ r e g i o n ( ) ;t u rn = 1 ;
5 n on_c r i t i c a l_ r e g i o n ( ) ;}
Listing 2: bwh i l e (TRUE) {
wh i l e ( t u rn !=1) /∗ ç l a o ∗/c r i t i c a l _ r e g i o n ( ) ;t u rn = 0 ;
5 n on_c r i t i c a l_ r e g i o n ( ) ;}
21 / 28
![Page 22: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/22.jpg)
Concorrência
Problema do produtor-consumidor
Dois processos compartilham um bu�er de tamanho �xo;
Um põe a informação dentro do bu�er: produtor;
Outro retira a informação do bu�er: consumidor;
Problema: produtor quer colocar um item no bu�er, mas já está cheio;
Solução: colocar o produtor para dormir (sleep) e só acordar quando oconsumidor remover um ou mais itens;
Grande possibilidade de gerar condição de corrida: perda do envio desinal para acordar (wakeup) quando o processo ainda não estádormindo.
22 / 28
![Page 23: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/23.jpg)
Concorrência
Semáforos [Favacho, 2009]
Baseado em um tipo de variável que possui dois estados: UP eDOWN.
1 O semáforo �ca associado a um recurso compartilhado;2 Se o valor da variável semáforo for diferente de zero, nenhum processo
está utilizando o recurso; caso contrário,o processo �ca impedido doacesso;
3 Sempre que deseja entrar em sua região crítica, o processo executauma instrução DOWN;
4 Se o semáforo for maior que 0, este é decrementado de 1, e o processoque solicitou a operação pode executar sua região crítica;
5 Entretanto, se uma instrução DOWN é executada em um semáforocujo valor seja igual a 0, o processo que solicitou a operação �cará noestado de espera;
23 / 28
![Page 24: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/24.jpg)
Concorrência
Semáforos (cont.) [Favacho, 2009]
6 Além disso, o processo que está acessando o recurso, ao sair de suaregião crítica, executa uma instrução UP, incrementando o semáforode 1 e liberando o acesso ao recurso;
7 A veri�cação do valor do semáforo, a modi�cação do seu valor e,eventualmente a colocação do processo para dormir são operaçõesatômicas;
8 Operações atômicas são únicas e indivisíveis;
9 Os semáforos aplicados ao problema da exclusão mútua são chamadosde mutex (mutual exclusion) ou binários, por apenas assumirem osvalores 0 e 1.
24 / 28
![Page 25: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/25.jpg)
Concorrência
Implementação [Favacho, 2009]
#d e f i n e N 100t y p e d e f i n t semaphoresemaphore mutex = 1 ; /∗ c o n t r o l a ã r e g i o í c r t i c a ∗/semaphore empty = N; /∗ c o n t r o l a çõ p o s i e s v a z i a s ∗/
5 semaphore f u l l = 0 ; /∗ c o n t r o l a çõ p o s i e s ocupadas ∗/
v o i d p roduce r ( v o i d ) {wh i l e (TRUE) {
i tem = produce_item ( ) ;down (&empty ) ;
5 down (& mutex ) ;i n s e r t_ i t em ( i tem ) ; /∗ R_c r i t i c a
∗/up(&mutex ) ;up(& f u l l ) ;
}10 }
v o i d consumer ( v o i d ) {wh i l e (TRUE) {
down (& f u l l ) ;down (& mutex ) ;
5 i tem = remove_item ( ) ; /∗ R_cr ít i c a ∗/
up(&mutex ) ;up(&empty ) ;consume_item ( i tem ) ;
}10 }
25 / 28
![Page 26: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/26.jpg)
Concorrência
OBRIGADO!!!
PERGUNTAS???
26 / 28
![Page 27: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/27.jpg)
Concorrência
Chagas, F. (2016).Notas de aula do prof. fernando chagas.
FARINES, J. M. and MELO, R. (2000).Sistemas de Tempo Real, volume 1.IME-USP.
Favacho, A. (2009).Notas de aula da Profa. Aletéia Favacho.
Galvin, P. B., Gagne, G., and Silberschatz, A. (2013).Operating system concepts.John Wiley & Sons, Inc.
Guarezi, D. J. and Silva, E. B. (2010).Processos em windows e unix.Disponível em:http://www.inf.ufsc.br/∼magro/PROCESSOS%20EM%20WINDOWS%20E%20UNIX_001.docAcessado em 28/01/2011.
Tanenbaum, A. S. and Machado Filho, N. (1995).27 / 28
![Page 28: Escalonamento - Eduardo San · Escalonamento Escalonadores Short-term schedulerSeleciona os processos que vão para a CPU Algumas vezes o único escalonador disponível; Bastante](https://reader036.vdocuments.pub/reader036/viewer/2022080721/5f7a82b2025e965c8c26f103/html5/thumbnails/28.jpg)
Concorrência
Sistemas operacionais modernos, volume 3.Prentice-Hall.
28 / 28