Sistemas Operativos 5ª parte - Escalonamento do CPU
|
|
|
- João Pedro de Vieira Terra
- 9 Há anos
- Visualizações:
Transcrição
1 Sistemas Operativos 5ª parte - Escalonamento do CPU Prof. José Rogado [email protected] Prof. Pedro Gama [email protected] Universidade Lusófona 1
2 Escalonamento do CPU Objectivos: Perceber a importância da politica de escalonamento no comportamento dos processos Perceber os problemas/vantagens inerentes Discutir as políticas mais adequadas a cada utilização Descrever as politicas em Windows e Linux Descrever os algoritmos Conceitos Básicos Critérios de Escalonamento Algoritmos de Escalonamento Escalonamento Multi-processador Escalonamento em Tempo Real Escalonamento de Threads Exemplos de escalonamento em Sistemas Operativos Escalonamento de Threads Avaliação de Algoritmos 5.2 Silberschatz, Galvin and Gagne
3 Objectivos do Scheduler Conceitos BásicosB Obter a melhor utilização possível do CPU em multiprogramação Baseia-se no seguintes factos: Padrão de Execução de Processos Alternância de ciclos de picos de utilização de CPU e I/O Distribuição dos picos de utilização de CPU Segue um padrão idêntico na maioria dos sistemas 5.3 Silberschatz, Galvin and Gagne 2005 Lembrar o que se discutiu sobre process CPU-bound e I/O-bound. 3
4 Histograma da utilização do CPU As utilizações curtas do CPU tendem a ser mais frequentes Muitas utilizações curtas Poucas utilizações longas 5.4 Silberschatz, Galvin and Gagne
5 Funcionalidades do Scheduler Selecciona um dos processos em memória que esteja pronto para execução (Ready Queue) e atribui-lhe o CPU As decisões do scheduler podem ter lugar quando um processo 1. Passa do estado running para waiting 2. Passa do estado running para ready 3. Passa do estado waiting para ready 4. Termina O scheduling no caso 2 é preemptivo Nos outros pontos é não-preemptivo 5.5 Silberschatz, Galvin and Gagne 2005 A preemption termo de origem latina usada em inglês, especialmente no direito, significa expropriação. Ocorre quando scheduler pára a execução de um processo sem que este tenha efectuado alguma chamada de sistema bloqueante (que obrigue o processos a esperar). As duas situações em que os schedulers preemtivos fazem isto são: 1) terminado um quantum de tempo. 2) aparecimento no estado ready de um processo de mais alta prioridade. Exemplo de um SO não preemptivo: o Windows 3.x. O aluno deve perceber qual a consequência prática de não haver preempção. 5
6 Dispatcher O Dispatcher é o módulo que se encarrega de entregar o controlo do CPU ao processo escolhido pelo scheduler, o que envolve: Mudança de contexto Mudança para modo utilizador Executar o processo a partir do endereço apropriado No Windows a funcionalidade de escalonamento está espalhada e misturada com o dispatcher Dispatch latency o tempo que o dispatcher leva a parar um processo e recomeçar um outro Tempo que demora a mudança de contexto Envolve inúmeras operações de manipulação de registos CPU, unidade de gestão de memória (MMU), pilhas, etc 5.6 Silberschatz, Galvin and Gagne
7 Critérios rios de Scheduling Utilização do CPU - manter o CPU o mais ocupado possível Débito de processamento - nº de processos executados por unidade de tempo Tempo de execução - tempo total que um dado processo leva a ser executado (Turnaround Time) Tempo de espera - tempo que um processo espera na ready queue antes de ser activado, Interactividade - tempo que leva um determinado pedido a ser tomado em conta (tempo de resposta) Optimizações possíveis: Máxima Utilização CPU Máximo Débito de Processamento Mínimo tempo de execução Mínimo tempo de espera Máxima interactividade 5.7 Silberschatz, Galvin and Gagne 2005 Os critérios de scheduling não são exclusivos dos SO. Também são usados em logística, administração, gestão, etc. É importante perceber que a fluidez de interacção utlizador-máquina resulta da adequação dos critérios e capacidade de comutação de processos. 7
8 Tipos de Schedulers Geralmente nos Sistemas Multiprogramados existem dois tipos de Schedulers Long-term scheduler (ou job scheduler) selecciona quais os processos que devem ser trazidos para a fila ready Este scheduler tem um período de execução longo. Existe nos sistemas mais antigos com processamento em batch Não existe nos Unix e nos Windows. Existe um scheduler de tarefas (tasks ou jobs) para uma dada hora Short-term scheduler (ou CPU scheduler) selecciona qual o processo que está na lista ready que deve ser executado a seguir e atribui-lhe o CPU Este scheduler tem um período de execução curto 5.8 Silberschatz, Galvin and Gagne
9 Tipos de Schedulers (Cont.) O Short-term scheduler é invocado muito frequentemente Milisegundos tem de ser rápido Long-term scheduler é invocado pouco frequentemente Segundos, minutos pode ser lento O long-term scheduler controla o grau de multiprogramação do sistema (nº de processos que podem estar a ser executados em simultâneo). Os Processos podem ter dois tipos extremos de características: I/O-bound process gasta mais tempo a fazer I/O do que computação muitas e curtas utilizações do CPU CPU-bound process gasta mais tempo a fazer computação do que I/O; Poucas mas longas utilizações CPU 5.9 Silberschatz, Galvin and Gagne
10 Introdução de Medium Term Scheduling O Medium Term Scheduler actua quando demasiados processos estão a competir pela utilização do CPU Tira processos da wait queue (que não estão a ser executados) e envia-os para uma zona de swap em disco Mais tarde podem voltar para a ready queue quando o número de processos em memória diminui Bem perceptível no Windows c/ pouca memória 5.10 Silberschatz, Galvin and Gagne 2005 A colocação de um processo em disco (i.e. a maior parte do seu PCB e espaço de endereçamento) designa-se swap. 10
11 Algoritmos de Escalonamento First-Come, First-Served (FCFS) Processo Tempo de CPU P 1 24 P 2 3 P 3 3 Supondo que os processos são criados pela ordem: P 1, P 2, P 3 O mapa de Gantt para o scheduling é: P 1 P 2 P Tempo de espera para P 1 = 0; P 2 = 24; P 3 = 27 Tempo de espera médio: ( )/3 = 17 Implementação simples: lista FIFO 5.11 Silberschatz, Galvin and Gagne 2005 O aluno deve conhecer este algoritmos simples apesar de eles só em SO muito simples serem usados. Na prática usa-se um mix deste algoritmos! 11
12 FCFS Scheduling (Cont.) Supondo agora que os processos são criados pela ordem P 2, P 3, P 1 O mapa de Gantt para o scheduling é: P 2 P 3 P Tempo de espera para P 1 = 6; P 2 = 0 ; P 3 = 3 Tempo de espera médio: ( )/3 = 3 Muito melhor do que no caso anterior Evitar efeito de comboio: processos de duração curta primeiro 5.12 Silberschatz, Galvin and Gagne
13 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. First-Come Come-First-Served i τ(p i ) T TRnd ( ) = τ( ) = 350 W( ) = Silberschatz, Galvin and Gagne 2005 Cálculos do tempo de espera e tempo de despacho. Cálculos típicos em gestão e logística. 13
14 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. First-Come Come-First-Served i τ(p i ) p T TRnd ( ) = τ( ) = 350 T TRnd (p 1 ) = (τ(p 1 ) +T TRnd ( )) = = 475 W( ) = 0 W(p 1 ) = T TRnd ( ) = Silberschatz, Galvin and Gagne
15 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. First-Come Come-First-Served i τ(p i ) p 1 T TRnd ( ) = τ( ) = 350 T TRnd (p 1 ) = (τ(p 1 ) +T TRnd ( )) = = 475 T TRnd ( ) = (τ( ) +T TRnd (p 1 )) = = 950 W( ) = 0 W(p 1 ) = T TRnd ( ) = 350 W( ) = T TRnd (p 1 ) = Silberschatz, Galvin and Gagne
16 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. First-Come Come-First-Served i τ(p i ) p 1 p T TRnd ( ) = τ( ) = 350 T TRnd (p 1 ) = (τ(p 1 ) +T TRnd ( )) = = 475 T TRnd ( ) = (τ( ) +T TRnd (p 1 )) = = 950 T TRnd (p 3 ) = (τ(p 3 ) +T TRnd ( )) = = 1200 W( ) = 0 W(p 1 ) = T TRnd ( ) = 350 W( ) = T TRnd (p 1 ) = 475 W(p 3 ) = T TRnd ( ) = Silberschatz, Galvin and Gagne
17 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. First-Come Come-First-Served i τ(p i ) p 1 p 3 p 4 T TRnd ( ) = τ( ) = 350 T TRnd (p 1 ) = (τ(p 1 ) +T TRnd ( )) = = 475 T TRnd ( ) = (τ( ) +T TRnd (p 1 )) = = 950 T TRnd (p 3 ) = (τ(p 3 ) +T TRnd ( )) = = 1200 T TRnd (p 4 ) = (τ(p 4 ) +T TRnd (p 3 )) = = 1275 W( ) = 0 W(p 1 ) = T TRnd ( ) = 350 W( ) = T TRnd (p 1 ) = 475 W(p 3 ) = T TRnd ( ) = 950 W(p 4 ) = T TRnd (p 3 ) = Silberschatz, Galvin and Gagne
18 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. FCFS Average Wait Time i τ(p i ) Easy to implement Ignores service time, etc Not a great performer p 1 p 3 p 4 T TRnd ( ) = τ( ) = 350 T TRnd (p 1 ) = (τ(p 1 ) +T TRnd ( )) = = 475 T TRnd ( ) = (τ( ) +T TRnd (p 1 )) = = 950 T TRnd (p 3 ) = (τ(p 3 ) +T TRnd ( )) = = 1200 T TRnd (p 4 ) = (τ(p 4 ) +T TRnd (p 3 )) = = 1275 W( ) = 0 W(p 1 ) = T TRnd ( ) = 350 W( ) = T TRnd (p 1 ) = 475 W(p 3 ) = T TRnd ( ) = 950 W(p 4 ) = T TRnd (p 3 ) = 1200 W avg = ( )/5 = 2974/5 = Silberschatz, Galvin and Gagne
19 Algoritmos de Escalonamento Shortest-Job Job-First (SJF) Associa-se a cada processo a duração expectável do seu próximo ciclo de utilização do CPU (service time). O processo com o valor mais baixo é activado primeiro Duas possibilidade: Não-preemptivo: uma vez o CPU é atribuído a um processo, este não é interrompido até ao fim do seu ciclo de CPU Preemptivo: se chega um novo processo com um ciclo de CPU mais curto do que o tempo que falta ao processo corrente, este é interrompido. É conhecido por Shortest-Remaining-Time-First (SRTF) O scheduling SJF é o óptimo do ponto de vista do tempo de espera médio Permite o mínimo de tempo de espera média para um dado conjunto de processos 5.19 Silberschatz, Galvin and Gagne
20 Exemplo de SJF não preemptivo Process Arrival Time Burst Time P P P P SJF (non-preemptive) P 1 P 3 P 2 P Average waiting time = ( )/4 = Silberschatz, Galvin and Gagne
21 Exemplo de SJF preemptivo Process Arrival Time Burst Time P P P P SJF (preemptive) P 1 P 2 P 3 P 2 P 4 P Average waiting time = ( )/4 = Silberschatz, Galvin and Gagne
22 Shortest Job Next Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. i τ(p i ) p 4 75 T TRnd (p 4 ) = τ(p 4 ) = 75 W(p 4 ) = Silberschatz, Galvin and Gagne
23 Shortest Job Next Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. i τ(p i ) p 4 75 p T TRnd (p 1 ) = τ(p 1 )+τ(p 4 ) = = 200 W(p 1 ) = 75 T TRnd (p 4 ) = τ(p 4 ) = 75 W(p 4 ) = Silberschatz, Galvin and Gagne
24 Shortest Job Next Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. i τ(p i ) p p 1 p T TRnd (p 1 ) = τ(p 1 )+τ(p 4 ) = = 200 W(p 1 ) = 75 T TRnd (p 3 ) = τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 450 T TRnd (p 4 ) = τ(p 4 ) = 75 W(p 3 ) = 200 W(p 4 ) = Silberschatz, Galvin and Gagne
25 Shortest Job Next Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. i τ(p i ) p 4 p 1 p 3 T TRnd ( ) = τ( )+τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 800 T TRnd (p 1 ) = τ(p 1 )+τ(p 4 ) = = 200 W( ) = 450 W(p 1 ) = 75 T TRnd (p 3 ) = τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 450 T TRnd (p 4 ) = τ(p 4 ) = 75 W(p 3 ) = 200 W(p 4 ) = Silberschatz, Galvin and Gagne
26 Shortest Job Next Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. i τ(p i ) p p 1 p T TRnd ( ) = τ( )+τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 800 T TRnd (p 1 ) = τ(p 1 )+τ(p 4 ) = = 200 T TRnd ( ) = τ( )+τ( )+τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 1275 T TRnd (p 3 ) = τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 450 T TRnd (p 4 ) = τ(p 4 ) = 75 W( ) = 450 W(p 1 ) = 75 W( ) = 800 W(p 3 ) = 200 W(p 4 ) = Silberschatz, Galvin and Gagne
27 Shortest Job Next Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. i τ(p i ) p 4 75 Minimizes wait time May starve large jobs Must know service times p 1 p 3 T TRnd ( ) = τ( )+τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 800 T TRnd (p 1 ) = τ(p 1 )+τ(p 4 ) = = 200 T TRnd ( ) = τ( )+τ( )+τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 1275 T TRnd (p 3 ) = τ(p 3 )+τ(p 1 )+τ(p 4 ) = = 450 T TRnd (p 4 ) = τ(p 4 ) = 75 W( ) = 450 W(p 1 ) = 75 W( ) = 800 W(p 3 ) = 200 W(p 4 ) = 0 W avg = ( )/5 = 1525/5 = Silberschatz, Galvin and Gagne
28 Determinação da Duração do Ciclo de CPU A determinação da duração do próximo ciclo de utilização de CPU só pode ser feita por estimativa Baseada nos valores dos ciclos anteriores Pode ser estimada utilizando a duração dos ciclos prévios, utilizando uma média exponencial Define-se: 1. t n = duração do ciclo de CPU n 2. τ n+1 = valor estimado para o próximo ciclo 3. Sendo 0 <= α <= 1 4. τ n+1 = α t n + (1- α) τ n Valores limites Se α = 0 então τ n+1 = τ n (valor previsto para o ciclo anterior) Se α = 1 então τ n+1 = t n (valor real efectivo do ciclo anterior) 5.28 Silberschatz, Galvin and Gagne 2005 Estimação dinâmica da duração do proximo ciclo é usada nos modernos SO. 28
29 Propriedades da Média M Exponencial Interpretação dos valores limites: Se α = 0 então τ n+1 = τ n Valor previsto para o ciclo anterior: o valor efectivo anterior não entra em linha de conta, só é considerado o valor estimado Se α = 1 então τ n+1 = t n Valor real efectivo do ciclo anterior: só é considerada a duração do ciclo anterior Expandindo a fórmula, obtém-se: τ n+1 = α t n + (1 - α) α t n (1 - α ) j α t n-j + +(1 - α ) n +1 τ 0 Como α e 1 - α são inferiores ou iguais a 1, a contribuição dos termos passados vai diminuindo com o tempo Na prática utiliza-se α = 0.5 dando igual peso à história anterior e à imediata 5.29 Silberschatz, Galvin and Gagne 2005 Esta forma de estimação é usada correntemente em logística, por exemplo. 29
30 Exemplo de Estimativas Valores Estimados Valores Reais Valores obtidos com α = 0.5 e τ 0 = Silberschatz, Galvin and Gagne
31 Escalonamento Baseado na Prioridade A prioridade é representada por um valor inteiro associado ao processo (valor menor prioridade maior) O CPU é alocado ao processo da ready queue com maior prioridade O scheduling por prioridades pode ser ou não preemptivo Preemptivo: um processo com maior prioridade toma o lugar de um com menor prioridade Não Preemptivo : o processo em curso é executado até finalizar o seu ciclo CPU O scheduling SJF pode ser considerado um scheduling de prioridade em que a medida da prioridade é o valor previsto do próximo ciclo CPU O scheduling por prioridade pode trazer o problema de que certos processos com baixa prioridade nunca sejam executados (Starvation) A solução é utilizar a técnica de Aging que aumenta a prioridade dos processos em espera à medida que o tempo aumenta Silberschatz, Galvin and Gagne 2005 Importante perceber o mecanismo de Aging 31
32 i τ(p i ) Pri Priority Scheduling 0 p 3 Reflects importance of external use May cause starvation p 1 p 4 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Can address starvation with aging 1275 T TRnd ( ) = τ( )+τ(p 4 )+τ( )+τ(p 1 ) )+τ(p 3 ) = = 1275 T TRnd (p 1 ) = τ(p 1 )+τ(p 3 ) = = 375 T TRnd ( ) = τ( )+τ(p 1 )+τ(p 3 ) = = 850 T TRnd (p 3 ) = τ(p 3 ) = 250 T TRnd (p 4 ) = τ(p 4 )+ τ( )+ τ(p 1 )+τ(p 3 ) = = 925 W avg = ( )/5 = 2400/5 = 480 W( ) = 925 W(p 1 ) = 250 W( ) = 375 W(p 3 ) = 0 W(p 4 ) = Silberschatz, Galvin and Gagne
33 Scheduling em Round Robin (RR) Cada processo recebe uma pequena fracção do tempo de CPU (time quantum), da ordem dos milissegundos Depois de esgotado deste tempo, o processo é interrompido e passado para o fim da fila de espera (Ready Queue) Se houver n processos na Ready Queue e o quantum de tempo for q, então cada processo recebe 1/n do tempo de CPU, em fracções de q unidades de tempo. Nenhum processo espera mais de (n-1) x q unidades de tempo Performance: a relação entre q e o tempo de duração média τ do ciclo de CPU dos processos é determinante: Se q > τ degenera em FIFO Se q < τ q deve ser suficientemente grande em relação ao tempo médio da mudança de contexto, ou então o overhead torna-se demasiado elevado Silberschatz, Galvin and Gagne 2005 É essencial perceber este algoritmo simples, pois ele é sempre utilizado nos SO de uso genérico. 33
34 Exemplo de RR com Time Quantum = 20 Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 O mapa de Gantt é: P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P Tipicamente o tempo de execução médio é maior que em SJF mas obtém-se maior interactividade (menor tempo de resposta) 5.34 Silberschatz, Galvin and Gagne
35 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) W( ) = Silberschatz, Galvin and Gagne
36 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p W( ) = 0 W(p 1 ) = Silberschatz, Galvin and Gagne
37 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p W( ) = 0 W(p 1 ) = 50 W( ) = Silberschatz, Galvin and Gagne
38 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p p W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = Silberschatz, Galvin and Gagne
39 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p p p 4 W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = 150 W(p 4 ) = Silberschatz, Galvin and Gagne
40 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p p p W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = 150 W(p 4 ) = Silberschatz, Galvin and Gagne
41 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p 1 p 3 p 4 p 1 p p 4 T TRnd (p 4 ) = 475 W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = 150 W(p 4 ) = Silberschatz, Galvin and Gagne
42 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p 1 p 3 p 4 p 1 p 3 p 4 p 1 T TRnd (p 1 ) = 550 T TRnd (p 4 ) = 475 W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = 150 W(p 4 ) = Silberschatz, Galvin and Gagne
43 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p 1 p 3 p 4 p 1 p 3 p 4 p 1 p p 3 p 3 T TRnd (p 1 ) = 550 T TRnd (p 3 ) = 950 T TRnd (p 4 ) = 475 W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = 150 W(p 4 ) = Silberschatz, Galvin and Gagne
44 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p 1 p 3 p 4 p 1 p 3 p 4 p 1 p p 3 p 3 T TRnd ( ) = 1100 T TRnd (p 1 ) = 550 T TRnd (p 3 ) = 950 T TRnd (p 4 ) = 475 W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = 150 W(p 4 ) = Silberschatz, Galvin and Gagne
45 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Round Robin (TQ=50) i τ(p i ) p 1 p 3 p 4 p 1 p 3 p 4 p 1 p p 3 p 3 T TRnd ( ) = 1100 T TRnd (p 1 ) = 550 T TRnd ( ) = 1275 T TRnd (p 3 ) = 950 T TRnd (p 4 ) = 475 W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = 150 W(p 4 ) = Silberschatz, Galvin and Gagne
46 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. i τ(p i ) Round Robin (TQ=50) Equitable Most widely-used Fits naturally with interval timer p 1 p 3 p 4 p 1 p 3 p 4 p 1 p p 3 p 3 T TRnd ( ) = 1100 T TRnd (p 1 ) = 550 T TRnd ( ) = 1275 T TRnd (p 3 ) = 950 T TRnd (p 4 ) = 475 W( ) = 0 W(p 1 ) = 50 W( ) = 100 W(p 3 ) = 150 W(p 4 ) = 200 T TRnd _ avg = ( )/5 = 4350/5 = 870 W avg = ( )/5 = 500/5 = Silberschatz, Galvin and Gagne
47 Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. i τ(p i ) RR with Overhead=10 (TQ=50) Overhead must be considered p 1 p 3 p 4 p 1 p 3 p 4 p 1 p p 3 p 3 T TRnd ( ) = 1320 T TRnd (p 1 ) = 660 T TRnd ( ) = 1535 T TRnd (p 3 ) = 1140 T TRnd (p 4 ) = 565 W( ) = 0 W(p 1 ) = 60 W( ) = 120 W(p 3 ) = 180 W(p 4 ) = 240 T TRnd _ avg = ( )/5 = 5220/5 = 1044 W avg = ( )/5 = 600/5 = Silberschatz, Galvin and Gagne
48 Dispatch Latency 5.48 Silberschatz, Galvin and Gagne 2005 Enfatizar que a comutação implica um overhead, sempre presente. Em função deste overhead pode não fazer sentido efectuar uma comutação ou definir quanta inferiores. 48
49 Quantum e Mudança a de Contexto À medida que o time quantum diminui, aumenta o número de mudanças de contexto durante a execução do processo Típicamente, o tempo de comutação de contexto é da ordem dos 10 µs, ou seja um milésimo do valor do quantum habitual ( ms) 5.49 Silberschatz, Galvin and Gagne
50 Tempo de Resposta vs. Time Quantum O tempo de resposta médio não melhora necessariamente com o aumento do Time Quantum Em geral, deve-se ter 80 % dos ciclos de CPU inferiores ao Time Quantum 5.50 Silberschatz, Galvin and Gagne
51 Scheduling Multilevel Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Analogia com o processo de atendimento com vários balcões Fila de espera para múltiplos balcões F 1 1 Chegada Clientes F 2 2 F n n Modelo de fila de espera 5.51 Silberschatz, Galvin and Gagne
52 Multi-Level Queues Preemption or voluntary yield Source: Operating Systems, Gary Nutt Copyright 2004 Pearson Education, Inc. Ready Ready List List 0 0 New Process Ready Ready List List 1 1 Scheduler CPU CPU Done Ready Ready List List 2 2 Todos os processos no nível i correm primeiro que qualquer dos processos ao nível j Dentro de cada nível, utilizam-se algoritmos distintos, p.ex. RR e FCFS Ready Ready List List Silberschatz, Galvin and Gagne
53 Scheduling Multilevel A Ready Queue é devidida em várias filas distintas com algoritmos de scheduling diferentes 5.53 Silberschatz, Galvin and Gagne
54 Implementação Scheduling Multilevel A Ready Queue é dividida em várias filas separadas, p.ex.: Foreground (interactiva) Background (batch) Cada fila tem o seu próprio algoritmo de scheduling Foreground - RR Background - FCFS Tem de haver scheduling entre as várias filas Scheduling de prioridade fixa Primeiro foreground depois background starvation. Time slice cada fila recebe uma certa percentagem de CPU que é dividida entre os seus processos, p.ex.: 80% para foreground em RR 20% para background em FCFS 5.54 Silberschatz, Galvin and Gagne
55 Multilevel com Feedback Evolução: um processo pode passar de umas filas para as outras É uma forma de implementar o processo de aging O scheduling Mutilevel com feedback é definido pelos seguites parâmetros Número de filas de espera Algoritmos de scheduling da cada fila Métodos utilizado para mover processos entre filas Upgrade (promoção) de processos Demote (despromoção) de processos Método utilizado para determinar em que fila entra um processo quando passa para o estado Ready 5.55 Silberschatz, Galvin and Gagne
56 Multilevel Feedback Queues Os processos podem passar de umas filas para as outras 5.56 Silberschatz, Galvin and Gagne
57 Exemplo de Gestão de Filas Multilevel Três filas: Q 0 RR com time quantum de 8 milisegundos Q 1 RR com time quantum de 16 milisegundos Q 2 FCFS Scheduling Um novo processo entra na fila Q 0. Quando recebe o CPU corre durante 8 ms. Se não acaba dentro desse período para a fila Q 1 Na fila Q 1 recebe mais 16 ms de CPU Se não acaba ainda dentro desse período, é movido para a fila Q 2 O processo termina quando chegar a sua vez, nos 20% de tempo CPU que são atribuídos à fila FCFS 5.57 Silberschatz, Galvin and Gagne
58 Scheduling Multi-Processador O scheduling torna-se mais complexo quando se dispõe de vários CPUs. Vários casos são possíveis: Processadores indiferenciados ou simétricos (SMP) Uma ready queue única: cada processador retira processos da fila sempre que fica livre Problemas de afinidade (cache de memória, MMU, etc) Uma ready queue por processador: os processos tendem a ficar sempre no mesmo processador só migram quando houver grandes assimetrias Load Balancing Permite distribuir a carga de forma homogénea por todos os processadores Técnica de push: um processo examina a carga de cada processador periodicamente e distribui os processos Tecnica de pull: cada processador vai buscar processos sempre que a sua ready queue fica vazia 5.58 Silberschatz, Galvin and Gagne
59 Multiprocessador Simétrico Chegada de Processos Ready Ready Q 0 0 Scheduler CPU CPU 0 0 Ready Ready Q Ready Ready Q 1 1 Scheduler CPU CPU 1 1 Ready Ready Q 2 2 Scheduler CPU CPU 2 2 Processadores indiferenciados ou simétricos Uma Ready Q i por processador, mas cada processador também pode ir buscar à Ready Q comum Permite distribuir a carga de forma homogénea por todos os processadores Necessidade de exclusão mútua na execução dos algoritmos de scheduling para garantir coerência 5.59 Silberschatz, Galvin and Gagne
60 Multiprocessador Assimétrico Chegada de Processos Ready Ready Q Scheduler CPU 0 CPU Ready Ready Q 1 1 CPU CPU 1 1 Ready Ready Q 1 1 CPU CPU 2 2 Processadores diferenciados ou assimétricos: cada processador tem uma especificidade diferente I/O, Gráfico, Cálculo virgula flutuante (FPP) Só um processador executa o código do scheduler e acede as Ready Queues, evitando a necessidade de partilhar dados A atribuição do CPU é feita de acordo com a necessidade de cada processo em termos do recurso específico 5.60 Silberschatz, Galvin and Gagne
61 Scheduling Real-Time Sistemas Hard Real-Time necessitam de completar uma tarefa crítica dentro de um intervalo de tempo garantido Sistemas Soft Real-Time requerem que processos críticos tenham prioridade sobre outros menos importantes 5.61 Silberschatz, Galvin and Gagne
62 Scheduling de Threads Segundo a implementação do package de threads pode haver dois tipos de scheduling Local: implementado na biblioteca de threads, para decidir que thread irá correr em modo utilizador associada às threads kernel disponíveis Global: implementado no kernel, e corresponde aos algoritmos descritos até agora Scheduling Threads Scheduling Processos 5.62 Silberschatz, Galvin and Gagne
63 Symmetric Multithreading (SMT) Alguns CPUs fornecem a possibilidade de criar processadores lógicos dentro de cada CPU Designado por HyperThreading no mercado Cada CPU lógico permite executar uma thread distinta sem mudança de contexto Em SMP-SMT, o scheduler precisa de saber se são processadores reais ou lógicos para poder optimizar a alocação 5.63 Silberschatz, Galvin and Gagne
64 API de Scheduling das pthreads As pthreads permitem seleccionar se o scheduling é realizado a nível utilizador ou a nível do kernel Contention Scope PCS (Process Contention Scope): o scheduling é feito primeiro a nível do processo que contém várias threads SCS (System Contention Scope): o scehduling é feito a nível das threads do kernel Alguns sistemas só suportam um destes esquemas Linux, MacOSx só suportam SCS Solaris suporta ambos 5.64 Silberschatz, Galvin and Gagne 2005 Perceber que a API POSIX para threads permite a definição para cada threads de diferentes politicas de scheduling, para o programador, poder ajustar finamente às necessidades da aplicação. 64
65 API de Scheduling: Exemplo 5.65 Silberschatz, Galvin and Gagne 2005 A título de Exemplo. 65
66 Exemplos de Scheduling Alguns Exemplos de Algoritmos de Scheduling Scheduling Linux Scheduling Solaris Scheduling Windows XP 5.66 Silberschatz, Galvin and Gagne
67 Scheduling Linux O scheduler foi completamente reformulado na versão 2.5 do kernel Objectivo Manter excelente desempenho de aplicações interactivas mesmo em situações de carga elevada Tempo de resposta linear Manter critérios equitativos e evitar starvation Garantir eficiência em ambiente Multiprocessador (SMP) Uma fila de espera por processador Garantir afinidade dos processos por CPU Evitar migrações desnecessárias Utiliza vários algoritmos de scheduling diferentes segundo o tipo de processo: Round-robin preemptivo com prioridade e time quantum variáveis Soft real-time com prioridade estática FCFS RR 5.67 Silberschatz, Galvin and Gagne
68 Relação entre Prioridade e Time Quantum 800 ms MAX_RT_PRIO 100 ms MAX_PRIO 5 ms Contrariamente a outros sistemas, o Linux atribui quanta de tempo maiores aos processos com maior prioridade Real Time: de 0 a 99 (prioridades estáticas) Round Robin: de 100 a 139 (prioridades dinâmicas) recalculadas em função do comportamento do processo favorecendo as mais interactivas 5.68 Silberschatz, Galvin and Gagne
69 Estruturas de Scheduling task_struct Pri = 0 Pid = 0 Pid = 4 Active Pri = 1 Pid = 1 Pid = 3 RunQueue CPU n Pri = 139 Pid = 2 Expired Pri = 0 Pri = 1 Pri = 139 Pid = 5 Pid = 9 Pid = 6 Pid = 8 Pid = Silberschatz, Galvin and Gagne 2005 Ilustrativo, mas as estruturas de dados usadas devem ser já familiares ao aluno! 69
70 Algoritmos Scheduling Linux Round-Robin com time quantum para as tasks interactivas A cada task é inicialmente atribuído um crédito (time slice) de execução, sendo inserida na active list Valor típico de 100 ms (5 a 800 ms), indexado à prioridade O time slice das tasks diminui à medida que vão utilizando o CPU A sua prioridade é reavaliada a cada 20ms Dentro da mesma prioridade á aplicado RR Quando o time slice de uma task expira, é passada para uma outra fila de espera (expired list) A sua prioridade é recalculada baseada no historial É-lhe atribuído um novo time slice que depende da nova prioridade É inserida na fila de espera de prioridade correspondente Uma task muito interactica pode voltar a ser inserida na active list Quando já não há tasks na active list, as duas listas são trocadas Expired <=> Active Real-time para as tasks de prioridade fixa Soft real-time Compatível com Posix.1b duas classes FCFS e RR A task com maior prioridade passa sempre primeiro 5.70 Silberschatz, Galvin and Gagne 2005 O aluno tem que perceber que os SO genéricos usam um mix dos diferentes algoritmos simples descritos e saber interpretar o comportamento observável dos processos como consequência destes algoritmos. 70
71 Duas tabelas de listas indexadas por prioridades As prioridades de cada processo são recalculadas a cada time quantum e de cada vez que passam para a tabela expired Em função do tempo que esperaram por I/O São favorecidas as que esperaram mais (+ interactivas) A mudança da tabela expired para active faz-se quando já não há processos na fila activa Mudança de ponteiros na RunQueue 5.71 Silberschatz, Galvin and Gagne 2005 Ilustrativo da forma como o Kernel Linux moderno gere o escalonamento. 71
72 Comutação de Tabelas RunQueue CPU n Active Expired Pri = 0 Pri = 1 Pri = 139 Quando o time slice de todos os processos expira, comutam-se as tabelas active e expired Expired Active Pri = 0 Pri = 1 Pid = 5 Pid = 9 Pid = 2 Pid = 6 Pid = 0 Pid = 4 Pri = 139 Pid = 3 Pid = 7 Pid = Silberschatz, Galvin and Gagne
73 Prioridades vistas pelo Utilizador O valor da prioridade (nice) visível pelo utilizador é diferente da prioridade interna: USER_PRIO (p) = p - MAX_RT_PRIO A prioridade visível varia entre 0 e 39 Uma prioridade interna máxima (RT) aparece com o valor -100 A prioridade dos processos utilizador podem ser alterada de +19 (min) a -20 (max) valores em relação à prioridade normal Comando: nice -n <valor> <comando> nice -n 10 bash Executa o comando bash com a prioridade diminuída de 10 unidades nice -n -10 bash Executa o comando bash com a prioridade aumentada de 10 unidades só autorizada ao super user 5.73 Silberschatz, Galvin and Gagne 2005 Informação prática que é necessário ter em mente na utlização em UNIX. 73
74 Selecção da task a activar active_list 0 Pri = 0 Pid = 0 Pid = 1 1 Pri = 1 0 Pri = 2 Pid = Pri=138 Pri=139 Pid = 2 Pid = 3 A tabela de filas de espera contém um bit por cada nível de prioridade que tem valor 1 se houver tasks nesse nível Para seleccionar a task a activar basta percorrer todos os bits começando pelas mais alta prioridade e seleccionar o primeiro elemento da fila que tem o bit a 1 Operação realizada por uma instrução assembler que devolve o índice do primeiro bit com valor 1 num registo de 32 ou 64 bits 32 bits: ~5 instruções 64 bits: ~3 instruções 5.74 Silberschatz, Galvin and Gagne
75 Scheduling Solaris Solaris usa thread scheduling baseado na prioridade Tem 4 classes de prioridades Real time System Time Sharing Interactive A classe por defeito é interactive que utiliza multi-level feedback scheduling Níveis de prioridade com time quantums inversamente proporcionais Maior prioridade = menor time quantum Aproximação inversa do Linux 5.75 Silberschatz, Galvin and Gagne 2005 Ilustrativo. Enfatiza que os SO modernos usam mix de algoritmos. 75
76 Dispatch Table do Solaris Tabela de Dispatch para classes Interactive e TimeSharing Priority: as várias possíveis prioridades desta classe Time Quantum: os quanta de tempo atribuído a cada prioridade Time Quantum Expired: a nova prioridade duma thread que excedeu o time quantum sem bloquear CPU bound Return from Sleep: a nova prioridade atribuída a uma thread que esteve bloqueada à espera de um evento I/O bound A nova prioridade entre 50 e 59 favorece as threads interactivas As Dispatch tables podem ser carregadas dinamicamente Silberschatz, Galvin and Gagne 2005 Ilustrativo. 76
77 Scheduling Windows XP Classes de Prioridade Prioridade Relativa O Windows utiliza um algoritmo preemptivo baseado na prioridade Existem 32 diferentes níveis de prioridade Prioridade variável: 1 a 16 Tempo Real: 16 a 31 As prioridades estão também em 6 classes que podem ser posicionadas através da API Win32. Dentro de cada classe existem 7 níveis de prioridade relativa 5.77 Silberschatz, Galvin and Gagne 2005 Informação prática para o caso do Windows. Perceber a prioridade relativa ou dinâmica que é ajustada em função da natureza do processo e da transição de estado! 77
78 Avaliação de Algoritmos Como se escolhe um algoritmo de CPU para um Sistema Operativo Modelação determinística Com base num perfil de processos simulado define-se a performance de execução de vários algoritmos Já foi feito na aula passada Mais exercícios na prática Modelos de Filas de Espera Na maioria dos sistemas, os tipos de processos que correm variam constantemente O modelo determinístico não pode ser utilizado Utilizam-se modelos matemáticos baseados em Distribuição probabilística dos tempos de ciclo de CPU Análise de redes de filas de espera Resultados nem sempre se aproximam da realidade 5.78 Silberschatz, Galvin and Gagne
79 Simulação Baseada em Logs Uma outra possibilidade consiste e correr os algoritmos de scheduling em simuladores Alimentados por logs de situações reais de carga de sistemas ou geradores de carga aleatória Testar diferentes algoritmos de scheduling em simulação Aulas práticas 5.79 Silberschatz, Galvin and Gagne 2005 Métodos de simulação: são usados quando é necessário um fine tunning do SO para um determinado padrão de utilização. 79
80 Fim do Scheduling 80
Prof. José Rogado Universidade Lusófona. Lições de Sistemas Operativos
Sistemas Operativos Cap. V Escalonamento de Threads Prof. José Rogado [email protected] Universidade Lusófona 5.1 Escalonamento do CPU Conceitos Básicos Critérios de Escalonamento Algoritmos de
Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal
Sistemas Operacionais Aula 07: Scheduling da CPU Ezequiel R. Zorzal [email protected] www.ezequielzorzal.com Objetivos Introduzir o Scheduling da CPU, que é a base dos sistemas operacionais multiprogramados
Sistemas de Computação. Processos e escalonamento
Processos e escalonamento Sistema operacional Programa que age como intermediário entre o usuário de um computador e o hardware Objetivos: Executar programas do usuário e facilitar a resolução de problemas
Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)
Aula Passada Processos (Aula 6) Escalonamento de Processos O SO gerencia os recursos do sistema de computação em benefício dos processos Para isso, mantem estruturas de controles Tabelas (memória, I/O,
Processos. Escalonamento de Processos
Processos Escalonamento de Processos Objetivos do Escalonamento Maximizar a taxa de utilização da UCP. Maximizar a vazão ( throughput ) do sistema. Minimizar o tempo de execução ( turnaround ). Turnaround:
Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.
Objetivos do Escalonamento Maximizar a taxa de utilização da UCP. Processos Maximizar a vazão ( throughput ) do sistema. Minimizar o tempo de execução ( turnaround ). Turnaround: tempo total para executar
Processos. Escalonamento de Processos
Processos Escalonamento de Processos Objetivos do Escalonamento Maximizar a taxa de utilização da UCP. Maximizar a vazão ( throughput ) do sistema. Minimizar o tempo de execução ( turnaround ). Turnaround:
Processos. Escalonamento de Processos
Processos Escalonamento de Processos Objetivos do Escalonamento Maximizar a taxa de utilização da UCP. Maximizar a vazão ( throughput ) do sistema. Minimizar o tempo de execução ( turnaround ). Turnaround:
Escalonamento do CPU
Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho Função: escolher qual o processo pronto que corre em seguida Invocado possivelmente aquando: interrupções
Escalonamento de Processos
Escalonamento de Processos Escalonamento de processos Multiprogramação visa maximizar uso da CPU Sempre que processos estão prontos disputam CPU Algoritmo de escalonamento: maneira de escolher o processo
Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo
Sumário Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. 1 Padrão de Execução dum Processo Processos (e threads) alternam: execução de instruções;
Davidson Rodrigo Boccardo
Gerenciamento de processos Davidson Rodrigo Boccardo [email protected] Revisão Critérios de alocação: Utilização da CPU Produtividade (Throughput) Número de processos finalizados por unidade de tempo
Capítulo 5: Escalonamento da CPU. Operating System Concepts 8th Edition
Capítulo 5: Escalonamento da CPU Capítulo 5: Escalonamento de CPU Conceitos Básicos Critérios de Escalonamento Algoritmos de Escalonamento Escalonamento de Threads Escalonamento de Multiprocessadores Exemplos
Escalonamento de Processos. Estratégia de atribuição do Processador aos Processos
Escalonamento de Processos Estratégia de atribuição do Processador aos Processos 1. Introdução 2. Políticas de Escalonamento 3. Critérios para um bom escalonador 4. Caracterização dos escalonadores 5.
Sistemas Operacionais. Escalonamento de processos
Sistemas Operacionais Escalonamento de processos 1 Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas
Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU
Definição? Algoritmo de Escalonamento de CPU 6 Terminado? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU? Executado quando ocorre estouro de Quantum ou interrupção do processo (I/O,
Sistemas Operacionais: Escalonamento de processos
Sistemas Operacionais: Escalonamento de processos Escalonamento Critérios de escalonamento Algoritmos de escalonamento Escalonamento em multiprocessadores Escalonamento tempo real Características de processos
Sistemas Operativos: Escalonamento de Processos
Sistemas Operativos: Escalonamento de Processos Pedro F. Souto ([email protected]) March 29, 2011 Sumário Escalonamento de Processos O Problema Algoritmos de Escalonamento de Processos Leitura Adicional Padrão
Sistemas Operativos: Implementação de Processos
Sistemas Operativos: Implementação de Processos Pedro F. Souto ([email protected]) March 8, 2012 Sumário: Implementação de Processos Contexto (Estado) dum Processo Comutação de Processos Escalonamento de Processos
Sistemas Operacionais Gerenciamento de Processos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerenciamento de Processos Prof. José Gonçalves Dias Neto [email protected] Introdução Devido
Escalonamento de Processos Uniprocessador
Sistemas Operacionais Escalonamento de Processos Uniprocessador Capítulo 9 IC - UFF 1 Objetivos do Escalonamento É a chave de multiprogramação eficiente deve ser transparente ao usuário Esolher processos
Algoritmos de escalonamento
Algoritmos de escalonamento Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas Filas; Utilizam escalonamento
Resumo: Sistemas Operacionais Abertos
Resumo: Sistemas Operacionais Abertos Prof. Michael A. Pontes Processos Um processo é um programa em execução. Enquanto um processo é executado, ele muda de estado. O estado de um processo é definido pela
SOP - TADS Escalonamento de Processos
SOP - TADS Escalonamento de Processos Prof. Ricardo José Pfitscher [email protected] Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Cronograma Conceito de Escalonamento
Escalonamento da CPU
Escalonamento da CPU Sistemas Operacionais Charles Tim Batista Garrocho Instituto Federal de Minas Gerais IFMG Campus Ouro Branco https://garrocho.github.io [email protected] Sistemas de Informação
Sistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache
Escalonamento da CPU
Escalonamento da CPU Sistemas Operacionais Charles Tim Batista Garrocho Instituto Federal de São Paulo IFSP Campus Campos do Jordão garrocho.ifspcjo.edu.br/oso [email protected] Técnico em Informática
BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento
BC1518-Sistemas Operacionais Escalonamento de CPU 3 Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento [email protected] Roteiro Conceito Despachante Critérios de escalonamento Algoritmos
Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE III: GERÊNCIA DE RECURSOS SUMÁRIO 8. GERÊNCIA DO PROCESSADOR: 8.1 Introdução; 8.2 Funções Básicas; 8.3 Critérios de Escalonamento;
Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento
Aula 3 Escalonamento Escalonamento Porque? Quando? Como? Critérios? Políticas de escalonamento Como avaliar? Referências: Capítulo 5: 5.1 a 5.3, 5.6 Porque Escalonar? Escalonamento controla compartilhamento
Infra-Estrutura de Software. Escalonamento
Infra-Estrutura de Software Escalonamento Processos Concorrentes O Modelo de Multiprogramação Multiprogramação de quatro programas Modelo conceitual de 4 processos sequenciais, independentes Somente um
Sistemas Operacionais. Gerência de Processador
Sistemas Operacionais Gerência de Processador Sumário 1. Introdução 2. Funções Básicas do Escalonamento 3. Critérios de Escalonamento 4. Escalonamento 1. Não-Preemptivo 2. Preemptivo 5. Políticas de Escalonamento
Bacharelado em Ciência da Computação Sistemas Operacionais
Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Diego Mello da Silva Instituto Federal de Minas Gerais - Campus Formiga 13 de fevereiro de 2014 [email protected] (IFMG) Sistemas
Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar
Escalonamento Decidindo qual processo vai executar Escalonamento de processos Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado
Sistemas Operacionais
Sistemas Operacionais Aula 10 Escalonamento Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: Prof. SO José - Prof. Juan Edilberto Espantoso Silva Sumário Introdução
Sistemas Operacionais
Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Dra. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências
Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software
Escalonamento Decidindo qual processo vai executar Escalonamento de processos Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado
Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,
Processos Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Introduzir a noção de processo um programa em execução que é a base de toda a computação Descrever as várias
SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (http://flaviovdf.github.io)
SO: Escalonamento Sistemas Operacionais 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Aonde Estamos Processos Chapt 3 Threads Chapt 4 Vamos pular o Chapt 5 brevemente Sincronização e comunicação
Questões de Provas de Períodos Anteriores
Sistemas Operacionais 2010/1 Questões de Provas de Períodos Anteriores 1) Dois importantes conceitos encontrados no sistema operacional Unix são: (i) modo de execução ( execution mode ); e (ii) contexto
Sistemas Operacionais
Sistemas Operacionais ESCALONAMENTO DE PROCESSOS Processos e Recursos Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que executam no sistema. A questão
Sistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE III SUMÁRIO 4. GERÊNCIA DO PROCESSADOR: 4.1 Introdução; 4.2 Funções Básicas; 4.3 Critérios de Escalonamento; 4.4 Escalonamentos Não-Preemptivos
Arquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo
Aula 10: Escalonamento da CPU
Aula 10: Escalonamento da CPU O escalonamento da CPU é a base dos sistemas operacionais multiprogramados. A partir da redistribuição da CPU entre processos, o sistema operacional pode tornar o computador
6 ESCALONAMENTO DE CPU
6 ESCALONAMENTO DE CPU O escalonamento de CPU é ponto chave da multiprogramação. Ela permite que haja mais de um processo em execução ao mesmo tempo. Em ambientes com um único processador, o escalonador
Escalonamento de Processos
Escalonamento de Processos Prof. Dr. André Carvalho [email protected] Agenda n Contextualização Classificação de tarefas n Métricas de Escalonamento n Escalonamento de Processos n Exemplos 2 Contextualização
Sistemas Operativos. Escalonamento e sincronização. Rui Maranhão
Sistemas Operativos Escalonamento e sincronização Rui Maranhão ([email protected]) Benefícios da Multiprogramação maximiza o tempo de utilização do CPU utilização do CPU = 1 - p n n é o número de processos
Sistemas Operacionais
Sistemas Operacionais Processos - Parte 3 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 3) 1 / 19 Algoritmos de Escalonamento Nas aulas anterior vimos o ESCALONADOR, que é uma parte do SO responsável
Notas da Aula 10 - Fundamentos de Sistemas Operacionais
Notas da Aula 10 - Fundamentos de Sistemas Operacionais 1. Escalonadores preemptivos Escalonadores preemptivos são aqueles que têm a capacidade de interromper a execução de um processo para realizar alterações
Gerência de Recursos. Gerência do Processador
Gerência de Recursos Gerência do Processador Escalonamento Não-Preemptivos e Preemptivos Preempção - possibilidade de o SO interromper um processo em execução e substituí-lo por um outro. O Escalonamento
SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios
SISTEMAS OPERACIONAIS Prof a. Roberta Lima Gomes ([email protected]) 1ª. Lista de Exercícios Data de Entrega: não há. O objetivo da lista é ajudar no estudo individual dos alunos. Soluções de questões específicas
SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES
SISTEMAS OPERACIONAIS TÁSSIO JOSÉ GONÇALVES GOMES www.tassiogoncalves.com.br [email protected] CONTEÚDO PROCESSOS Fundamentos O Núcleo do Sistema Operacional Escalonamento de Processos Comunicação
Sistemas Operacionais Aula 7
Sistemas Operacionais Aula 7 Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Sistemas Operativos. Um conjunto de rotinas de software que. virtualizando-o. diversos como o sistema de ficheiros e.
Sistemas Operativos Paulo Menezes 1 Um conjunto de rotinas de software que virtualizando-o. diversos como o sistema de ficheiros e 2 Processamento por lotes (batch) 3 Tipos de sistemas operativos Batch
Lista de Exercícios Escalonamento de CPU. 1. Considere o seguinte conjunto de processos, com o tamanho do tempo de burst de CPU dado em milissegundos:
Lista de Exercícios Escalonamento de CPU 1. Considere o seguinte conjunto de processos, com o tamanho do tempo de burst de CPU dado em milissegundos: Tempo de Serviço Prioridade 10 3 1 1 P3 2 3 P4 1 4
Sistemas Operacionais
Escalonadores preemptivos p Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Gerência do processador Escalonamento preemptivo Aula 07 O escalonador retira o processador de um processo*
Sistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento) Aula 05 Objetivos de um sistema operacional são: Eficiência: relação entre o uso efetivo de um recurso e a quantidade desse recurso
Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Processos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Sistemas Operativos. Sumário. Escalonador da CPU. Por Prioridades Round Robin. ! Algoritmos de escalonamento
Escalonador da CPU Sumário! Algoritmos de escalonamento Por Prioridades Round Robin Por Prioridades! A cada processo é associada uma prioridade Geralmente um número inteiro (vamos considerar que os números
Na Aula Anterior... Escalonamento de Processos. Nesta Aula. Escalonamento. Comportamento de um Processo. Historicamente...
GSI018 Sistemas Operacionais 05/09/2016 Escalonamento de Processos Na Aula Anterior... Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Utilização de Processos
Escalonamento de Processos Estratégias de Escalonamento de Processos
Estratégias de Escalonamento de s Rossano Pablo Pinto, MSc. FATEC - Americana 15/0/008 O que é um sistema multiprogramável? compartilha a CPU entre diversos processos é desejável que os processos obtenham
Estratégias de Escalonamento de Processos
Estratégias de Escalonamento de Processos Rossano Pablo Pinto, MSc. FATEC - Americana 15/02/2008 Prof. Ms. Rossano Pablo Pinto - FATEC Ame 1 O que é um sistema multiprogramável? compartilha a CPU entre
ENADE 2011 SISTEMAS OPERACIONAIS
ENADE 2011 SISTEMAS OPERACIONAIS SOs: conteúdos comuns Gerência de processos/processador Comunicação Concorrência e Sinc. de Processos Gerenciamento de Memória Alocação de Recursos e Deadlocks Sistemas
Sistemas Operacionais. Capítulo 8 Gerência do Processador
Sistemas Operacionais Capítulo 8 Gerência do Processador Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado Luiz Paulo Maia 1 Sumário
Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução
Sistemas Operativos Objetivo O objetivo deste questionário é levá-lo a rever os conceitos básicos dos sistemas operativos, bem como os algoritmos de scheduling e mecanismos de sincronização estudados.
Capítulo 5: Escalonamento da CPU
Capítulo 5: Escalonamento da CPU Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada
Gerência do Processador. Adão de Melo Neto
Gerência do Processador Adão de Melo Neto 1 Introdução Sistemas Multiprogramáveis: Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. POLÍTICA DE ESCALONAMENTO Como
Notas da Aula 11 - Fundamentos de Sistemas Operacionais
Notas da Aula 11 - Fundamentos de Sistemas Operacionais 1. Escalonamento de Tempo Real Em sistemas de tempo real, o objetivo principal do escalonador é garantir que todos os processos sejam executados
Escalonamento de Tarefas
Escalonamento de Tarefas Rômulo Silva de Oliveira ebook Kindle, 2018 www.romulosilvadeoliveira.eng.br/livrotemporeal Outubro/2018 1 Escalonamento de Tarefas Sistemas de tempo real são organizados em torno
Sistemas Operacionais
ANHANGUERA Sistemas Operacionais Prof. Esp. Rafael Gross Processos Sumário Introdução Conceito de processo Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação
Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos
Conceito de Processo Módulo 4: Processos Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) processa jobs Sistemas de tempo partilhado (time shared) roda
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1203 - SISTEMAS OPERATIVOS 2º Semestre 2005/2006 27/7/2007 Resolução 1. Identifique três situações em que ocorra uma transição do modo de execução utilizador
