Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Parte I - Fundamentos
Tipos de SO Interrupo Tipos de Processos Filas de Escalonamento Tipos de Escalonamento
Conceitos Bsicos
Tipos de S.O.
Monotarefa Multitarefa Monousurio Multiusurio
Como evitar que um processo monopolize o sistema? Sistemas de tempo compartilhado (Time Sharing Systems) Permite sistemas interativos (entrada/sada) Requer temporizadores (timers) Interrupes
Multiprocessamento
O ndice do processo contm o apontador para a lista de processos PC (Program Counter) = contador de programas Uma troca de processos consiste em trocar o valor dos registradores de contexto da CPU
Memria
...
Lista de proc.
... ...
Contexto
Proc. A.
Dados Cdigo
Contexto Dados
Proc. B.
Cdigo
Suporte do Hardware
Temporizadores (timers) Interrupes Proteo de memria
Suporte do S.O.
Escalonamento dos processos Alocao de memria Gerenciamento dos perifricos
Conceitos Bsicos:
A importncia da Interrupo
Num sistema simples, CPU deve esperar a execuo do comando de E/S
A cada chamada do comando write a CPU fica esperando o dispositivo executar o comando.
Conceitos Bsicos:
A importncia da Interrupo
Um sistema com interrupo no fica esperando
A CPU solicita o write e fica executando outras tarefas at ser interrompida pelo disco.
Conceitos Bsicos
Conceitos Bsicos
Interrupo do Programa
Conceitos Bsicos
Processo de Interrupo
Dispositivo pede interrupo Salva resto da Informao do contexto do processo
Hardware
Software
Processos X Threads
Tipos de sistemas
1 processo com 1 thread: MSDOS N processos, cada um com 1 thread: OS/386, VAX/VMS, Windows 3.1, UNIX antigo 1 processo com N threads: kernels para sistemas embarcados N processos, cada um com N threads: Windows 95/98,NT, UNIX
Escalonamento de Processos
Tipos de Processos
CPU-bound:
Se o processo gasta a maior parte do seu tempo usando a CPU ele dito orientado computao (compute-bound ou CPU-bound) processos com longos tempos de execuo e baixo volume de comunicao entre processos
ex: aplicaes cientficas, engenharia e outras aplicaes que demandam alto desempenho de computao
I/O-bound:
Se um processo passa a maior parte do tempo esperando por dispositivos de E/S, diz-se que o processo orientado E/S (I/Obound)
processos I/O-bound devem ter prioridade sobre processos CPUbound Batch (lote) x Interativos
Escalonamento
Tipos de Processos
Surtos de uso da CPU se alternam com perodos de espera por E/S tipos de processo:
a) orientado CPU (CPU-bound) b) orientado E/S (I/O-bound)
Escalonamento de processos
Quando um ou mais processos esto prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro A parte do sistema operacional responsvel por essa deciso chamada escalonador, e o algoritmo usado para tal chamado de algoritmo de escalonamento
Escalonamento de Processos
Abstrao
Uma mquina para cada processo Paralelismo real
P1
T11
T12
P2
T0
P3 P3
T22
Escalonamento de Processos
Realidade
P1 1
T11
T12
T0
T22
T0
41 51
70
90
121
Filas de Escalonamento
High-level
Decide quantos programas so admitidos no sistema Aloca memria e cria um processo Controla a long-term queue
Short-term
Decide qual processo deve ser executado Controla a short-term queue
I/O
Decide qual processo (com I/O) pendente deve ser tratado pelo dispositivo de I/O Controla a I/O queue
Filas de Escalonamento
Short-term scheduling
Process request Longterm queue Shortterm queue FIM
CPU
I/O queue I/O queue I/O queue
High-level scheduling
Interrupt of process Interrupt from I/O
I/O I/O
I/O scheduling
Interrupt Handler
I/O
Exemplo
Sist. Operacional Contr. Servios Escalonador contr. interrupo A Rodando Execu Sist. Operacional -tando Contr. Servios Escalonador contr. interrupo A Bloqueado Sist. Operacional Contr. Servios Escalonador contr. interrupo A Bloqueado
Processo A parou. Por que? Req. servio ao S.O. Interrupo de A Ex. erro Interrupo de outra fonte. Ex. I/O Tempo acabou
Executando
B Pronto
B Pronto
Outros processos
Outros processos
tempo
Caractersticas de Escalonamento
Justia (fairness)
Todos os processos tm chances iguais de uso dos processador
Eficincia
Taxa de ocupao do processador ao longo do tempo
Tempo de Resposta
Tempo entre a ocorrncia de um evento e o termino da ao correspondente
Turnaround
Tempo de resposta para usurios em batch Minimizar o tempo que usurios batch devem esperar pelo resultado
Throughput
No. de jobs (processos) executados por unidade de tempo
Tipos de Escalonamento
Mecanismos de Escalonamento
Preemptivo x No-preemptivo Se diz que um algoritmo/sistema operacional preemptivo quando um processo entra na CPU e o mesmo pode ser retirado da CPU antes do trmino da sua execuo
Polticas de Escalonamento
Round-Robin FIFO (First-In First-Out) Hbridos
Parties de Lote (Batch) MFQ - Multiple Feedback Queue
Escalonamento
Preemptivo
Permite a suspenso temporria de processos Quantum ou time-slice: perodo de tempo durante o qual um processo usa o processador a cada vez Preempo
T12
P1 1
T11
T0
T22
T0
41 51
70
90
121
Soluo?
Para melhorar a eficincia da CPU, poderamos ajustar o quantum para 500 ms
Agora o tempo gasto com troca de contexto menos do que 1% desprezvel...
Considere o que aconteceria se dez usurios apertassem a tecla <ENTER> exatamente ao mesmo tempo, disparando cada um processo:
Dez processos sero colocados na lista de processo aptos a executar Se a CPU estiver ociosa, o primeiro comear imediatamente, o segundo no comear cerca de segundo depois, e assim por diante O azarado do ltimo processo somente comear a executar 5 segundos depois do usurio ter apertado <ENTER>, isto se todos os outros processos tiverem utilizado todo o seu quantum Muitos usurios vo achar que o tempo de resposta de 5 segundos para um comando simples muita coisa
Moral da estria
Ajustar um quantum muito pequeno causa muitas trocas de contexto e diminui a eficincia da CPU, ... mas ajust-lo para um valor muito alto causa um tempo de resposta inaceitvel para pequenas tarefas interativas
Quantum grande: Diminui nmero de mudanas de contexto e overhead do S.O. X Ruim para processos interativos
Escalonamento Parte II
Algoritmos
Polticas de Escalonamento
Round-Robin
Uso de uma lista de processos sem prioridade Escalonamento preemptivo Simples e justo Bom para sistemas interativos
Polticas de Escalonamento
CPU CPU A
FIM
B B
C C
D D
E E
F F
N N
Polticas de Escalonamento
Hbridos
Como combinar processos batch com interativos? Uso de Parties de Lote (batch)
O sistema aceita tantos processos batch quantas forem as parties de lote O sistema aceita todos os processos interativos Escalonamento em dois nveis
Segue...
Escalonamentos Hbridos
Parties de Lote
Memria
Processos interativos so ativados imediatamente
Processos Interativos
B B
C C
D D
E E
F F
Escalonamentos Hbridos
Segue
Escalonamentos Hbridos
Fila 1 Fila 2
Q u a n t u m
Fila n
P r i o r i d a d e
Exemplo de escalonamento job mais curto primeiro (Shortest Job First SJF)
Concluses
Como funcionam dois ou mais programas ao mesmo tempo?
Conceitos
Processos x Threads (processos leves)
Escalonamento (cont.)
Objetivos
Justia Eficincia Tempo de Resposta
Interrupo
Cooperao hardwaresoftware
Conceitos
Preempo Quantum (time-slice) Troca de contexto
Escalonamento
Tipos de processos
CPU-bound x I/O-bound Lote (batch) x interativo
Algoritmos
Propsito x Complexidade x Eficincia
Filas de escalonamento
Long-term (admisso) Short-term I/O