Sistemas operacionais

Post on 15-Mar-2016

41 views 2 download

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

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)