O documento descreve a evolução histórica dos sistemas operativos, desde os primeiros computadores sem sistemas operativos até aos atuais sistemas distribuídos. As principais realizações incluem os monitores de controlo, tratamento em lotes, multiprogramação, sistemas interativos, memória virtual e sistemas distribuídos. O objetivo inicial dos sistemas operativos era tornar o hardware num sistema fácil de usar e otimizar o seu desempenho.
2. S. Operativos e S. Distribuídos Prof. Ricardo Silva 2
Sumário
● Função dos Sistemas Operativos
● Critérios de Qualidade
● Evolução Histórica
● Classificação de Sistemas Operativos
3. S. Operativos e S. Distribuídos Prof. Ricardo Silva 3
1.1 – Função dos Sistemas Operativos
4. S. Operativos e S. Distribuídos Prof. Ricardo Silva 4
Função dos Sistemas Operativos
● A principal função de um sistema informático
consiste na execução de aplicações e tratamento de
dados.
● Uma aplicação é um conjunto de programas e de
dados (informação).
● Para que os programas executem são necessários
recursos de nível físico e lógico.
● Recursos físicos – processador, memória, discos,
periféricos (Hardware)
● Recursos lógicos – programas, ficheiros, bases de dados
(Software)
5. S. Operativos e S. Distribuídos Prof. Ricardo Silva 5
Função dos Sistemas Operativos
● O Sistema Operativo (SO) é um programa, ou
programas, responsável pela gestão de
recursos lógicos e físicos.
● É igualmente o responsável por criar uma
interface entre os recursos físicos (Hardware) e
as aplicações (Software).
6. S. Operativos e S. Distribuídos Prof. Ricardo Silva 6
1.1 – Função dos Sistemas Operativos
● Gestor de recursos
● processos
● memória virtual
● sistema de ficheiros
● periféricos
● utilizadores
● Interface
● Máquina virtual
7. S. Operativos e S. Distribuídos Prof. Ricardo Silva 7
1.1.1 – Gestão de Recursos
● 1.1.1.1 – Processos
● A principal função de um sistema informático
consiste em executar programas
● Um processo é um programa em execução
8. S. Operativos e S. Distribuídos Prof. Ricardo Silva 8
1.1.1 – Gestão de Recursos
● 1.1.1.2 – Memória Virtual
● Um processo necessita do seu espaço de
memória
● A memória principal (RAM) é escassa
● A memória secundária (discos rígidos) é mais
abundante
● O SO permite criar uma memória virtual que usa
a memória secundária como extensão do
espaço de endereçamento da memória principal
9. S. Operativos e S. Distribuídos Prof. Ricardo Silva 9
1.1.1 – Gestão de Recursos
● 1.1.1.3 – Sistema de ficheiros
● A memória secundária tem como função guardar
um conjunto de informação persistente
● A informação encontra-se organizada
hierarquicamente em ficheiros e pastas
● Um sistema de ficheiros, é uma forma de
guardar e organizar os ficheiros e pastas,
permitindo a sua pesquisa, leitura e gestão
10. S. Operativos e S. Distribuídos Prof. Ricardo Silva 10
1.1.1 – Gestão de Recursos
● Periféricos
● O computador interage com diversos periféricos
● O SO funciona como interface entre as aplicações
e os periféricos
● A comunicação entre os periféricos e o SO
depende dos device drivers
11. S. Operativos e S. Distribuídos Prof. Ricardo Silva 11
1.1.1 – Gestão de Recursos
● Utilizadores
● O SO mantém informação sobre os seus
utilizadores
– Controla acesso a recursos
– Controla acções
– Efectua contabilidade
12. S. Operativos e S. Distribuídos Prof. Ricardo Silva 12
1.1.1 – Gestão de Recursos
Objectos do Sistema Operativo
Processos
Espaços de Endereçamento Virtuais
Ficheiros
Periféricos Virtuais
Utilizadores
13. S. Operativos e S. Distribuídos Prof. Ricardo Silva 13
1.1.2 - Interface
● O SO é uma interface que virtualiza o
computador
● A interface é intuitiva para o utilizador e
permite-lhe efectuar diversas operações
● Existem 2 tipos de interfaces
● Interface operacional
● Interface de chamada do sistema
14. S. Operativos e S. Distribuídos Prof. Ricardo Silva 14
1.1.2 - Interface
● Interface operacional
● Permite realizar operações de controle sobre o
computador, SO e aplicações
● Pode ser de 2 tipos:
– CLI – Command line interface
● O utilizador digita comandos numa shell
– GUI – Graphical user interface
● O utilizador usa uma interface gráfica para executar as
operações de gestão
15. S. Operativos e S. Distribuídos Prof. Ricardo Silva 15
1.1.2 - Interface
● Interface de chamada do sistema ou system
calls
● É uma interface de programação, vulgarmente
chamada de API (Application programming interface)
● Usada pelas aplicações para interagir com os
objectos geridos pelo SO
● Cada SO tem a sua API própria
16. S. Operativos e S. Distribuídos Prof. Ricardo Silva 16
1.1.3 – Máquina Virtual
● O SO tem como função virtualizar o nível de
Hardware, homogeneizando o sistema
computacional para as aplicações
● O SO implementa então uma máquina
independente do Hardware
● Para a maioria das aplicações é irrelevante o
tipo de Hardware
● P ex: é indiferente usar um processador Intel ou
AMD
17. S. Operativos e S. Distribuídos Prof. Ricardo Silva 17
1.1.3 – Máquina Virtual
Hardware
Sistema Operativo
Aplicações Aplicações
Máquina Virtual
Máquina Física
18. S. Operativos e S. Distribuídos Prof. Ricardo Silva 18
1.2 – Critérios de Qualidade
19. S. Operativos e S. Distribuídos Prof. Ricardo Silva 19
1.2 - Critérios de Qualidade
● É natural que exista um conjunto de critérios
que possam avaliar o desempenho geral de um
SO
● São critérios que podem ajudar a escolher qual
o melhor SO para determinadas tarefas
20. S. Operativos e S. Distribuídos Prof. Ricardo Silva 20
1.2 – Critérios de Qualidade
● Desempenho
● O SO tem um impacto enorme no desempenho
das aplicações
● Deve explorar ao máximo os recursos
disponíveis
● Deve ocupar ao mínimo os recursos disponíveis
● Devem estabelecer bons compromissos entre
desempenho, modularidade, fiabilidade e
escalabilidade
21. S. Operativos e S. Distribuídos Prof. Ricardo Silva 21
1.2 – Critérios de Qualidade
● Segurança
● O SO deve garantir a segurança na utilização
dos recursos disponíveis
– Protecção de memória
– Protecção de acesso a ficheiros
– Definição de políticas de acesso
● O SO deve ter código robusto
– Menos código = menos erros
● Modularidade
– A ocorrência de um erro não deve afectar o
desempenho de outras aplicações ou do SO
22. S. Operativos e S. Distribuídos Prof. Ricardo Silva 22
1.2 – Critérios de Qualidade
● Fiabilidade
● Mede a probabilidade de, num dado espaço de
tempo, não existir nenhuma paragem do sistema
● Exemplo:
robôs em Marte. O que aconteceria se o SO destes
robôs falhasse 1 vez por mês?
23. S. Operativos e S. Distribuídos Prof. Ricardo Silva 23
1.2 – Critérios de Qualidade
● Disponibilidade
● É a probabilidade de o sistema estar operacional
num dado instante
● Especialmente crítico em servidores
24. S. Operativos e S. Distribuídos Prof. Ricardo Silva 24
1.3 – Evolução Histórica
● Dois motivos estiveram na origem dos SO's.
São cruciais para compreender as suas
funções:
● Transformar o Hardware numa máquina simples de
usar
● Obter o máximo rendimento do Hardware
25. S. Operativos e S. Distribuídos Prof. Ricardo Silva 25
1.3 – Evolução Histórica
26. S. Operativos e S. Distribuídos Prof. Ricardo Silva 26
1.3 – Evolução Histórica
27. S. Operativos e S. Distribuídos Prof. Ricardo Silva 27
I – Open Shop
I - Open Shop
Primeiro computador da IBM (IBM 701)
O programador reservava tempo de computador
O programador configurava o computador consoante
as necessidades do seu programa
O programador inseria o input e iniciava a execução do
seu programa; esperava pelos resultados
Muito tempo desperdiçado na preparação do sistema
Tempo de processamento desperdiçado
Foram fabricados 15 computadores
29. S. Operativos e S. Distribuídos Prof. Ricardo Silva 29
II - Batch processing
Menor desperdício de tempo
Operadores recebiam os programas (cartões perfurados) e, utilizavam
um computador satélite para inserir os programas numa fita magnética.
Os trabalhos eram executados pela ordem de escrita na fita magnética.
O output era escrito noutra fita magnética.
Um computador satélite imprimia os resultados.
Sistema first-come, first-served
Demorava horas ou dias para receber resultados
Por vezes o programador estava dois dias à espera para ver que se tinha
esquecido de um ;
30. S. Operativos e S. Distribuídos Prof. Ricardo Silva 30
IBM 709 (consola de operação)
32. S. Operativos e S. Distribuídos Prof. Ricardo Silva 32
III - Multiprogramação
Criava a ilusão que vários programas
executavam em simultâneo.
Os interrupts permitiram ao computador simular
a execução concorrente de programas.
As chamadas de I/O de um processo eram
aproveitadas para executar outros processos.
Esta nova fase só foi possível devido ao
aparecimento de memórias core e memórias
drum (armazenamento secundário).
33. S. Operativos e S. Distribuídos Prof. Ricardo Silva 33
Memória core de 2KB
Memória drum
34. S. Operativos e S. Distribuídos Prof. Ricardo Silva 34
Multiprogramação
Quando um processo espera por uma
operação de I/O, o processador pode executar
outro programa
35. S. Operativos e S. Distribuídos Prof. Ricardo Silva 35
Multiprogramação
36. S. Operativos e S. Distribuídos Prof. Ricardo Silva 36
Efeitos da Multiprogramação
Uniprogramação Multiprogramação
Processador 22% 43%
Memória 30% 67%
Disco 33% 67%
Impressora 33% 67%
Tempo decorrido 30 min. 15 min.
Trabalho 6 jobs/hr 12 jobs/hr
Tempo resposta 18 min. 10 min.
37. S. Operativos e S. Distribuídos Prof. Ricardo Silva 37
IV - Time sharing
O computador interage com vários utilizadores
simultâneamente.
Cada utilizador opera um terminal, tem a ilusão que o
computador é só seu.
O tempo de processador é partilhado entre vários
utilizadores
A memória primária tinha de ser grande pois havia uma
contínua troca de processos em execução.
Uma memória secundária mantinha os ficheiros dos
utilizadores (evitava o uso de fitas magnéticas ou cartões
perfurados)
38. S. Operativos e S. Distribuídos Prof. Ricardo Silva 38
Multiprogramação vs Time Sharing
Comandos inseridos num
terminal
Comandos de uma linguagem de
controlo fornecida com o
processo
Origem das directivas
para o SO
Minimizar tempo resposta
Maximizar uso processador
Principal objectivo
Time Sharing
Multiprogramação
39. S. Operativos e S. Distribuídos Prof. Ricardo Silva 39
PDP 11 a correr SO UNIX com time sharing
PDP 11 a correr SO UNIX com time sharing
40. S. Operativos e S. Distribuídos Prof. Ricardo Silva 40
V - Programação Concorrente
O SO foi dividido em vários níveis de abstracção.
Existiam vários processos em execução, cada qual
com a sua tarefa.
Processos de utilizador
Processos de I/O
Processos de controlo
Existência de mecanismos de sincronização e
comunicação entre processos.
Primeira noção de Kernel
41. S. Operativos e S. Distribuídos Prof. Ricardo Silva 41
VI - Computação pessoal
"There is no reason anyone would want a computer in their home."
--Ken Olson, President, Chairman and founder of Digital Equipment
Corp., 1977
Alto Xerox Parc
Alto Xerox Parc
42. S. Operativos e S. Distribuídos Prof. Ricardo Silva 42
VII - Sistemas Distribuídos
Generalizam-se as redes de computadores
Primeiros servidores de ficheiros
Sem segurança
Sem estruturas de pastas
UNIX RPC (Remote procedure calls)
Modelo cliente-servidor
43. S. Operativos e S. Distribuídos Prof. Ricardo Silva 43
1.3 – Evolução Histórica
44. S. Operativos e S. Distribuídos Prof. Ricardo Silva 44
Evolução Histórica
● Os motivos históricos que estiveram na origem
do desenvolvimento dos sistemas operativos
foram:
● Transformar o Hardware num sistema simples de
utilizar
● Obter o máximo rendimento do Hardware,
utilizando o mais eficazmente possível a
capacidade de processamento de um computador.
45. S. Operativos e S. Distribuídos Prof. Ricardo Silva 45
1.3 – Evolução Histórica
Maiores realizações:
Monitor de controlo
Tratamento em lotes (batch)
Multiprogramação
Sistemas interactivos
Memória virtual
Sistemas distribuídos
47. S. Operativos e S. Distribuídos Prof. Ricardo Silva 47
Monitor de controlo
● Os primeiros computadores não possuíam SO
● A prioridade estava centrada no desenvolvimento do
Hardware
● Quando o Hardware se tornou suficientemente fiável,
começaram a analisar a forma de rentabilizar o
dispendioso Hardware
● A prioridade agora era desenvolver um programa que
facilitasse a realização de algumas tarefas, tais como:
carregar programas na memória; editar programas;
verificar a execução de programas. Estes programas
eram chamados de monitores de controlo
48. S. Operativos e S. Distribuídos Prof. Ricardo Silva 48
Monitor de controlo
● Um monitor de controlo era composto por um
interpretador de comandos e um conjunto de
outros programas que facilitavam a interação
com o Hardware:
● Interpretador de comandos
● Assembler (traduz linguagem assembly para
linguagem máquina)
● Linker (editor de ligações)
● Loader (carregador de programas em memória)
● Biblioteca de rotinas (para controlo de periféricos)
50. S. Operativos e S. Distribuídos Prof. Ricardo Silva 50
Tratamento em lotes (Batch)
● Atribuir um computador para apenas um utilizador durante um período de
tempo era muito pouco rentável.
● Uma solução consistia na gravação de uma tape com muitos programas
que seriam executados em modo sequencial.
● Esta solução levou ao surgir de muitos melhoramentos nos periféricos de
I/O, bem como, no desenvolvimento de uma linguagem de controlo que
preparasse o computador para o próximo programa na fila de execução.
● Existia igualmente o problema de decidir quais os programas que seriam
executados em primeiro lugar e quais os que ficariam para último,
definindo-se políticas de gestão de processos, designado por
escalonamento.
52. S. Operativos e S. Distribuídos Prof. Ricardo Silva 52
Multiprogramação
● A utilização de mecanismos de interrupções, permitem
multiplexar o processador por diversos programas que
executam de uma forma concorrente.
● A execução concorrente maximiza a execução do
processador, pois, enquanto existirem programas à espera de
serem executados, o processador está sempre ocupado.
● A multiprogramação só é eficaz se os programas concorrentes
residirem na memória, contudo, esta é limitada.
● Este problema levou ao surgir de um sistema de hierarquia de
memória.
54. S. Operativos e S. Distribuídos Prof. Ricardo Silva 54
Sistemas interactivos
● Os sistemas interactivos permitiram ao utilizador do computador ter
a percepção que o computador estava a trabalhar só para ele.
● A partilha do tempo de processador por diversos utilizadores obriga
que cada programa execute durante um pequeno período de
tempo, findo o qual, terá de dar a vez a outro programa.
● A utilização simultânea de um computador por vários utilizadores
só foi possível graças à utilização dos CRT's.
● Este tipo de conceito levantou muitos problemas, tais como:
interface com o sistema de ficheiros, protecção contra acessos
indevidos; quotas de utilização de disco, etc.
56. S. Operativos e S. Distribuídos Prof. Ricardo Silva 56
Memória virtual
● A execução de vários programas concorrentes é um sério problema quando a
memória primária de um computador é limitada. No limite, a sua capacidade pode
esgotar-se e inviabilizar a execução dos programas.
● A solução consistiu em criar um sistema hierárquico de memórias, em que, só
estariam presentes na memória primária o programa em execução e os programas
que estariam prestes a executar. Os restantes seriam transferidos para memórias
secundárias onde esperariam que chegasse a sua vez de executar. Quando esse
momento estivesse prestes a acontecer, seriam novamente transferidos para a
memória primária.
● Este tipo de solução permite que, num dado momento, estejam mais programas em
execução do que a capacidade da memória principal, ou seja, o tamanho total dos
programas em execução, é maior que a capacidade da memória primária. Criamos
assim um sistema de memória virtual.
58. S. Operativos e S. Distribuídos Prof. Ricardo Silva 58
Computadores pessoais
● O desenvolvimento das técnicas de produção em
série e redução constante do tamanho dos
componentes diminuiu os custos de produção e o
tamanho dos computadores.
● A utilização do computador pessoal por indivíduos
sem experiência, originou ao desenvolvimento de
interfaces que tentavam simplificar a utilização do
computador.
● As interfaces gráficas actuais são o resultado da
maximização da simplificação da interacção do
utilizador com o computador.
59. S. Operativos e S. Distribuídos Prof. Ricardo Silva 59
Sistemas distribuídos
● O aparecimento das redes informáticas originou
ao desenvolvimento de novas aplicações que
tirassem partido desta nova forma de meio de
comunicação.
● Serviços considerados hoje como
imprescindíveis, eram à pouco menos de 20
anos completamente impensáveis: email, www,
chat, voip, iptv, homebanking, compras online,
etc.
60. S. Operativos e S. Distribuídos Prof. Ricardo Silva 60
1.4 – Classificação de Sistemas Operativos
61. S. Operativos e S. Distribuídos Prof. Ricardo Silva 61
1.4 – Classificações de Sistemas Operativos
● 1.4.1 – Sistemas de tempo virtual e tempo real
● Tempo virtual
– O tempo de execução dos programas não tem
relação com o tempo exterior à máquina
– Windows, Unix, Linux, Mac OS, etc
● Tempo real
– O SO tem de garantir uma resposta a um
acontecimento externo num período de tempo pré-
estabelecido
– Consolas de jogos, centralinas automóveis, etc
62. S. Operativos e S. Distribuídos Prof. Ricardo Silva 62
Quota mercado SO's
(dados relativos a acessos web)
64. S. Operativos e S. Distribuídos Prof. Ricardo Silva 64
1.4.2 – Sistemas Embebidos
● Os SO's são programas de dimensão muito grande, que
consomem muitos recursos
● Existem dispositivos que requerem SO's minimalistas pois
a capacidade de processamento e a memória disponível é
diminuta
● Estes SO's minimalistas chamam-se sistemas embebidos
● Presentes em Telemóveis, activos de rede, equipamentos de
som, fotografia, automóveis, máquinas de lavar e muitos
outros dispositivos que incorporam microprocessadores
65. S. Operativos e S. Distribuídos Prof. Ricardo Silva 65
1.4.3 – Sistemas Proprietários e Sistemas Abertos
● Sistemas proprietários (década 70)
● O fabricante de hardware fornecia igualmente o
software para o seu produto; o software dependia
do hardware
– IBM, DEC, Bull, Unisys, ControlData
● Sistemas abertos (década 80)
● O software é independente do hardware, logo, é
portável (Unix foi o primeiro)
● Começaram a aparecer empresas de
desenvolvimento exclusivo de software: Microsoft