Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS PARA REDES Prof. Luiz di Marcello Aula 3 – Gerência do Processador OBJETIVOS DA AULA Descrever o funcionamento do escalonador Diferenciar políticas preemptivas de não-preemptivas Identificar as políticas de escalonamento GERÊNCIA DO PROCESSADOR Escalonador e Escalonamento O processador (UCP) é o componente do computador que realiza (executa) as instruções dos programas Com a possibilidade da UCP ser compartilhada entre diversos processos (multiprogramação), o SO possui critérios para realizar a seleção do(s) processo(s) que serão executados, ou seja, aquele(s) que irão transitar do estado de PRONTO para o estado de EXECUÇÃO *Os novos sistemas computacionais são multicore GERÊNCIA DO PROCESSADOR A parte do código do SO responsável pelo escalonamento (scheduling) é o escalonador (scheduler) Escalonador e Escalonamento GERÊNCIA DO PROCESSADOR Portanto, para determinar a ordem com que os processos serão executados, o escalonador utiliza critérios definidos por um algoritmo ou política de escalonamento de processos Isso consiste na Gerência do Processador Escalonador e Escalonamento GERÊNCIA DO PROCESSADOR Algoritmos de escalonamento consideram vários fatores: A taxa de utilização de UCP: medição da ocupação da UCP Throughput: quantidade de processos terminados por unidade de tempo Turnaround: tempo transcorrido desde o momento em que o processo entra (criação/admissão) e o instante em que termina sua execução; digamos que seja o “tempo de vida” Tempo de resposta: tempo decorrido entre o instante da submissão de um e a apresentação da resposta Tempo de espera: tempo total gasto na fila de PRONTO Política de Escalonamento: Objetivos GERÊNCIA DO PROCESSADOR É a capacidade que o SO tem de tirar de execução um processo em detrimento de outro Capacidade de um SO interromper um processo em execução e substituí-lo por um outro, ocasionando troca de contexto Preempção (ou Preemptividade): Definição GERÊNCIA DO PROCESSADOR Uma tarefa pode deixar a UCP (sair de EXECUÇÃO), caso termine sua fatia de tempo (preempção por tempo), execute uma chamada de sistema ou caso ocorra uma interrupção que acorde uma tarefa mais prioritária (preempção por prioridade), que estava suspensa aguardando um evento A cada interrupção, exceção ou chamada de sistema, o escalonador pode reavaliar todas as tarefas da fila de PRONTO e decidir se mantém ou substitui a tarefa em EXECUÇÃO Escalonamento Preemptivo GERÊNCIA DO PROCESSADOR A tarefa em execução permanece no processador tanto quanto possível, só abandonando-a caso termine de executar, solicite uma operação de entrada/saída ou libere explicitamente o processador, voltando à fila de tarefas prontas Esses sistemas são ditos cooperativos quando há a cooperação das tarefas entre si, auxiliando na gestão do processador Escalonamento Não-Preemptivo GERÊNCIA DO PROCESSADOR Trata-se do algoritmo de escalonamento de implementação mais simples: o primeiro processo que solicita a CPU é o primeiro a ser alocado Os processos em estado de PRONTO são organizados com base na política FIFO (First In First Out) O tempo médio de espera é um tanto longo e os processos importantes podem ser obrigados a esperar devido à execução de outros processos menos importantes dado que não há distinção entre processos Escalonamento First Come First Served (FCFS) Políticas de Escalonamento Não-Preemptivas GERÊNCIA DO PROCESSADOR O processo que tem o menor ciclo de processamento (tempo de execução) será selecionado para usar o processador Esta política é considerada ótima, mas impossível de implementar na prática, já que não há modo de saber o tempo de duração do processo Escalonamento Shortest Job First (SJF) Políticas de Escalonamento Não-Preemptivas GERÊNCIA DO PROCESSADOR A cada processo é associada uma prioridade e a CPU é alocada para o processo com a mais alta prioridade Processos com prioridades iguais são escalados segundo a política FCFS O maior problema deste escalonamento é o starvation (processo de baixa prioridade indefinidamente postergado), que pode ser prevenido com aging: aumento gradual da prioridade de um processo, à medida que ele fica esperando Escalonamento por Prioridade Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR A prioridade de um processo pode ser de dois tipos: Prioridade estática: não muda durante a vida do processo Prioridade dinâmica: prioridade ajustada de acordo com o tipo de processamento e/ou carga do sistema A preempção por prioridade ocorre quando o SO retira um processo em EXECUÇÃO para dar lugar a outro processo de maior prioridade Escalonamento por Prioridade Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR Os processos entram na fila de PRONTO na ordem de chegada e sai o primeiro que chegou (FIFO), sendo que cada processo ganha um tempo limite (fatia de tempo, time-slice ou quantum) para EXECUÇÃO Após esse tempo ele é interrompido (preempção por tempo) e colocado no final da fila de PRONTO Se o quantum for suficiente para o processo finalizar ou se o processo solicitar uma operação de E/S, outro processo do início da fila é selecionado para executar Escalonamento Round Robin ou Circular Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR O tempo médio de espera é geralmente longo O desempenho do algoritmo depende bastante da escolha do quantum, já que a troca de contexto (alternar entre um processo e outro) gasta tempo: quantum muito pequeno ocasiona grande quantidade de trocas de processos e a eficiência da CPU é reduzida; quantum muito grande pode tornar a política Round Robin numa FCFS comum Escalonamento Round Robin ou Circular Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR Implementa diversas filas de processos em estado de PRONTO, uma para cada prioridade; a prioridade é da fila e não do processo Cada fila separada tem algoritmo de escalonamento próprio (ex.: foreground (interativos) usam escalonamento Round Robin, enquanto background (batch) usam algoritmo FCFS Os processos devem ser classificados previamente em função do tipo de escalonamento para poderem ser corretamente alocados nas filas; não permite mudança de fila Escalonamento por Múltiplas Filas (sem Realimentação) Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR O sistema tenta identificar dinamicamente o comportamento de cada processo, ajustando suas prioridades de execução e mecanismos de escalonamento (mecanismo adaptativo) Também há prioridade entre as filas; o sistema só pode escalonar processos de uma das filas quando todas as outras de maior prioridade estiverem vazias Escalonamento por Múltiplas Filas com Realimentação Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR O processo é criado e entra no final da fila de maior prioridade; quando deixa a CPU por preempção por tempo, o processo é redirecionado para uma fila de menor prioridade, onde a fatia de tempo é maior Quanto maior for a prioridade de uma fila, menor será a fatia de tempo associada a esta fila Escalonamento por Múltiplas Filas com Realimentação Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR É usado quando existem vários processadores, havendo compartilhamento da carga de processamento Implementa-se uma só fila de PRONTO, que pode ser atendida de diferentes formas: Cada processador vai à fila e seleciona um processo; não se pode permitir que um processo seja escolhido por mais de um processador e/ou que um processo não seja escolhido por nenhum processador Escalonamento com Múltiplos Processadores Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR Implementa-se uma só fila de PRONTO, que pode ser atendida de diferentes formas: Usar um processador como escalonador de processos para os outros processadores, criando uma estrutura mestre-escravo (master-slave) Um processador é responsável por todas as decisões de escalonamento, processamento de E/S, etc. (multiprocessamento assimétrico); osdemais processadores só executam código do usuário Escalonamento com Múltiplos Processadores Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR Tempo real HARD: as tarefas têm que terminar em tempos definidos, o SO tem que admitir o processo somente quando ele poderá terminar na hora certa; normalmente, este tipo de sistema possui hardware específico Tempo real SOFT: neste tipo de sistema, os processos de tempo real devem ter a mais alta prioridade; nesse caso não deve haver time sharing; o tempo de latência deve ser pequeno para que o processo possa começar a executar o mais rapidamente possível Escalonamento de Tempo Real Políticas de Escalonamento Preemptivas GERÊNCIA DO PROCESSADOR Engenheiro de Sistemas e Computação pela UERJ, Especialista em Sistemas Abertos e Mestre em Educação. Atualmente, é Coordenador (Graduação e Pós-Graduação), Professor adjunto e Tutor da Universidade Estácio de Sá. Tem experiência na área de Ciência da Computação, com ênfase em Arquitetura de Sistemas de Computação e Tecnologias da Informação e Computação, e também na área de Educação, com ênfase em Tecnologias de Informação e Comunicação nos Processos Educacionais http://lattes.cnpq.br/6477530917342363 Prof. Luiz di Marcello Senra Santiago GERÊNCIA DO PROCESSADOR
Compartilhar