TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Sistemas operacionais

Relatório de pesquisa: Sistemas operacionais. Pesquise 859.000+ trabalhos acadêmicos

Por:   •  8/11/2014  •  Relatório de pesquisa  •  5.778 Palavras (24 Páginas)  •  183 Visualizações

Página 1 de 24

Os sistemas operacionais têm sido historicamente amarrados à arquitetura dos computadores nos quais iriam rodar. Por isso, veremos como eles evoluiram nas sucessivas gerações de computadores. Esse mapeamento entre gerações de computadores e gerações de sistemas operacionais é admissivelmente imaturo, mas tem algum sentido.

O primeiro computador digital verdadeiro foi projetado pelo matemático inglês Charles Babbage (1792-1871). Embora Babbage tenha dispendido muito de sua vida e de sua fortuna tentando construir sua "máquina analítica", ele jamais conseguiu por o seu projeto em funcionamento porque era simplesmente um modelo matemático e a tecnologia da época não era capaz de produzir rodas, engrenagens, dentes e outras partes mecânicas para a alta precisão que necessitava. Desnecessário se dizer que a máquina analítica não teve um sistema operacional.

1 - A Primeira Geração (1945-1955): Válvulas e Painéis com Plugs

Após os esforços sem sucesso de Babbage, pouco progresso se teve na construção de computadores digitais até a Segunda Guerra Mundial. Em torno de 1940, Howard Aiken em Harvard, John Von Neumann no Instituto para Estudos Avançados em Princeton, John Presper Eckert e William Mauchley na Universidade de Pennsylvania e Konrad Zuse na Alemanha, entre outros, tiveram sucesso na construção de máquinas calculadoras usando válvulas. Essas máquinas eram enormes, ocupando salas completas, com dezenas de milhares de válvulas, porém eram muito mais lentas do que os mais simples computadores pessoais de hoje.

Naqueles dias primitivos, um pequeno grupo de pessoas construiu, programou, operou e deu manutenção a cada máquina. Toda a programação era feita em linguagem de máquina, sempre se conectando fios com plugs em painéis para controlar as funções básicas da máquina. As linguagens de programação não eram conhecidas (nem a linguagem Assembly). Nem se ouvia falar em sistemas operacionais. O modo usual de operação consistia no programador elaborar o programa numa folha e então ir à sala da máquina, inserir os plugs nos painéis do computador e gastar as próximas horas apelando que nenhuma das 20.000 ou mais válvulas não se queimasse durante a execução do programa. Na verdade, todos os problemas eram inerentemente sobre cálculos numéricos tais como gerações de tabelas de senos e cossenos.

Por volta dos anos 50, essa rotina teve uma pequena evolução com a introdução de cartões perfurados. Era possível, a partir de então, se escrever programas em cartões e lê-los, em vez do uso de plugs em painéis; no mais, o procedimento era o mesmo.

2 - A Segunda Geração (1955 - 1965): Transistores e Sistemas Batch

A introdução do transistor em meados dos anos 50 mudou o quadro radicalmente. Os computadores tornaram-se bastante confiáveis para que pudessem ser produzidos e vendidos comercialmente na expectativa de que eles continuassem a funcionar por bastante tempo para realizar algumas tarefas usuais. A princípio havia uma clara separação entre projetistas, construtores, operadores, programadores e o pessoal de manutenção.

Essas máquinas eram alocadas em salas especialmente preparadas com refrigeração e com apoio de operadores profissionais. Apenas grandes companhias, agências governamentais, ou universidades, dispunham de condições para pagar um preço de multimilhões de dólares por essas máquinas. Para rodar um job (isto é, um programa ou um conjunto de programas), primeiro o programador escrevia o programa no papel (em FORTRAN ou linguagem Assembly), e então perfurava-o em cartões. Daí, ele levava o "deck" de cartões à sala de recepção e o entregava a um dos operadores.

Quando o computador encerrava a execução de um job, um operador apanhava a saída na impressora, a conduzia de volta à sala de recepção onde o programador poderia coletá-lo posteriormente. Então ele tomava um dos decks de cartões que tinha sido trazido da sala de recepção e produzia a sua leitura. Se o compilador FORTRAN era necessário, o operador tinha que pegá-lo de uma sala de arquivos e produzir a sua leitura. Muito tempo de computador era desperdiçado enquanto os operadores caminhavam pela sala da máquina para realizarem essas tarefas.

Devido ao alto custo do equipamento, era de se esperar que as pessoas tentassem reduzir o tempo desperdiçado. A solução geralmente adotada era o sistema em "batch". A idéia original era colecionar uma bandeja completa de jobs na sala de recepção e então lê-los para uma fita magnética usando um computador pequeno e relativamente barato, por exemplo o IBM 1401, que era muito bom na leitura de cartões, na cópia de fitas e na impressão da saída, porém não era tão bom em cálculo numérico. Outros computadores, máquinas mais caras, tais como o IBM 7094, eram usados para a computação real. Essa situação é mostrada na figura 1.

( a ) ( b ) ( c ) ( d ) ( e ) ( f )

Figura 1 - Um sistema “batch” antigo. ( a ) Programadores levam cartões ao 1401. ( b ) 1401 lê

batch de jobs em fita. ( c ) A operadora acopla fita de entrada no 7094. ( d) O 7094

faz o processamento. ( e ) A operadora acopla fita de saída no 1401. ( f ) O 1401 im-

prime a saída.

Após cerca de uma hora coletando-se um lote de jobs, a fita era rebobinada e levada para a sala da máquina onde era montada numa unidade de fita. O operador então carregava um programa especial (o antecessor do sistema operacional de hoje), que lia o primeiro job da fita e o executava. A saída era escrita numa segunda fita, em vez de ser impressa. Após o fim da execução de cada job, o sistema operacional automaticamente lia o próximo job da fita e começava a executá-lo. Quando todo o "batch" era feito, o operador removia as fitas de entrada e de saída, substituia a fita de entrada pelo próximo "batch" e levava a fita de saída para um 1401 produzir a impressão "off-line" (isto é, não conectada ao computador principal).

A estrutura de um job de entrada típico é mostrada na figura 2. Ele começa com um cartão $JOB, especificando o tempo máximo de execução em minutos, o número da conta e o nome do programador. A seguir vinha um cartão $FORTRAN, avisando ao sistema operacional para carregar o compilador FORTRAN da fita do sistema. Em seguida vinha um programa a ser compilado, acompanhado de um cartão $LOAD, informando ao sistema operacional

...

Baixar como (para membros premium)  txt (37.1 Kb)  
Continuar por mais 23 páginas »
Disponível apenas no TrabalhosGratuitos.com