1 / 59

Sistemas operacionais

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

cree
Télécharger la présentation

Sistemas operacionais

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas operacionais Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

  2. Introdução * Baseado no material do Prof. Luis Cláudio Gubert

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

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

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

  6. Visão abstrata de componentes do sistema

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

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

  9. Painel de programação

  10. ENIAC

  11. ENIAC

  12. Centro de computação

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

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

  15. Diagrama de memória para um sistema batch simples

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

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

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

  19. Cartões perfurados Máquina de perfufar e de leitura

  20. IBM 7030 • Primeiro supercomputador da segunda geração • Custava $ 13 milhões • Menor tamanho – Usava “somente” uma sala

  21. Centro de computação

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

  23. IBM 360/91

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

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

  26. Sistemas batch multiprogramados • Vários jobs são mantidos na memória principal ao mesmo tempo, e a CPU é multiplexada entre eles.

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

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

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

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

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

  32. PDP – 11

  33. PDP-7 Unix began life...

  34. Ken (sentado) e Dennis (em pé) em um PDP-11 em 1972.

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

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

  37. IBM PC – Processador 8088 4.77MHz - 1981

  38. Intel 80286

  39. Migração de conceitos e características de SO

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

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

  42. Arquitetura SMP (Symmetric Multiprocessing)

  43. Exemplos de SMP Cray T90 Cray SX6

More Related