600 likes | 847 Views
Sistemas operacionais. Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação. Introdução. * Baseado no material do Prof. Luis Cláudio Gubert. Introdução. O que é um Sistema Operacional? Sistemas em Lote (Batch) Simples Sistemas Batchs Multiprogramados
E N D
Sistemas operacionais Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Introdução * Baseado no material do Prof. Luis Cláudio Gubert
Introdução • O que é um Sistema Operacional? • Sistemas em Lote (Batch) Simples • Sistemas Batchs Multiprogramados • Sistemas Tempo Compartilhado (Time-Sharing) • Computador Pessoal • Sistemas Paralelos • Sistemas Distribuídos • Sistemas de Tempo Real
O que é um sistema operacional ? • Um programa que age como um intermediário entre um usuário de computador e o hardware. • Objetivos de um sistema operacional: • Executar programas do usuário e facilitar a resolução de problemas. • Tornar o computador conveniente ao uso. • Usar o hardware do computador de maneira eficiente.
Componentes de um computador • Hardware provê recursos básicos de computação (CPU, memória, dispositivos de E/S). • Sistema Operacional controla e coordena o uso do hardware entre os vários programas aplicativos para os vários usuários. • Programas Aplicativos definem as formas nas quais os recursos do sistema são empregados para resolver os problemas computacionais dos usuários (compiladores, bancos de dados, jogos, programas comerciais). • Usuários (pessoas, máquinas, outros computadores).
Definições de sistemas operacionais • Alocador de Recurso – gerencia e aloca recursos. • Programa de Controle – controla a execução dos programas do usuário e operações dos dispositivos de E/S. • Kernel – o único programa que executa sempre (todo o resto são programas aplicativos).
Primeira geração (1945 – 1955) • Válvulas e painéis de programação • Máquinas de calcular simples • Ocupavam salas inteiras • O grupo que projetava era o mesmo que construia, programava, operava e realizava a manutenção • Não existia sistema operacional • Praticamente todos os problemas eram matemáticos com tabelas de senos, cosenos e logaritmos • ENIAC - Electrical Numerical Integrator and Calculator • 1000 vezes mais rápida que qualquer outra que existia na época.
Segunda geração (1955 – 1965) • Transistores e sistemas em lote • Introdução do transistor mudou radicalmente o quadro • Surgimente dos computadores de grande porte (mainframes) • Divisão da equipe em projetistas, fabricantes, programadores e técnicos de manutenção • Conceito de job • Linguagem usada – FORTRAN ou linguagem de montagem • Sistema de lote (batch) • Computador de menor porte lia cartões e copiava para fita. • Fita era colocada no mainframe que a lia e processava • A saída do processamento era gravada em outra fita • Essa fita era colocada novamente no computador de menor porte e então relatório de saída impresso
Sistemas Batch Simples • Contratar um Operador • Usuário ≠ operator • Adicionar um leitor de cartão perfurado • Reduzir o tempo de preparação agregando jobs similares no mesmo batch • Seqüenciamento Automático de Jobs – transfere o controle automaticamente de um job a outro. Primeiro sistema operacional rudimentar. • Monitor Residente • Controle inicial no monitor • Controle é transferido para o job • Quando o job está completo o controle volta para o monitor
Cartões de controle • Problemas • Como o monitor sabe sobre a natureza do job (ex.: Fortran ou Assembly) ou qual programa executar? • Como um monitor distingue • um job de outro? • dados de programas? • Solução • – Introduzir Cartões de Controle
Cartões de controle (cont) • Cartões especiais que dizem ao monitor residente quais programas devem ser executados $JOB -- Inicio do job. Tempo em minutos dados do programador $FTN -- Job em fortran $RUN – SO deve executar o job com dados do cartao seguinte $DATA – Dados do job $END – Fim do job • Caracteres especiais distinguem cartões de controle de dados ou cartões de programa: $ na coluna 1 // na coluna 1 e 2 709 na coluna 1
Cartões de controle (cont) • Partes do Monitor Residente • Interpretador do Cartão de Controle – responsável por ler e seguir as instruções contidas nos cartões. • Carregador – carrega programas de sistema e aplicativos na memória. • Drivers de Dispositivos – conhecem as características especiais e propriedades para cada um dos dispositivos de E/S. • Problema: Baixo Desempenho – E/S e CPU não podem se sobrepor ; leitor de cartões muito lento. • Solução: Operação off-line – acelerar a computação carregando os jobs das fitas e leitoras de cartão na memória, e imprimindo off-line.
Cartões perfurados Máquina de perfufar e de leitura
IBM 7030 • Primeiro supercomputador da segunda geração • Custava $ 13 milhões • Menor tamanho – Usava “somente” uma sala
Terceira geração ( 1965 – 1980) • CIs e Multiprogramação • Duas linhas de computadores: comerciais e cientificos • Incompativeis entre si • IBM tenta resolver o problema com o System/360 • Serie de computadores de diferentes portes com software compativel • Maior virtude era maior fraqueza • Tinha de funcionar bem em ambientes comerciais e cientificos • Resultou em um SO enorme e complexo • Milhões de linhas escritas em linguagem de montagem por milhares de programadores • Implementou várias técnicas que não existiam nos computadores de segunda geração • Spooling • Multiprogramação
Spooling • Capacidade de transferir jobs de cartões perfurados para discos magnéticos logo que esses chegassem a sala do computador • Assim que um job fosse completado poderia carregar um novo job nessa partição que acabou de ser liberada • Spooling – derivado da expressão Simultaneous Peripheral Operation online • Não precisava mais do computador de pequeno porte para ler os cartões e gravar em fita
Multiprogramação • Ociosidade da CPU entre a entrada e o processamento • Sobrepor E/S de um job com a computação de outro job. Enquanto executa um job, o SO: • Lê o próximo job da leitora de cartões em uma área de armazenamento no disco (fila de jobs). • Envia saídas de jobs anteriores do disco para a impressora. • Job pool – estrutura de dados que permite ao SO selecionar qual job executará em seguida de maneira a aumentar a utilização da CPU.
Sistemas batch multiprogramados • Vários jobs são mantidos na memória principal ao mesmo tempo, e a CPU é multiplexada entre eles.
Características de SO necessárias para a multiprogramação • Rotinas de E/S fornecidas pelo sistema. • Gerenciamento de Memória – o sistema deve alocar memória para vários jobs. • Escalonamento de CPU – o sistema deve escolher dentre vários jobs prontos para executar. • Alocação de dispositivos. • Hardware para proteger memória, processador e dispositivos de forma que um job não interfira no outro
Sistemas time-sharing – computação interativa • Submissão de vários jobs levava várias horas • Programadores saudosos por poder usar computador por várias horas como na primeira geração • Solução Divisão da CPU entre várias pessoas • A CPU é multiplexada entre vários jobs que são mantidos na memória e no disco (a CPU é alocada para um job somente se ele estiver na memória). • Um job é carregado e removido da memória para o disco (swapped in / out). • Comunicação on-line entre o usuário e o sistema é provida; quando o sistema operacional termina a execução de um comando, ele procura a próxima “instrução de controle” não de um leitor de cartão, mas do teclado. • Acesso dos usuários aos dados e código deve ser on-line no sistema.
CTSS • Primeiro sistema operacional de tempo compartilhado • CTSS – Compatible Time Sharing System • Desenvolvido pelo MIT • Somente se popularizou na terceira geração quando se usou a proteção em hardware
Multics • MIT, Bell Labs e General Eletrics decidiram desenvolver um computador utilitario • Capaz de suportar centenas de usuarios conectados ao mesmo tempo • Baseado no modelo de energia eletrica • Maquina somente mais potente que um Intel 386 mas com grande capacidade de E/S • Multics – Multiplexed Information and Computing Service • Usava o compilador PL/I que não funcionava bem • Projeto fracassou não teve sucesso esperado • Somente MIT prosseguiu e fez funcionar por completo • Clientes como Ford, GM e Agencia de Seguranca dos EUA usaram durante 30 anos os MULTICS • Introduziu novas idéias
Familia PDP • Outra linha que se desenvolveu: mini-computadores • Iniciado com o DEC PDP-1 em 1961 • Tinha somente 4k de palavras de 18 bits • Cada máquina custava $120mil (menos de 5% que um 7094) • Vendia como água • Para certos tipos de aplicações era tão rápido quanto os 7094 • Deu origem a uma nova linha de industria • Diversos outros PDPs culminando no PDP-11 • Ken Thompson (cientista do Bell Labs) achou um PDP-7 sem uso e escreveu uma versão despoja e monousuário do MULTICS • Nascia o UNIX • System V da AT&T e BSD da Berkley • Posix (Portable Operating System) • 1987 Minix (Tanenbaum) • Linus Torvalds Linux
PDP-7 Unix began life...
Quarta geração (1980 – presente) • Desenvolvimento dos circuitos integrados de larga escala ( LSI – Large Scale Integration) surgiram os computadores pessoais • Semelhantes ao PDP-11 • 1974 – Intel lançou o 8080 primeira CPU 8 bits de propósito geral • Sistema operacional CP/M (Control Program for Microcomputers) • Gary Kildall desenvolveu e ganhou os direitos da Intel que não acreditava em computadores pessoais Fundação da Digital Research • 1977 – Digital Research reescreveu o CP/M para rodar em diversos dispositivos. Dominio completo do mercado por cerca de 5 anos • Inicio dos anos 80 IBM procura DR para usar o CP/M no seu IBM PC • Não foram recebidos por Kildall Uma das piores decisões da história • Bill Gates fornece o DOS para a IBM (comprado por $50 mil) • Venda do SO direto aos fabricantes e não ao usuário final • 1983 – Intel 80286 com DOS surge no mercado • CP/M vai sumindo aos poucos
Computadores pessoais • Computadores Pessoais – sistemas dedicados a um único usuário. • Dispositivos de E/S – teclados, mouse, monitor, impressora. • Conveniência ao usuário e resposta rápida. • Pode adotar tecnologias desenvolvidas para grandes sistemas operacionais – freqüentemente o uso do computador é individual e não necessita utilização de características avançadas de proteção e alocação da CPU.
Sistemas paralelos • Sistemas multiprocessados com uma ou mais CPU em comunicação próxima. • Sistemas fortemente acoplados (Tightly coupled system) – processadores compartilham memória e um clock; comunicação normalmente ocorre através da memória compartilhada. • Vantagens de Sistemas paralelos: • Maior throughput • Razões Econômicas • Confiabilidade Maior • Tolerância a falhas
Sistemas paralelos (cont) • Multiprocessadores simétricos (SMP) • Múltiplosprocessadoressimilaresconectados entresi e à memória porumbarramento ou algumaoutra forma de circuito de conexão interno • Compartilhamento total • Cada processador executa uma cópia idêntica do sistema operacional. • Sistema operacional controla tudo • Muitos processos podem executar ao mesmo tempo sem deterioração no desempenho. • Grande parte dos sistemas operacionais modernos suportam SMP Baixa escalabilidade – gargalo no barramento. Exemplos: IBM R50, SGI Power Challenge, SUN Ultra Enterprise 10000, HP/Convex Exemplar X-Class, DEC Alpha Server 8400
Exemplos de SMP Cray T90 Cray SX6