Sei sulla pagina 1di 20

REVISÃO HISTÓRICA DOS SISTEMAS

OPERACIONAIS

Prof. Eduardo H. S. Oliveira


Décadas de 1940 e 1950

Na década de 1940, os primeiro computadores digitais


eletrônicos não tinham sistemas operacionais. As máquinas
daquela época eram tão primitivas que os programadores muitas
vezes submetiam seus programas a linguagem de máquina, um
bit por vez, em filas de chaves mecânicas. Com a introdução das
perfuradoras de cartão, esses mesmos programas foram
submetidos a cartões perfurados.

Assim, linguagens de montagem (assembly) – que usavam


abreviaturas parecidas com palavras em inglês para representar
as operações básicas do computador – foram desenvolvidas
para acelerar o processo de programação.

Prof. Eduardo H. S. Oliveira


Décadas de 1940 e 1950

Os laboratórios de Pesquisa da General Motors


implementaram o primeiro sistema operacional no início da
década de 50 para seu computador IBM 701. Sistemas da
década de 1950 geralmente executam somente um job (serviço)
por vez. O job era composto de um conjunto de instruções de
programas correspondentes a uma tarefa computacional
particular, como folha de pagamento ou estoque. Jobs
normalmente eram executados sem entradas do usuário durante
minutos, horas ou dias. Esses primeiros computadores eram
denominados Sistemas de Processamento em Lote de Fluxo
Único porque programas de dados eram submetidos em grupos
ou lotes carregando-os consecutivamente em uma fita ou disco.

Prof. Eduardo H. S. Oliveira


Décadas de 1940 e 1950

Prof. Eduardo H. S. Oliveira


Décadas de 1940 e 1950

Embora os sistemas operacionais da década de 1950


reduzissem os tempos de transmissão entre Jobs, era muito
comum solicitar aos programadores que controlassem
diretamente recursos do sistema como memória e dispositivos
de entrada\saída, o que se mostrava um trabalho lento, difícil e
tedioso. E mais, os primeiros sistemas exigiam que um
programa inteiro fosse carregado na memória para poder ser
executado, limitando os programadores a criar programas
pequenos com capacidades reduzidas.

Prof. Eduardo H. S. Oliveira


Décadas de 1940 e 1950

Exercícios:

1 - Porque foram desenvolvidas linguagens de montagem


(assembly)?

2 - O que limitava tamanho e capacidades dos programas da


década de 50?

Prof. Eduardo H. S. Oliveira


Décadas de 1940 e 1950

Respostas:

1 - Linguagens de montagem foram desenvolvidas para acelerar


o processo de programação. Habilitavam os programadores a
especificar comandos sob a forma de abreviações parecidas
com palavras em inglês utilizadas pelos seres humanos para
trabalhar com maior facilidade do que com instruções em
linguagem de máquina.

2 - O programa inteiro tinha de ser carregado na memória para


ser executado. Como era relativamente cara, a quantidade de
memória disponível naqueles computadores era pequena.

Prof. Eduardo H. S. Oliveira


A década de 1960

Os sistemas da década de 1960 também eram sistemas de


processamento em lote, mas usavam os recursos do
computador mais eficientemente executando diversos jobs ao
mesmo tempo. Os sistemas dessa década melhoraram a
utilização de recursos permitindo que um job usasse o
processador, enquanto outros utilizavam os dispositivos
periféricos. Na verdade, executar uma mistura de diferentes
Jobs parecia ser a melhor maneira de otimizar a utilização de
recursos.

Com essas observações em mente, projetistas de sistemas


operacionais desenvolveram sistemas de multiprogramação que
gerenciavam diversos jobs ao mesmo tempo.

Prof. Eduardo H. S. Oliveira


A década de 1960

Em um ambiente de multiprogramação, o sistema


operacional comuta rapidamente o processador de job em job
mantendo vários deles em andamento e, ao mesmo tempo, os
dispositivos periféricos também em uso. Assim, os sistemas
operacionais evoluíram do processamento de um job para o
gerenciamento de diversos Jobs ao mesmo tempo.

Normalmente os usuários da década de 1960 não estavam


presentes no local onde o computador estava instalado quando
seus Jobs eram executados. Esses eram submetidos a cartões
perfurados ou fitas de computador e permaneciam em mesas de
entrada até que o operador do sistema pudesse carregá-los no
computador para execução.

Prof. Eduardo H. S. Oliveira


A década de 1960

Muitas vezes o job de um usuário ficava parado durante


horas ou até dias antes de poder ser processado. O menor erro
em um programa, até mesmo uma vírgula ou um ponto que
faltasse, ‘bombardeava’ o job, quando então o usuário (muitas
vezes frustrado) corrigiria o erro, submeteria novamente o job e
mais uma vez esperaria por horas ou dias pela próxima tentativa
de execução. O desenvolvimento de softwares naquele
ambiente era penosamente lento.

Prof. Eduardo H. S. Oliveira


A década de 1960

Foram desenvolvidos sistemas operacionais mais


avançados para atender a diversos usuários interativos ao
mesmo tempo. Usuários interativos comunicam-se com seus
Jobs durante a execução. Na década de 1960, os usuários
interagiam com o computador via ‘terminais burros’ (dispositivos
que forneciam uma interface de usuário, mas nenhuma de
processamento) on-line (ligados diretamente ao computador via
conexão ativa). Foram desenvolvidos sistemas de tempo
compartilhado para apoiar usuários interativos simultâneos.

Prof. Eduardo H. S. Oliveira


A década de 1960

Muitos dos sistemas de tempo compartilhado da década de


1960 suportavam processamento em lote, bem como aplicações
de tempo real (sistemas de controle de processo industrial).
Sistemas de real tentam dar uma resposta dentro de um certo
prazo limitado. Por exemplo, uma medição realizada em um
refinaria de petróleo indicando que as temperaturas estão muito
altas exige atenção imediata para evitar uma explosão. É mais
importante que tais sistemas dêem uma resposta rápida do que
usem seus recursos eficientemente.

Prof. Eduardo H. S. Oliveira


A década de 1960

Executar tantos Jobs em lote quanto de tempo real


significava que os sistemas operacionais tinham de distinguir
entre tipos de usuários e fornecer a cada um deles um nível
apropriado de serviço. Jobs de processamento em lote podiam
sofrer atrasos razoáveis, enquanto aplicações interativas
demandavam um nível mais alto de serviço e sistemas de tempo
real exigiam níveis de serviço extremamente altos.

Prof. Eduardo H. S. Oliveira


A década de 1960

Entre os mais importantes esforços de desenvolvimento de


sistemas de tempo compartilhado desse período estão o CTSS
(Compatible Time-Sharing System, sistema compatível de tempo
compartilhado) desenvolvido pelo MIT, o TSS (Time Sharing
System, sistema de tempo compartilhado) desenvolvido pela
IBM, o sistema Multics desenvolvido pelo MIT, GE e Bell
Laboratories para ser o sucessor do CTSS, e o CP/CMS
(Control Program/Conversation Monitor System, programa de
controle/sistema monitor conversacional) que eventualmente
evoluiu para o sistema operacional VM (Virtual Machine,
máquina virtual) da IBM.

Prof. Eduardo H. S. Oliveira


A década de 1960

Esses sistemas foram projetados para executar tarefas


básicas de computação interativa para indivíduos, mas seu real
valor provou ser a maneira como compartilhavam programas de
dados e demonstravam a importância da computação interativa
em ambientes de desenvolvimento de programas.

Os projetistas do sistema Multics foram os primeiros a usar


o termo processo para descrever um programa em execução no
contexto dos sistemas operacionais. Em muitos casos , os
usuários submetiam Jobs contendo vários processos que
podiam ser executados simultaneamente.

Prof. Eduardo H. S. Oliveira


A década de 1960

O tempo de retorno – o tempo entre a submissão de um job


e o retorno de seus resultados – foi reduzido para minutos ou
até segundos. O programador não precisava mais esperar horas
ou dias para corrigir os erros mais simples. Podia entrar com o
programa, fazer a compilação, receber uma lista de erros de
sintaxe, corrigi-los imediatamente, recompilar e continuar até o
programa estar livre de erros de sintaxe. Então ele podia ser
executado, depurado, corrigido e concluído com economias de
tempo semelhantes.

Prof. Eduardo H. S. Oliveira


A década de 1960

O valor dos sistemas de tempo compartilhado no suporte


do desenvolvimento de programas foi demonstrado quando o
MIT, a GE e o Bell Laboratories usaram o sistema CTSS para
desenvolver um sucessor próprio, o Multics. Esse programa foi
notável por ter sido o primeiro grande sistema operacional
escrito primariamente em linguagem de alto nível, e não em
linguagem de montagem (assembly). Os projetistas do UNIX
aprenderam com essa experiência; criaram uma linguagem de
alto nível C especificamente para implementar o UNIX. Uma
família de sistemas operacionais baseado no UNIX, entre eles o
Linux e o UNIX Berkeley Software Distribution (BSD), evoluiu do
sistema original criado por Dennis Ritchie e Ken Thompson no
Bell Laboratories no final da década de 1960.

Prof. Eduardo H. S. Oliveira


A década de 1960

TSS, Multics e CP/CMS, todos incorporavam memória


virtual. Em sistemas com memória virtual, os programas
conseguem endereçar mais localizações de memória do que
realmente providas na memória principal, também chamada
memória real ou memória física. Sistemas de memória virtual
ajudam a livrar os programadores de grande parte da carga do
gerenciamento da memória, liberando-os para se concentrarem
no desenvolvimento de aplicações.

Prof. Eduardo H. S. Oliveira


A década de 1960

Exercícios:

1 - Como a computação interativa e a melhoria que causou no


tempo de retorno aumentaram a produtividade do programador?

2 - Quais foram os novos conceitos incorporados pelo TSS,


Multics e CP/CMS? Por que foram tão úteis para os
programadores?

Prof. Eduardo H. S. Oliveira


A década de 1960

Respostas:

1 - O tempo entre a submissão de um job e o retorno de seus


resultados foi reduzido de horas ou dias para minutos ou até
segundos, o que habilitava os programadores a entrar, editar e
compilar programas interativamente até eliminar seus erros.

2 - TSS, Multics e CP/CMS incorporavam memória virtual. A


memória virtual permite às aplicações acesso a mais memória
do que estaria fisicamente disponível no sistema, o que, por sua
vez, habilita os programadores a desenvolver aplicações
maiores e mais poderosas. Além disso, sistemas de memória
virtual liberam o programador de grande parte da carga do
gerenciamento da memória.
Prof. Eduardo H. S. Oliveira

Potrebbero piacerti anche