Infraestrutura de Software. CIn.ufpe.br

Documentos relacionados
Infraestrutura de Software. CIn.ufpe.br

Infra-Estrutura de Software. Introdução

Infra-Estrutura de Software. Introdução

Infraestrutura de Software. CIn.ufpe.br

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Infra-Estrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Infra-Estrutura de Software

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Infra-Estrutura de Software. Introdução

Infra-Estrutura de Software. Sistemas Operacionais Revisão

Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3

Arquitetura de Computadores

Infra-Estrutura de Software

Computadores e Programação (DCC/UFRJ)

Programação Estruturada

GFM015 Introdução à Computação

Organização de Computadores I

Sistemas Operacionais. Visão Geral

Introdução aos Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Infraestrutura de Hardware. Funcionamento de um Computador

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Estruturas de Sistemas Operacionais

Linguagens de Programação Classificação

Aula 2 - Programação de Computadores - CI208 1/21

AJProença, Sistemas de Computação, UMinho, 2017/18 1

Conceitos básicos sobre computadores

Software Básico (INF1018)

SSC0640 Sistemas Operacionais I

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Infra-Estrutura de Software. Introdução. (cont.)

Organização e Arquitetura de Computadores INTRODUÇÃO

Disciplina: Sistemas Operacionais

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho


Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Sistemas Operacionais. Introdução a Sistemas Operacionais

16. Compilação no Linux

Sistemas Operacionais

Sistemas Operacionais Visão Geral

Informática I. Aula /09/2006 1

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Introdução à Computação

Engenharia Civil. Conceitos Básicos. Introdução à Computação

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

AGT0001 Algoritmos Aula 01 O Computador

Apresentação da Disciplina

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Sistemas Operacionais. Conceitos de Hardware e Arquitetura de computadores

Introdução. Carlos Gustavo A. da Rocha. Sistemas Operacionais

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Sistemas Operacionais. Adão de Melo Neto

Introdução à Informática Engenharia Agrícola

Algoritmos Computacionais

Sistemas Distribuídos

Arquitetura de Sistemas Operacionais

Estrutura do tema ISC

Lic. Engenharia de Sistemas e Informática

Introdução à Informática

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Sistemas Operacionais (SO)

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

Introdução à Programação Aula 01. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Sistemas Operacionais. Sistema de entrada e Saída

Curso: Redes de Computadores

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.

Introdução à Informática

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Informática básica. Professor: Francisco Ary

Conceitos Gerais Definição e Características dos SOs. Na Aula Anterior... Nesta Aula. O Escopo dos SOs 16/08/2016

Arquitetura e organização de computadores

Técnicas Avançadas de Programação

Introdução aos Sistemas Operacionais

MC-102 Aula 01. Instituto de Computação Unicamp

Introdução à Computação MAC0110

Introdução à Ciência da Computação

Introdução à Computação: Máquinas Multiníveis

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 1 Unidade I DURAÇÃO: 50 MINUTOS

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

Sistemas Operacionais

Organização de um computador. O que é um computador Organização de um computador Arquitectura de von Neumann

PROVA 03/07 Segunda-feira (semana que vem)

Sistemas Operacionais. Visão Geral

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO

Sistemas Operacionais I

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

Organização de Computadores I

SSC510 Arquitetura de Computadores 1ª AULA

Conceitos básicos sobre computadores

Transcrição:

Infraestrutura de Software

Introdução Sistema Operacional Mecanismo de abstração dos dispositivos subjacentes Gerenciador de recursos (ex. processador, memória, impressora) Middleware Plataforma de suporte de valor agregado a sistemas distribuídos Infraestrutura de Software 2

IBM System 360 Console

Computador Moderno Componentes físicos (hardware) Um ou mais processadores Memória Discos Impressoras Vários outros dispositivos de E/S (tela, mouse ) Um Sistema Complexo!!! Gerenciar todos componentes requer abstração um modelo mais simples do computador É isso que é o sistema operacional

Sistema Computacional em Camadas Não pode executar instruções que afetam o controle da máquina ou fazem E/S GUI ou shell System Calls Acesso completo a todo o hardware e pode executar qualquer instrução que a máquina seja capaz de executar Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved.

Gerenciador de Recursos Gerencia e protege memória, dispositivos de E/S e outros recursos (hardware) Permite o compartilhamento (multiplexação) de recursos no tempo (time-sharing) Ex.: múltiplos programas compartilham o processador (executam) ao mesmo tempo no espaço Ex.: dados de diferentes usuários/arquivos compartilham o espaço em disco

7 Hardware

Um pouco de um computador típico CPU Register file PC ALU System bus Memory bus Bus interface I/O bridge Main memory USB controller Graphics adapter I/O bus Disk controller Expansion slots for other devices such as network adapters Mouse Keyboard Display Disk Randal E. Bryant, David R. O'Hallaron. Computer Systems: A Programmer's Perspective. Prentice Hall, 2003

CPU: Central Processing Unit Unidade de Controle ALU: Unidade Aritmética e Lógica Registradores Funcionam como memória de acesso extremamente rápida Baixa capacidade de armazenamento Funções específicas Exemplos de registradores PC (program counter): contém o endereço da próxima instrução a ser executada Instruction register: onde é copiada cada instrução a ser executada A CPU, seguidamente, executa instruções requisitadas à memória Ciclo fetch-decode-execute: 1. busca instrução na memória 2. atualiza PC 3. decodifica instrução 4. executa instrução

Memória Logicamente, a memória principal corresponde a um enorme vetor (array) de bytes cada posição tem um endereço único (índice do vetor) Os registradores da CPU muitas são usados para armazenar endereços de memória Assim, o número de bits em cada registrador limita o número de posições de memória endereçáveis Ex.: 8 bits è 256 posições

Hierarquia de Memória Smaller, faster, and costlier (per byte) storage devices L2: L1: L0: Registers On-chip L1 cache (SRAM) Off-chip L2 cache (SRAM) CPU registers hold words retrieved from cache memory. L1 cache holds cache lines retrieved from the L2 cache. L2 cache holds cache lines retrieved from memory. Larger, slower, and cheaper (per byte) storage devices L5: L4: L3: Main memory (DRAM) Local secondary storage (local disks) Remote secondary storage (distributed file systems, Web servers) Main memory holds disk blocks retrieved from local disks. Local disks hold files retrieved from disks on remote network servers. Trajetória de dados até a CPU

12 Software Básico

Software Básico [A. Raposo e M. Endler, PUC-Rio, 2008] Conhecendo mais sobre o que está por baixo do programa, você pode escrever programas mais eficientes e confiáveis Abstrações em um sistema de computação: Programa de usuário Programa em Assembly????? Sistema Operacional Hardware Aplicações: jogos, editores, browsers, media players Escritos geralmente em linguagem de alto nível (C, C++, C#, Java etc.) Linguagem de máquina: binária (0,1) pouco legível por humanos A linguagem de montagem (Assembly) é um mapeamento direto da linguagem de máquina, mas que introduz várias facilidades (ou menos dificuldades ) para o programador usa "apelidos" das instruções de máquina, mais fáceis de lembrar do que seu valor hexadecimal exigido pelo processador Ex.: mov eax, edx move o que está no registrador de dados para o acumulador

Gerando um executável unix> gcc o hello hello.c 1. #include <stdio.h> 2. int main() 3. { 4. printf( hello, world\n ); 5. } hello.c préprocessador programafonte (texto) hello.i programa-fonte modificado Modifica o programa em C de acordo com diretivas começadas com # Ex.: #include <stdio.h> diz ao pré-processador para ler o arquivo stdio.h e inseri-lo no programa fonte O resultado é um programa expandido em C, normalmente com extensão.i, em Unix

Gerando um executável unix> gcc o hello hello.c 1. #include <stdio.h> 2. int main() 3. { 4. printf( hello, world\n ); 5. } hello.c préprocessador programafonte (texto) hello.i programa-fonte modificado compilador hello.s programa Assembly (texto) Compilador traduz o programa.i em um programa em Assembly É o formato de saída comum para os compiladores nas várias linguagens de programação de alto nível i.e., programas em C, Java, Fortran, etc vão ser traduzidos para a mesma linguagem Assembly

Gerando um executável unix> gcc o hello hello.c 1. #include <stdio.h> 2. int main() 3. { 4. printf( hello, world\n ); 5. } hello.c préprocessador programafonte (texto) hello.i programa-fonte modificado compilador hello.s programa Assembly (texto) montador (assembler) hello.o programaobjeto relocável (binário) Montador (Assembler) transforma o programa em Assembly em um programa binário em linguagem de máquina (chamado programa-objeto) Os módulos de programas, compilados ou montados, são armazenados em um formato intermediário ( Programa-Objeto Relocável extensão.o) Endereços de acesso e a posição do programa na memória ficam indefinidos

Gerando um executável unix> gcc o hello hello.c 1. #include <stdio.h> 2. int main() 3. { 4. printf( hello, world\n ); 5. } printf.o hello.c préprocessador programafonte (texto) hello.i programa-fonte modificado compilador hello.s programa Assembly (texto) montador (assembler) hello.o ligador (linker) programaobjeto relocável (binário) hello programaobjeto executável (binário) O ligador (linker) gera o programa executável a partir do.o gerado pelo assembler No entanto, pode haver funções-padrão da linguagem (ex., printf) que não estão definidas no programa, mas em outro arquivo.o pré-compilado (printf.o) O ligador faz a junção dos programas-objeto necessários para gerar o executável

18 Execução Como acontece

Processo Conceito: Um programa em execução Ao digitar hello, os caracteres são passados para um registrador e depois para memória principal

Mais de um programa em execução Múltiplos processos vs. um (ou [poucos] mais) processador(es) ð como pode???

Processos Comunicantes Como pode??? Dicionário Editor de Texto Gerenciador de Imagens

Sistemas Distribuídos Processos em máquinas distintas e que se comunicam Web browser Web server

Sistemas Distribuídos Como fazer funcionar aplicações distribuídas que usam diferentes sistemas de computador Web browser Web server Processos em máquinas distintas e que se comunicam (hardware), sistemas operacionais e software de aplicação (ex. linguagens de programação), interconectadas por diferentes redes? O problema da interoperabilidade

História dos Sistemas Operacionais Primeira geração: 1945-1955 Válvulas, painéis de programação Segunda geração: 1955-1965 transistores, sistemas em lote Terceira geração: 1965 1980 CIs (circuitos integrados) e multiprogramação Quarta geração: 1980 presente Computadores pessoais Hoje: onipresença computação ubíqua

História dos Sistemas Operacionais Estrutura de um job típico (lote de cartões) 2a. geração

História dos Sistemas Operacionais Sistema de multiprogramação Três jobs na memória 3a. geração

Diversidade de Sistemas Operacionais Sistemas operacionais de computadores de grande porte (mainframe) Sistemas operacionais de servidores / redes Sistemas operacionais de multiprocessadores (paralelismo) Sistemas operacionais de computadores pessoais Sistemas operacionais de dispositivos portáteis/ móveis (ex. celulares) Sistemas operacionais de tempo-real Sistemas operacionais embarcados Sistemas operacionais de cartões inteligentes Sistemas operacionais de sensores

Supercomputação O Caso do BAM (Brazilian Global Atmospheric Model) Pronto para rodar com melhor resolução espacial, de 10 km, mas Uma das limitações para rodar o modelo com essa resolução é a falta de capacidade computacional Mesmo utilizando toda a capacidade de processamento do supercomputador Tupã (30 mil processadores) ao longo de duas horas, foi possível gerar previsões para apenas 24 horas Com um computador novo 28 vezes mais potente, por exemplo, demoraria aproximadamente uma hora para fazer previsões com até sete dias de antecedência O máximo que o Tupã consegue hoje é rodar o BAM com resolução espacial de 20 km Quanto melhor (menor) a resolução espacial do modelo, melhor é a capacidade de representar a topografia, como vales e montanhas, e o contraste entre mar e continente Com resolução espacial de 180 km, estes contrastes não são bem definidos, e a praia pode parecer terra EUA: resolução espacial de 13 km, usando supercomputadores entre 30 e 50 vezes mais velozes que o Tupã na ordem de PetaFlops ou 10 15 operações de ponto flutuante por segundo http://agencia.fapesp.br/previsao_de_tempo_no_brasil_sera_mais_precisa_nos_proximos_meses/22645/ Infraestrutura de Software 28

Supercomputação O Caso do BAM (Brazilian Global Atmospheric Model) Pronto para rodar com melhor resolução espacial, de 10 km, mas Uma das limitações para rodar o modelo com essa resolução é a falta de capacidade computacional Mesmo utilizando toda a capacidade de processamento do supercomputador A tendência Tupã (30 é mil que processadores) nos próximos ao longo cinco de a duas horas, foi possível gerar previsões para apenas 24 horas sete anos os modelos globais estejam Com um computador novo 28 vezes mais potente, por exemplo, demoraria aproximadamente rodando uma com hora 1 para a 2 fazer km previsões de resolução com até sete dias de antecedência espacial. Aí não será mais necessário usar O máximo que o Tupã consegue hoje é rodar o BAM com resolução espacial de modelos 20 km regionais, porque a topografia Quanto melhor de uma (menor) região a resolução estará espacial muito bem do modelo, melhor é a capacidade de representar a topografia, como vales e montanhas, e o contraste entre representada mar e continente nos modelos globais Com resolução espacial de 180 km, estes contrastes não são bem definidos, e a praia pode parecer terra EUA: resolução espacial de 13 km, usando supercomputadores entre 30 e 50 vezes mais velozes que o Tupã na ordem de PetaFlops ou 10 15 operações de ponto flutuante por segundo http://agencia.fapesp.br/previsao_de_tempo_no_brasil_sera_mais_precisa_nos_proximos_meses/22645/ Infraestrutura de Software 29

Estruturação de Sistemas Operacionais Monolítico Camadas Cliente-Servidor Virtualização

Estrutura de Sistemas Operacionais: Sistema Monolítico Executam as System Calls Modelo simples de estruturação de um sistema monolítico Ajudam os Procedimentos de Serviços SO = um processo com n procedimentos

Camadas em Linux Kernel (núcleo)

Linux Kernel: Relacionamentos Process Process Process Process Process System Call Interface Process Management IPC Memory Management Network File System Device Driver Hardware

34 Android em Camadas

Estruturação de Sistemas Operacionais ü Monolítico ü Camadas Cliente-Servidor Virtualização

Estrutura de Sistemas Operacionais: Cliente-Servidor O modelo cliente-servidor em um sistema ( ) distribuído

Estrutura de Sistemas Operacionais: Máquina Virtual (Virtualização) Linux Linux (devel) XP Windows 7 MacOS VMM opera na interface Virtual Machine Monitor de hardware, fornecendo uma interface Hardware idênica para os SOs acima

Virtual Machines: Tipos (Arquiteturas) Hardware Hardware Hipervisor Tipo 1 Hipervisor Tipo 2 Tanenbaum, Modern Operaing Systems 3 e, (c) 2008 Prenice-Hall, Inc. All rights reserved.

Exemplo de virtualização na Computação em Nuvem VM VM VM Pool Sob demanda VM VM VM VM Hipervisor Hardware

Infraestrutura de Software 40 À próxima aula...