2.
A multiprogramação
é uma
técnica
utilizada
em
sistemas
operacionais para maximizar o uso da
CPU. Nessa técnica, a memória é
dividida em várias partes que contem
um job cada. Enquanto um job está
fazendo uma operação de entrada e
saída, a CPU passa a executar outro job
que esteja em outra parte da memória,
evitando a ociosidade da CPU.
3.
Todos os computadores modernos podem
fazer várias coisas ao mesmo tempo.
Em um sistema de multiprogramação , a
CPU também alterna de um para o outro,
executando cada um por dezenas ou
centenas de milissegundos.
Essa alternância entre programas da CPU
pode
ser
chamada
de
PSEUDOPARALELISMO.
4.
Ser justo: Todos os processos devem ser tratados
igualmente, tendo possibilidades idênticas de uso
do processador, devendo ser evitado o
adiamento indefinido.
Maximizar a produtividade (troughput): Procurar
maximizar o número de tarefas processadas por
unidade de tempo.
Ser previsível: Uma tarefa deveria ser sempre
executada com aproximadamente o mesmo
tempo e custo computacional.
Minimizar o tempo de resposta para usuários
interativos.
5.
O monitoramento de vários processos é
uma atividade complexa e por esta
razão foram sendo criados alguns
modelos que tornam essa alternância
entre processos, mais fácil de ser tratado.
Trataremos em nosso trabalho do modelo
de quatro modelos de agendamento: O
agendamento garantido, agendamento
por sorteio, agendamento de tempo real
e agendamento de dois níveis.
7.
O SO faz promessas e deve mantê-las.
O agendador sabe exatamente o tempo
necessário para realizar cada operação do
sistema operacional.
Cada operação deve ter um tempo máximo
de execução garantido.
O agendador garantido altera a prioridade
dinamicamente, garantindo o mesmo tempo
de execução.
A Fórmula que a CPU usa para determinar o
tempo de cada programa é: ( 1/n CPU).
8.
Supondo que se tenha x usuários conectados
quando você estiver trabalhando, você receberá
apenas 1/x do desempenho da CPU.
Para o cumprimento dessa promessa, o sistema
deve monitorar quanto da CPU cada processo teve.
Ele garante aos processos sua execução, dando a
todos eles a mesma quantidade de tempo de
execução utilizando a CPU .
O sistema calcula quanto da CPU é atribuído a cada
processo, ou seja, o tempo desde sua criação dividido
por x.
A proporção entre o tempo real da CPU e o tempo da
CPU atribuído é simples, levando-se em conta que a
quantidade de tempo da CPU é conhecida.
9.
Exemplo:
Se 3 processos querem executar, o
agendador fornece a cada um deles 3
segundos de execução para utilizar CPU. O 1º
processo executa 3 segundos e pára, então
entra o 2º executa 3 segundos e pára, o 3º
executa em 3 segundos pára e o 1º executa
novamente 3 segundos e assim por diante
até eles terminarem sua execução.
10. O Sistema Operacional distribui tokens (fichas),
numerados entre os processos, para o escalonamento é
sorteado um numero aleatório para que o processo ganhe a
vez na CPU, processos com mais tokens têm mais chance de
receber antes a CPU.
11.
O agendamento por sorteio, tem como base a
distribuição de bilhetes de loteria de processos,
há um sorteio 50 vezes por segundo assim o
ganhador deste sorteio recebe uma pequena
porcentagem do tempo da CPU, ou seja, recebe
20ms da mesma.
Processos mais importantes recebem bilhetes
extra para que haja uma maior chance dos
mesmo serem ganhadores.
Uma grande desvantagem desse agendamento é
que ele pode demorar para executar um
processo que merece prioridade, mesmo que
esse tenha bilhetes extras.
12.
Quando se tem a necessidade de tomar
uma decisão, o agendador faz um
sorteio aleatório dessa forma a tarefa
que estiver com esse bilhete irá receber
o recurso.
13. Nesse sistema, o tempo realiza
uma função essencial, o computador
deve
interagir
dentro
de
uma
quantidade fixa de tempo.
14.
Um sistema de tempo real é um sistema
em que o tempo desempenha um papel
essencial. Em geral, um ou mais
dispositivos físicos externos para o
computador geram estímulos, e o
computador
deve
interagir
apropriadamente a eles dentro de uma
quantidade fixa de tempo.
15. Hard real time: significa que há prazos
finais a serem cumpridos.
Soft real time: É a toleração de perda de
prazo final .
O agendador tem como função fazer
com que em ambos os casos o prazo
seja cumprido.
Os algoritmos de agendamento de
tempo real podem ser dinâmicos ou
estáticos.
16. No caso de a memória principal for insuficiente, alguns
processos temporários terão que permanecer em disco, inteiros
ou em partes. Isso implica em comutações entre disco e
Memória e uma maneira prática para lidar com essa comutação de
processos é utilizar um agendador de dois níveis;
17. Um “agendador” de dois níveis deve
mover processos entre disco e memória
e também eleger processos para
executar na memória.
Critérios para execução de processos:
1. Tempo em que o processo ficou no
disco e memória.
2. Tempo de CPU no processo.
3. Tamanho do processo.
4. Prioridade do processo.