sexta-feira, 21 de maio de 2010

2ª Fase (1955-1965)

2ª Fase (1955-1965)

O desenvolvimento do transistor e das memórias magnéticas em meados dos anos 50 veio a alterar substancialmente o quadro descrito acima. O transistor permitiu o aumento da velocidade e da confiabilidade do processamento, e as memórias magnéticas permitiram o acesso mais rápido aos dados, maior capacidade de armazenamento e computadores menores. Com o emprego desta nova tecnologia, os computadores tornaram-se confiáveis a ponto de ser comercializados.

Nesta época, passou a haver uma distinção muito clara entre as pessoas envolvidas no projeto, na construção, na operação, na programação e na manutenção destas máquinas. Elas eram instaladas em salas isoladas e operadas por pessoal especializado. Somente as grandes empresas e órgãos governamentais ou universidades podiam pagar os muitos milhões de dólares necessários à aquisição destas máquinas.

Para rodar um JOB (um programa ou conjunto de programas) o programador escrevia primeiro seu programa em uma folha de papel (em FORTRAN ou em linguagem de montagem), para depois perfurá-lo em cartões. Depois disso, ele entregava a massa de cartões a um dos operadores da máquina para que a mesma fosse processada.

Ao final do processamento do programa corrente, um dos operadores ia até a impressora e retirava o relatório emitido, entregando-o na expedição, onde ele seria mais tarde retirado pelo programador do job. Então ele, o operador, escolhia uma nova massa de cartões, entre as que haviam sido entregues na recepção, e providenciava os recursos necessários ao processamento deste novo job. Por exemplo, se tal job precisasse do compilador FORTRAN, o operador deveria providenciar a leitura da massa de cartões correspondente ao compilador FORTRAN. Grande parte do tempo da máquina era gasto com operadores circulando dentro da sala onde ela estava instalada, providenciando recursos necessários ao processamento de determinadas tarefa.

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).

Esses sistemas estão entre os mais tradicionais e antigos e foram introduzidos por volta de 1956 com o objetivo de aumentar a capacidade de processamento de programas. Em tais sistemas as tarefas (JOB) dos usuários são agrupadas fisicamente e processadas seqüencialmente uma após a outra.

A comunicação do homem com o computador é feita através de periféricos cuja velocidade de operação é muito lenta comparada com a do processador, como por exemplo, cartões perfurados e impressoras. No caso comum em que o cartão perfurado é o principal meio de entrada e impressão em papel o principal meio de saída, é comum ocorrer que a maior parte do tempo o processador central fique inativo à espera de dados de entrada ou pelo término de impressão, devido a natureza seqüencial do processamento:

Uma solução para esse problema, adotada por volta de 1957 no IBM 7094, foi usar o computador especial para converter dados em cartão para fita magnética e para imprimir numa impressora resultados gravados em outra fita magnética. As fitas magnéticas eram usadas como "reservatórios", um para entrada e outro para saída. Elas eram transportadas manualmente do sistema auxiliar para o sistema principal e deste para o sistema auxiliar.

A fita de entrada poderia ser preenchida quando programas longos estivessem em execução no sistema principal e a fita de saída descarregada continuamente. Desta forma o sistema principal teria sua utilização maximizada pois só faria E/S, através das fitas magnéticas mais rápidas. Esta técnica de armazenamento de dados para entrada e de resultados para a saída é denominada "rolamento" (em inglês: Spooling) e o exemplo acima é uma forma primitiva de sua implementação. Seu objetivo é maximizar o número de tarefas processadas por unidade de tempo (throughtput) no equipamento principal às custas de um tempo de resposta maior, devido à necessidade de agrupar fisicamente as tarefas na entrada e na saída e ao transporte manual das fitas. Além disso, se um programa muito longo fosse incluído no lote, a natureza estritamente sequencial do processamento faria com que o tempo de resposta de todos os programas no lote fosse aumentado.

A estrutura de uma tarefa típica pode ser vista como: Ela começa com o cartão $JOB, que especifica o tempo máximo de processamento em minutos, o número da conta onde tal tempo deve ser debitado, e o nome do programador. Observe que agora há um controle de tempo por usuário, impedindo que uma tarefa atrapalhe as seguintes (como explicado anteriormente). A seguir vem o cartão $FORTRAN solicitando ao sistema operacional que carregue o compilador FORTRAN na memória principal. A seguir aparecem os cartões do programa a ser compilado. (Os programas compilados eram geralmente escritos em fitas de rascunho, e tinham que ser carregados explicitamente). O cartão seguinte, $RUN, pede que o sistema operacional providencie o processamento do programa que acabou de ser carregado, com o conjunto de dados constante dos cartões seguintes ao $RUN. Finalmente, aparece o cartão $END. que marca o final da tarefa. Estes cartões de controle, um tanto quanto primitivos, foram os precursores das linguagens de controle e interpretação de comandos.

Em resumo, nos sistemas do "tipo lote" os tempos de resposta podem ser altos devido ao agrupamento das tarefas para entrada e ao escalonamento que o sistema impõe na execução das tarefas e impressão de resultados. Além disso, a intervenção humana tanto para colocar as tarefas de entrada, quanto para entrega dos resultados, pode aumentar sensivelmente o tempo de resposta. Por outro lado, sistemas desse tipo, quando bem projetados, podem ter uma razão de execução de tarefas por unidade de tempo muito alta porque o processador central é melhor utilizado e os sistemas operacionais podem ser simples devido à seqüencialidade e não interruptibilidade da execução das tarefas. Exemplo de sistemas "tipo lote" bem sucedidos são o SCOPE para o CDC 6600, orientado para processamento científico pesado, e o EXEC II para o UNIVAC 1107, orientado para processamento acadêmico e científico. Ainda nessa fase destacamos os sistemas FMS (Fortran Monitor System), IBSYS e o sistema operacional do computador IBM 7094.

Nessa fase, os sistemas operacionais passaram a ter seu próprio conjunto de rotinas para operações de entrada e saída (Input/Output control System – IOCS), que veio facilitar enormemente o processo de programação. O IOCS eliminou a necessidade de os programadores desenvolverem suas próprias rotinas de leitura/gravação específicas para cada dispositivo periférico. Esta facilidade de comunicação criou o conceito de interdependência de dispositivos.

fonte: http://www.angelfire.com/co/eltonsanders/socap5.html

Nenhum comentário:

Postar um comentário