Vous êtes sur la page 1sur 48

Cap.

1 - Viso Geral 1
Sistemas Operacionais

Tecnologia em Anlise e Desenvolvimento de Sistemas
IFSP campus Campinas CTI Renato Archer


Captulo 1
Viso Geral


Prof. Alencar Melo Jr., Dr. Eng.
2 Semestre 2014

Cap. 1 - Viso Geral 2
Sumrio
Funes bsicas
Mquina de nveis
Histrico
Tipos de sistemas operacionais
Sistemas monoprogramveis
Sistemas multiprogramveis
Sistemas com mltiplos processadores
Cap. 1 - Viso Geral 3
Funes Bsicas
Viso do sistema operacional
O SO ao encapsular o hardware fornece
uma viso de Mquina Virtual
programadores
e analistas
memria
discos
UCP
Usurios
Hardware
Sistema Operacional Sistema Operacional
fitas
impressoras monitores
programas,
sistemas e
aplicativos
usurios
Cap. 1 - Viso Geral 4
Funes Bsicas
Caracterizao de um SO:
Software bsico responsvel por gerenciar
a utilizao e o compartilhamento dos
diversos recursos do hardware (CPU, I/O,
memria) OBJETIVO: EFICINCIA
Atua como uma interface entre o usurio e
o computador, tornando sua utilizao
mais simples, rpida e segura
OBJETIVO: CONVENINCIA
As diversas rotinas de um SO so
normalmente executadas em funo de
eventos assncronos.

Cap. 1 - Viso Geral 5
H a r d w a r e
Si st em a O p er a ci o n a l
u su r i o s
Mquina de Nveis
Viso do usurio
Cap. 1 - Viso Geral 6
Utilitrios
Circuitos Eletrnicos
Microprogramao
Linguagem de Mquina
Sistema Operacional
Aplicativos
Mquina de Nveis
Mquina de nveis
Cap. 1 - Viso Geral 7
Histrico
Precursores da Computao
1642: Blaise Pascal inventa uma mquina de
somar para auxiliar seu pai
1673: Gottfried Leibniz cria uma mquina capaz de
somar e multiplicar, utilizando o conceito de
acumulador
1820: Charles Colmar inventa uma mquina capaz
de executar as quatro operaes
1822: Charles Babbage cria a Mquina Diferencial,
para clculo de equaes
1833: Babbage cria a Mquina Analtica, a qual se
assemelha bastante aos computadores atuais.
Nunca foi construda, devido as limitaes tcnicas
da poca. Ada Byron escreve programas.
Babbage: pai dos computadores
Ada: primeira programadora da histria

Cap. 1 - Viso Geral 8
Histrico
Precursores da Computao
1854: Boole cria a lgica boolena
1896: Hollerith funda a Tabulating Machine
Company, aps ter criado um mecanismo baseado
em cartes perfurados para processar o censo de
1890 nos EUA. Em 1924 a TMC vem a se tornar a
IBM.
Dcada de 30: primeiras tentativas de se criar
uma calculadora eletrnica
Konrad Zuse desenvolve o Z-1 (rels)
Atanasoff e Berry: desenvolvem o ABC,
considerado por muitos o primeiro computador
eletrnico da histria
1937: Turing cria a Mquina de Turing (modelo
terico), capaz de executar qualquer algoritmo
Cap. 1 - Viso Geral 9
Histrico
Dcada de 1940
1943: Turing trabalha na Inglaterra no
projeto Enigma. O Colossus foi usado na
quebra de cdigos nazistas
1944: Aiken constri o primeiro
computador eletromecnico, o Mark I. O
sonho de Babbage torna-se realidade
1946: Eckert e Mauchly desenvolvem o
ENIAC, considerado o primeiro computador
digital e eletrnico:
30 toneladas, 17.000 vlvulas, 10.000
capacitores, 70.000 resitores
5000 adies por segundo


Cap. 1 - Viso Geral 10
Histrico
Dcada de 1940
ENIAC: programao em linguagem de mquina,
por meio de 6.000 conectores; a memria era
apenas para dados.
1947, 1948: Von Neumann prope o conceito de
Programa Armazenado (instrues tambm
armazenadas na RAM), base dos computadores
atuais.
1949: Wilkes desenvolve o EDSAC, primeiro a
implementar o programa armazenado
Computador presente apenas em universidades e
rgos militares
SO e linguagens: no existiam
Um pequeno grupo de pessoas projetava,
construa, operava, programava, dava manuteno
ao computador. Praticamente no existia mercado
de trabalho em informtica
.


Cap. 1 - Viso Geral 11
Histrico
Dcada de 1950
Com o emprego dos transistores (1948,
laboratrios BELL, considerado por muitos a
inveno do sculo), os computadores tornam-se
confiveis e difundidos, com fabricao em srie.
Computadores comeam a ser utilizados pelas
grandes corporaes (Ford, GM etc.)
Houve uma clara separao entre projetistas,
operadores, programadores e pessoal de
manuteno o mercado de trabalho em
Informtica d os primeiros passos
1951: UNIVAC o primeiro computador pessoal
bem sucedido
1957: Fortran, primeira linguagem de alto nvel


Cap. 1 - Viso Geral 12
Histrico
Dcada de 1950
Problema: nos primrdios da computao existiam
pouqussimos computadores, caros (milhes de
dlares!), os quais permaneciam grande parte do
tempo ociosos, devido principalmente a:
esquemas de reserva de horrios;
elevado tempo de SET-UP: tempo gasto na
preparao do ambiente, como por ex. montar
unidades de fita, operao no console etc.
Medidas adotadas:
Criou-se a figura do operador de computador:
especializado nos equipamentos, capaz de
reduzir o tempo de set-up;
Adotou-se a filosofia de processamento batch:
acabava com o esquema de reserva e tambm
reduzia o tempo de set-up.




Cap. 1 - Viso Geral 13
Histrico
Dcada de 1950
Processamento Batch (ou Por Lotes):
Tarefas relacionadas (que possuem necessidade
de recursos semelhantes) vo sendo agrupadas
em lote, para um processamento mais eficiente,
pois reduz-se o tempo de set-up.
Sem interao com o usurio durante o
processamento, este normalmente voltava mais
tarde para apanhar os resultados impressos.
Usurios normalmente submetiam seus
programas na forma de cartes perfurados
Filosofia de processamento boa para atender
programas demorados e no interativos, como
por ex. os ganhadores da megasena.
Batch atualmente: no on-line, no transacional

Cap. 1 - Viso Geral 14
Histrico
Dcada de 1950
Problema: perdia-se muito tempo com a transio
manual de um job para outro, feito pelo operador
Soluo: surgem os primeiros S.O.s rudimentares,
os chamados Monitores Residentes (1953, Centro
Pesquisa GM)
Monitores: faziam o seqenciamento automtico
dos jobs (programas), sem interveno do
operador, transferindo o controle de um job para o
prximo.
Partes de um Monitor:loader (carregador),
interpretador de cartes de controle, sequenciador
de jobs
A semntica dos cartes de controle foi evoluindo
com o tempo, dando origem s JCLs ("JOB
CONTROL LANGUAGE )


Cap. 1 - Viso Geral 15
Histrico
Dcada de 1950
Sistema tpico: leitora de cartes, impressora e
computador, sendo que:
a CPU gerenciava todas as operaes de I/O,
durante toda sua durao;
Dispositivos mecnicos de I/O lentos
A CPU permanecia muito tempo ociosa
Exemplo: dado que a velocidade tpica de uma
leitora de cartes era 1200 cartes/minuto e que
um Assembler processava 300 cartes/segundo de
um programa Assembly j lido, calcular a taxa de
utilizao da cpu para assemblar (montar) um
programa Assembly de 1200 cartes.


Cap. 1 - Viso Geral 16
Histrico
Dcada de 1950
Processamento Satlite (no livro est
diferente!)
Processamento
Processamento
Processamento
(a)
(b)
(c)
fita de entrada
fita de entrada
cartes perfurados
fita de sada
relatrios
fita de sada
job 2
job n
relatrio 1
relatrio 2
relatrio n
job 1
Cap. 1 - Viso Geral 17
Histrico
Dcada de 1950
Processamento Satlite
ocorria a operao off-line dos dispositivos de
I/O, atravs dos computadores satlites, que
eram mquinas de baixa potncia/custo;
na entrada um computador satlite lia os
cartes e gerava uma imagem destes em fita;
na sada um outro satlite descarregava em
uma impressora as sadas que estavam em fita;
o processamento ocorria apenas no computador
central, o qual realizava todas as operaes de
I/O em fitas (mais rpidas do que os
dispositivos mecnicos);
talvez um dos primeiros sistemas distribudos:
vrios computadores cooperando para a soluo
de um problema comum e escalvel.


Cap. 1 - Viso Geral 18
Histrico
Dcada de 1950
Devido as linguagens de alto nvel, os
programas comeam a deixar de ter
relao direta com o hardware, facilitando
a portabilidade dos mesmos.
Os SOs incorporam seu prprio conjunto
de rotinas para operaes de I/O,
facilitando para os programadores e
propiciando o conceito de independncia
de dispositivos (o que isso?).
SO Atlas: introduz no final da dcada de
50 o conceito de memria virtual
(paginao).
Cap. 1 - Viso Geral 19
Histrico
Dcada de 1960
Surgimento dos circuitos integrados:
tamanho dos computadores diminui
poder de processamento aumenta
custos reduzem
o computador se dissemina pelas
corporaes
Vrias inovaes: multiprogramao, time
sharing (tempo compartilhado), SPOOL,
multiprocessamento


Cap. 1 - Viso Geral 20
Histrico
Dcada de 1960
Multiprogramao:
Possibilita a execuo simultnea
(pseudo-paralelismo) de vrios
processos sobre uma nica CPU;
Os processos so mantidos na memria
ao mesmo tempo; cada um dos
processos recebe uma CPU virtual
exclusiva, a qual uma poro da CPU
fsica;
Vantagem: aumenta a taxa de ocupao
de CPU, pois durante operaes de I/O a
CPU no fica mais ociosa.
Cap. 1 - Viso Geral 21
Histrico
Dcada de 1960
SOs multiprogramados requerem:
Rgido gerenciamento de memria: para
impedir que um processo acesse reas de
outros processos, ou a rea ocupada pelo
prprio SO;
escalonamento de CPU: para determinar a
seqncia de ocupao da CPU pelo processos.
Conceitos:
job: termo mais usado em sistemas batch,
monoprogramados;
processo: termo usado para designar um
programa em execuo em sistemas
multiprogramados.




Cap. 1 - Viso Geral 22
Histrico
Dcada de 1960
SPOOL:
Operao on-line simultnea de perifricos de
I/O e CPU;
Ao mesmo tempo, em uma nica mquina,
podem estar ocorrendo operaes de entrada,
de sada e tambm processamento;
Possvel graas a um componente especial do
hardware, o canal de I/O;
Possibilita existncia de um pool (coleo) de
JOBs lidos, permitindo escalonar o prximo JOB
a ser executado segundo algum algoritmo
(prioridades, menor JOB primeiro etc.), devido
ao fato do disco ser um dispositivo de acesso
no sequencial.





Cap. 1 - Viso Geral 23
Histrico
Dcada de 1960
Exemplo de SPOOL:

IMPRESSORA
CPU
DISCO
SPOOL IN SPOOL OUT
LEITORA DE CARTES
CANAL DE IO
Cap. 1 - Viso Geral 24
Histrico
Dcada de 1960
Time-Sharing (Tempo Compartilhado):
uma extenso lgica da multiprogramao, onde
cada usurio possui um terminal on-line burro e
todos compartilham uma nica CPU;
As mudanas de contexto entre os processos
ditada pelo TIME-SLICE (fatia de tempo), o qual da
ordem de 10 milissegundos.

SO
P1
P2
LIVRE
RAM
C
P
U
Time Slice = 10 ms
Terminais
Burros
Cap. 1 - Viso Geral 25
Histrico
Dcada de 1960
Time-Sharing (Tempo Compartilhado):
As trocas de contexto entre os processos devem
ser rpidas o suficiente para dar a cada usurio
a impresso de possuir um computador
exclusivo;
O principal objetivo da filosofia foi propiciar aos
usurios um ambiente computacional on-line,
interativo e de baixo custo;
O algoritmo de escalonamento de CPU da filosofia T.
S. chama-se ROUNDROBIN e baseia-se na
distribuio de fatias de tempo (time-slices) aos
usurios;
A sua principal caracterstica ser democrtico,
tratando todos os usurios do mesmo modo.


Cap. 1 - Viso Geral 26
Histrico
Dcada de 1960
Multiprocessamento:
1963: Burroughs lana o computador B-5000
com o SO MCP que suportava
multiprocessamento e foi o primeiro SO escrito
em linguagem de alto nvel.



2.
1.
CACHE
CPU-1
CACHE
CPU-2
CACHE
CPU-3
P1

P2

P3
P4

P5
P6
--------------
--------------
--------------
-----
Dados da RAM enviados mem.
cache
P1, P2 P3, P4, P5 e P6:
PROCESSOS
RAM
Cap. 1 - Viso Geral 27
Histrico
Dcada de 1960
1964: IBM lana o System/360 que introduz o
conceito de famlia da mquinas:mquinas de
diferentes portes, mas com mesma arquitetura
1965: MIT, Bell Labs e GE desenvolviam o SO
MULTICS (Multiplexed Information and Computing
Service): o objetivo era oferecer servio para
assinantes residenciais por meio de terminais
burros
1965: DEC lana PDP-8, primeira linha de
computadores de pequeno porte e baixo custo
1969: Ken Thompson, que trabalhara no projeto
MULTICS, lana no Bell Labs sua prpria verso de
um SO para um PDP-7: UNIX
Cap. 1 - Viso Geral 28
Histrico
Dcada de 1970
A integrao em grande escala (LSI) e em escala
muito grande (VLSI) promovem a miniaturizao e
o barateamento dos equipamentos
1971: Intel lana o 4004, primeiro
microprocessador, 4 bits
1976: Steve Jobs e Steve Wozniak lanam o Apple
II, que torna-se um grande sucesso e fundam a
Apple
Redes de longa distncia (WANs) comeam a se
difundir; surgem as primeiras redes locais (LANs).
SO e software de rede passam a ter uma relao
estreita
Linguagens: Pascal (Niklaus Wirth, 1971) e C
(Dennis Ritchie, 1972, Bell Labs)
Cap. 1 - Viso Geral 29
Histrico
Dcada de 1980
Com a tecnologia VLSI os computadores tornaram-
se mais baratos e confiveis, popularizando-se
entre usurios individuais em lares e escritrios
(ambiente SOHO: SMALL OFFICE, HOME OFFICE)
1981: IBM lana o IBM PC (Personal Computer)
baseado no processador Intel 8088 (16 bits, mas
barramento de dados de 8 bits); usava SO DOS
(Microsoft)
Softwares amigveis (user friendly) passam a ser
um requisito primordial (bsico e aplicativo);
surgem as primeiras GUI (GRAPHIC USER
INTERFACE)
Universidade de Berkeley: UNIX BSD e protocolos
TCP/IP
Cap. 1 - Viso Geral 30
Histrico
Dcada de 1980
1982: fundada a Sun Microsystems que
lana estaes de trabalho RISC com o SO
SunOS e posteriormente Solaris;
Outros SOs:MacOS, OS/2, Windows,
Netware (SO de rede).

Cap. 1 - Viso Geral 31
Histrico
Dcada de 1990
O computador passa a processar outras mdias,
alm de nmeros e textos, dando origem s
aplicaes multimdia (udio e vdeo digitais);
Aplicaes necessitam cada vez mais de
capacidade de processamento e armazenamento
de dados: banco de dados, multimdia, jogos, IA
etc;
TCP/IP passa a ser um padro de mercado;
Modelo cliente/servidor em WANs (WEB, por ex.);
Unix consolida-se no ambiente corporativo;
Amadurecimento e popularizao do software livre
(Linux principalmente);
Exploso da Internet, o PC torna-se um
eletrodomstico;
Cap. 1 - Viso Geral 32
Histrico
Dcada de 2000
Arquiteturas paralelas de hardware
(multiprocessadores e multicomputadores)
despertam muito interesse;
Interao humano-computador deve
evoluir bastante: linguagem natural etc.
Todas as mquinas esto em rede,
requerendo novos tipos de SOs:
SO de rede
SO distribudo

Cap. 1 - Viso Geral 33
Tipos de Sistemas Operacionais
Tipos de sistemas operacionais
Tipos de
Sistemas Operacionais
Sistemas
Monoprogramveis/
Monotarefa
Sistemas
com Mltiplos
Processadores
Sistemas
Multiprogramveis/
Multitarefa
Cap. 1 - Viso Geral 34
SOs monoprogramveis/monotarefa
Memria
Principal
Dispositivos
de E/ S
UCP
programa/
tarefa
Tipos de Sistemas Operacionais
Cap. 1 - Viso Geral 35
Tipos de Sistemas Operacionais
SOs multiprogramveis/multitarefa
Memria
Principal
Dispositivos
de E/ S
UCP
programa/
tarefa
programa/
tarefa
programa/
tarefa
programa/
tarefa
programa/
tarefa
Cap. 1 - Viso Geral 36
Tipos de Sistemas Operacionais
SOs multiprogramveis /multitarefa
(monousurio ou multiusurio)
Sistemas
Multiprogramveis/
tarefa Multi
Sistemas
Batch
Sistemas de
Tempo Real
Sistemas de
Tempo Compartilhado
Cap. 1 - Viso Geral 37
Tipos de Sistemas Operacionais
Sistemas de Tempo-Real:
Visam suportar aplicaes que exigem um alto
grau de determinismo;
O sistema deve ser previsvel e apresentar
restries temporais bem definidas para os
diversos servios oferecidos, a fim de no
comprometer os requisitos temporais da aplicao;
Um componente fundamental de um S. O. Tempo-
Real o escalonador de processos (Round-Robin
adequado?);
Um S. O. Tempo-Real comercial: QNX. Muitos
desenvolvem solues proprietrias;
Correo aplicao tempo-real =
correo lgica + correo temporal
Cap. 1 - Viso Geral 38
Tipos de Sistemas Operacionais
Sistemas de Tempo-Real:
Duas classes de aplicaes:
Hard Real-Time (Tempo Real Rgido): cada
processo possui um deadline (prazo) associado,
o qual deve ser sempre cumprido, pois caso
contrrio catstrofes envolvendo perda de vidas
humanas ou grandes somas de dinheiro podem
ocorrer. Exs.: controle de trfego areo, bolsa
de valores, cirurgia remota etc.
Soft Real-Time (Tempo Real Flexvel): no
obrigatrio cumprir os deadlines dos processos
individuais. Quando no for possvel, procura-se
otimizar o comportamento global do sistema,
visando diminuir a degradao dos servios
oferecidos Exs.: sistemas on-line transacionais
(bancos), aplicaes multimdia etc.

Cap. 1 - Viso Geral 39
Sistemas com Mltiplos
Processadores
Sistemas fortemente acoplados
Memria principal comum
UCP UCP
Memria
Principal
Dispositivos
de E/ S
Dispositivos
de E/ S
MULTIPROCESSADORES
Cap. 1 - Viso Geral 40
Sistemas com Mltiplos
Processadores
Sistemas fortemente acoplados:
Duas classes de hardware:
SMP (Symmetric Multiprocessors): os
diversos processadores possuem tempo
de acesso memria principal uniforme;
NUMA (Non-Uniform Memory Access) o
tempo de acesso memria pelos
processadores varia em funo de sua
localizao fsica. Possuem diversos
conjuntos CPU/memria principal,
interconectados por barramento.
Todas os processadores possuem as
mesmas funes no SMP e NUMA

Cap. 1 - Viso Geral 41
Sistemas com Mltiplos
Processadores
Sistemas fracamente acoplados:
Cada CPU possui sua prpria memria
principal
UCP UCP
Memria
Principal
Memria
Principal
Dispositivos
de E/ S
link de comunicao
Dispositivos
de E/ S
MULTICOMPUTADORES
Cap. 1 - Viso Geral 42
Sistemas com Mltiplos
Processadores
Sistemas fracamente acoplados:
O SO pode ser basicamente de dois
tipos:
SO de Rede
pouco transparente

SO Distribudo
muito transparente;
No ainda uma realidade comercial: o
que se tem so SOs de Rede, com
alguns servios transparentes.

Cap. 1 - Viso Geral 43
Sistemas com Mltiplos
Processadores
Sistemas fracamente acoplados:
SO de Rede (pouco transparente):
cada host possui seu prprio S.O., os quais
podem ser diferentes
o usurio fica a par da existncia dos mltiplos
processadores e outros recursos e deve
claramente explicitar quais recursos utilizar
cada usurio trabalha em uma mquina e o uso
de uma mquina diferente implica em uma
operao de login remoto
o sistema pode permitir acesso transparente
para determinados recursos, como por
exemplos arquivos remotos, atravs do NFS
Hoje: SO Rede = SO local + TCP/IP + NFS
Cap. 1 - Viso Geral 44
Sistemas com Mltiplos
Processadores
Sistemas fracamente acoplados:
SO Distribudo (muito transparente):
roda em diferentes mquinas (podendo
inclusive ser heterogneas), mas apresenta-se
aos usurios como se fosse centralizado, ou
seja, um ambiente heterogneo com interface
nica;
o usurio acessa, ou pode acessar, todas as
mquinas ao mesmo tempo, possuindo todos os
recursos do sistema sua disposio; o usurio
no loga em uma mquina especfica, mas em
todo sistema;
no existe mais o conceito de host, com
endereo IP por exemplo;


Cap. 1 - Viso Geral 45
Sistemas com Mltiplos
Processadores
Sistemas fracamente acoplados:
SO Distribudo (muito transparente):
tudo se passa de forma transparente
no sendo necessrio o usurio se
preocupar em qual mquina seus
programas esto armazenados ou esto
sendo executados;
o S.O. distribudo esconde por completo
a rede de comunicao dos usurios;
SOs totalmente distribudos no so
ainda realidade comercial. O que existe
muita pesquisa e alguns prottipos,
como por exemplo: AMOEBA, MACH;




Cap. 1 - Viso Geral 46
Sistemas com Mltiplos
Processadores
Tipos de transparncias:
quanto ao acesso: mesmos comandos ou
primitivas para acessar recursos no host
local ou em hosts remotos. Ex.: NFS;
quanto localizao: pode-se mudar os
recursos de um host para outro sem que
os usurios percebam. Ex: mudar
servidores, discos etc;
quanto falhas: por ex., um n falha e
um novo processo, rodando em outro n,
eleito para executar;





Cap. 1 - Viso Geral 47
Sistemas com Mltiplos
Processadores
Tipos de transparncias:
quanto migrao: processos podem
mudar de n durante sua execuo para
um melhor balanceamento de carga;
quanto escala: caso sejam inseridos mais
ns (hosts) na rede eles sero
incorporados sem problemas, causando
apenas um aumento de poder de
processamento. Os usurios no precisam
ser informados da existncia dos novos
hosts, j que a utilizao dos mesmos
transparente.





Cap. 1 - Viso Geral 48
Sistemas com Mltiplos
Processadores
Caractersticas e Vantagens:
Escalabilidade: pode-se ampliar o poder
computacional do sistemas apenas
adicionando novos processadores;
Disponibilidade: a capacidade de manter
o sistema em operao mesmo em casos
de falhas;
Balanceamento de carga: pode-se
distribuir o processamento entre os
diversos processadores.

Vous aimerez peut-être aussi