1 Fundamentos de Sistemas Operacionais Sistemas Operacionais.
Sistemas operacionais
description
Transcript of Sistemas operacionais
Sistemas operacionais
Carlos Oberdan Rolim
Ciência da ComputaçãoSistemas de Informação
Introdução
* Baseado no material do Prof. Luis Cláudio Gubert
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
Introdução
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.
O que é um sistema operacional ?
1. Hardware provê recursos básicos de computação (CPU, memória, dispositivos de E/S).
2. Sistema Operacional controla e coordena o uso do hardware entre os vários programas aplicativos para os vários usuários.
3. 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).
4. Usuários (pessoas, máquinas, outros computadores).
Componentes de um computador
Visão abstrata de componentes do sistema
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).
Definições de sistemas operacionais
Primeira geração (1945 – 1955)
Válvulas e painéis de programaçãoMáquinas de calcular simplesOcupavam salas inteirasO grupo que projetava era o mesmo que construia, programava, operava e realizava a manutençãoNão existia sistema operacionalPraticamente 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.
Painel de programação
ENIAC
ENIAC
Centro de computação
Segunda geração (1955 – 1965)
Transistores e sistemas em loteIntrodução do transistor mudou radicalmente o quadroSurgimente dos computadores de grande porte (mainframes)Divisão da equipe em projetistas, fabricantes, programadores e técnicos de manutençãoConceito de jobLinguagem usada – FORTRAN ou linguagem de montagemSistema 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
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 ResidenteControle inicial no monitorControle é transferido para o jobQuando o job está completo o controle volta para o monitor
Sistemas Batch Simples
Diagrama de memória para um sistema batch simples
Problemas1. Como o monitor sabe sobre a natureza do job (ex.: Fortran
ou Assembly) ou qual programa executar?
2. Como um monitor distingue
a) um job de outro?
b) dados de programas?
Solução– Introduzir Cartões de Controle
Cartões de controle
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 2709 na coluna 1
Cartões de controle (cont)
Partes do Monitor ResidenteInterpretador 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 de controle (cont)
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
Centro de computação
Terceira geração ( 1965 – 1980)
CIs e MultiprogramaçãoDuas linhas de computadores: comerciais e cientificosIncompativeis entre siIBM tenta resolver o problema com o System/360
Serie de computadores de diferentes portes com software compativel
Maior virtude era maior fraquezaTinha de funcionar bem em ambientes comerciais e cientificos
Resultou em um SO enorme e complexoMilhões de linhas escritas em linguagem de montagem por milhares de programadoresImplementou várias técnicas que não existiam nos computadores de segunda geração
Spooling
Multiprogramação
IBM 360/91
Spooling
Capacidade de transferir jobs de cartões perfurados para discos magnéticos logo que esses chegassem a sala do computadorAssim que um job fosse completado poderia carregar um novo job nessa partição que acabou de ser liberadaSpooling – derivado da expressão Simultaneous Peripheral Operation onlineNão precisava mais do computador de pequeno porte para ler os cartões e gravar em fita
Ociosidade da CPU entre a entrada e o processamentoSobrepor 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.
Multiprogramação
Vários jobs são mantidos na memória principal ao mesmo tempo, e a CPU é multiplexada entre eles.
Sistemas batch multiprogramados
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
Características de SO necessárias para a multiprogramação
Submissão de vários jobs levava várias horasProgramadores saudosos por poder usar computador por várias horas como na primeira geraçãoSolução Divisão da CPU entre várias pessoasA 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.
Sistemas time-sharing – computação interativa
CTSS
Primeiro sistema operacional de tempo compartilhadoCTSS – Compatible Time Sharing SystemDesenvolvido pelo MITSomente 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 utilitarioCapaz de suportar centenas de usuarios conectados ao mesmo tempoBaseado no modelo de energia eletricaMaquina somente mais potente que um Intel 386 mas com grande capacidade de E/SMultics – Multiplexed Information and Computing ServiceUsava o compilador PL/I que não funcionava bemProjeto 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-computadoresIniciado com o DEC PDP-1 em 1961Tinha 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 7094Deu origem a uma nova linha de industriaDiversos outros PDPs culminando no PDP-11Ken 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 – 11
PDP-7
Unix began life...
Ken (sentado) e Dennis (em pé) em um PDP-11 em 1972.
Quarta geração (1980 – presente)Desenvolvimento dos circuitos integrados de larga escala ( LSI – Large Scale Integration) surgiram os computadores pessoaisSemelhantes ao PDP-111974 – Intel lançou o 8080 primeira CPU 8 bits de propósito geralSistema 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 anosInicio 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 – 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.
Computadores pessoais
IBM PC – Processador 8088 4.77MHz - 1981
Intel 80286
Migração de conceitos e características de SO
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 throughputRazões EconômicasConfiabilidade Maior
Tolerância a falhas
Sistemas paralelos
Sistemas paralelos (cont)Multiprocessadores simétricos (SMP)
Múltiplos processadores similares conectados entre si e à memória por um barramento ou alguma outra forma de circuito de conexão interno
Compartilhamento totalCada processador executa uma cópia idêntica do sistema operacional.
Sistema operacional controla tudoMuitos 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
Arquitetura SMP (Symmetric Multiprocessing)
Exemplos de SMP
Cray T90
Cray SX6
Exemplos de SMP
Intel Quad Xeon 7400 ServerHP Integrity rx8620-32 Server
Sistemas paralelos (cont)Máquinas maciçamente paralelas (MPP)
P/C
M
P/C
M
P/C
M
Rede de interconexão de baixa latência
Rede de interconexão proprietária.Comunicação através de troca de mensagens.Exemplos: Intel Paragon, Connection Machine CM-5, IBM SP-2
Exemplos de MPP
IBM SP2
Intel Paragon
Connection Machine CM-5
Exemplo de MPP
Blue Gene da IBM
Sistemas paralelos (cont) Máquinas com memória compartilhada distribuída (DSM)
P/C
M
P/C
M
P/C
M
Rede de interconexão de baixa latência
Os processadores podem acessar todas as memórias. (único espaço de endereçamento)DSM implementado em SW, HW ou misto.Exemplos: Stanford DASH, Cray T3D, estações de trabalho rodando TreadMarks
Exemplo de DSM
Cray T3D
Normalmente utilizado como um dispositivo de controle em uma aplicação dedicada como controlar experimentos científicos, sistemas de imagens médicas, sistemas de controle industrial, e alguns sistemas de visualização.
Limites de tempos bem definidos.
Sistemas Hard real-timeArmazenamento secundário limitado ou ausente, dados armazenados em memória volátil ou read-only memory (ROM)Conflitante com sistemas time-sharing, não suportado por sistemas de uso geral.
Sistemas Soft real-timeUtilidade limitada no controle industrial ou robóticaÚtil em aplicações (multimídia, realidade virtual) que necessitam de funções avançadas de SO.
Sistemas tempo real
Distribuir a computação entre processadores fisicamente independentes.
Sistemas fracamente acoplados (Loosely coupled system) – cada processador tem sua própria memória local; processadores se comunicam através de várias linhas de comunicação, como barramentos de alta velocidade ou linhas telefônicas.
Vantagens dos Sistemas Distribuídos.Compartilhamento de RecursosAumento na velocidade da computação – compartilhamento de cargaConfiabilidadeComunicações
Sistemas distribuídos
Sistema Operacional de RedeProvê compartilhamento de arquivosProvê esquemas de comunicaçãoExecuta independentemente de outros computadores na rede
Sistema Operacional DistribuídoMenor autonomia entre computadoresDá a impressão que existe um único sistema operacional controlando a rede
Sistemas distribuídos (cont)