A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner

Apresentações semelhantes


Apresentação em tema: "Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner"— Transcrição da apresentação:

1 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner gugawag@gmail.com

2 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento

3 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 3 Escalonamento Em computadores multiprogramados há vários processos concorrendo pela CPU ao mesmo tempo; Se houver apenas uma CPU, deverá ser escolhido um processo para executar primeiro; No SO, a parte que faz isso é o escalonador; O algoritmo usado é o algoritmo de escalonamento;

4 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 4 Introdução No início, com sistemas em lote, sendo a entrada cartões gravados em fita magnética, o algoritmo era: execute o próximo job na fita; Um algoritmo de escalonamento inteligente e eficiente é o que se busca;

5 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 5 Introdução Com o advento de computadores pessoais, a estória mudou em dois aspectos; Primeiro: –normalmente em PCs existe apenas um processo ativo: editor de texto, por exemplo; Segundo: –as cpus ficaram tão rápidas que atualmente a lentidão vem por parte do usuário;

6 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 6 Introdução Como conseqüência, em PCs simples, o escalonamento não é tão “importante”; Já em servidores e estações de trabalho de alto desempenho em rede, a situação muda; Por exemplo, qual deve executar primeiro: –Processo que atualiza a tela depois do usuário fechar uma janela; –Processo que envia mensagens eletrônicas;

7 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 7 Introdução Além de escolher qual processo executar, o escalonador tem que fazer bom uso da CPU; Alternar processos é muito caro! –Passa-se do modo usuário para modo núcleo; –Salva-se o estado atual do processo: contexto; –Em alguns sistemas, mapa de memória deve ser salvo; –Um novo processo precisa ser escolhido;

8 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8 Introdução –A MMU precisa carregar o mapa de bits do novo processo; –O novo processo precisa ser iniciado; –Além disso, a memória cache precisa ser invalidada;

9 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9 Comportamento do processo O sucesso de escalonamento depende da seguinte propriedade observada nos processos: –Processos têm surtos de computação(Uso de CPU) e/ou requisições de E/S;

10 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10 Escalonamento Surtos de uso da CPU alternam-se com períodos de espera por E/S a)um processo orientado à CPU b)um processo orientado à E/S

11 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11 Comportamento do processo Quanto mais rápidas as CPUs, mais os processos serão orientados à E/S;

12 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12 Quando escalonar? Primeiro, quando se cria um novo processo, é necessário tomar a decisão de execução do pai ou filho; Segundo, no término de um processo é necessário escolher outro processo; Terceiro, quando um processo bloqueia para E/S, é necessário escolher outro processo para executar;

13 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 13 Quando escalonar Quarto, quando ocorre uma interrupção de E/S; O processo que estava esperando a E/S vai para pronto e pode ser escalonado; Decisões do escalonador pode ocorrer a cada interrupção do relógio;

14 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14 Quando escalonar? Preemptivo: –tempo fixado de execução; Não-preemptivo: –o processo só para de executar se houver E/S ou finalizou; Se não houver relógio disponível, o escalonamento não-preemptivo será a única opção;

15 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 15 Categorias de algoritmos Diferentes áreas de aplicações têm objetivos diferentes; Por isso temos diferentes categorias de algoritmos; –Lote: não há usuário impaciente esperando resultado; Os algoritmos são não-preemptivos ou preemptivos com tempo longo;

16 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16 Categorias de algoritmos –Interativo: algoritmos preemptivos; Se um programa falhar, é só escolher outro; –Tempo real: curiosamente, preempção é desnecessária; cada processo faz seu trabalho e abandona a CPU;

17 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17 Categorias de algoritmos Exemplos: –Preemptivos: linux, windows xp; –Não-preemptivos: DOS, Windows 3.1;

18 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 18 Objetivos dos algoritmos de escalonamento

19 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 19 Escalonamento em lote – Primeiro a chegar, primeiro a ser servido – Fila Um job executa até concluir sua computação ou que seja bloqueado; Jobs que chegam para executar esperarão numa fila; Caso de desvantagem: –um processo orientado à cpu precisa executar por 1s, a cada vez; –Outros processos orientados à E/S precisam realizar 1000 leituras de disco;

20 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 20 Job mais curto primeiro Um exemplo de escalonamento job mais curto primeiro (4a + 3b + 2c + d)/4

21 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 21 Job mais curto primeiro Todos os jobs já devem estar prontos; Contra exemplo (quando nem todos os jobs estão disponíveis): –5 processos: A(2), B(4), C(1), D(1), E(1) –Tempos de chegada: 0, 0, 3, 3, 3 –Usando Job mais curto primeiro, teríamos: A, B, C, D, E = 4,6 –Se executarmos na ordem B, C, D, E, A = 4,4

22 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 22 Próximo de menor tempo restante Versão preemptiva do “Job mais curto primeiro”; Se um processo chegar, e seu tempo de execução for menor do que o tempo restante do processo atual, ele será escolhido;

23 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 23 Escalonamento em 3 níveis Escalonamento em três níveis

24 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 24 Escalonamento em Sistemas Interativos - Round Robin Escalonamento por alternância circular (round- robin) a)lista de processos executáveis b)lista de processos executáveis depois que B usou todo o seu quantum

25 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 25 Round robin Mudança de contexto é caro; Se mudar de contexto dura 1ms, e quantum for 4ms, 20% do tempo de CPU é mudando contexto!  Se o quantum for muito grande, ex.: 100ms, e tiver 10 usuários teclando, o último talvez tenha que esperar 1s! Um quantum razoável está entre 20 a 50ms;

26 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 26 Um algoritmo de escalonamento com quatro classes de prioridade Escalonamento por prioridade

27 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 27 Escalonamento por prioridades O escalonador pode levar em consideração quanto do quantum o processo utilizou; Por exemplo, se o quando for de 50ms, e o processo só usou 1ms, o escalonador deve aumentar a prioridade deste em relação a outro processo que usou todo o quantum; Fórmula: 1/f, onde f é a fração do quantum que o processo usou;

28 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 28 Próximo processo mais curto Em sistemas em lote, funciona bem; Mas como fazer isso em sistemas interativos? Ou seja, como saber quem é o job mais curto nesse momento? –Calcular com base em execuções passadas, e fazer o cálculo do tempo estimado; –aT0 + (1-a)T1;

29 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 29 Escalonamento por loteria Cada processo é munido de um bilhete; George Orwell: –“Todos os processos são iguais, mas alguns são mais iguais que os outros”; –Versão Stanley Kubrick: “Todos os humanos à partir de agora são, verdes, não existe mais branco e preto. Mas há verdes claros e verdes escuros!”  Processos mais importantes podem receber mais bilhetes; Um novo processo que recebe bilhete tem a mesma chance que um antigo; Esse algoritmo é altamente responsivo; Os processos cooperativos podem trocar bilhetes: ex.: Cliente-Servidor

30 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 30 Escalonamento por fração justa Se um usuário tiver 4 processos a executar, e outro tiver 1 único processo para executar? Provavelmente o primeiro usuário usará 80% da CPU e o outro apenas 20%; Escalonamento por fração justa divide igualitariamente a CPU entre os usuários;

31 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 31 Escalonamento em Sistemas de Tempo Real Algoritmos de escalonamento de tempo real podem ser estáticos ou dinâmicos; Estático: –escalona-se antes do sistema ser executado; tem-se informação precisa antes da execução; Dinâmico: –escalona-se durante a execução do sistema;

32 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 32 Política X Mecanismo Fizemos suposições até agora que os processos pertencem a usuários diferentes; Mas existem vários processos que são do mesmo usuário, como pai e filhos; Algoritmos são parametrizáveis, mas os parâmetros podem ser passados pelos processos dos usuários; Mecanismo: –algoritmo de escalonamento; está normalmente no núcleo; Política: –pode ser implementada por algum processo de usuário;

33 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 33 Escalonamento de Threads Em nível do usuário, quem escalona é o sistema supervisor; Ele é quem entende qual o melhor momento e qual thread deve escalonar; O escalonador do SO só escalona o processo das threads, não as próprias threads; O algoritmo usado pelo sistema supervisor pode ser qualquer um dos vistos anteriormente;

34 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 34 Escalonamento de Threads Já em modo núcleo, o escalonador escalona cada thread especificamente; Escalonar uma thread de núcleo é bem mais lento que escalonar uma thread de usuário: precisa invalidar memória, cache, etc; Mudar de uma thread A.1 para A.2 é mais rápido que mudar de A.1 para B.1; Isso pode ser levado em consideração na hora de escalonar;


Carregar ppt "Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner"

Apresentações semelhantes


Anúncios Google