Você está na página 1de 5

1- Escalonamento de Processos

Quando mais de um processo está ativo (pronto para executar) cabe ao


sistema operacional decidir qual terá a posse da CPU.

A parte do sistema operacional que toma esta decisão é chamada


escalonador e o algoritmo utilizado é o algoritmo de escalonamento.

Os critérios para os algoritmos de escalonamento são:

Processo: garantir que cada processo tenha acesso a CPU;

Eficiência: manter a CPU ocupada praticamente 100% do tempo;

Tempo de resposta: minimizar o tempo de resposta na execução dos


processos principalmente os interativos editores planilhas etc;

tempo de espera: minimizar o tempo de espera de serviços não interativos


compilação impressão etc;

vazão: maximizar o numero de processos executados por


hora.

É importante observar que alguns desses objetivos são contraditórios como


por exemplo, se um algoritmo favorece os processos interativos estará
comprometendo os não interativos.

Algoritmos de escalonamento:

1.1 - Escalonamento Round Robin

Todos os processos tem a mesma importância.


Este e o mais antigo e simples algoritmo de escalonamento Cada
processo e executado por um intervalo de tempo quantum.
Se o processo ainda estiver executando ao final do quantum ele e suspenso
e a CPU e alocada a outro processo.
Se o processo acabar ou for bloqueado antes do final do quantum a CPU
também e passada a outro processo.
O tamanho do quantum é crítico pois, se for muito pequeno diminui a
eficiência da CPU ( necessidade de troca de processo, se for muito grande
degrada a resposta para os processos interativos).
1.2 - Algoritmos com Prioridades

Adequado para tratamento de situações de emergência.


O princípio do escalonamento por prioridades e que cada processo tem
associada uma prioridade e processos com prioridades maiores devem ser
executados primeiro.
Para prevenir que processos de alta prioridade executem indefinidamente o
escalonador pode diminuir a prioridade dos processos com o aumento de seu
respectivo tempo de execução. Este artifício é chamado de envelhecimento.

1.3 - Múltiplas Filas

Este e um algoritmo que define classes com prioridades.


Processos na classe de menor prioridade são executados por um quantum
processos na classe seguinte por dois quanta na próxima classe por quatro quanta
e assim por diante.
Quando um processo utiliza todos os quanta a ele alocados o mesmo e
interrompido e sua classe tem a prioridade diminua.
Este algoritmo diminui o numero de comutações da CPU entre os
processos ativos

1.4 - Tarefas Pequenas Primeiro

Este algoritmo e designado para aplicações não interativas onde o


tempo médio de execução e conhecido anteriormente.
O algoritmo define que as tarefas menores devem ser executadas primeiro.
Prova-se que esta política minimiza o tempo médio de espera dos jobs.

1.5 - Algoritmo PolicyDriven

Este algoritmo particiona a CPU de forma igual entre os usuários não entre
os processos.
O algoritmo define que se existirem N usuários ligados ao sistema cada
usuário devera receber n do poder da CPU Para isto o sistema deve manter
informações do tempo de CPU
que cada usuário já dispôs desde que entrou no sistema e do instante de tempo
que cada usuário ligou se
ao sistema.
2 - Entrada e Saída

Uma das funções do sistema operacional e controlar todos os dispositivos


de entrada e saída (ES) do computador emitindo comandos para os dispositivos
atendendo interrupções e manipulando erros.
Deve também prover uma interface simplificada para os dispositivos e se
possível a interface deve ser a mesma para todos os dispositivos.
O código de entrada e saída representa uma fração significativa do total do
sistema operacional.

2.1- Princípios do hardware

Visão de hardware:

Engenheiros eletrônicos => chips e outros componentes físicos.

Programadores => interface apresentada ao software, os comandos,


funções e erros que são reportados.

2.2 - Dispositivos de ES

Dispositivos de ES podem ser divididos em duas categorias:

dispositivos de bloco

dispositivos de caractere.

Um dispositivo de bloco armazena informações em blocos de tamanho fixo


cada um com seu próprio endereço, ou seja aceita acesso aleatório.

Ex: Discos são dispositivos de bloco.

O outro tipo de dispositivo de ES o de caractere libera ou aceita uma fila de


caracteres sem estrutura.
Ele não e endereçável e não aceita operações de busca.

Ex: Terminais, impressoras

Este modelo não é perfeito porem é geral o suficiente para ser usado como
base na construção de um sistema operacional.

2.3 - Controladores de Dispositivos

Unidades de ES consistem tipicamente de componentes mecânicos e


eletrônicos.
A parte eletrônica é controladora de dispositivo.
A parte mecânica é o dispositivo propriamente dito.
Uma controladora pode ser conectada a diversos dispositivos porem um
dispositivo só pode ser conectado a uma controladora, a menos dispositivos
especiais que trabalham com tolerância a falhas.

As controladoras são responsáveis por transformar as informações


recebidas dos dispositivos em bits e bytes que sejam entendidos pelo computador,
tratar possíveis erros e controlar os dados de status do dispositivo.

2.4 - Princípios do Software

Os objetivos gerais do software de ES são fáceis de serem estabelecidos. A


idéia básica e organizar o software como uma serie de camadas com as mais
baixas escondendo peculiaridades do hardware e as mais altas mostrando-se
simples para o usuário.

2.4.1 - Objetivos do Software de ES

O conceito chave no projeto do software de ES e a independência do


dispositivo Deve ser possível escrever programas que usem arquivos gravados
em disquete ou em disco rígido sem a necessidade de modificar o programa para
cada tipo de dispositivo.
De preferência deve ser possível utilizar o programa sem recompila-lo.

2.4.2Características:

Uniformidade de nome.

O nome de um dispositivo ou arquivo deve ser simplesmente uma cadeia


de caracteres string ou um inteiro não dependente do dispositivo em nenhum
caso.

Manipulação de erros.

Em geral os erros devem ser manipulados o mais próximo possível do


hardware. Se o controlador encontra um erro ele deve tentar corrigi-lo se possível,
caso não, o driver do dispositivo deve faze-lo talvez apenas tentando ler
novamente.
Muitos erros são transientes e desaparecem se a operação for repetida
Somente se as camadas mais baixas não conseguirem resolver o problema e que
este deve ser apresentado as camadas superiores.

Transferências.
Podem ser síncronas blocos ou assíncronas manipuladas por interrupção.
Muitos dispositivos de ES são assíncronos a CPU inicia a transferência e se
ocupa de outras atividades ate que chegue uma interrupção o sistema operacional
realiza as operações de forma assíncrona, mas para o usuário ela se apresenta
como transferência de blocos o que torna muito mais simples a programação.
Alguns dispositivos de ES como discos podem ser utilizados por muitos
usuários ao mesmo tempo, outros dispositivos como impressoras devem ser
dedicados a um único usuário ate que este finalize a operação.
A inclusão de dispositivos dedicados introduz uma variedade de problemas
como o deadlock. Sistemas operacionais devem manipular os dispositivos de
maneira a evitar estes problemas Estes objetivos podem ser organizados de
maneira clara e eficiente pela estruturação do software em quatro camadas

• Manipulação de interrupções
• Drivers de dispositivos
• Software do sistema operacional independente do dispositivo
• Software do nível do usuário

Você também pode gostar