Sistemas operacionais

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

description

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 - PowerPoint PPT Presentation

Transcript of Sistemas operacionais

Page 1: Sistemas operacionais

Sistemas operacionais

Carlos Oberdan Rolim

Ciência da ComputaçãoSistemas de Informação

Page 2: Sistemas operacionais

Introdução

* Baseado no material do Prof. Luis Cláudio Gubert

Page 3: Sistemas operacionais

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

Page 4: Sistemas operacionais

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 ?

Page 5: Sistemas operacionais

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

Page 6: Sistemas operacionais

Visão abstrata de componentes do sistema

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

Definições de sistemas operacionais

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

Page 9: Sistemas operacionais
Page 10: Sistemas operacionais

Painel de programação

Page 11: Sistemas operacionais

ENIAC

Page 12: Sistemas operacionais

ENIAC

Page 13: Sistemas operacionais

Centro de computação

Page 14: Sistemas operacionais

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

Page 15: Sistemas operacionais

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

Page 16: Sistemas operacionais

Diagrama de memória para um sistema batch simples

Page 17: Sistemas operacionais

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

Page 18: Sistemas operacionais

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)

Page 19: Sistemas operacionais

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)

Page 20: Sistemas operacionais

Cartões perfurados

Máquina de perfufar e de leitura

Page 21: Sistemas operacionais

IBM 7030

•Primeiro supercomputador da segunda geração

•Custava $ 13 milhões

•Menor tamanho – Usava “somente” uma sala

Page 22: Sistemas operacionais
Page 23: Sistemas operacionais

Centro de computação

Page 24: Sistemas operacionais

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

Page 25: Sistemas operacionais

IBM 360/91

Page 26: Sistemas operacionais
Page 27: Sistemas operacionais
Page 28: Sistemas operacionais

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

Page 29: Sistemas operacionais

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

Page 30: Sistemas operacionais

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

Sistemas batch multiprogramados

Page 31: Sistemas operacionais

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

Page 32: Sistemas operacionais

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

Page 33: Sistemas operacionais

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

Page 34: Sistemas operacionais

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

Page 35: Sistemas operacionais
Page 36: Sistemas operacionais
Page 37: Sistemas operacionais

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

Page 38: Sistemas operacionais

PDP – 11

Page 39: Sistemas operacionais

PDP-7

Unix began life...

Page 40: Sistemas operacionais

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

Page 41: Sistemas operacionais

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

Page 42: Sistemas operacionais

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

Page 43: Sistemas operacionais
Page 44: Sistemas operacionais

IBM PC – Processador 8088 4.77MHz - 1981

Page 45: Sistemas operacionais

Intel 80286

Page 46: Sistemas operacionais

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

Page 47: Sistemas operacionais

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

Page 48: Sistemas operacionais

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

Page 49: Sistemas operacionais

Arquitetura SMP (Symmetric Multiprocessing)

Page 50: Sistemas operacionais

Exemplos de SMP

Cray T90

Cray SX6

Page 51: Sistemas operacionais

Exemplos de SMP

Intel Quad Xeon 7400 ServerHP Integrity rx8620-32 Server

Page 52: Sistemas operacionais

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

Page 53: Sistemas operacionais

Exemplos de MPP

IBM SP2

Intel Paragon

Connection Machine CM-5

Page 54: Sistemas operacionais

Exemplo de MPP

Blue Gene da IBM

Page 55: Sistemas operacionais

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

Page 56: Sistemas operacionais

Exemplo de DSM

Cray T3D

Page 57: Sistemas operacionais

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

Page 58: Sistemas operacionais

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

Page 59: Sistemas operacionais

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)