6. Gerenciamento do processador 6.1. Introdução A gerência do

Propaganda
6. Gerenciamento do processador
6.1. Introdução
A gerência do processador tornou-se uma técnica importante do sistema
operacional a medida que os sistemas multiprogramáveis começaram a ser mais
utilizados, onde múltiplos processos são compartilhados pela(s) CPU(s). Esta
gerência e a multiprogramação esta estruturada com base na política de
escalonamento.
O gerenciamento trata o processador como um recurso compartilhado entre
usuários externos ao processador e processos internos a ele. O resultado deste
tratamento é o que chamamos de gerenciamento do processador e consiste em
dois tipos de escalonamentos: o escalonamento a longo prazo da carga externa e o
escalonamento a curto prazo dos processos internos.
No ambiente multithread, cada processo pode responder a várias solicitações
concorrentemente ou mesmo simultaneamente, caso haja mais de um processador.
A grande vantagem do uso de threads é a possibilidade de minimizara alocação de
recursos do sistema, além de diminuir o overhead na criação, troca e eliminação de
processos.
Threads compartilham o processador da mesma maneira que processos e passam
pelas mesmas mudanças de estado. Para permitir a troca de contexto entre os
diversos threads, cada thread possui seu próprio contexto de hardware,com o
conteúdo dos registradores gerais, PC e SP. Quando um thread está sendo
executado, seu contexto de hardware está armazenado nos registradores do
processador.
Throughput: significa o número de processos executados em um determinado
intervalo de tempo. Quanto maior o throughput, maior o número de tarefas
executadas em função do tempo. A maximização do throughput é desejada na
maioria dos sistemas.
6.2. Critérios e tipos de escalonamento
O critério ajuda a determinar qual processo será usado em qual processador. E de
acordo com a seleção dos critérios compõe-se a política de escalonamento. Essa
política é um das diferenças entre os sistemas operacionais existentes no mercado,
pois cada sistema operacional possui a sua política adequada a suas
Elaborado por Luiz Lima e Davis Alves
Página 1
características. Apesar de cada sistema operacional adotar seus critérios, podemos
citar alguns dos principais:
 Todos os processos são tratados igualmente, não ficando processo sem
tratamento;
 Deve maximizar seu desempenho com maior número possível de processos
por unidade de tempo;
 Atender os usuários em tempos de respostas aceitáveis;
 Presivibilidade é fundamental independentemente do sistema;
 Mitigar recursos perdidos;
 Balancear o uso de recursos;
 Ocupar o máximo o processador;
 Evitar espera indefinida (starvation), e principalmente o deadlock;
 Priorizar os processos de forma a identificar os de maiores prioridades;
O objetivo de escalonamento é maximizar a utilização da CPU via
multiprogramação. O escalonamento de processador ocorre quando existe uma
política do sistema para escolher quais processos executar. A política de
escalonamento deve atender algumas premissas ligadas a desempenho e
maximização do número de processos executados, reduzir o tempo de latência
(tempo de espera antes da execução), evitar antecipação indefinida de processos e
aperfeiçoar o uso do(s) processador (es).
Escalonamento Preemptivo: É quando o sistema operacional atua de forma
sublime, pois deve saber parar um processo em execução e até mesmo substituí-lo
por um novo processo. O mercado denomina “processadores multicore” os circuitos
integrados que possuem dois ou mais núcleos de processamento completos no seu
interior. Atualmente com o surgimento desses processadores (dual core, core 2
duo, quad-core) com maior poder de processamento, consolidam nos sistemas
operacionais as políticas de escalonamento do tipo Preemptivo. Um forte uso dessa
técnica esta desenvolvida em aplicações de sistemas de tempo real, onde
caracteriza por se preocupar com o fator tempo: de processador, de espera, de
resposta, “turnaround”.
-Tempo de processador: é o tempo que um processo leva no estado de execução
durante seu processamento..
-Tempo de espera: é o tempo total que um processo permanece na fila durante seu
processamento, aguardando para ser executado.
Elaborado por Luiz Lima e Davis Alves
Página 2
-Tempo de turnaround: é o tempo que um processo leva desde a sua criação até ao
seu término, inclusive o tempo para alocação de memória, espera na fila,
processamento na CPU e nas operações de Entrada e Saída.
-Tempo de resposta: é o tempo decorrido entre uma requisição ao sistema ou à
aplicação e o instante em que a resposta é exibida.
Escalonamento Não-Preemptivo: Foi o precursor em sistemas multiprogramável,
possibilitando ao sistema operacional atuar somente ao término do processo
iniciado. Estando presente em sistemas com processamento em bacth(lote).
6.3. Escalonamento com múltiplos processadores
Podemos observar que o sistema operacional (SO) utilizado em um sistema
multiprocessador é pouco diferente do sistema computacional de grande porte, pois
ambos permitem a multiprogramação. Contudo, quando vários processadores
devem operar simultaneamente e quando várias tarefas devem ser executadas
concorrente e assincronamente, a complexidade do SO torna-se um problema mais
complexo. Devido a este fato o Escalonamento dos processos pode ser um aliado
para a solução dos problemas. O mecanismo de escalonamento atribui, a cada
processador, uma determinada tarefa a ser executada, em cada intervalo de tempo.
Como existem no sistema várias tarefas candidatas a execução, o escalonador
necessita saber qual a relação de dependência entre elas. Contudo podemos
considerar-lo de longo ou curto prazo.
O escalonamento a longo prazo é utilizado para selecionar um novo processo a
entrar no ambiente de processamento e ativá-lo, colocando-o na fila de processos
prontos para rodar. Portanto, este escalonador controla o número de processos
ativos, ou seja, o grau de multiprogramação.
O escalonamento a curto prazo é utilizado para selecionar um dos processos da fila
de processos prontos para rodar e atribuí-lo a um dos processadores do sistema,
para execução.
Podemos citar duas políticas de escalonamento com multiprocessador:
Processadores auto-escalonáveis, onde cada processador é responsável pela
seleção de um determinado processo existente na fila para leitura partilhada. E a
outra de política do processador mestre/escravo, onde o processador mestre
desempenha o papel de escalonador dos restantes denominado escravos.
Elaborado por Luiz Lima e Davis Alves
Página 3
A configuração mestre-escravo é mais eficiente para certas aplicações onde a
carga de trabalho é bem definida ou em sistemas assimétricos nos quais o mestre
tem uma capacidade computacional superior aos escravos.
A utilização de um supervisor separado em cada processador (núcleo) torna o
multiprocessador menos sujeito a uma falha grave, contudo, as reconfigurações
necessárias devido à dispersão dos arquivos e dispositivos de Entrada e Saída.
A utilização de um supervisor flutuante é a configuração mais versátil e mais
complexa das citadas anteriormente. Ela permite melhor utilização dos recursos do
sistema e uma excelente degradação na presença de falhas, contudo, não é
possível evitar os conflitos no acesso às tabelas do sistema e os atrasos devidos às
paradas.
Contudo, o principal sistema operacional dos multiprocessadores do mercado
existente não utiliza apenas uma configuração acima, mas sim a uma mescla delas.
Elaborado por Luiz Lima e Davis Alves
Página 4
Download