GERÊNCIA DO PROCESSADOR
Prof. Kleber Carrhá
academico@carrha.com.br www.carrha.com.br
MULTITAREFA
O CONCEITO BÁSICO QUE GEROU A IMPLEMENTAÇÃO DOS SISTEMAS MULTIPROGRAMÁVEIS FOI O COMPARTILHAMENTO DA UCP ENTRE OS DIVERSOS PROCESSOS.
PARA ISSO, TODO SISTEMA MULTIPROGRAMÁVEL POSSUI UM CRITÉRIO PARA DETERMINAR QUAL A ORDEM NA ESCOLHA DOS PROCESSOS PARA EXECUÇÃO ENTRE OS VÁRIOS PROCESSOS QUE CONCORREM PELA UTILIZAÇÃO DO PROCESSADOR, ISTO É QUE ENCONTRAM-SE NO ESTADO PRONTO.
FILAS DE ESTADO
ESCALONAMENTO
O PROCEDIMENTO DE SELEÇÃO DE UM PROCESSO PARA EXECUÇÃO É CHAMADO DE ESCALONAMENTO, É REALIZADO PELO SISTEMA OPERACIONAL.
A PARTE DO CÓDIGO DO SISTEMA OPERACIONAL RESPONSÁVEL PELO ESCALONAMENTO É CHAMADO DE ESCALONADOR OU SCHEDULER OBJETIVOS DO ESCALONAMENTO:
- MANTER A CPU OCUPADA A MAIOR PARTE DO TEMPO
- BALANCEAR A UTILIZAÇÃO DOPROCESSADOR ENTRE AS DIVERSOS PROCESSOS - MAXIMIZAR O THROUGHPUT DO SISTEMA
- OFERECER TEMPO DE RESPOSTA RAZOAVEL PARA O USUÁRIO
ESCALONAMENTO
CADA ALGORITMO DE ESCALONAMENTO VISA ATENDER A UM TIPO DE PROCESSAMENTO
OS CRITÉRIOS DE ESCALONAMENTO PODEM SER (DEPENDE DE CADA SISTEMA):
- UTILIZAÇÃO DE CPU
- THROUGHPUT - QUANTIDADE DE PROCESSOS EXECUTADO EM UM DETERMINADO INTERVALO DE TEMPO
- TEMPO DE TURNAROUND - É O TEMPO QUE O PROCESSO LEVA DESDE A SUA ADMISSÃO NO SISTEMA ATÉ O SEU TÉRMINO
- TEMPO DE RESPOSTA - É O TEMPO DECORRIDO DO MOMENTO DA SUBMISSÃO DE UM PEDIDO AO SISTEMA ATÉ A PRIMEIRA RESPOSTA PRODUZIDA
ESCALONAMENTO
TIPOS DE ESCALONAMENTO
- NÃO-PREEMPTIVO
- NESTE TIPO DE SISTEMA, QUANDO UM PROCESSO GANHA O DIREITO DE UTILIZAR A CPU, NENHUM OUTRO PROCESSO PODE LHE RETIRAR ESSE RECURSO (CPU), ISTO É O PROCESSO PODE UTILIZAR O PROCESSADOR ENQUANTO FOR NECESSÁRIO
- PREEMPTIVO
- NESTE TIPO DE SISTEMA, O SISTEMA PODE INTERROMPER A EXECUÇÃO DE UM PROCESSO PARA QUE OUTRO PROCESSO UTILIZE O PROCESSADOR
ESCALONAMENTO NÃO-PREEMPTIVO
ESCALONAMENTO FIFO
✓ PRIMEIRO A ENTRAR PRIMEIRO A SER SELECIONADO PARA EXECUÇÃO
✓ IMPLEMENTADO ATRAVÉS DE UMA FILA
✓ UM PROCESSO QUANDO ENTRA NO ESTADO DE PRONTO É COLOCADO NO FINAL DA FILA
✓ PROBLEMAS
IMPOSSIBILIDADE DE PREVER QUANDO UM PROCESSO TERÁ A SUA EXECUÇÃO INICIADA
PROCESSOS CPU-BOUND IRÃO PREJUDICAR OS PROCESSOS IO-BOUND
NÃO É EFICIÊNTE
ESCALONAMENTO NÃO-PREEMPTIVO
ESCALONAMENTO SHORTEST-JOB-FIRST (SJF)
✓ ASSOCIA A CADA PROCESSO AO SEU TEMPO DE EXECUÇÃO, OU SEJA, QUANDO O PROCESSADOR ESTÁ LIVRE, O PROCESSO EM ESTADO DE PRONTO QUE
PRECISAR DE MENOS TEMPO DE UCP PARA TERMINAR SEU PROCESSAMENTO É SELECIONADO PARA EXECUÇÃO
✓ FAVORECE PROCESSOS QUE NECESSITAM DE POUCO TEMPO DE CPU
✓ PROBLEMA É DETERMINAR O TEMPO DE EXECUÇÃO DE CADA PROCESSO
✓ESTE SISTEMA NÃO PODE SER UTILIZADO EM SISTEMAS INTERATIVOS
ESCALONAMENTO NÃO-PREEMPTIVO
A PARTIR DO MOMENTO QUE O PROCESSO ESTÉ EM EXECUÇÃO, VOLUNTARIAMENTE LIBERA O PROCESSADOR E RETORNANDO A FILA DE PRONTO
TODOS OS PROCESSOS DEVEM COOPERAR EXPONTANEAMENTE PARA QUE O ANDAMENTO DE OUTROS PROCESSOS NÃO SEJAM AFETADOS.
SE UM PROCESSO “MAL COMPORTADO”NÃO LIBERAR A CPU, NADA PODERÁ SER FEITO, A NÃO AGUARDAR OU .... “BOOT”
EXEMPLO: WINDOWS 3.11
ESCALONAMENTO PREEMPTIVO
O ESCALONAMENTO PREEMPTIVO PERMITE QUE O SISTEMA DÊ ATENÇÃO AOS
PROCESSOS MAIS PRIORITÁRIOS E TAMBÉM O COMPARTILHAMENTO DO PROCESSADOR É FEITO DE UMA MANEIRA MAIS UNIFORME ENTRE OS PROCESSOS.
A TROCA DE UM PROCESSO POR OUTRO NA CPU (MUDANÇA DE CONTEXTO) CAUSADA PELA PREEMPÇÃO, GERA UM OVERHEAD AO SISTEMA. É NECESSÁRIO ESTABELECER CORRETAMENTE OS CRITÉRIOS DE PREEMPÇÃO PARA NÃO SOBRECARREGAR O SISTEMA
ESCALONAMENTO PREEMPTIVO
ESCALONAMENTO CIRCULAR (ROUND ROBIN)
✓ SEMELHANTE A AO FIFO, PORÉM QUANDO UM PROCESSO PASSA PARA O ESTADO DE EXECUÇÃO, EXISTE UM TEMPO-LIMITE PARA SUA UTILIZAÇÃO, ESSE TEMPO É
DENOMINADO DE TIME-SLICE OU QUANTUM. QUANDO O TEMPO EXPIRA, ELE VOLTA PARA O ESTADO DE PRONTO, DANDO A VEZ PARA OUTRO PROCESSO. ESSE MECANISMO É CHAMADO DE PREEMPÇÃO POR TEMPO
✓ ATRAVÉS DO ESCALONAMENTO CIRCULAR, NENHUM PROCESSO PODERÁ MONOPOLIZAR A CPU
✓ EM SISTEMAS INTERATIVOS COM O USUÁRIO ESTE ALGORITMO É BASTANTE ADEQUADO.
ESCALONAMENTO
PREEMPTIVO - FILA CIRCULAR
ESCALONAMENTO PREEMPTIVO
ESCALONAMENTO POR PRIORIDADE
✓ O ESCALONAMENTO CIRCULAR CONSEGUE MELHORAR A DISTRIBUIÇÃO DO TEMPO DA CPU, PORÉM NÃO CONSEGUE IMPLEMENTAR UM COMPARTILHAMENTO
DIFERENCIADO ENTRE OS PROCESSOS, ISTO ACONTECE EM RAZÃO DE O
ESCALONAMENTO CIRCULAR TRATAR TODOS OS PROCESSOS DE UMA MANEIRA IGUAL, O QUE NEM SEMPRE É O IDEAL
✓ PROCESSOS IO-BOUND COMPETEM DE FORMA IGUAL COM OS PROCESSOS CPU- BOUND
ESCALONAMENTO PREEMPTIVO
ESCALONAMENTO POR PRIORIDADE
✓EM CERTAS CIRCUNSTANCIAS, ALGUNS PROCESSOS DEVEM SER TRATADOS DE MANEIRA DIFERENTE DE OUTROS PROCESSOS
✓ É PRECISO ASSOCIAR A CADA UM DELES UMA PRIORIDADE DE EXECUÇÃO
✓ NESSE ESQUEMA, PROCESSOS DE MAIOR PRIORIDADE SÃO ESCALONADOS
PREFERENCIALMENTE, ISTO É, TODA VEZ QUE UM PROCESSO FOR PARA A FILA DE PRONTO COM PRIORIDADE SUPERIOR AO PROCESSO EM EXECUÇÃO, O SISTEMA
DEVERÁ INTERROMPER O PROCESSO CORRENTE, COLOCÁ-LO NO ESTADO DE PRONTO E SELECIONAR O DE MAIOR PRIORIDADE. ESTE MECANISMO É DEFINIDO COMO
PREEMPÇÃO POR PRIORIDADE
ESCALONAMENTO PREEMPTIVO
ESCALONAMENTO POR PRIORIDADE
✓A PRIORIDADE PODE SER ESTÁTICA OU DINÂMICA
✓A PRIORIDADE É DITA ESTÁTICA QUANDO NÃO É MODIFICADA DURANTE A EXISTÊNCIA DO PROCESSO
✓ NA PRIORIDADE DINÂMICA, A PRIORIDADE DO PROCESSO PODE SER AJUSTADA DE ACORDO COM O TIPO DE PROCESSAMENTO REALIZADO PELO PROCESSO
✓A PRIORIDADE DE UM PROCESSO VAI AUMENTANDO A MEDIDA QUE O MESMO PERMANECE NA FILA DE PRONTO, APÓS A SUA EXECUÇÃO A PRIORIDADE É A MAIS BAIXA POSSÍVEL
✓ DE TEMPOS EM TEMPOS É REALIZADO UM RECALCULO DE PRIORIDADE DOS PROCESSOS PRONTOS
ESCALONAMENTO PREEMPTIVO
ESCALONAMENTO POR MÚLTIPLAS FILAS
✓ COMO DIVERSOS PROCESSOS DO SISTEMA POSSUEM CARACTERÍSTICAS DE PROCESSAMENTO DIFERENTES, É DIFÍCIL QUE UM ÚNICO MECANISMO DE ESCALONAMENTO SEJA ADEQUADO A TODOS OS TIPOS DE PROCESSO.
✓ UMA BOA POLÍTICA SERIA CLASSIFICAR OS PROCESSOS EM FUNÇÃO DO TIPO DE PROCESSAMENTO REALIZADO E APLICAR A CADA GRUPO MECANISMOS DE
ESCALONAMENTO DISTINTO
✓ O ESCALONAMENTO POR MULTIPLAS FILAS IMPLEMENTA DIVERSAS FILAS DE PROCESSO NO ESTADO DE PRONTO, ONDE CADA PROCESSO É ASSOCIADO
EXCLUSIVAMENTE A UMA DELA.
✓CADA FILA POSSUI UMA PRIORIDADE ASSOCIADA
ESCALONAMENTO PREEMPTIVO
ESCALONAMENTO POR MÚLTIPLAS FILAS
ESCALONAMENTO COM MÚLTIPLOS PROCESSADORES
✓ EXISTE UMA [ÚNICA FILA DE PRONTO E SÃO ESCALONADOS NO PRIMEIRO PROCESSADOR DISPONÍVEL
✓ NO CASO DE DOIS OU MAIS PROCESSADORES SE TORNAR DISPONÍVEL EM UM MESMO INSTANTE, NÃO PODE HAVER A POSSIBILIDADE DE UM PROCESSO SER ESCALONADO POR DOIS PROCESSADORES DIFERENTES.
✓ A MEMÓRIA FÍSICA É ÚNICA PARA TODOS OS PROCESSADORES, CONTENDO ASSIM TODOS OS PROGRAMAS, NÃO FAZ DIFERENÇA EM QUAL PROCESSADOR A EXECUÇÃO OCORRERÁ.
ESCALONAMENTO COM MÚLTIPLOS PROCESSADORES