You are on page 1of 56

Sistemas Computacionais Introdução à Computação

Licenciatura em Segurança Informática em Redes de Computadores 2010/2011

Sumário
Sistemas Computacionais
Introdução Noções de Hardware Terminologia de Sistemas Operativos Sistemas Distribuídos

2

introdução

3

Introdução
Componentes de um Sistema de Computação

4

Introdução
Hardware
Recursos físicos: CPU, memória, dispositivos de E/S (ou I/O)

Programas de Sistema
Inclui o Sistema Operativo, que controla e coordena a utilização do hardware durante a execução de vários programas de aplicação

Programas de Aplicação
Permitem a utilização dos recursos do sistema para resolução de problemas dos utilizadores (Sistemas de base de dados, jogos, programas de gestão, etc.)

5

hardware

6

Hardware
Elementos Básicos
Processador Memória Principal Volátil – também conhecida como memória principal Módulos de Entrada e Saída (E/S ou I/O) Dispositivos de memória secundária Dispositivos de comunicação Terminais Barramento do Sistema Comunicação entre processadores, memória e módulos de entrada e saída

7

Hardware
Componentes de um Computador Pessoal Simples

Monitor

Bus
8

Hardware
Processador
“The “brain” of the computer is the CPU.” (Tanenbaum) Busca instruções da memória e executa-as Cada CPU tem/conhece um conjunto de instruções bem definidas
Um Pentium não sabe executar programas para SPARC e vice-versa

Um CPU contém vários registos internos úteis ao seu funcionamento
Pois o acesso à memória é mais lento…

9

Hardware
Ciclos de Clock
Em cada ciclo de clock, um ou dois operandos são lidos de registos e combinados na Unidade Lógica e Aritmética

Frequência
Número de ciclos de clock, por segundo Unidade é o Hz
200 MHz, 1 GHz = 1000 MHz, …

Pipeline
Técnica que permite colocar instruções numa linha de execução
CPU executa instrução n, enquanto instrução n+1 já está sendo descodificada, e instrução n+2 sendo lida da memória Pretende superar limitações do tradicional método “Ler  descodificar  executar” uma instrução

10

Hardware
Pipeline

a) pipeline de três estados b) CPU superescalar
Permite a execução de várias instruções no mesmo ciclo de clock

11

Hardware
Memória
Registos internos do CPU
Mesmo material que o CPU (internos a este), praticamente sem atrasos no acesso Tipicamente 32 x 32 bits (CPUs de 32 bits) e 64 x 64 (CPUs de 64 bits)

Cache
Quando CPU necessita de aceder à RAM, verifica primeiro na cache Cache hits – encontra o que pretende na cache Diferentes níveis de cache (ex.: Cache L1, Cache L2)

RAM – Memória Principal Disco duro/rígido Outros…
Tapes – geralmente usada para suporte a backups/armazenar grande quantidade de dados
12

Hardware
Hierarquia de memória

Os dados apresentados são aproximações (Tempo Acesso VS. Capacidade)
13

Hardware
Discos

Estrutura de um disco
14

Hardware
Discos

Parâmetros de funcionamento para dois discos distintos
15

Hardware
Bus
Barramento de interligação Via de comunicação que liga dois ou mais dispositivos É um meio de transmissão partilhado (vários dispositivos ligam-se a ele para transmitir/receber dados) Geralmente são constituídos por várias linhas de comunicação (cada linha poderá transmitir os sinais binários [0, 1]) Tipos de barramentos
Barramento de Sistema (ou local) – interliga componentes principais (ex.: CPU, memória, E/S) Barramentos de Expansão – interliga controladores de E/S (permite isolar o tráfego entre CPU e RAM do tráfego E/S)
16

Hardware
Implementações de Bus
IDE – Integrated Drive Electronics
É um padrão tipo para discos em sistemas Pentium (e não só)

SCSI – Small Computer System Interface
Barramento de alta performance, especialmente desenvolvido para discos (scanners, etc.) rápidos Conseguem taxas de transferências até 160 MB/s

USB – Universal Serial Bus
Usa conector de 4 pinos (dois dos quais são para fornecimento de energia - SERIAL) Partilham o mesmo device driver Procura de novos dados a cada 1 ms USB 1.0  12 Mbps, USB 2.0  480 Mbps, USB 3.0  quase até 5 Gbps

IEEE 1394 (apelidado de FireWire pela Apple)
Taxas de transferência até 50 MB/s (muito usado em dispositivos multimédia - câmaras)
17

Hardware
Bus
Ponte PCI estabelece uma conexão/interface entre o barramento do sistema e o barramento PCI (uma espécie de chip “especial”)

Estrutura de um sistema Pentium
Note o número de barramentos - cache, local, memória, PCI, SCSI, USB, IDE, e ISA
18

Hardware
Device Controllers
Dispositivos de E/S – contém duas partes: mecânica e electrónica A parte electrónica é denominada controlador do dispositivo Device Controller – um chip ou conjunto de chips Aceita comandos provenientes do SO, como ler, escrever, etc., apresentando uma interface acessível ao SO Converte bits transmitidos em série num bloco de Bytes Executa acções de correcção sobre erros

19

Hardware
Device Controllers – Propriedades Principais
Transferência síncrona VS Assíncrona – transferências de uma só vez VS geridas por interrupções Buffering – dados provenientes de um dispositivo não são armazenados directamente no destino final Dispositivos partilhados VS Dedicados – discos podem ser partilhados, mas tape drives não

20

Hardware
DMA – Direct Memory Access
Acesso directo à memória Dados de E/S são trocados directamente entre a memória e dispositivo (sem intervenção do processador) Processador dá autoridade inicial ao módulo de E/S para ler de/escrever na memória CPU fica liberta desta gestão para realizar outras tarefas

21

Hardware
DMA – Direct Memory Access

22

Sistemas operativos

23

Sistemas Operativos
Sistema Operativo
Esconde os detalhes necessários ao funcionamento/gestão da máquina Apresenta ao utilizador uma máquina virtual de fácil utilização Gere os recursos (memória primária, secundária, CPU), atribuindo a cada programa um conjunto bem definido de tempo e espaço para utilização dos recursos Explora recursos de hardware de um ou mais processadores Disponibiliza um conjunto de serviços ao utilizador

24

Sistemas Operativos
Kernel
Núcleo/parte central do Sistema Operativo É o primeiro/principal programa do sistema a executar
Responsável pela gestão do próprio sistema (gere processos e hardware)

Modo de Execução das Instruções
User Mode
Somente um conjunto de instruções são permitidas executar

Kernel Mode
É permitido executar todas as instruções, tendo o SO acesso total ao hardware

Quase todos os processadores suportam os dois modos de execução (excepto, por exemplo, os embebidos – mais simples)
25

Sistemas Operativos
Espaço de memória
Kernel Space Espaço onde o kernel executa User Space Espaço de execução dos processos de utilizador

System Calls
Chamadas ao sistema, solicitando serviços
Ex.: Operações de E/S, criação de processos

Permitem que o programa de um utilizador invoque serviços do próprio Sistema Operativo
Pedidos são interceptados pelo kernel De outra forma, programa do utilizador não teria permissões para aceder a recurso
26

Sistemas Operativos
Interrupts
Interrupções - interrompem a sequência normal da execução do CPU Dispositivos de E/S são geralmente mais lentos do que a CPU

(a)
27

(b) a) Passos desde iniciar o módulo E/S até receber um interrupt b) Tratamento do interrupt (aceitar  executar respectivo programa  voltar ao prog.)

Sistemas Operativos
Tipos de Interrupts
Programa – ocorre como resultado de uma instrução (ex.: divisão por 0) Timer (relógio) – gerada por relógio interno ao CPU (SO executa certas operações com regularidade) E/S – gerada por um controlador (driver) de um dispositivo de E/S Falha no hardware – ex.: falta de energia, erro paridade na memória

28

Sistemas Operativos
Interrupt Handler
Programa ou rotina que é executado quando uma determinada interrupção ocorre Geralmente faz parte do SO Ex.: programa que serve um dispositivo de E/S
Ex.: movimento do rato

29

Sistemas Operativos
Device Drivers
Dispositivos Controladores
Device Drivers (software) ≠ Device controllers (hardware)

Software próprio desenvolvido para cada device controller Responsável pela comunicação com o device controller, numa linguagem comum a ambos, pelo envio de comandos e recepção de respostas Colocado no SO de forma a executar em kernel mode

Teoricamente, os drivers podem executar fora do kernel, mas restrições de segurança normalmente impedem essa abordagem/aceitação pelos SOs

30

Sistemas distribuídos

31

Sistemas Distribuídos
O que é um Sistema Distribuído?
“A collection of independent computers that appears to its users as a single coherent system.”
(Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 PrenticeHall, Inc. All rights reserved. 0-13-239227-5)

Conjunto de componentes (hardware e software) autónomos que, por cooperarem entre si, tentam dar ao utilizador uma imagem una

32

Sistemas Distribuídos
Implementação
Adaptação e utilização dos sistemas clássicos

Exemplos:
Servidores de CPU, serviço de ficheiros, WWW, etc.

33

Sistemas Distribuídos
Modelo Cliente – Servidor
Modelo de comunicação de referência na Internet Assenta no conceito de prestação de serviços Separa clientes e servidores Dois grupos de intervenientes comunicam entre si geralmente utilizando uma rede de computadores Um cliente envia solicitações ao servidor No servidor executam processos que implementam serviços específicos (impressão, partilha de ficheiros, Web, Bases de Dados, etc.)
34

O conceito é aplicado em diversos usos e aplicações

Sistemas Distribuídos
Servidor
Desempenha um papel passivo Aguarda pelo contacto dos clientes Não conhece os clientes até ser contactado por eles Executa o serviço solicitado pelo cliente, devolvendo-lhe uma resposta Exemplo de serviços
Serviço de ficheiros Serviço de impressão Serviço proxy Serviço Web …

35

Sistemas Distribuídos
Cliente
Desempenha um papel activo Contacta o servidor, efectua um pedido e aguarda pela resposta Tipicamente utilizado directamente pelo utilizador Tem de conhecer previamente o endereço do servidor

36

Sistemas Distribuídos
Modelo Cliente – Servidor

37

Co-existência numa rede de um servidor e vários clientes

Sistemas Distribuídos
Modelo Cliente – Servidor

Interacção genérica entre um cliente e um servidor
38

Sistemas Distribuídos
Modelo Cliente – Servidor

Dois clientes e um servidor com SO de rede (ex.: GNU/Linux) Comunicação com base num conjunto de protocolos

39

Sistemas Distribuídos
Modelo Cliente – Servidor
Vantagens
Concentração de recursos (ficheiros, impressoras, aplicações, etc.) num único ponto permite melhor controlo e administração Maior segurança Acesso mais simples

Desvantagens
Ponto único de falha – servidor inoperacional implica que a rede não funcione Necessidade de administrador experiente para gerir e colmatar rapidamente possíveis falhas

40

Sistemas Distribuídos
Peer-to-peer (P2P)
Arquitectura descentralizada Proveniente do inglês “Ponto-a-Ponto” Rede linear, rede distribuída ou rede não hierárquica Caracteriza pela descentralização das funções na rede Um computador pode actuar simultaneamente como servidor e/ou cliente Cada utilizador controla os seus próprios recursos

Cada terminal realiza tanto funções de servidor como de cliente
41

Sistemas Distribuídos
Peer-to-peer (P2P)

Arquitectura de uma rede Peer-to-Peer
42

Sistemas Distribuídos
Arquitecturas Modernas

43

Exemplo de distribuição horizontal de um serviço Web

Sistemas Distribuídos
Cluster Computing
Tornaram-se populares devido à melhoria da relação preço / performance Construção de super-computadores com base em máquinas relativamente baratas, acopladas através de uma rede de elevado débito Permite a uma aplicação executar paralelamente em várias máquinas Normalmente, o cluster assenta num conjunto homogéneo de máquinas (mesmas características de hardware, mesmo SO, ligadas à mesma rede)

44

Sistemas Distribuídos
Cluster Computing

O nó mestre
45

Pode consistir num par de alta-disponibilidade Contém informação sobre o cluster (ex.: contas de utilizador) Monitora o correcto funcionamento do cluster

Sistemas Distribuídos
Cluster Computing
Propriedades desejadas
Utilizadores não sabem que estão a usar um cluster Os nós desconhecem que fazem parte de um cluster Aplicações desconhecem pertencer a um cluster Servidores da rede não necessitam saber que estão a servir um nó do cluster

Vantagens
Alta disponibilidade – continuidade de serviço, mesmo em caso de falha de hardware ou software Aumento de escalabilidade – possibilita a introdução de novos componentes/nós conforme o aumento de carga do sistema Simplificação da tarefa de administração – administração do grupo como se de um só sistema/nó se tratasse Não existe um único ponto de falha
46

Sistemas Distribuídos
Grid Computing
A ideia é ter um conjunto de recursos disponível ao utilizador Infra-estrutura é semelhante à rede eléctrica de fornecimento de electricidade Utilizador liga-se para obter poder computacional CPU, armazenamento, software, periféricos, etc. Utilizador não se preocupa com detalhes do local onde os dados são armazenados ou qual o computador que processa o seu pedido

47

Sistemas Distribuídos
Grid Computing
Utilização de recursos computacionais interligados e geograficamente dispersos , para partilha de recursos (ex.: espaço e computação) Combinação do poder de múltiplas máquinas para entregar performance superior (velocidade, escalabilidade, débito) Ao contrário de um cluster, as máquinas associadas a uma Grid são bastante heterogéneas (Grids são dinâmicas, heterogéneas e poderão incluir dispositivos partilhados) Não existe regra para hardware, SO, rede, domínios administrativos, segurança, políticas, etc. Uma Grid pode conter clusters, mas um cluster não contém Grids
48

Sistemas Distribuídos
Grid Computing – Características
Heterogeneidade
Recursos heterogéneos, variedade de tecnologia

Escalabilidade
Capacidade de crescer, sem perda de desempenho (…)

Partilha de recursos
Recursos não devem ser consumidos por uma única aplicação

Multiplicidade de domínios administrativos
Uma organização possui as suas próprias restrições e regras no uso dos recursos, devendo ser respeitadas

Dinamicidade e adaptabilidade
Atenção à disponibilidade dos recursos

49

Sistemas Distribuídos
Grid Computing

50

Sistemas Distribuídos
Cloud Computing
Aplicações disponíveis como um serviço acessível através da Internet Sistemas e hardware em datacenters que suportam estes serviços Utiliza e implementa técnicas de virtualização, escalabilidade, interoperabilidade, qualidade de serviço, mecanismos de supressão de falhas, elasticidade, etc.

51

Sistemas Distribuídos
Cloud Computing
Camadas de serviço
Utilizador final Acesso a aplicações Plataforma para construção e disponibilização de aplicações Eucalyptus Nimbus OpenNebula Etc.

52

Sistemas Distribuídos
Importância do Cloud Computing
Dá ao utilizador a ilusão de um conjunto infinito de recursos Capacidade de pagar o uso efectivo dos recursos computacionais Decremento da electricidade consumida, largura de banda, operações, software – economia de escala Os recursos são disponibilizados à medida das necessidades dos utilizadores Elimina os custos associados à compra, configuração e gestão de hardware e software necessário à disponibilização das aplicações As aplicações são disponibilizadas como um serviço

53

Sistemas Distribuídos
Cloud Computing
Virtual Applications
Virtual Client Virtual Client Virtual Client

Virtual Client
App Loads

Private Cloud
App Loads

App Loads

App Loads

App Loads

Federation Virtualization Virtualized Data Center
54

Information Security

Cloud Computing External Cloud

Internal Cloud

Sistemas Distribuídos
Cloud Computing – Casos de Uso
A team at Clemson University and CERN has used OpenNebula to deploy thousands of VMs on 400 hosts (3,200 cores) running Xen • OpenNebula was integrated in internal network and configuration management • Contributed drivers for using LVM based disk images

The Dgrid Resource Center Ruhr (DGRZR) has used OpenNebula to manage 248 Blades with a total of 1,984 cores. • OpenNebula is used to support the execution of a virtualized Grid site in D-Grid and EGEE

SARA High Performance Computing Center uses OpenNebula in its new HPC Cloud service on 128 cores across 16servers with KVM • OpenNebula is used to support the execution of virtual clusters and HPC applications •Authors of the OpenNebula Management Console

55

Bibliografia recomendada
Curiosidades:
http://www.zdnet.com/news/ibm-supercomputer-top-rankedblade-machine/139595

Andrew S. Tanenbaum. “Modern Operating Systems (2nd Edition)”. Prentice Hall, 2001 – ISBN: 9780130313584 Katarina Stanoevska-Slabeva, Thomas Wozniak, Santi Ristol. “Grid and Cloud Computing: A Business Perspective on Technology and Applications (1st Edition)”. Springer, 2009 – ISBN: 978-3642051920
56

REF [Altino Sampaio:ams@estgf.ipp.pt]