Você está na página 1de 22

Programao de Sistemas

Histria dos Sistemas Operativos

Programao de Sistemas Historial : 1/44

Introduo
Evoluo dos SO catalogada pelos mtodos de
processamento:
1. Srie
2. Por lotes (batch)
3. Multiprocessamento
Os SO so influenciados pelos tipos de sistemas
Multiprocessador
Distribudo
Pessoais (desktop)
Embebidos (embedded)

Programao de Sistemas Historial : 2/44


Processamento srie (1)
[Anos 40,50] computadores gigantescos, a vlvulas
(1945: ENIAC-Electronic Numerical INtegrator
And Computer, com 19K vlvulas e 1K5 rels, 200
KW de consumo, ocupava 167m2).
Dedicado a clculo numrico, por segundo efectuava
5000 adies ou 357 multiplicaes ou 38 divises.
Programas e dados inseridos pelos operadores
directamente no hardware, atravs de cabos
inseridos em painis.
Resultados afixados em lmpadas.
Entrada de programas e dados facilitada por cartes
perfurados (punched cards), ou fita perfurada.
Sadas passaram a ser impressas em papel.

Programao de Sistemas Historial : 3/44

Processamento srie (2)


Todas as operaes tinham de ser definidas pelos
programas.
Problemas:
Produtividade baixa
Apenas operadores especializados podiam operar o
computador
Nota 1: capacidade de processamento inferior a um vulgar
PDA actual.
Nota 2: insectos (bug) atraidos pela luz das vlvulas
provocavam curto-circuitos interrompendo o programa
Nota 3: dimenso e custo comeam a reduzir nos anos 50
com introduo de transistores

Programao de Sistemas Historial : 4/44


Processamento em lotes (1)
[Anos 50,60] Para libertar as operaes
repetitivas de entrada e sada, foi desenvolvido
um programa utilitrio monitor de controlo.
1. O utilizador entrega um trabalho (job) constitudo por uma
sequncia de mdulos. Os trabalhos so alinhados, pelos
operadores, em lotes.
2. O monitor de controlo l os comandos do trabalho, fornecendo
utilitrios auxiliares (compilador FORTRAN, rotinas E/S,)
3. Os comandos de cada lote so executados sucessivamente at ao
fim.
Para combater problemas de segurana, o lote pode ser
interrompido quando o trabalho gerar excepes (operaes
ilegais, como a leitura do lote seguinte ou diviso por zero)

Programao de Sistemas Historial : 5/44

Processamento em lotes (2)


O monitor de controlo apenas um interpretador de
comandos, um dos constituindos dos modernos sistemas
operativos.

A.Formato tpico de um lote


$JOB user_spec ; identifica utilizador para contabilidade
purposes $FORTRAN ; carrega compilador FORTRAN
; cartes do programa de utilizador
$LOAD ; carrega o programa compilado
$RUN ; corre programa
; cartes de dados
$EOJ ; fim do trabalho
Programao de Sistemas Historial : 6/44
Processamento em lotes (3)
B. Ocupao do CPU

Lote 1 Lote 2

E/S E/S E/S E/S


Execuo Execuo
(leitura) (escrita) (leitura) (escrita)
t

Exemplo: Fortran Monitor System (FMS) do IBM7094

Programao de Sistemas Historial : 7/44

Processamento em lotes (4)


C. Diviso da memria RAM
Monitor
Compilador, rotinas E/S,
controlo

Programa
utilizador

Nota: normalmente, o compilador um programa muito maior que o


espao disponvel. Para resolver o problema, usava-se a tcnica de
sobreposio (overlay) de partes.
Cada parte comea por ler os dados da parte anterior e processa-os de
seguida. Depois salvaguarda os resultados num ficheiro e carrega para
a memria RAM a parte seguinte.

Programao de Sistemas Historial : 8/44


Processamento em lotes (5)
D. Problemas
Impossvel interaco entre o programa e o utilizador
(todas as entradas de dados tm de ser previamente
incorporadas no trabalho)
Os dispositivos de E/S so muito lentos (ex:
velocidade tpica de leitor de cartes 20 cartes/seg)
O trabalho pode errar (aceder memria fora da sua
rea, ler as entradas do utilizado seguinte, gerar
excepes por exemplo em divises por zero,..).
O trabalho pode nunca concluir (ex: ciclo infinito)

Programao de Sistemas Historial : 9/44

Processamento em lotes (6)


Algumas solues
Lentido de dispositivos E/S resolvida por
equipamentos de transferncia de trabalhos para banda
magntica (desenvolvidos pela IBM-International
Business Machine).
Acesso a instrues crticas apenas pode ser executado
pelo monitor de controlo, que possui modo de
superviso. Programas de utilizador correm em modo
de utilizador.
Temporizador retorna controlo ao monitor para
programas demasiado extensos.
Nota: Processamento de lotes no Linux executado atravs dos comandos cron
(execuo em intervalos regulares) e at (execuo numa data posterior).
Programao de Sistemas Historial : 10/44
Processamento em lotes (7)
Para efectuar E/S, o programa de utilizador chama
rotinas do SO.
Deciso: Convm que o utilizador no conhea
endereo da rotina, para que
o sistema operativo possa evoluir,
aumentar segurana do sistema.
Soluo: criar dois modos de execuo (Utilizador e
Sistema), passando do modo de utilizador para
sistema atravs de interrupes de software.

Programao de Sistemas Historial : 11/44

Processamento em lotes (8)


Processadores Intel suportam 4 modos, designados por
aneis (rings), mas apenas so usados os aneis 0 e 3.
Algumas instrues no podem ser executadas em modo
utilizador (ex: alterar pginas de memria, alterar bit de
modo )
Programa (modo U)
interrupo
call_IO(n)

passa modo S
retorna modo U
SO (modo S)
Ponto de entrada
Rotina IO
IRET (via tabela de interrupes)
Programao de Sistemas Historial : 12/44
Processamento em lotes (9)
E. Ligao permanente de dispositivos lentos
Os dispositivos lentos (ex: entrada-leitor de cartes, sada-
impressoras) degradam significativamente o desempenho do
processamento em lotes.
O uso de discos, mais rpidos, pelo SPOOL-Simultaneous
Peripheral Operation Online, melhora o desempenho.

CPU

Entrada Memria Saida


RAM
SPOOL SPOOL
de entrada de sada
disco

Programao de Sistemas Historial : 13/44

Processamento em lotes (10)


SPOOL de entrada:
Armazena num disco os trabalhos submetidos.
Quando o programa utilizador chama o SO para uma operao de READ do
carto de dados, o SO encaminha o pedido para os ficheiros em disco, nos
quais foram previamente carregados os dados do carto pedido.
SPOOL de sada:
Transfere dados de disco para a impressora.
Quando o programa utilizador chama o SO para uma operao PRINT,
acede antes uma fila em disco. Os valores do programa ficam armazenados
temporariamente at o SPOOL de sada desencadear a sua impresso.
O acesso impressora fica sob a inteira responsabilidade do SO, o que lhe
permite escolher a ordem mais conveniente para a impresso (eg, imprimir
em primeiro lugar os trabalhos mais curtos).
O programa de utilizador no se apercebe que o perifrico ao qual acede
afinal 'virtual', suportado pelo disco.

Programao de Sistemas Historial : 14/44


Multiprocessamento (1)
[60-70] Aumento das capacidades de hardware
(CPU mais rpidos, maior memria de RAM e
disco,), reduo de custo dos equipamentos.
Famlia IBM 360, o primeiro computador com
CPU
ICs (modelo 67: 9 discos amovveis de 30MB
cada, 256KB RAM, sistema
operativo OS/360, at 3
utilizadores interactivos a
programar Basic/PLI/Fortran).
Nota: para estimar a gigantesca evoluo
informtica, compare com as capacidades do seu
porttil (qualquer que ele seja)...

Programao de Sistemas Historial : 15/44

Multiprocessamento (2)
O OS/360 continha milhes de LOC (linhas de cdigo) em
Assembly, programados por milhares de pessoas.
Um SO de multiprocessamento caracterizado por
Vrios trabalhos (Nota: a partir de agora referidos por processos)
so carregados para a memria RAM.
Cada processo 'v' o CPU como se fosse s dele.
O SO encarrega-se do atribuir segmentos de tempo do CPU a cada
processo.

Programao de Sistemas Historial : 16/44


Multiprocessamento (3)
Existem duas formas de multiprocessamento, de
acordo com a durao da atribuio do CPU
Cooperativo: o processo s liberta o CPU quando no
precisar mais dele.
Exemplo: Windows 3.x Central em PSis
Antecipao (preemptive): o sistema operativo
atribui fatias de tempo (time slice) a cada processo.
A entrega do CPU a um processo acompanhada por
um temporizador: quando este termina gera uma
interrupo ao sistema operativo, para este transferir o
CPU a outro processo espera.
Exemplos: Unix, Windows 95 e NT

Programao de Sistemas Historial : 17/44

Multiprocessamento (4)
A. Ocupao do CPU
Lanado novo processo
Processo terminou
Processo 1 X Temporizador finalizou
Processo 2
Novo processo

Despacho
t
Controlo transferido para outro processo

Temporizador finalizou

Programao de Sistemas Historial : 18/44


Multiprocessamento (5)
B. Entrelaamento
Porque o SO pode transferir em qualquer altura o CPU de
um processo para outro, as instrues de cada processo
(embora obrigatoriamente ordenadas entre si) podem ter
instrues de outros processos executados em permeio.
[Def] Entrelaamento (interleaving): disseminar
instrues de um processo seguido de instrues
de outro processo.
[Def] Trao (trace): uma das possveis ordens de
execuo de instrues de vrios processos.
Ex: sejam dois processos P1:abc e P2:def. Os traos
possveis so: abcdef, abdcef, abdecf, abdefc, adbcef,
......, defabc
Programao de Sistemas Historial : 19/44

Multiprocessamento (6)
[Def] Computao concorrente: execuo de
vrios processos que interagem entre si.

[Def] Sistema determinista: para as mesmas


entradas, os resultados produzidos em todos as
entrelaamentos so iguais.
Se os resultados no forem todos iguais, o sistema
diz-se no determinista ou sujeito a condies de
corrida (race conditions).

Programao de Sistemas Historial : 20/44


Multiprocessamento (7)
C. Distribuio de memria
Processo 1

Processo 2
Partio memria
Processo 3
Cada processo corre em memria virtual.
Sistema Independente do endereo fsico.
operativo Processos consideram que tm para
si todo o espao de memria.

Programao de Sistemas Historial : 21/44

Multiprocessamento (8)
D. Funes do SO
Gesto de processos: criao, destruio e
comunicao entre processos.
Gesto de memria: atribuir fraco de RAM a cada
processo, garantindo reserva de acesso.
Escalonamento: decidir que processo entra em
funcionamento.
E. Interactividade
Utilizadores inserem ordens e recebem resultados.
Organizao de dados em ficheiros e proteco de
acessos tornam-se componente importante de um SO.

Programao de Sistemas Historial : 22/44


Calendrio

Sem sistema operativo (Univac, IBM 601)


Processamento por lotes (IBM 7090)
Multiprogramao (Multics)
Memria virtual (Unix)
Sistemas distribudos

1946 1950 1960 1970 1980


1 gerao: 2 gerao: 3 gerao: 4 gerao:
vlvulas transstores circuitos integrados VLSI

Programao de Sistemas Historial : 23/44

Tempo: real vs. virtual


Os sistemas operativos so divididos em duas
classes, conforme temporizao adoptada para
execuo dos programas:
Tempo virtual: tempo de execuo dos programas no
relacionado com o tempo cronolgico.
Maioria dos sistemas operativos (Linux,Windows, ) adopta esta
abordagem.
Abordagem seguida em Programao de Sistemas.
Tempo real: computador tem de responder aos
estmulos num perodo de tempo determinado.
Sistemas operativos de tempo real usados em controlo industrial e
equipamentos mveis (avies, carros,) em sistemas embutidos.
Nota: tpico central na disciplina
Sistemas Computacionais
Programao de Sistemas Historial : 24/44
Classificao de arquitecturas
Vrios esquemas de classificao das
arquitecturas de computadores foram propostos
1. Capacidade
2. Taxonomia de Flynn (nmero de controlos e fluxos
de dados).
Flynn, M., Some Computer Organizations and Their
Effectiveness, IEEE Trans. Computers, Vol. C-21,
pp. 948, 1972

Programao de Sistemas Historial : 25/44

Classificao por capacidade (1)


Os SO so grandemente influenciados pelos tipos de
sistemas informticos. No ano 2000+ so conhecidos 7
tipos, segundo ordem descendente de capacidades:

A. Supercomputadores
Dedicados a processamento numrico (ex: simulao).
Cluster de computadores
Cray
Preo na ordem de vrios M.
Unix o SO mais usado.

Programao de Sistemas Historial : 26/44


Classificao por capacidade (2)

B. Grande porte (mainframes)


Suportam elevado nmero de terminais e
armazenamento de informao, instalados em centros
dedicados (ex: instituies financeiras).
Preo na ordem de vrias centenas de K.
SO mais usados da IBM.

C. Minicomputadores
Suportam vrios utilizadores.
Actualmente preteridos a favor dos servidores de topo.
Programao de Sistemas Historial : 27/44

Classificao por capacidade (3)


D. Paralelos
Constitudos por vrios processadores, cada um
processando uma fraco de dados escalares (ex:
simulao)
Distribuem tarefas.
Partilham memria e relgio.
Comunicao normalmente efectuada por memria comum.
Vantagens: maior dbito, maior fiabilidade, mais econmico.
Existem vrias arquitecturas de sistemas paralelos

Nota: tpico central na disciplina


Sistemas Operativos Distribudos
Programao de Sistemas Historial : 28/44
Classificao por capacidade (4)
Existem vrias abordagens de computao paralela:
1. Symmetric multiprocessing
(SMP): cada processador corre
uma cpia idntica do SO.

2. Asymmetric multiprocessing
(AMP):
N mestre (master) corre
SO e escala os processadores
escravos.
Ns escravos (slave)
correm as aplicaes.
Programao de Sistemas Historial : 29/44

Classificao por capacidade (5)

E. Distribudos
Distribui computao por vrios processadores, cada um
podendo processar informao distinta.
Cada processador tem a sua memria local.
Comunicao efectuada por barramentos (buses) ou por rede.
Nota: arquitecturas distribudas de cliente-servidor e P2P descritos
no captulo sobre comunicao entre processos.

Nota: tpico central na disciplina


Sistemas Operativos Distribudos
Programao de Sistemas Historial : 30/44
Classificao por capacidade (6)

F. Servidores (servers)
Sistemas informticos que disponibilizam servios a
outros computadores-clientes, atravs de uma rede.
Preo na ordem de vrias dezenas de K.
Servios tpicos: WWW, resoluo de nomes, Email,
Poucos utilizadores (normalmente
apenas administradores) com interfaces
pobres.
Usualmente colocados em bastidores
(rack) de 19".
SO mais usados: Linux, Windows NT.
Fiabilidade elevada.

Programao de Sistemas Historial : 31/44

Classificao por capacidade (7)


G. Pessoais
Sistemas informticos de reduzida dimenso,
normalmente com um nico microprocessador, usados
para
apoio burtico (processamento texto, email,) a um nico
utilizador.
mobilidade de utilizador, com ligao Internet sem fios a alta
velocidade.
controlo de mquinas simples (multibanco,)
Preo na ordem de K.

Computadores pessoais catalogados pela dimenso.

Programao de Sistemas Historial : 32/44


Classificao por capacidade (8)
1. Estaes de trabalho (workstations)
Interfaces grficas de elevada dimenso (17" ou 21").
Grande capacidade de processamento em vrgula flutuante.
Microprocessadores tpicos de arquitectura
RISC-Reduced Instruction Set Computer.
SO mais usado so variantes do Unix
(SunOS, Linux).

SPARC-1 da SUN

Programao de Sistemas Historial : 33/44

Classificao por capacidade (9)


2. Secretria (desktop)
Computadores de grande consumo
Dedicados a actividades simples (apoio burtico,
acesso ao WWW, jogos,)
Capacidade de incluir opes de equipamento
(discos, memria RAM, cartas dedicadas,)
SO mais usado: Windows (Linux para mundo
acadmico)
Apple II, o primeiro computador de secretria de
grande divulgao
Processador 6502 (8 bits)
RAM tpica de 48 KB
Programa mais usado: Visicalc (folha de clculo)
Hoje, os PCs possuem potncia de minicomputadores
Processador 64 bits (Intel Core2, AMD64)
RAM tpica de 2GB, discos tpicos de 160GB
Programao de Sistemas Historial : 34/44
Classificao por capacidade (10)
3. Porttil (notebook ou laptop)
Computadores leves, tipicamente 3Kg,
de reduzida dimenso
Monitor LCD/plasma incorporados entre
10 e 15.
Inexistncia de opes de equipamentos,
por forma a reduzir a dimenso.
Bateria permite utilizador trabalhar
algumas horas sem estar ligado
corrente elctrica.
Ligao sem fios WiFi-"wireless fidelity Internet.
SO mais usados: mesmo dos computadores de secretria
(Windows XP/Vista/7, MacOS e Linux).

Programao de Sistemas Historial : 35/44

Classificao por capacidade (11)


4. Tablet
Equipamento intermdio, entre porttil e
computador de bolso, divulgado em 2001
pela Microsoft.
Vendas arrancaram apenas em 2010 com
o iPad da Apple.
cran de 10, sem teclado.
Peso volta de 1Kg.
Utilizador interage por dedo ou com
auxlio de estilete.

Programao de Sistemas Historial : 36/44


Classificao por capacidade (12)
5. Computador de bolso (PDA-Personal
digital assistant)
Agenda electrnica, com capacidades
elementares de escritrio.
Interao por estilete e controlo remoto de
equipamentos electrnicos.
Ligao sem fios WiFi-"wireless fidelity
Internet.
SO mais usados pela seguinte ordem:
Symbian OS (para telemveis Nokia),
Android (desenvolvido pela Google, baseado no Linux),
iOS (Apple , derivado do MacOS),
Blackberry OS (da RIM),
Windows Mobile (Microsoft)
Programao de Sistemas Historial : 37/44

Classificao por capacidade (13)


6. Embutidos (embedded): equipamentos encapsulados
nos dispositivos controlados.
Dimenses e custos reduzidos.
Interfaces simples (srie ou USB, CAN-Controller Area
Network)
Podem sofrer restries de tempo-real.
Dedicado a tarefas especficas, tipicamento de controlo de
equipamentos (leitores MP3, controladores de equipamentos
fabris,)

Nota: tpico central na disciplina


Sistemas Computacionais

Nota: por vezes designados sistemas embebidos


Programao de Sistemas Historial : 38/44
Classificao de Flynn (1)
A. SISD
Um nico elemento de controlo.
Um nico fluxo de dados a ser processado.

Data Input Instructions


Processor Data Output

Exemplos: estaes de trabalho, portteis


Nota: desempenho do sistema limitado pela transferncia interna de informao
Programao de Sistemas Historial : 39/44

Classificao de Flynn (2)


B. MISD
Vrios elementos de controlo.
nico fluxo de dados processado por instrues distintas.
Paralelismo funcional
Instruction Stream A z1=fooA(x,y);
z2=fooB(x,y);
Instruction Stream B z3=fooC(x,y);

Instruction Stream C
Processor
A
Data
Data Processor
Output Stream
Input Stream B
Processor
C

Nota: no so conhecidas aplicaes prticas


Programao de Sistemas Historial : 40/44
Classificao de Flynn (3)
C. SIMD
nico elemento de controlo.
Vrios fluxos de dados processados em paralelo.
Instruction Stream Paralelismo dados
for(i=0;i<N;i++)
z[i]=foo(x[i],y[i]);
Data Output
Processor stream A
Data Intput
A
stream A
Data Output
Processor
Data Intput B stream B
stream B
Processor Data Output
Data Intput C stream C
stream C

Exemplos: supercomputadores Cray


Programao de Sistemas Historial : 41/44

Classificao de Flynn (4)


D. MIMD
Vrios elementos de controlo.
Vrios fluxos de dados processados em paralelo.
Instruction Instruction Instruction
Stream A Stream B Stream C

Data Output
Data Intput stream A
stream A
Data Output
Data Intput stream B
stream B
Data Intput Data Output
stream C stream C

Programao de Sistemas Historial : 42/44


Sistemas Operativos vistos em PSis (1)
Em PSis-Programao de Sistemas so estudados:
Aspectos tericos de SOs de tempo virtual.
Processos e Fios de execuo
Comunicao e Sincronizao
Gesto de memria e E/S
Sistema de ficheiros
Descritas tcnicas de implementao no sistema
operativo LINUX
Sistema aberto, i.e. cdigo acessvel e gratuito.
Corre em PC e portveis.
Amplamente divulgado no meio acadmico.
Amplamente usado em servidores.
Programao de Sistemas Historial : 43/44

Sistemas Operativos vistos em PSis (2)


Previses sobre computadores so, frequentemente, muito
duvidosas 
I think there is a world market for, maybe, five computers.
Thomas Watson, chairman of IBM, 1943.
There is no reason for any individual to have a computer in their home.
Ken Olson, president and founder of Digital Equipment Corporation,
1977.
640K [of memory] ought to be enough for anybody
Bill Gates, 1981: Nota: alegao desmentida pelo prprio.
The tablet PC... is virtually without limits -- and within five years I
predict it will be the most popular form of PC sold in America.
Bill Gates, Comdex 2001.
On several recent occasions, I have been asked whether parallel
computing will soon be relegated to the trash heap reserved for promising
technologies that never quite make it.
Ken Kennedy, CRPC Directory, 1994
Programao de Sistemas Historial : 44/44

Você também pode gostar