História dos SOs Cap. 1 - Tanenbaum Prof. Alexandre Beletti Ferreira 1ª Geração 2ª Geração 3ª Geração 4ª Geração Tópicos 1
1ª Geração 1ª Geração: 1945 a 1955 Computadores: em meados da década de 40 Máquinas de Calcular Relés mecânicos Ciclos medidos em segundos (!) Posteriormente os relés foram substituídos por válvulas a vácuo Máquinas enormes que ocupavam uma sala inteira 2
1ª Geração: 1945 a 1955 Um único grupo de pessoas projetava, construía, programava, operava e mantinha cada máquina Toda a programação feita em linguagem de máquina pura (!) Não existia nenhuma linguagem de programação, nem mesmo Assembly! 1ª Geração: 1945 a 1955 Não existia o termo sistemas operacional O programador reservava um período de tempo Inseria seu painel de conectores no comp. Cálculos numéricos simples, como geração de tabelas de senos, co-senos e logaritmos No início dos alunos 50 as coisas melhoraram com os cartões perfurados 3
2ª Geração 2ª Geração: 1955 a 1965 A introdução do transistor ocorreu em meados da década de 50 Os computadores se tornaram confiáveis para serem vendidos para clientes Houve uma separação clara entre projetistas, construtores, operadores, programadores e pessoal de manutenção Chamados de Grande Porte ou Mainframes 4
2ª Geração: 1955 a 1965 Eram postas em salas especiais com arcondicionado e operadores profissionais Nas mão de grandes empresas, órgãos do governo, universidades Processo de execução de um job (tarefa): programava em Fortran/Assembly no papel, convertia para cartão perfurado, entregava para um operador, resultado na sala de saída 2ª Geração: 1955 a 1965 Se o compilador Fortran fosse necessário, o seu código (cartões) precisavam ser inseridos Existia o tempo ocioso (sala de máquina, submissão e saída) Solução: sistema de processamento em lotes (batch) usando um computador bom para isso (ex: IBM 1401) e a fita iria para o computador de cálculos (IBM 7094) 5
2ª Geração Fluxo do Proc. Batch 2ª Geração: 1955 a 1965 Após a geração da fita de jobs pelo computador mais simples......o operador carregava um programa especial, que lia o primeiro programa na fila e o executava, gravando a saída em outra fita Isso era feito até acabarem os jobs Esse programa especial é o ancestral dos sistemas operacionais 6
2ª Geração: 1955 a 1965 Eram usados principalmente para cálculos de engenharia e científicos Eram escritos em Fortran e Assembly Sistemas Operacionais: FMS = Fortran Monitor System IBSYS = Sistema Operacional do IBM 7094 Estrutura de um job no FMS 7
3ª Geração 3ª Geração: 1965 a 1980 No início da década de 60, os fabricantes tinhas duas linhas de produtos incompatíveis: Mainframes (7094): engenharia/ciência Comerciais (1401): bancos/seguradoras Manter as duas linhas era muito caro Além disso, alguns clientes começavam com máquinas pequenas e migravam para maiores 8
3ª Geração: 1965 a 1980 IBM tentou resolver isso criando System/360 Era uma série de máquinas de software compatível com o 1401 e o 7094 A diferença das máquinas de 360 era no preço e no desempenho, pois variavam o hardware: Capacidade máxima de memória, velocidade do processador, número de dispositivos de E/S Mas as máquinas tinha a mesma arquitetura! 3ª Geração: 1965 a 1980 Mesma arquitetura = Mesmo ISA! O 360 foi projetado para computação científica (numérica) e comercial Primeira geração importante a utilizar CIs Assim uma única família de máquinas poderia satisfazer as necessidades de todos os clientes Nos anos seguintes a IBM lançou computadores sucessores: 370, 4300, 3080, 3090 e Z 9
3ª Geração: 1965 a 1980 A intenção era que todo software (incluindo o SO OS/360) funcionasse em todos os modelos Para uso científico e comercial Ser eficiente em ambientes muito distintos Não deu certo... O resultado foi um SO enorme e complexo Milhões de linhas em Assembly, milhares de programadores e milhares de erros 3ª Geração: Multiprogramação Apesar do tamanho enorme e de seus erros, os SOs de 3ª geração atendiam aos clientes Popularizaram técnicas importantes, como o conceito de multiprogramação 10
3ª Geração: Spooling Vários jobs simultâneos precisam de ajuda do hardware (segurança, memória, etc) O 360 e outros hardwares de 3ª geração estavam preparados para isso Outro conceito importante é o Spooling (Operação Periférica Simultânea On-line) Efetuava a leitura de jobs de cartões para o disco eliminava a função dos IBM 1401 (ler os cartões separadamente) 3ª Geração: Time Sharing Ainda eram sistemas em lote, pois os jobs continuavam executando em sequência Abriu espaço para o compartilhamento de tempo (time sharing) Na verdade esse conceito é uma variante de multiprogramação Gerenciar o tempo ocioso entre as aplicações 11
3ª Geração: Time Sharing e CTSS CTSS: Primeiro SO sério com time sharing CTSS = Compatible Time Sharing System Desenvolvido pelo MIT em um IBM 7094 por volta de 1962 O conceito de time sharing somente tornou-se popular quando o hardware passou a dar suporte a ele 3ª Geração: MULTICS CTSS, Bell Labs e G.E. (General Eletric) Decidiram dar o início a um computer utility Máquina que comportaria centenas de usuários de tempo compartilhado A mesma lógica da rede elétrica (você pluga na toma e utiliza) MULTICS = Serviço de Computação e Informação Multiplexado 12
3ª Geração: MULTICS A ideia do MULTICS era uma super máquina oferecendo poder computacional para todos na região de Boston A máquina não tomou conta do mundo, porém muitas ideias surgiram ali O GE e a Bell Labs saíram e o MIT continuou Foi utilizado pela GE, Ford e Agência Nacional de Segurança dos EUA até o final dos anos 90 Deu origem ao conceitos de LANs e Sist. Dist. 3ª Geração: UNIX PDP-1 da DEC, com 4K de palavra de 18 bits Custava $120.000, menos de 5% do IBM 7094 Não era para a parte numérica e deu origem a uma sequência de PDFs incompatíveis Ken Thompson trabalhou no MULTICS e usando um PDP-7 criou uma versão monousuária do mesmo (o futuro UNIX) 13
3ª Geração: POSIX Source disponível deu origem a várias versões incompatíveis, gerando um caos Duas versões importantes: System V (AT&T) BSD (Berkeley Software Distribution) FreeBSD, OpenBSD e NetBSD Para poder escrever programas que rodassem em qualquer UNIX, o IEEE desenvolveu o POSIX 3ª Geração: POSIX Define uma interface mínima de chamadas de sistemas que os sistemas UNIX devem suportar Outros SOs que não são baseados em UNIX acabaram adotando o padrão 14
4ª Geração 4ª Geração: 1980 - hoje Circuitos LSI (Integração em Larga Escala) Chips com milhares de transistores em um centímetro quadrado de silício PC baseado em microprocessador Inspirados nos minicomputadores (PDP-11) Porém muito mais baratos Qualquer pessoa poderia ter um computador 15
4ª Geração: 1980 - hoje Intel 8080 (1974): primeiro proc. de 8 bits Z80: compatível com o 8080 feito pel Zilog SO CP/M (Control Program for Microcomputers) Criado pela Digital Research Dominou o mercado de PCs por 5 anos Motorola 6800 de 8 bits MOS Technology 6502 (usado no Apple II) 4ª Geração: Microsoft As placas do CP/M eram comercializadas por uma pequena empresa chamada Microsoft A Microsoft tinha um nicho de mercado: interpretador BASIC para o CP/M Geração seguinte: procs. de 16 bits Intel 8086 e o Intel 8088 A IBM projetou o IBM PC com o 8088 16
4ª Geração: Microsoft Microsoft ofereceu um sistema para a IBM que incluía o BASIC e um SO: o DOS DOS = Disk Operating System Foi um SO adaptado de outro (comprado) que se tornou o MS-DOS Sistemas de linha de comandos: CP/M DOS Apple DOS 4ª Geração: GUI e Apple Dough Engelbart (Stanford Research Institute) criou a GUI (Graphical User Interface) A Apple incorporou essa ideia ao Macintosh Foi lançado em 1984 CPU Motorola 6800 de 16 bits 64Kb de ROM para a GUI Apple mudou para o PowerPC de 32 bits Em 2001 lançou o Mac OS X (Unix based) Em 2005 migrou para processadores Intel 17
4ª Geração: Windows Originalmente um ambiente gráfico rodando sobre o DOS em 16 bits Os descendentes do Windows NT são sistemas gráficos completos de 32 ou 64 bits 4ª Geração: UNIX e Linux Poderoso em estações de trabalho e servidores (especialmente proc. RISC) Computadores baseados no Pentium (Celeron, Zeon, AMD, etc) adotaram o Linux como uma saída ao Windows X Window = sistema de janelas desenvolvido pelo M.I.T. Serve de base para uma GUI: KDE, Gnome, etc 18
4ª Geração: Rede e Distribuídos Meados dos anos 80 Serviços compartilhados Servidores remotos Middleware (Transparência) Reconhecer múltiplos processadores / núcleos Deu origem a área de Sistemas Distribuídos Referências TANENBAUM, A.S., WOODHULL, A., Sistemas Operacionais: Projeto e Implementação, 3ª edição. 19