A História dos Sistemas Operativos

Primeira Geração - Válvulas e Painéis

Nesta época, um único grupo de pessoas era responsável pelo projecto, construção, programação, operação e manutenção de cada máquina. Toda a programação era feita em código absoluto, muitas vezes através da fiação para controlar as funções básicas da máquina. O conceito de linguagem de programação ainda não existia. Os sistemas operativos também não. O acesso ao computador por parte do usuário era feito através da reserva antecipada de tempo de máquina. Ao chegar sua vez de usar o computador, o usuário fazia sua própria programação nos painéis da máquina. Ao chegar sua vez de usar o computador, o usuário fazia sua própria programação nos painéis da máquina e passava a torcer para que nenhuma das 20.000 válvulas do computador viesse a queimar enquanto ele estivesse trabalhando. Nessa época os programa processados pelos computadores eram constituídos essencialmente por cálculos numéricos repetitivos, como por exemplo a geração de tabelas de funções trigonométricas. No início dos anos 50, houve uma melhora no uso de tais máquinas com o advento do cartão perfurado que tornou possível a codificação de programas em cartões e sua leitura pela máquina, dispensando a programação através de painéis.

Segunda Geração - Transistores

Com o emprego desta nova tecnologia em meados dos anos 50 os computadores tornaram-se confiáveis a ponto de serem comercializados. Em vista do alto custo de tais equipamentos, não foi surpresa o fato de se encontrar uma solução que reduzisse o tempo de máquina desperdiçado. A solução encontrada, denominada de sistema batch (lote), consistia em coletar na recepção de um conjunto de jobs e fazer a leitura dos mesmos para uma fita magnética empregando um computador pequeno e relativamente barato, tal como o IBM 1401, que era muito bom na leitura de cartões, na cópia em fita e na impressão de resultados. Os computadores da segunda geração eram usados maciçamente na realização de cálculos científicos e de engenharia, tal como a obtenção da solução de equações diferenciais parciais. A programação era feita em linguagem FORTRAN ou em linguagem de montagem. Os sistemas operativos típicos da época eram o FMS (Fortran Monitor System) e o IBSYS, ambos sistemas operativos desenvolvidos pela IBM para rodar no 7094.

Terceira Geração - CI's e Multiprogramação

Os sistemas operativos da terceira geração nos reservam três técnicas importantes de acordo com os avanços da tecnologia, nas quais são:

MULTIPROGRAMAÇÃO / SPOOL / TIME-SHARING

MULTIPROGRAMAÇÃO : No 7094, quando o job corrente parava para aguardar a conclusão de operações de entrada/saída, o processador também permanecia inativo até a conclusão da operação. Nos casos das aplicações científicas, as operações de entrada/saída não são muito frequentes, de tal maneira que o tempo perdido aguardando sua conclusão não chega a ser significativa. Já no caso do processamento comercial, o tempo de espera por entrada/saída pode chegar a 80 ou 90 por cento do tempo total de processamento, de maneira que algo precisava ser feito para evitar desperdício. A solução inicial foi dividir a memória em diversas partes, com um job alocado a cada uma delas.

SPOOL (Simultaneous Peripheral Operation On Line) : Outra característica dos sistemas operativos de terceira geração era sua capacidade de ler jobs de cartão direto para o disco, tão logo a massa de cartões tivesse chegado à sala do computador. Desta forma, assim que um job ativo terminasse, o sistema operacional carregaria um novo job na partição livre de memória, proveniente do disco.

TIME-SHARING : Compartilhamento de tempo, ou seja, uma variação dos sistemas operativos, onde cada usuário tinha um terminal on-line à sua disposição.

Quarta Geração - CI's e Multiprogramação

Com o desenvolvimento da integração de circuitos em grande escala (LSI), apareceram chips com milhares de transistores encapsulados em um centímetro quadrado de silício, nascendo daí a idéia do computador pessoal. Atualmente, os mais poderosos computadores pessoais são denominados estações de trabalho (wokstations). Tais máquinas são usadas nas mais diferentes atividades e usualmente estão conectadas a uma rede pública ou privada, que permite a troca de informações entre todas as máquinas ligadas a ela. A grande disponibilidade de poder computacional, levou ao crescimento de uma indústria voltada para a produção de software para estas máquinas. A maioria destes softwares é "ameno ao usuário" (user-friends), significando que eles são voltados para pessoas que não tem nenhum conhecimento de computadores, e mais que isto, não tem nenhuma vontade de aprender nada sobre este assunto. Um desenvolvimento interessante que começou a tomar corpo em meados dos anos 80 foi o dos sistemas operativos para redes e o dos sistemas operativos distribuídos. Em uma rede de computadores, os usuários estão conscientes da existência de um conjunto de máquinas conectadas à rede, podendo portanto ligar-se a máquinas remotas e solicitar serviços das mesmas. Cada uma destas máquinas roda seu próprio sistema operacional e tem seu próprio usuário. Os sistemas operativos de rede não diferem fundamentalmente daqueles usados em máquinas monoprocessadoras. Obviamente, eles precisam de uma interface controladora de rede e de um software específico para gerenciar tal interface, além de programas que permitam a ligação de usuários a máquinas remotas e seu acesso a arquivos também remotos. Tais características não chegam a alterar a estrutura básica do sistema operacional usado para máquinas com um único processador. Já os sistemas operativos distribuídos precisam de mais do que a simples adição de poucas linhas de código a um sistema usado em máquinas monoprocessadoras, pois os sistemas ditos distribuídos diferem dos centralizados em pontos bastante críticos. Por exemplo, os sistemas operativos distribuídos permitem que programas rodem em vários processadores ao mesmo tempo, necessitando portanto de algoritmos de escalonamento de processador bem mais.

Tipos de Sistemas Operativos