1. II - INTRODUÇÃO
II - INTRODUÇÃO
• Introdução
• Funções Básicas
• Máquina de Camadas
• Evolução dos Sistemas Operacionais
• Tipos de Sistemas Operacionais
2. II - INTRODUÇÃO
II - INTRODUÇÃO
Computador?
Máquina destinada a realizar cálculos complexos.
• Introdução
CPU
Barramento
E/S Memória
Processamento S A Í D A
E N T R A DA
3. II - INTRODUÇÃO
II - INTRODUÇÃO
• Introdução
Unidade de
Controle
Interconexão
interna da
CPU
CPU
Unidade
Lógica e
Aritmética
5. II - INTRODUÇÃO
II - INTRODUÇÃO
• Introdução
Definição
O Sistema Operacional (SO) é um programa ou
conjunto de programas que gerencia todos os
recursos de um sistema computacional.
Sem o SO, o usuário deveria conhecer
profundamente o hardware do computador,
tornando sua interação menos eficiente com
grandes possibilidades de erros.
Desta forma o SO funciona como uma interface
entre o usuário e o computador.
6. II - INTRODUÇÃO
II - INTRODUÇÃO
Computador
• Introdução
• Funções Básicas do SO
Aplicações
Sistema
Operacional
Hardware
7. II - INTRODUÇÃO
II - INTRODUÇÃO
USO 1 USO 2 USO 4
USO 3
compilador Editor de
texto
Browser Planilha
eletrônica
Sistema Operacional
Hardware
Gerenciamento
de recursos
Espaço na memória principal
Tempo de processamento
Impressora
Espaço em disco
Acesso a disco
• Objetivo
• Introdução
8. II - INTRODUÇÃO
II - INTRODUÇÃO
• Máquina de Camadas
Aplicações
Sistema
Operacional
Hardware
Aplicações
Hardware
Nível
0
Nível
1
9. II - INTRODUÇÃO
II - INTRODUÇÃO
• Máquina de Camadas
Aplicações
Utilitários
Sistema
Operacional
Nível
3
Nível
4
Linguagem de
Máquina
Microprogra-
mação
Circuitos
Eletrônicos
Nível
0
Nível
1
Nível
2
Nível
5
10. II - INTRODUÇÃO
II - INTRODUÇÃO
• Evolução dos Sistemas Operacionais
A evolução dos sistemas operacionais está, em
grande parte, relacionada ao desenvolvimento
dos computadores.
Dividindo-se em décadas destaca-se em cada
uma suas principais características de hardware,
software, interação com o sistema e aspectos de
conectividade.
1642 – Pascal – máquina de somar
1673 – Leibniz – Somar e Multiplicar (acumulador)
1820 – Colmar – Quatro operações
11. II - INTRODUÇÃO
II - INTRODUÇÃO
• Evolução dos Sistemas Operacionais
1642 – Pascal – máquina de somar
1673 – Leibniz – Somar e Multiplicar (acumulador)
1820 – Colmar – Quatro operações
1822 – Babbage – Equações Polinomiais
1833 - - Máquina Analítica
É a que mais se aproxima do computador atual
pois possui: unidade central de processamento,
memória, unidade de controle, dispositivos de
entrada e saída.
1854 –Boole – Algebra de boole: Base do modelo de
computação digital.
12. II - INTRODUÇÃO
II - INTRODUÇÃO
• Evolução dos Sistemas Operacionais
1890 – Hollerith – mecanismo utilizando cartões
perfurados.
1930 – Zuse - Primeiras tentativas de criação da
calculadora eletrônica – Z1, baseado em relés e
utilizava lógica binária.
Atanasoff e Berry – Máquina de cálculo de
equações lineares
1937 – Turing – Idéia da Máquina Universal
(Máquina de Turing). Capaz de executar qualquer
sequência de Instruções (algoritmo)
13. II - INTRODUÇÃO
II - INTRODUÇÃO
• Evolução dos Sistemas Operacionais
Década de 1940
Primeiros computadores eletromecânicos
(calculadoras). Formados por milhares de
válvulas e com funcionamento lento e
duvidoso).
1943 – Colossus – desenvolvido para quebrar
códigos.
14. II - INTRODUÇÃO
II - INTRODUÇÃO
Gerações dos computadores
1ª Geração (1940 a 1952)
válvula Linguagem de máquina
Cartão perfurado
Memória de atraso de mercúrio
• Evolução dos Sistemas Operacionais
Não Existia Sistema Operacional
Programador Controla o Equipamento
Programas acessam diretamente os periféricos
ENIAC
15. II - INTRODUÇÃO
II - INTRODUÇÃO
O ENIAC (Electronic Numerical Integrator And Calculator)
é considerado o primeiro computador digital e eletrônico.
Desenvolvido por J. Presper Eckert e John W. Mauchly
Criado para realizar de cálculos balísticos
Utilizado no projeto da bomba de hidrogênio, ficando em
operação no período de 1946 a 1955.
Estrutura: 17 mil válvulas, 10 mil capacitores, 70 mil
resistores e pesava 30 toneladas.
Quando em operação, consumia cerca de 140 quilowatts
e era capaz de realizar 5 mil adições por segundo.
• Evolução dos Sistemas Operacionais
16. II - INTRODUÇÃO
II - INTRODUÇÃO
Gerações dos computadores
2ª Geração (1952 a 1964)
•Linguagem assembler, cobol, Algol, Fortran.
Tradic - 1955
Memória de
núcleo de
ferrite
Válvula e transistores
Unidade de fita magnética
• Introduziram-se os operadores e o Job
• Primeiros monitores residentes: programas
ficam um tempo na memória
• Quando um programa finaliza, o monitor é
avisado e outro programa carrega
automaticamente
• Multiprogramação, Multiprocessamento.
17. II - INTRODUÇÃO
II - INTRODUÇÃO
Gerações dos computadores
2ª Geração (1952 a 1964)
processamento batch
18. II - INTRODUÇÃO
II - INTRODUÇÃO
Gerações dos computadores
2ª Geração (1952 a 1964)
No final de 1950, a Universidade de Manchester,
na Inglaterra, desenvolveu o sistema operacional
Atlas
• Introduziu a ideia de memória hierarquizada,
base do conceito de memória virtual, presente
hoje na maioria dos sistemas operacionais
atuais.
• Implementava o esquema de paginação por
demanda para transferir informações da
memória secundária para a principal.
19. II - INTRODUÇÃO
II - INTRODUÇÃO
Gerações dos computadores
3ª Geração (1964 a 1971)
PDP-11
VAX
Comparativo
: válvula
transistores
e chips
• Devido ao atraso dos periféricos em relação ao sistema
eletrônicos mantiveram-se diversos programas na
memória principal simultaneamente.
20. II - INTRODUÇÃO
II - INTRODUÇÃO
Gerações dos computadores
4ª Geração (1971 a 1981)
• Diversidade de Linguagens de programação;
• Rede de transmissão de dados.
Microcomputador TRS-80 Microcomputador PC 8088
Microcomputador APPLE
Disco flexível de
5.1/4”
Disco flexível de
3.1/2”
• Experiência inicial e disseminação do timesharing
• Sistema operacionais Distribuídos
• Sistemas operacionais de tempo Real
21. II - INTRODUÇÃO
II - INTRODUÇÃO
Gerações dos computadores
5ª Geração (1981)
• Inteligência Artificial;
• Linguagem Natural
• Altíssima velocidade de
processamento.
CPU - Circuito integrado da Larga escala
Comparativo atual
Microcomputador
integrado com
processamento
paralelo
Notebook com a
mesma
capacidade dos
desktop
• Paralelismo
22. II - INTRODUÇÃO
II - INTRODUÇÃO
Década de 1990
Grandes avanços em termos de hardware, software e
telecomunicações
Evolução em função da capacidade de processamento
e armazenamento de dados: sistemas especialistas,
sistemas multimídia, banco de dados distribuídos,
inteligência artificial e redes neurais.
Na microeletrônica desenvolveu-se: processadores e
memórias mais velozes e baratos, além de dispositivos
de E/S menores, mais rápidos e com maior capacidade
de armazenamento. Os componentes baseados em
tecnologia VLSI evoluíram rapidamente para o ULSI
(Ultra Large Scale Integration).
23. II - INTRODUÇÃO
II - INTRODUÇÃO
Década de 1990
Com o surgimento e a evolução da Internet, o
protocolo TCP/IP passou a ser um padrão de mercado,
obrigando os fabricantes de sistemas operacionais a
oferecer suporte a este protocolo.
Devido ao crescimento acelerado da Internet,
problemas de gerência, segurança e desempenho
tornaram-se fatores importantes relacionados ao
sistema operacional e à rede.
A arquitetura cliente/servidor, aplicada basicamente a
redes locais, passou a ser utilizada em redes
distribuídas como a Internet.
24. II - INTRODUÇÃO
II - INTRODUÇÃO
Década de 1990
A década de 1990 foi definitiva para a consolidação
dos sistemas operacionais baseados em interfaces
gráficas.
Em 1991, o finlandês Linus Torvalds começou o
desenvolvimento do Linux, que evoluiu a partir da
colaboração de vários programadores que ajudaram
no desenvolvimento do kernel, utilitários e vários
aplicativos.
Atualmente, o Linux é utilizado tanto para fins
acadêmicos como comerciais.
Amadurecimento e a popularização do software
aberto.
25. II - INTRODUÇÃO
II - INTRODUÇÃO
Década de 2000
Essa década foi caracterizada por uma grande
evolução nos processadores e equipamentos de
comunicação.
A tendência de integração de componentes em alta
escala e miniaturização fez com que notebooks,
netbooks tivessem grande disseminação no mercado.
As redes de comunicação cresceram em abrangência e
velocidade, possibilitando a integração de
computadores e sistemas de governos, empresas e
pessoas.
A Internet se consolidou em todo o mundo como uma
rede de integração entre pessoas
26. II - INTRODUÇÃO
II - INTRODUÇÃO
Década de 2000
Os sistemas operacionais tornaram-se mais intuitivos
e presentes em dispositivos móveis como telefones
celulares, handhelds e palmtops.
Novas interfaces surgiram, fazendo com que a
comunicação usuário-computador se tornasse mais
inteligente, simples e eficiente.
Os sistemas passaram a ser proativos, incorporando
mecanismos automáticos para recuperação de erros e
atualização de correções e novas versões.
27. II - INTRODUÇÃO
II - INTRODUÇÃO
Nessa década, os sistemas operacionais tiraram
proveito das arquiteturas de processadores de 64
bits: aumento do espaço de endereçamento, melhora
do desempenho de aplicações que manipulam
grandes volumes de dados.
Microsoft evoluiu seu sistema operacional unificando
suas versões para servidores, desktops e
smartphones, investindo em melhorias sucessivas.
A Apple investiu em melhorias sucessivas para o Mac
OS.
O Linux ganhou robustez suficiente, tornando-se um
sistema de uso tanto para desktops como para
servidores.
Década de 2000
28. II - INTRODUÇÃO
II - INTRODUÇÃO
Nos servidores corporativos, os sistemas Unix
também avançaram com desenvolvimento dos seus
fornecedores, HP para o HP-UX, IBM no AIX e Oracle
no Solaris.
Década de 2000
29. II - INTRODUÇÃO
II - INTRODUÇÃO
Iniciou com a consolidação dos modelos
computacionais em nuvem e da popularização de
smartphones e tablets.
A comercialização de software como serviço (SaaS –
Software as a Service) é uma alternativa ao de
aquisição de licenças de software
Outros modelos de serviços na nuvem são a
infraestrutura como serviço (IaaS – Infrastructure as a
Service) e a plataforma como serviço (PaaS –
Plataform as a Service).
A evolução da tecnologia dos dispositivos móveis,
está popularizando do uso destes dispositivos em
escala global.
Década de 2010
30. II - INTRODUÇÃO
II - INTRODUÇÃO
Os smartphones já passaram por três gerações (1G,
2G e 3G) chegaram à 4G
1G permitia somente a comunicação por voz em
aparelhos analógicos
2G possibilitou a transmissão digital dados (SMS e
acessa a internet).
3G evoluiu a velocidade de transmissão de dados,
melhora na qualidade na transmissão de voz,
suporte a conteúdos multimídia
4G tem como base equipamentos que operam
com velocidade mínima de 1 Mbps, podendo
chegar a 200 Mbps, possibilitando conexões mais
rápidas e qualidades de vídeo e áudio superiores.
Década de 2010
31. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas operacionais para smartphones: Symbian
OS, Windows Mobile, Android, Blackberry OS e iOS.
O Symbian OS (Nokia) possui código aberto para
que qualquer empresa que puder desenvolver
suas próprias aplicações. É um sistema multitarefa
e lida com aplicações em tempo real, além de ser
estável, possuir recurso de proteção de memória e
integra-se bem com o computador.
Windows Mobile foi desenvolvido para transferir
características da versão desktop para os celulares.
Contém integração com o Microsoft Exchange
Server, possibilitando a sincronia de e-mails e
arquivos pessoais entre desktops/notebooks e
smartphones.
Década de 2010
32. II - INTRODUÇÃO
II - INTRODUÇÃO
O Android é um sistema operacional desenvolvido
a partir de um consórcio chamado Open Handset
Alliance formado por 47 empresas e liderado pelo
Google. Suporta diversos padrões de
conectividade como Bluetooth, EDGE, 3G e Wi-Fi.
O BlackBerry OS é um sistema operacional
proprietário desenvolvido pela Research In Motion
(RIM) para sua linha de smartphones BlackBerry. A
plataforma foi pioneira no uso de smartphones
para usuários corporativos, suportando
sincronização com Microsoft Exchange, Lotus
Domino ou Novell GroupWise, e-mail, calendário,
tarefas, notas e contatos, quando utilizado em
conjunto com o BlackBerry Enterprise Server.
Década de 2010
33. II - INTRODUÇÃO
II - INTRODUÇÃO
O iOS é desenvolvido pela Apple a partir do Mac
OS X. Foi difundido no uso do iPhone. Dividido em
três domínios:
Machine level software: Para atender às
necessidades de trabalho de todos os usuários;
System level software: Para atender às funções
críticas do sistema;
User level software: utilizado para atender às
necessidades de um usuário específico.
A partir da versão 4, o iOS passou a ser multitarefa.
Uma das características que ajudaram na
popularidade deste sistema operacional é a sua
interface intuitiva e amigável, além do navegador
Safari.
Década de 2010
34. II - INTRODUÇÃO
II - INTRODUÇÃO
Tipos de Sistemas Operacionais
Os tipos de sistemas operacionais e sua evolução
estão relacionados diretamente com a evolução do
hardware e das aplicações por ele suportadas.
Sistemas Operacionais
Sistemas
Monoprogramáveis/
Monotarefa
Sistemas
Multiprogramáveis/
Multitarefa
Sistemas com múltiplos
processadores
35. II - INTRODUÇÃO
II - INTRODUÇÃO
Tipos de Sistemas Operacionais
Sistemas
Monoprogramáveis/
Monotarefa
Executa um único programa tendo
os seus recursos dedicado.
1960 Inicio e 1970 PC
36. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas
Multiprogramáveis/
Multitarefa
Tipos de Sistemas Operacionais
Compartilha os recursos do
sistema entre os usuários e as
tarefas em execução
37. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas
Multiprogramáveis/
Multitarefa
Tipos de Sistemas Operacionais
Classificação conforme a gerência
de aplicações:
Sistemas
Multiprogramáveis/
Multitarefa
Sistemas batch
Sistemas de tempo
compartilhado
Sistemas de
tempo real
Executa sem
intervenção
do usuário
A tarefa é dividida
em fatias de tempo
entre os processos
Utilização
prioritária do
processador
38. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas batch
Tipos de Sistemas Operacionais
Década de 1960: Também chamados de jobs que
eram submetidos para execução através de
cartões perfurados e armazenados em disco ou
fita, onde aguardavam para ser processados.
Posteriormente, em função da disponibilidade de
espaço na memória principal, os jobs eram
executados, produzindo uma saída em disco ou
fita.
• Batch não exige a interação do usuário com a
aplicação
• Todas as entradas e saídas de dados da aplicação
são implementadas por algum tipo de memória
secundária, geralmente arquivos em disco.
39. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas batch
Tipos de Sistemas Operacionais
• Alguns exemplos de aplicações: cálculos
numéricos, compilações, ordenações, backups,
onde não é necessária à interação com o usuário.
•Quando bem projetados, são bastante eficientes,
devido à melhor utilização do processador,
porém podem oferecer tempos de resposta
longos.
•Hoje, os sistemas operacionais implementam ou
simulam o processamento batch, não existindo
sistemas exclusivamente dedicados a este tipo de
processamento.
40. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas de tempo compartilhado
Tipos de Sistemas Operacionais
Os sistemas de tempo compartilhado (time-sharing)
permitem que diversos programas sejam executados a
partir da divisão do tempo do processador em
pequenos intervalos, denominados fatia de tempo
(time-slice).
Caso a fatia de tempo não seja suficiente para a conclusão
do programa, ele é interrompido pelo sistema
operacional e substituído por um outro, enquanto fica
aguardando por uma nova fatia de tempo.
O sistema cria para cada usuário um ambiente de trabalho
próprio, dando a impressão de que todo o sistema está
dedicado exclusivamente a ele.
41. II - INTRODUÇÃO
II - INTRODUÇÃO
Tipos de Sistemas Operacionais Sistemas de tempo real
Os sistemas de tempo real (real-time) são
implementados de forma semelhante aos
sistemas de tempo compartilhado.
Enquanto em sistemas de tempo compartilhado o
tempo de processamento pode variar sem
comprometer as aplicações em execução, nos
sistemas de tempo real os tempos de
processamento devem estar dentro de limites
rígidos, que devem ser obedecidos, caso
contrário poderão ocorrer problemas
irreparáveis.
42. II - INTRODUÇÃO
II - INTRODUÇÃO
Nos sistemas de tempo real não existe a ideia de
fatia de tempo, implementada nos sistemas de
tempo compartilhado.
Um programa utiliza o processador o tempo que for
necessário ou até que apareça outro mais
prioritário.
A importância ou prioridade de execução de um
programa é definida pela própria aplicação e não
pelo sistema operacional.
Tipos de Sistemas Operacionais Sistemas de tempo real
43. II - INTRODUÇÃO
II - INTRODUÇÃO
Esses sistemas, normalmente, estão presentes em
aplicações de controle de processos, como:
• Monitoramento de refinarias de petróleo,
• Controle de tráfego aéreo,
• Usinas termoelétricas e nucleares,
• Qualquer aplicação em que o tempo de
processamento é fator fundamental.
Tipos de Sistemas Operacionais Sistemas de tempo real
44. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas com múltiplos
processadores
Tipos de Sistemas Operacionais
por possuir duas ou mais UCPs interligadas e
trabalhando em conjunto.
Permite que vários programas sejam executados
ao mesmo tempo ou que um mesmo programa
seja subdividido em partes para serem
executadas simultaneamente em mais de um
processador.
Nestas condições, tornou-se possível
computacionais voltados, principalmente, para
processamento científico.
Os sistemas com múltiplos
processadores caracterizam-se
45. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas com múltiplos processadores
Tipos de Sistemas Operacionais
Exemplos:
• desenvolvimento aeroespacial;
• prospecção de petróleo;
• simulações;
• processamento de imagens e CAD;
• qualquer aplicação que faça uso intensivo da UCP
A evolução desses sistemas deve-se, em grande
parte, ao elevado custo de desenvolvimento de
processadores de alto desempenho.
46. II - INTRODUÇÃO
II - INTRODUÇÃO
Os conceitos aplicados ao projeto de sistemas com
múltiplos processadores incorporam os mesmos
princípios básicos e benefícios apresentados na
multiprogramação, além de outras características
e vantagens específicas como escalabilidade,
disponibilidade e balanceamento de carga.
Escalabilidade é a capacidade de ampliar o poder
computacional do sistema apenas adicionando
novos processadores.
Sistemas com múltiplos processadores
Tipos de Sistemas Operacionais
Em ambientes com um único processador, caso haja problemas de
desempenho, seria necessário substituir todo o sistema por uma outra
configuração com maior poder de processamento. Com a possibilidade de
múltiplos processadores, basta acrescentar novos processadores à
configuração.
47. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas com múltiplos processadores
Tipos de Sistemas Operacionais
Disponibilidade é a capacidade de manter o
sistema em operação mesmo em casos de falhas.
Balanceamento de carga é a possibilidade de
distribuir o processamento entre os diversos
processadores da configuração a partir da carga
de trabalho de cada processador, melhorando,
assim, o desempenho do sistema como um
todo.
Neste caso, se um dos processadores falhar, os demais podem assumir suas
funções de maneira transparente aos usuários e suas aplicações, embora com
menor capacidade de computação.
48. II - INTRODUÇÃO
II - INTRODUÇÃO
Um fator-chave no desenvolvimento de sistemas
operacionais com múltiplos processadores é:
• Forma de comunicação entre as UCPs
• Grau de compartilhamento da memória e dos
dispositivos de entrada e saída.
Em função desses fatores, pode-se classificar os
sistemas com múltiplos processadores em
fortemente acoplados ou fracamente acoplados
Sistemas com múltiplos processadores
Tipos de Sistemas Operacionais
49. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas com múltiplos processadores
Tipos de Sistemas Operacionais
Sistemas com múltiplos
processadores
Fortemente Acoplados Fracamente Acoplados
50. II - INTRODUÇÃO
II - INTRODUÇÃO
Sistemas Fortemente Acoplados (multiprocessadores):
Constituído de vários processadores que
compartilham uma única memória física e
dispositivos de entrada/saída sendo gerenciados
por apenas um sistema operacional.
Sistemas Fracamente Acoplados (multicomputadores) :
Possuem dois ou mais sistemas computacionais
conectados através de linhas de comunicação.
Cada sistema funciona de forma independente,
possuindo seu próprio sistema operacional e
gerenciando seus próprios recursos, como UCP,
memória e dispositivos de entrada/saída.
Sistemas com múltiplos processadores
Tipos de Sistemas Operacionais