Beruflich Dokumente
Kultur Dokumente
Sistemas Operacionais
Prof. Viotti
Adaptado de Prof. Luciano Gaspar
4. Semestre
Sistema
Bancrio
Office
Browser
I.Explorer
Compiladores
Editores
Interpretador
de comandos
Sistema Operacional
Programas de aplicao
Programas
de Sistema
Linguagem de mquina
Microarquitetura
Dispositivos fsicos
Hardware
aplicao
S.O.
Assign(file, D:\README.TXT);
open(file);
read(file, ch);
close(file);
Move head to sector 123 in FAT
read 256 bytes to mem 36234H
move head to sector 4684753
read 1024 bytes to mem 578567
...
Recursos da mquina
processadores
espao em memria
arquivos
conexes de rede
dispositivos externos
Controle
de acesso
equilibrar uso
evitar conflitos
source app
source app
aplicao
aplicao
aplicao
Sistema Operacional
Usurio
Hardware
Hardware
Software
Usurio
Hardware
Hardware
Usurio
Sistema
Operacional
Hardware
Hardware
Sistema
Operacional
Usurio
Software
Hardware
Hardware
Sistema
Operacional
Usurio
Software
Hardware
Hardware
Monotarefa
Multitarefa
ou
Multiprogramvel
DEFINIO
O sistema operacional
tem capacidade de
executar apenas um
programa ou tarefa de
cada vez.
Exemplo: CP/M, MSDOS
Sistemas Operacionais
que tem a capacidade
de executar mais de
uma tarefa ou
programa
simultaneamente:
Exemplo: Unix,
Windows, Linux,
OS/400.
SUBDIVISO
CARACTERSTICAS
No tem
Cooperativa
Preemptiva
O S.O define
prioridades conforme
a necessidade
momentnea de cada
programa.
S. O.
Usurios
Coop. ou Preemp.
Software
Software
Hardware
Hardware
S. O. Multitarefa / Multiprogramvel
Os sistemas multiprogramados podem ser classificados de acordo
com a forma que interagem com os usurios, podendo ser
divididos em sistemas batch, de tempo compartilhado e de
tempo real.
S. O. Multitarefa / Multiprogramvel
Sistemas de Tempo Compartilhado:
Os sistemas de tempo compartilhado (timesharing) permitem a
interao dos usurios com o sistema, basicamente atravs de
terminais de vdeo e teclado (interao online). Dessa forma, o
usurio pode interagir em cada fase do desenvolvimento de suas
aplicaes e , se preciso, modific-las imediatamente.
Para cada usurio, o sistema operacional aloca uma fatia de
tempo do processador. Nesses sistemas, no s o processador
compartilhado mas tambm a memria e os perifricos. O sistema
cria para cada usurio um ambiente de trabalho prprio, dando a
impresso de que todo o sistema est dedicado, exclusivamente,
a ele.
S. O. Multitarefa / Multiprogramvel
Sistemas de Tempo Real (real time): so bem
semelhantes em implementao aos sistemas de tempo
compartilhado. A maior diferena o tempo de resposta exigido
na execuo das tarefas. Enquanto em sistemas de tempo
compartilhado o tempo de resposta pode variar sem comprometer
as aplicaes em execuo, nos sistemas de tempo real os
tempos de resposta devem estar dentro de limites rgidos, que
devem ser obedecidos, caso contrrio, podero ocorrer
problemas irreparveis.
Nos sistemas de tempo real no existe a idia de fatia de tempo,
utilizada pelos sistemas time-sharing. Um programa executa o
tempo que for necessrio, ou at que aparea outro prioritrio em
funo de sua importncia no sistema. Esta importncia ou
prioridade de execuo controlada pela prpria aplicao e no
pelo sistema operacional.
Esses sistemas so normalmente usados em controle de
processos, como no monitoramento de refinarias de petrleo,
controle de trfego areo, usinas nucleares, etc.
Monousurio
Pode fornecer
programas/servios para vrios
usurios, porm este programas
sero executados na mquina
solicitante (cliente).
Multiusurio
O Sistema atende diversos
usurios com a possibilidade de
executar os programas no
prprio servidor.
Gerncia de processos
Gerncia de memria: responsvel pelo controle e
alocao de memria aos processos ativos.
Sistema de arquivo: responsvel pelo acesso e integridade
dos dados residentes em memria secundria (por exemplo
disco, fita, etc).
Controle de I/O (controle de entrada / sada): responsvel
pelo controle e execuo de operaes de Entrada/Sada,
bem como da otimizao do uso dos perifricos.
Conceito de Processo
Um processo basicamente um programa em execuo
acompanhado dos valores atuais do contador de programas, dos
registradores e de variveis.
ESTADOS DE PROCESSO
- Novo: o processo est sendo criado;
-Em
-Pronto:
-Encerrado:
Caractersticas da Estrutura de um
Processo
nom e
P ID
o w n e r (U ID )
r e g i s tr a d o r e s
g e r a is
p rio r id a d e d e
e xe cu o
d a ta / h o r a
d e cr ia o
r e g i s tr a d o r P C
C o n te x to d e
S o f tw a r e
C o n te x t o d e
H a rd w a re
r e g i s tr a d o r S P
te m p o d e
p ro ce ssa d o r
q u o ta s
Pro g ra m a
p r iv il g io s
E sp a o d e
E n d e r e a m e n to
e n d e r e o s d e m e m r ia
p r in c ip a l a lo ca d o s
r e g i s tr a d o r
d e s ta tu s
novo
programa
encerrado
alocao
da CPU
aceito
pronto
fim de
execuo
rodando
fim do quantum
Espera por I/O
Concluso de I/O
em espera
Visualizar: Lista de processos do Windows 2000
Desempenho
Programa X Processo
Programa:
noo esttica
conjunto de instrues
no possui um estado interno
Processo:
noo dinmica
programa em execuo
possui um estado interno
Estado do processo;
Modelo PCB
Thread / Multithread
uma unidade bsica de utilizao de CPU; compreende um
ID de thread, um contador de programa, um conjunto de
registradores e uma pilha. Compartilha com outros threads
pertencentes ao mesmo processo sua seo de cdigo, seo de
dados e outros recursos do sistema operacional.
Um processo multithread contm vrios fluxos de controle
distintos no mesmo espao de endereamento.
Exemplo: um processador de textos pode ter um thread para ler as
entradas de dados do teclado e outra thread para efetuar a correo
ortogrfica do documento.
Observaes:
- os threads possuem estados(novo, executvel, Bloqueado e
Terminado.
- o sistema supervisor gerencia a tabela de threads
Thread / Multithread
Benefcios:
Escalonamento de CPU
O escalonamento de CPU consiste em selecionar um
processo em espera na fila de processos e alocar a CPU a
esse processo.
O processo selecionado de acordo com o algoritmo
de escalonamento implementado pelo sistema operacional
em uso.
Relembrando:
- manter sempre o Processador em execuo maximiza seu
uso.
-vrios
Escalonamento de CPU
No Preemptivo
O algoritmo escolhe o processo
para executar e ento o deixa
executar at que seja bloqueado
(para I/O) ou voluntariamente
libere a CPU.
Ex.: Windows 3.x
Preemptivo
O algoritmo escolhe um
processo e o deixa em
execuo por um tempo mximo
fixado.
Ex.: Windows 95 ou superior e a
Apple a partir do MacOS8
Escalonamento de CPU
Quando Escalonar ?
1. Quando o processo passa de estado em execuo para
estado de espera (Ex.:um pedido de I/O)
2. Quando um processo passa do estado em execuo para
o estado de pronto (ex.:quando ocorre o trmino de seu
quantum).
3. Quando um processo termina.
Conceitos bsicos
Escalonador de CPU: sempre que a CPU estiver ociosa, o S.O.
dever escolher um processo para execuo da fila de processos
prontos. Esta seleo feita pelo Escalonador de CPU.
Critrios de Escalonamento:
Critrios para se comparar algoritmos de escalonamento.
Algoritmos de Escalonamento
Lida com problema de decidir a quais processos na fila de processos
prontos a CPU dever ser alocada.
o mais simples
Durao de Surto
P1
24
P2
P3
Diagrama de Gantt
P1
0
P2
24
P3
27
30
Algoritmos de Escalonamento
Escalonamento Job mais curto primeiro (SJF)
-
Durao de Surto
P1
P2
P3
P4
plo ivo
m
t
Exe emp
pre
o
n
Diagrama de Gantt
P4
0
P1
3
P3
9
P2
16
24
Algoritmos de Escalonamento
Escalonamento Job mais curto primeiro (SJF)
Processo
Instante de Chegada
Durao de Surto
P1
P2
P3
P4
plo
m
o
Exe mptiv
e
pre
Diagrama de Gantt
P1
0
P2
1
P4
5
P1
10
P3
17
26
Algoritmos de Escalonamento
Escalonamento por prioridade (sistemas interativos)
Processo
Durao do Surto
Prioridade
P1
10
P2
P3
P4
P5
P2
0
P5
1
P1
6
P3
16
P4
18
19
Algoritmos de Escalonamento
Escalonamento Round-Robin (RR)
- projetado para Sistemas de tempo compartilhado
- Cada processo recebe uma pequena unidade de tempo de CPU
(quantum), usualmente 10-100 milissegundos. Depois de transcorrido
este tempo, o processo preemptado e adicionado ao fim da fila de
processos prontos.
-A
Algoritmos de Escalonamento
Escalonamento Round-Robin (RR) cont.
Processo
Durao de Surto
P1
24ms
P2
3ms
P3
3ms
Quantum = 4ms
Diagrama de Gantt
P1
0
P2
4
P3
7
P1
10
P1
14
P1
18
P1
22
P1
26
30
Algoritmos de Escalonamento
Alocao com Mltiplas Filas
Fila de processos prontos particionada em filas separadas:
primeiro plano - foreground (interativo)
segundo plano - background (batch)
Cada fila tem seu prprio algoritmo de escalonamento,
interativo Alocao Circular (RR)
batch Primeiro a chegar, Primeiro a ser servido (FCFS)
Escalonamento deve ser realizado entre as filas.
Escalonamento de prioridade fixa; Ex.: a fila de processos interativos pode ter prioridade
absoluta sobre a fila de processos batch.
Fatia de tempo cada fila recebe certa quantia de tempo de CPU que poderia ser ento
alocada aos processos dessa fila;
Exemplo:
80% para processos interativos em RR
20% para processos batch em FCFS
Algoritmos de Escalonamento
Alocao com Mltiplas Filas com realimentao
Um processo pode se mover entre as vrias filas;
Escalonamento com mltiplas filas e transferncias entre as filas definido pelos seguintes
parmetros, a saber:
Nmero de filas
Algoritmos de escalonamento para cada fila
Mtodo usado para determinar quando transferir um processo para uma fila de
prioridade mais alta
Mtodo usado para determinar quando transferir um processo para uma fila de
prioridade mais baixa
Mtodo usado para determinar em qual fila um processo deve ser colocado,
quando precisar usar a CPU
EXEMPLO:
Trs filas:
Q0 quantum de 8 milissegundos
Q1 quantum 16 milissegundos
Q2 FCFS
Escalonamento
Um novo job entra na fila Q0 a qual utiliza FCFS.
Quando ele ganha a CPU, job recebe 8ms. Se ele
no finalizar em 8 ms, o job movido para a fila Q1.
Na fila Q1 o job de novo servido por FCFS e
recebe 16 ms adicionais. Se ele ainda no
completou, premptado e movido para a fila Q2.
Algoritmos de Escalonamento
Outros algoritmos de escalonamento:
- Escalonamento por loteria:
-Escalonamento
de tempo real;
e escalonadores de threads.
Thread / Multithread
Thread de Usurio
Thread
Processos
X Thread de Kernel
Thread
Processos
Espao do
Usurio
Espao do
ncleo
Ncleo
Sistema
Supervisor
Tabela de
threads
Tabela de
Processos
Ncleo
Tabela de
processos
Tabela de
threads