1) O documento discute processos, threads, virtualização e migração de código em sistemas distribuídos.
2) Threads permitem a execução concorrente de tarefas dentro de um mesmo processo para melhorar o desempenho.
3) A virtualização permite a execução de sistemas operacionais de forma isolada através de máquinas virtuais para melhor utilização dos recursos.
1) O documento descreve os conceitos fundamentais de sistemas distribuídos, incluindo definições, exemplos, desafios e tipos de implementação.
2) Os principais desafios de sistemas distribuídos incluem heterogeneidade, segurança, escalabilidade, tratamento de falhas e transparência.
3) Exemplos de sistemas distribuídos são a Internet, computação móvel e sistemas de compartilhamento de recursos.
O documento apresenta uma introdução sobre sistemas distribuídos, definindo-os como sistemas nos quais os componentes de hardware ou software se comunicam através de mensagens. Apresenta também as consequências da definição, como concorrência e inexistência de relógio global, e exemplos como a Internet e intranets. Por fim, descreve desafios na implementação de sistemas distribuídos, como heterogeneidade, segurança, escalabilidade e tratamento de falhas.
O documento descreve modelos fundamentais para sistemas distribuídos, incluindo modelos de interação, falhas e segurança. É discutido como esses modelos definem como componentes interagem e são mapeados em redes, além de considerar atrasos, falhas e ataques de segurança.
O documento descreve os conceitos fundamentais de processos em sistemas operacionais, incluindo o que é um processo, seus componentes (contexto de hardware, contexto de software e espaço de endereçamento), estados possíveis de um processo (executando, pronto e espera) e a função do bloco de controle de processo.
O documento discute conceitos de tolerância a falhas em sistemas, incluindo redundância, disponibilidade, confiabilidade, segurança e capacidade de manutenção. Também aborda técnicas como mascaramento de falhas por redundância, resiliência de processos através de grupos e detecção de falhas.
O documento discute os conceitos de virtualização, máquinas virtuais e seus benefícios. A virtualização oferece uma camada de abstração dos recursos reais de hardware e permite executar múltiplos sistemas operacionais simultaneamente. Isso proporciona recursos como reaproveitamento de recursos, portabilidade e segurança.
O documento discute as arquiteturas de sistemas distribuídos, definindo componentes, conectores e estilos arquitetônicos como camadas, objetos, dados e eventos. Também aborda arquiteturas centralizadas, descentralizadas e híbridas, incluindo peer-to-peer estruturado e não estruturado.
1) O documento discute processos, threads, virtualização e migração de código em sistemas distribuídos.
2) Threads permitem a execução concorrente de tarefas dentro de um mesmo processo para melhorar o desempenho.
3) A virtualização permite a execução de sistemas operacionais de forma isolada através de máquinas virtuais para melhor utilização dos recursos.
1) O documento descreve os conceitos fundamentais de sistemas distribuídos, incluindo definições, exemplos, desafios e tipos de implementação.
2) Os principais desafios de sistemas distribuídos incluem heterogeneidade, segurança, escalabilidade, tratamento de falhas e transparência.
3) Exemplos de sistemas distribuídos são a Internet, computação móvel e sistemas de compartilhamento de recursos.
O documento apresenta uma introdução sobre sistemas distribuídos, definindo-os como sistemas nos quais os componentes de hardware ou software se comunicam através de mensagens. Apresenta também as consequências da definição, como concorrência e inexistência de relógio global, e exemplos como a Internet e intranets. Por fim, descreve desafios na implementação de sistemas distribuídos, como heterogeneidade, segurança, escalabilidade e tratamento de falhas.
O documento descreve modelos fundamentais para sistemas distribuídos, incluindo modelos de interação, falhas e segurança. É discutido como esses modelos definem como componentes interagem e são mapeados em redes, além de considerar atrasos, falhas e ataques de segurança.
O documento descreve os conceitos fundamentais de processos em sistemas operacionais, incluindo o que é um processo, seus componentes (contexto de hardware, contexto de software e espaço de endereçamento), estados possíveis de um processo (executando, pronto e espera) e a função do bloco de controle de processo.
O documento discute conceitos de tolerância a falhas em sistemas, incluindo redundância, disponibilidade, confiabilidade, segurança e capacidade de manutenção. Também aborda técnicas como mascaramento de falhas por redundância, resiliência de processos através de grupos e detecção de falhas.
O documento discute os conceitos de virtualização, máquinas virtuais e seus benefícios. A virtualização oferece uma camada de abstração dos recursos reais de hardware e permite executar múltiplos sistemas operacionais simultaneamente. Isso proporciona recursos como reaproveitamento de recursos, portabilidade e segurança.
O documento discute as arquiteturas de sistemas distribuídos, definindo componentes, conectores e estilos arquitetônicos como camadas, objetos, dados e eventos. Também aborda arquiteturas centralizadas, descentralizadas e híbridas, incluindo peer-to-peer estruturado e não estruturado.
1) A aula apresenta conceitos básicos de objetos distribuídos, incluindo chamada remota de métodos e arquiteturas como RPC, CORBA e Java RMI.
2) Os tópicos abordados incluem objetos distribuídos, serialização e diferentes tipos de objetos como objetos de tempo de compilação e execução.
3) A chamada remota de métodos permite que um processo invoque um método em outro processo, mesmo em outro host, usando stubs para esconder a comunicação.
Um proxy serve para controlar a navegação na rede e armazenar sites acessados com frequência para tornar a navegação mais rápida. Um proxy transparente direciona solicitações dos clientes ao servidor proxy sem necessidade de configuração nos clientes. Os principais benefícios de usar um proxy são o controle de acesso e a otimização do uso de banda na rede.
O documento discute estratégias de comunicação distribuída como sockets, RMI, CORBA e EJB. Ele explica que sockets usam TCP/IP para comunicação entre aplicações e descreve características de sockets como confiabilidade e uso de portas.
Este documento introduz os sistemas distribuídos, definindo-os como um conjunto de computadores independentes que aparecem para os usuários como um único sistema coerente. Explora as motivações, características e tipos de sistemas distribuídos, incluindo clusters, supercomputadores, grids, sistemas pervasivos e nuvem.
O documento discute os protocolos TCP e UDP para comunicação entre processos, comparando suas características como confiabilidade, ordenamento e sincronia. Também apresenta a API Java para sockets e fluxos TCP, mostrando exemplos de cliente e servidor.
Este documento discute arquiteturas e sistemas distribuídos baseados na web. Aborda tópicos como arquitetura de sistemas tradicionais baseados na web, documentos, arquiteturas multicamadas, serviços web, processos de clientes e servidores, comunicação usando protocolos como HTTP e SOAP, nomeação, sincronização, consistência e replicação de dados, e segurança.
O documento descreve o servidor proxy Squid, incluindo sua instalação, configuração e uso de ACLs. O Squid atua como intermediário entre PCs e a Internet, fornecendo segurança, controle e cache. Sua configuração é feita no arquivo squid.conf, definindo parâmetros como porta, cache, logs e listas de controle de acesso.
Primeira aula da disciplina Programação Dinâmica para Web. Primeiros conceitos sobre Arquitetura de Aplicações web e informações gerais sobre a disciplina.
O documento descreve o modelo cliente-servidor, no qual programas clientes solicitam informações de programas servidores. Exemplos incluem navegadores da web como clientes e servidores web como servidores. O documento também discute outros modelos de interação em rede como peer-to-peer e apresenta exemplos de aplicações que utilizam o modelo cliente-servidor, como email, transferência de arquivos e sistemas de banco de dados.
O documento apresenta uma aula sobre sistemas operacionais. Em três frases ou menos:
A aula discute os tipos de sistemas operacionais, incluindo monoprogramáveis-monotarefa, multiprogramáveis-multitarefa e sistemas com múltiplos processadores. É dada uma visão geral dos conceitos básicos de sistemas operacionais e suas funções. Alunos recebem um exercício para realizar sobre o capítulo 1 do livro-texto sobre arquitetura de sistemas operacionais.
O documento discute conceitos de segurança da informação, como segurança, ativos da informação, princípios de segurança, ameaças e medidas de proteção. Ele define termos como TI, hardware, software, usuários, incidentes, privacidade e vulnerabilidades. Também aborda espécies de malware como vírus, worms e trojans.
1) O documento introduz os conceitos básicos de sistemas distribuídos, incluindo definições, exemplos, vantagens, desvantagens e hardware e software envolvidos.
2) É apresentada uma comparação entre diferentes tipos de software para sistemas distribuídos, como sistemas operacionais de rede, sistemas distribuídos autênticos e sistemas para multiprocessadores.
3) Características-chave como compartilhamento de recursos, extensibilidade, concorrência, escalabilidade e tolerância a falhas são
Um servidor proxy funciona como intermediário entre usuários e servidores, permitindo compartilhamento de conexão com a Internet e melhorando desempenho através de cache. Proxies podem ser usados para bloquear acesso a determinados sites e programas como Squid e WinProxy implementam essa funcionalidade.
O documento discute sistemas distribuídos seguros, abordando conceitos como ameaças à segurança, métodos de ataque, criptografia e controle de acesso. É destacado que sistemas distribuídos são inerentemente inseguros e expostos a riscos como roubo de informações, alteração de dados e negação de serviço.
O documento descreve comandos Linux para gerenciamento de usuários e grupos, redes e desligamento do sistema. Ele explica como adicionar e remover usuários e grupos, alterar senhas e configurações de contas, visualizar informações de rede e desligar ou reiniciar o sistema de forma segura.
Aula 07 - Projeto de Topologia e Exercícios - Parte IIDalton Martins
Este documento discute projetos de topologia de rede, incluindo redundância, balanceamento de carga, topologias de rede campus e WAN. Ele fornece exemplos de como implementar Spanning Tree Protocol e VLANs em redes campus.
O documento discute estratégias de comunicação entre aplicações distribuídas, incluindo Web Services. Web Services permitem a troca de dados entre aplicações através da web usando XML, HTTP e outras tecnologias. O documento também descreve como WSDL, SOAP, UDDI facilitam a descoberta e consumo de Web Services.
desafios na implementacao de sistemas distribuidosHélio Jovo
Para que um sistema de informação distribuído construído a partir de diferentes hardwares e softwares tenha sucesso, todos os seus componentes precisam ser compatíveis através de padrões. Os principais desafios envolvem a heterogeneidade, a abertura para expansão e a segurança do sistema distribuído.
1) O documento discute programação concorrente e como ela se relaciona com programação orientada a objetos. 2) É apresentado um roteiro para o curso de programação concorrente, abordando concorrência, objetos e concorrência, e padrões de projeto. 3) Construtores de execução concorrente como threads, processos e tarefas são comparados considerando autonomia, compartilhamento, agendamento e comunicação.
1) A aula apresenta conceitos básicos de objetos distribuídos, incluindo chamada remota de métodos e arquiteturas como RPC, CORBA e Java RMI.
2) Os tópicos abordados incluem objetos distribuídos, serialização e diferentes tipos de objetos como objetos de tempo de compilação e execução.
3) A chamada remota de métodos permite que um processo invoque um método em outro processo, mesmo em outro host, usando stubs para esconder a comunicação.
Um proxy serve para controlar a navegação na rede e armazenar sites acessados com frequência para tornar a navegação mais rápida. Um proxy transparente direciona solicitações dos clientes ao servidor proxy sem necessidade de configuração nos clientes. Os principais benefícios de usar um proxy são o controle de acesso e a otimização do uso de banda na rede.
O documento discute estratégias de comunicação distribuída como sockets, RMI, CORBA e EJB. Ele explica que sockets usam TCP/IP para comunicação entre aplicações e descreve características de sockets como confiabilidade e uso de portas.
Este documento introduz os sistemas distribuídos, definindo-os como um conjunto de computadores independentes que aparecem para os usuários como um único sistema coerente. Explora as motivações, características e tipos de sistemas distribuídos, incluindo clusters, supercomputadores, grids, sistemas pervasivos e nuvem.
O documento discute os protocolos TCP e UDP para comunicação entre processos, comparando suas características como confiabilidade, ordenamento e sincronia. Também apresenta a API Java para sockets e fluxos TCP, mostrando exemplos de cliente e servidor.
Este documento discute arquiteturas e sistemas distribuídos baseados na web. Aborda tópicos como arquitetura de sistemas tradicionais baseados na web, documentos, arquiteturas multicamadas, serviços web, processos de clientes e servidores, comunicação usando protocolos como HTTP e SOAP, nomeação, sincronização, consistência e replicação de dados, e segurança.
O documento descreve o servidor proxy Squid, incluindo sua instalação, configuração e uso de ACLs. O Squid atua como intermediário entre PCs e a Internet, fornecendo segurança, controle e cache. Sua configuração é feita no arquivo squid.conf, definindo parâmetros como porta, cache, logs e listas de controle de acesso.
Primeira aula da disciplina Programação Dinâmica para Web. Primeiros conceitos sobre Arquitetura de Aplicações web e informações gerais sobre a disciplina.
O documento descreve o modelo cliente-servidor, no qual programas clientes solicitam informações de programas servidores. Exemplos incluem navegadores da web como clientes e servidores web como servidores. O documento também discute outros modelos de interação em rede como peer-to-peer e apresenta exemplos de aplicações que utilizam o modelo cliente-servidor, como email, transferência de arquivos e sistemas de banco de dados.
O documento apresenta uma aula sobre sistemas operacionais. Em três frases ou menos:
A aula discute os tipos de sistemas operacionais, incluindo monoprogramáveis-monotarefa, multiprogramáveis-multitarefa e sistemas com múltiplos processadores. É dada uma visão geral dos conceitos básicos de sistemas operacionais e suas funções. Alunos recebem um exercício para realizar sobre o capítulo 1 do livro-texto sobre arquitetura de sistemas operacionais.
O documento discute conceitos de segurança da informação, como segurança, ativos da informação, princípios de segurança, ameaças e medidas de proteção. Ele define termos como TI, hardware, software, usuários, incidentes, privacidade e vulnerabilidades. Também aborda espécies de malware como vírus, worms e trojans.
1) O documento introduz os conceitos básicos de sistemas distribuídos, incluindo definições, exemplos, vantagens, desvantagens e hardware e software envolvidos.
2) É apresentada uma comparação entre diferentes tipos de software para sistemas distribuídos, como sistemas operacionais de rede, sistemas distribuídos autênticos e sistemas para multiprocessadores.
3) Características-chave como compartilhamento de recursos, extensibilidade, concorrência, escalabilidade e tolerância a falhas são
Um servidor proxy funciona como intermediário entre usuários e servidores, permitindo compartilhamento de conexão com a Internet e melhorando desempenho através de cache. Proxies podem ser usados para bloquear acesso a determinados sites e programas como Squid e WinProxy implementam essa funcionalidade.
O documento discute sistemas distribuídos seguros, abordando conceitos como ameaças à segurança, métodos de ataque, criptografia e controle de acesso. É destacado que sistemas distribuídos são inerentemente inseguros e expostos a riscos como roubo de informações, alteração de dados e negação de serviço.
O documento descreve comandos Linux para gerenciamento de usuários e grupos, redes e desligamento do sistema. Ele explica como adicionar e remover usuários e grupos, alterar senhas e configurações de contas, visualizar informações de rede e desligar ou reiniciar o sistema de forma segura.
Aula 07 - Projeto de Topologia e Exercícios - Parte IIDalton Martins
Este documento discute projetos de topologia de rede, incluindo redundância, balanceamento de carga, topologias de rede campus e WAN. Ele fornece exemplos de como implementar Spanning Tree Protocol e VLANs em redes campus.
O documento discute estratégias de comunicação entre aplicações distribuídas, incluindo Web Services. Web Services permitem a troca de dados entre aplicações através da web usando XML, HTTP e outras tecnologias. O documento também descreve como WSDL, SOAP, UDDI facilitam a descoberta e consumo de Web Services.
desafios na implementacao de sistemas distribuidosHélio Jovo
Para que um sistema de informação distribuído construído a partir de diferentes hardwares e softwares tenha sucesso, todos os seus componentes precisam ser compatíveis através de padrões. Os principais desafios envolvem a heterogeneidade, a abertura para expansão e a segurança do sistema distribuído.
1) O documento discute programação concorrente e como ela se relaciona com programação orientada a objetos. 2) É apresentado um roteiro para o curso de programação concorrente, abordando concorrência, objetos e concorrência, e padrões de projeto. 3) Construtores de execução concorrente como threads, processos e tarefas são comparados considerando autonomia, compartilhamento, agendamento e comunicação.
Escalonamento de processos em sistemas virtualizadosClaudio Eckert
- O documento discute escalonamento de processos em sistemas virtualizados, abordando tópicos como modelos de nuvem, classes de serviço, gerenciamento de nuvem de código aberto e algoritmos de escalonamento de processos.
O documento discute sistemas distribuídos e paralelos. Ele explica que o poder de processamento das máquinas vem crescendo rapidamente e que as máquinas estão cada vez mais interligadas. Sistemas e aplicações estão se tornando mais complexos com maior carga, usuários e demandas por desempenho e confiabilidade. A computação distribuída e paralela permitem executar partes de uma aplicação simultaneamente para atender essas demandas.
O documento discute a arquitetura de sistemas operacionais, definindo-o como um software que gerencia os recursos de hardware e permite a execução de programas. Apresenta as funções básicas de um sistema operacional e tipos como monotarefa, multitarefa, em rede e distribuídos. Explora estruturas como arquitetura monolítica e microkernel e conceitos como processo, chamadas ao sistema e virtualização.
O documento discute técnicas para otimizar o desempenho de websites desenvolvidos em PHP. Ele aborda ajustes que podem ser feitos no servidor web e no banco de dados para melhorar a performance, como utilização de módulos do Apache, configuração do MySQL e uso de cache. Além disso, apresenta técnicas de profiling em PHP para identificar gargalos e otimizações como compactação de arquivos e static assets.
O documento discute conceitos de virtualização, como permite executar múltiplos sistemas operacionais em uma única máquina através de máquinas virtuais. Também aborda os benefícios da virtualização como melhor aproveitamento dos recursos e redução de custos, além de apresentar diferentes métodos como o VMM e assistência por hardware.
Nesse trabalho, é mostrado como o CentOS lida com processos e memórias, além de ser abordado um pouco sobre o sistema de arquivos que ele utiliza, além das interfaces, gráfica e textual.
O documento discute sistemas operacionais aplicados, especificamente sobre servidores de aplicação e conceitos relacionados como programa, serviço, rede, modelos de comunicação e protocolos. Aborda também aplicações centralizadas versus distribuídas e os papéis da rede e protocolos nesses sistemas.
O documento discute a ferramenta de gerenciamento de virtualização Ganeti. Em três frases, o documento apresenta o caso de uso da EBC, que migrou 160 máquinas virtuais para um cluster Ganeti com 15 nós, permitindo administração centralizada e automação de serviços. Além disso, discute como o Ganeti oferece recursos como replicação de dados em tempo real e migração transparente de VMs entre nós do cluster.
Threads são linhas de execução dentro de um processo que podem rodar concorrentemente. Elas podem ser implementadas pelo sistema operacional ou por bibliotecas de programação. Threads são necessários para executar múltiplas tarefas em paralelo.
Este documento fornece informações sobre segurança em servidores Linux de acordo com a norma ISO 27002. Resume as principais técnicas para garantir a segurança dos servidores, incluindo hardening do sistema, políticas de acesso, monitoramento e logs.
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
O documento descreve características de sistemas distribuídos, incluindo desafios como heterogeneidade, segurança e escalabilidade. Aborda modelos como cliente-servidor e peer-to-peer, além de camadas de software e protocolos de comunicação como UDP e TCP.
O documento discute os conceitos fundamentais de sistemas operacionais, incluindo processos, estados de processos, comunicação entre processos, threads, sistemas de arquivos e diferentes arquiteturas de sistemas operacionais como monolítica, em camadas, máquina virtual e microkernel.
O documento apresenta uma introdução ao Windows 7, destacando suas principais novidades e arquitetura modular. Discute também os sistemas de arquivos NTFS e FAT32, a arquitetura de rede e componentes de segurança, como autenticação e privilégios de conta.
O documento discute sistemas operativos cliente-servidor. Apresenta conceitos-chave como servidores prestarem serviços para clientes em rede e as vantagens de segurança, centralização e escalabilidade desta arquitetura. Também aborda tópicos como tipos de servidores, otimização do desempenho, backups e tipos de licenciamento de software.
O documento discute processos e threads no sistema operacional. Explica que um processo é um programa em execução que pode ser dividido em seções de pilha, heap, texto e dados. Threads são fluxos de execução dentro de um processo e compartilham recursos. A comunicação entre processos pode ocorrer via memória compartilhada ou troca de mensagens.
O documento discute sistemas operacionais de rede. Ele define sistemas operacionais, explica suas funções e como eles gerenciam recursos. Também descreve arquiteturas cliente-servidor e peer-to-peer, além de servidores dedicados e não-dedicados.
O documento descreve o que é um sistema operacional, seus principais componentes, objetivos e serviços. Um sistema operacional atua como intermediário entre o usuário e o hardware, fornecendo um ambiente para execução de programas e alocando recursos de forma eficiente. O texto também resume a evolução histórica dos sistemas operacionais desde os primeiros sistemas em lote até os sistemas distribuídos e de tempo real modernos.
Semelhante a SI - Processos, Threads, Virtualização e Migração de Código (20)
Este documento discute sistemas distribuídos e web services. Apresenta a definição de web services e seus principais componentes como XML, UDDI, WSDL e SOAP. Explica como web services permitem a interoperabilidade entre sistemas e aplicações em diferentes plataformas através da padronização da comunicação.
O documento discute a Internet das Coisas (IoT), incluindo sua definição, história, funcionamento, valor de mercado, aplicações e desafios. A IoT conecta dispositivos eletrônicos à Internet através de sensores sem fio, inteligência artificial e nanotecnologia. Protocolos como Bluetooth, Zigbee e redes celulares permitem a conectividade entre os dispositivos, enquanto padronização, bateria, conectividade e segurança são desafios significativos.
O documento introduz os conceitos básicos de Cloud Computing, definindo-o como um cluster de computação e armazenamento consolidados disponibilizados como serviço através da internet. Apresenta as categorias de Cloud (pública, privada e híbrida), os modelos de serviço (SaaS, PaaS e IaaS) e discute a necessidade de padronização para adoção em larga escala.
Este documento discute sistemas de arquivos distribuídos, definindo conceitos como arquivos, diretórios e suas características. Também descreve como sistemas de arquivos distribuídos permitem acesso transparente a arquivos remotos e exemplos como NFS, GFS e GlusterFS.
SI - Sistemas Distribuídos - Apresentação da disciplinaFrederico Madeira
O documento apresenta a disciplina de Sistemas Distribuídos ministrada por Frederico Madeira. A ementa inclui introdução aos sistemas distribuídos, sistemas de arquivos distribuídos, arquiteturas, processos, comunicação e projeto sobre computação autonômica. A avaliação consiste em provas e projetos. A bibliografia lista livros e artigos sobre sistemas distribuídos.
O documento descreve a configuração de alta disponibilidade utilizando o Pacemaker e o DRBD. O Pacemaker é usado para implementar failover de serviços como Apache e IP virtual entre dois nós, enquanto o DRBD replica o armazenamento entre os nós para prover alta disponibilidade dos dados.
1. Existem diversas formas de instalar programas em Linux, como a partir do código fonte, RPM, YUM, APT-GET e repositórios.
2. RPM é o gerenciador de pacotes mais utilizado em distros Linux, permitindo instalar, atualizar e remover programas.
3. YUM e DNF facilitam a instalação automatizando o download e resolvendo dependências, buscando pacotes em repositórios on-line.
O documento discute ferramentas de privacidade na internet como o Tor e o GPG. O Tor cria uma rede privada e anônima que protege os usuários contra vigilância online enquanto o GPG fornece criptografia de mensagens para privacidade e segurança.
O documento discute as vantagens do Linux e do modelo open source, incluindo ser gratuito, completo para escritório, com atualizações fáceis, personalizável e seguro. Além disso, destaca que 95% dos supercomputadores usam Linux devido ao seu desempenho, gerenciamento de energia e estabilidade.
O documento discute as redes VoIP e o futuro da telefonia. Ele explica que a VoIP permite chamadas de voz pela internet usando o protocolo IP, possibilitando chamadas de baixo custo. A VoIP representa uma mudança nas telecomunicações com a redução de custos e novas funcionalidades.
Open Virtualization - Virtualização em Software LivreFrederico Madeira
O documento discute a virtualização em software livre, definindo virtualização e explicando os benefícios. Apresenta os tipos de hypervisors, como KVM e libvirt, e ferramentas de gerenciamento como Virsh e Virt-manager. Também descreve o oVirt como uma plataforma de gerenciamento de virtualização.
As redes de próxima geração (NGN) permitem a convergência de voz, dados e vídeo em uma única rede IP. As NGN usam protocolos abertos como MPLS para fornecer qualidade de serviço e são construídas em camadas funcionais. A tecnologia DWDM aumenta drasticamente a capacidade de transporte de dados usando múltiplas longitudes de onda em fibras ópticas.
O documento descreve como configurar e usar o MRTG (Multi Router Traffic Grapher) para monitorar tráfego de rede e recursos de sistemas através do protocolo SNMP. O MRTG gera gráficos que mostram o uso de banda nas interfaces de rede, CPU, memória e disco de roteadores, servidores e outros dispositivos de rede. Ele pode ser usado para monitorar qualquer equipamento que suporte SNMP.
O documento discute o protocolo SNMP (Simple Network Management Protocol) e sua arquitetura para gerenciamento de redes. Ele explica os principais conceitos como MIB (Management Information Base), serviços SNMP e especificações como RFC 1213 que definem objetos de gerenciamento padrão.
Este documento descreve ferramentas para detecção e diagnóstico de problemas em redes, incluindo ping, traceroute, nmap, tcpdump e iperf. Essas ferramentas ajudam administradores de rede a medir o desempenho, encontrar problemas e endereços IP duplicados na rede.
O documento discute sistemas de gerência de redes. Ele descreve como esses sistemas fornecem interfaces unificadas para monitorar e controlar redes de forma integrada. Também explica que esses sistemas são compostos por plataformas de gerência de redes e aplicações que operam sobre essas plataformas.
O documento discute a importância da gerência de redes para monitorar, controlar e garantir o desempenho e funcionamento adequado das redes de computadores. A gerência de redes cobre áreas como desempenho, falhas, configuração, contabilidade e segurança. Métricas como disponibilidade, tempo médio de recuperação, taxa de erros e latência são utilizadas para avaliar a rede.
Este documento apresenta uma disciplina de Gerência de Redes. A disciplina abordará introdução à gerência de redes, principais componentes, protocolos e ferramentas de gerência, softwares de gerência e arquiteturas. Inclui o desenvolvimento de um projeto de gerenciamento de rede e avaliação com provas e projeto.
O Uso de Captchas de Áudio no Combate ao spam em Telefonia IPFrederico Madeira
O documento descreve uma ferramenta para combater SPIT (spam de voz sobre IP) em redes VoIP. A ferramenta implementa testes reversos de Turing e CAPTCHAs de áudio para identificar chamadas humanas versus automatizadas, além de listas negras e brancas. Testes mostraram que a ferramenta aumenta a carga do servidor mas protege os usuários contra SPIT de forma eficaz.
O documento apresenta um projeto de pesquisa sobre segurança em redes de voz sobre IP (VoIP). Ele discute a motivação, objetivos, ameaças em diferentes camadas, desafios e contribuições do projeto, que incluem caracterizar a tecnologia VoIP e as ameaças, propor contramedidas e disseminar boas práticas de segurança para redes VoIP.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
4. ✔
Não existem Sistemas Operacionais Distribuídos, existem
apenas Sistemas Operacionais de rede como
✔
Linux
✔
MAC
✔
Windows
✔
Neste caso os SO’s devem oferecer suporte na implementação
de sistemas distribuídos
✔
Através da Combinação de Middleware + Sistema Operacional
podemos oferecer transparência em relação a rede e
abstração de certas atividades do SO.
Introdução
5. Processos
• É o conceito mais central em qualquer sistema
operacional
• É simplesmente um programa em execução,
incluindo os valores correntes do contador de
programa, dos registradores e das variáveis.
• Durante a execução do SO, a CPU alterna de
processo para processo, dando a impressão de
paralelismo
6. Processos
• SO cria vários processadores virtuais, sendo cada
um para executar um dado programa.
• SO possui uma tabela de processos para
monitorar esses processadores virtuais.
– A tabela possui:
• entradas para armazenar valores de
registradores de CPU
• Mapas de memória
• Arquivos abertos
• Informações sobre contabilidade
• Privilégios, etc...
• SO garante que os processos sejam
independentes de forma que não afetem uns aos
outros
• O compartilhamento da mesma CPU e outros
dispositivos é transparente para os processos.
7. Problemática dos Processos
• Nos anos 80, foi descoberto que a noção
tradicional de um sistema operacional, de um
processo que executa um único fluxo de execução,
era diferente dos requisitos dos sistemas
operacionais distribuídos.
• Diferente dos requisitos dos aplicativos mais
sofisticados que utilizam um único
processador, mas que exigem concorrência de
suas atividades internas.
• O único modo para seu programa acessar a dados
na estrutura (contexto) de um processo, consultar
ou mudar seu estado, é via uma chamada de
sistema.
8. Solução
• Aprimorar a noção de processo, para que ele
pudesse ser associado a múltiplas atividades
internas a ele.
• Com o surgimento de processadores de mais
alto desempenho, uma nova unidade de
processamento concorrente pode ser definida
dentro do próprio processo, novos fluxos de
execução e assim pode-se ter múltiplos fluxos
de execução (múltiplas threads) num mesmo
processo.
• Cada fluxo de execução é chamada Thread.
9. Threads
●
Executam sua própria porção de código
independente de outros threads
●
Rodam no espaço do usuário em contrapartida
aos processos que rodam no espaço do sistema
●
Mais barato do ponto de vista da CPU
●
Podem compartilhar áreas de endereçamento
●
Atualmente, um processo consiste em um
ambiente de execução, contendo uma ou mais
threads.
●
Threads (linhas de execução) são atividades
(tarefas internas) concorrentes executadas dentro
de um processo.
●
Um processo pode ter uma ou mais threads.
12. Multithread
• Múltiplas threads executam concorrentemente em
um processo, e é análogo a múltiplos processos
executando concorrentemente em um único
processador.
• Threads pertencentes a um mesmo processo,
compartilham os mesmos recursos e memória
(espaço de endereçamento) do processo.
• Cada thread pode ser associada a uma CPU
diferentes (em processadores modernos
• Exemplo de uma planilha rodando com 3 threads
de controle
– Controle interação do usuário
– Realizar atualização da planilha
– Realizar cópia de segurança
– Todos usando os mesmos dados
compartilhados em memória
13. Multithread
• No linux podemos avaliar as threds e processos através de
comandos como ps, top ou htop.
• TGID = Thread Group ID
• PID = Processo ID
14. Threads em Sistemas Distribuídos
• Clientes Multithread
– Para se obter alto grau de transparência de
distribuição, é necessário esconder o tempo de
propagação de mensagens entre processos
– Comumente o cliente deve executar mais outra
ação enquanto realiza a troca de mensagens
– Ex: Browser WEB
• Tão logo o arquivo HTML seja recebido,
threads separados se encarregam de buscar
outras partes
• Cada thread estabelece uma conexão
separada com o servidor
15. Threads em Sistemas Distribuídos
• Clientes Multithread
– Como servidores WEB normalmente são
replicados e cada thread abre uma nova
conexão com o servidor
– Temos a oportunidade de balancear carga do
servidor da aplicação, tendo em vista que cada
solicitação ao nosso servidor poderá ser
balanceada pelo DNS.
17. Threads em Sistemas Distribuídos
• Servidores Multithread
– Além da performance, através de Thread, é
possível elaborar um paralelismo;
– De forma fácil e simplificado;
– Ainda mais quando computadores possui
multiprocessadores;
– Também evitamos que a CPU fica ociosa;
18. Threads em Sistemas Distribuídos
• Servidores Multithread
– Para exemplificar:
• Implementação de um filesystem sem
recurso de threads
– Enquando o FS processa uma requisição e
aguarda pelo disco, a CPU fica bloqueada
para receber novas solicitações
• Implementação de um filesystem com
recurso de threads
– Modelo despachante/operário
– Ao receber uma solicitação, o
despachante entrega a uma thread que
vai solicitar ao disco
– Em paralelo o despachante recebe outras
demadnas e entrega para outras threads
22. Virtualização
“É um termo que se refere a criação de máquinas virtuais que se
comportam com se fosse um computador real. O software
executado nesta máquina virtual é separado do hardware real da
máquina.” Wikipedia
“É a criação de substitutos flexíveis para recursos reais —
substitutos que têm as mesmas funções e interfaces externas que
seus equivalentes reais, mas diferem em atributos como tamanho,
desempenho e custo. Esses substitutos são denominados recursos
virtuais; seus usuários geralmente não têm conhecimento da
substituição.”
IBM DeveloperWorks: Hypervisores, virtualização e a nuvem
23. Virtualização
“É um termo amplo da computação que se refere a capacidade de
executar software, comumente, sistemas operacionais, concorrentemente
e isolados de outros programas do sistema.
A maioria das implementações utiliza um hypervisor, uma camada de
software ou subsistema que controla o hardware e provê sistemas
operacionais guest com acesso ao nível mais baixo do hardware.
O hypervisor permite multiplos sistemas operacionais, chamados de guest,
a rodar no mesmo sistema, oferecendo hardware virtualizado ao sistema
operaciona guest.”
Red Hat Enterprise Linux 6 - Virtualization Getting Started
25. Por que Virtualizar ?
• Estende ou substitui uma interface existente de
modo a imitar o comportamento de um outro
sistema;
• Essência da virtualização é imitar o comportamento
das interfaces (instruções de máquina, chamadas
de sistema)
• Muito utilizado na década de 70, nos mainframes
da IBM, onde executava aplicativos e S.O. de vários
fornecedores (através das máquinas virtuais)
• Isolação de uma aplicação completa e seu ambiente
– Falhas, ataques ou vulnerabilidades afetam
apenas uma aplicação e não todas que rodam na
máquina
• Alocação rápida de novos hosts.
• Aproveitamento do tempo ocioso das CPU’s
26. Métodos para Virtualização de SO
• Full Virtualization:
– Utiliza funcionalidades do Hardware do
processador
– Oferece ao guest total abstração sistema físico
hospedeiro
– Permite rodar sistemas operacionais guest sem
modificação
– Aplicações e o próprio sistema operacional não
percebem que estão virtualizados
27. Métodos para Virtualização de SO
• Para-Virtualization:
– Utiliza conjunto de software e estrutura de
dados que deve estar presentes no sistema
guest
– Requer modificação de software no guest para
utilização do sistema para-virtualizado
– Pode englobar todo o kernel, ou drivers ou
dispositivos de i/o
– Desempenho próximo da máquina real
28. Métodos para Virtualização de SO
• Software Virtualization (or emulation)
– Utiliza técnica de slow binary translation ou
outras técnicas para rodar sistemas guest sem
modificação.
31. Hypervisor
• Os hypervisors são componentes de software
ou firmware que podem virtualizar recursos
do sistema.
• A virtualização geralmente é implementada através
de um Hypervisor
• Também chamado de Virtual Machine Monitor
(Monitor de Máquina Virtual) ou VMM
• Oferecem uma forma conveniente de usar o mesmo
hardware do computador físico para outras tarefas
diferentes
• Os hypervisors não são iguais, mas todos oferecem
recursos semelhantes
32. Tipos de Hypervisors
• Tipo 1
– Funcionam diretamente no HW
– Chamados de HardV
– Recomendados para servidores de produção
– Pode ser carregado via pendrive
– Baixo overhead
• Tipo 2
– Funcionam sobre um sistema operacional host e
oferecem o serviço de virtualização
– Chamados de SoftV
– Não recomendado para servidores de produção
– Normalmente utilizados como porta de entrada para a
virtualização
– Alto overhead, pois o SO Host consome recursos do Hw
• Temos outros tipos de virtualização, mas para escopo deste trabalho,
não foram descritos aqui
34. Exemplos de Hypervisor
• PowerVM
• VMware ESX Server (vSphere)
• Xen (Citrix)
• KVM
• z/VM
• Hyper-V
35. Funcionalidades desejadas em um
Hypervisor
• Desempenho da máquina virtual
Os sistemas virtuais deveriam ter desempenho similar
ou superior aos seus equivalentes, pelo menos em
relação aos aplicativos dentro cada servidor. Qualquer
coisa além dessa referência é lucro.
• Gerenciamento de memória
• Alta disponibilidade
Cada grande fornecedor tem sua própria solução de
alta disponibilidade e a maneira como cada um atinge
isso pode ser bem diferente, variando desde métodos
minimalistas até muito complexos
36. Funcionalidades desejadas em um
Hypervisor
• Migração ativa
Migração ativa em diferentes plataformas é a
capacidade de migrar simultaneamente duas ou mais
Vms
• Redes, armazenamento e segurança
Em rede, os hypervisors devem suportar agrupamento
de cartões de interface de rede (NICs) e
balanceamento de carga, isolamento Unicast e
suporte para o entroncamento de rede de área local
virtual (VLAN) padrão (802.1Q).
Em armazenamento, devem suportar armazenamento
em rede iSCSI e Fibre Channel
39. Servidor
• Um servidor é um processo que implementa um
serviço especifico
• Cada servidor é organizado do mesmo modo:
– Espera por uma requisição
– Processa-a
– Depois, espera pela próxima requisição
40. Servidor
• Na elaboração de um servidor, temos que
responder as seguintes perguntas:
– Como o cliente irá acessar o servidor?
– Como interromper a comunicação com o
servidor?
– Servidor deve guardar o estado dos clientes?
41. Servidor
Como os cliente irão acessar o servidor?
• Os servidores devem escolher um terminal (porta)
do computador para receber as requisições;
• Algumas portas são conhecidas (tais como o HTTP –
80 e o FTP – 20/21);
– Definidas pela IANA
• Existem duas maneiras de manipular portas:
– Utilizar um daemon
– Supeservidor (inetd no unix)
42. Servidor
Como os cliente irão acessar o servidor?
• O servidor cadastra a sua porta no daemon;
• O Cliente, antes de acessar o servidor, pergunta
qual porta está sendo disponibilizado;
• Depois, acessa o servidor;
43. Servidor
Como os cliente irão acessar o servidor?
• Para evitar que tenha processos ociosos esperando
por uma requisição;
• O supervisor monitora cada porta associada com
um serviço específico;
• Ao receber um requisição em uma dessas portas,
executa outro programa para continuar com o
requisição, e quanto terminar de atender, finaliza-o
• Ex.: Daemon inetd no Unix
44. Servidor
Como interromper a conexão com o servidor?
• Abordagem mais simples
– usuário finaliza o processo da aplicação cliente →
servidor encerrará a conexão antiga
• Abordagem mais completa:
– dados “urgentes” (fora da banda)
– Pacotes TCP possuem no header o campo URG.
– Servidor ao receber um pacote com o campo
URG setado é interrompido, através de um sinal.
45. Servidor
Servidor deve guardar o estado dos clientes?
• Existem três tipos de servidor:
– Sem estado
• Não mantém informações sobre os estados
dos clientes
• Pode mudar seu próprio estado sem ter de
informar a nenhum cliente
• As requisições atuais não influenciaram as
próximas requisições
• Vantagem: o serviço pode ser reiniciado e
não afeta as requisições dos clientes
• ex. Páginas WEB comuns
46. Servidor
Servidor deve guardar o estado dos clientes?
• Existem três tipos de servidor:
– Estado Flexível
• Armazena temporariamente o estado do
Cliente
• Após o tempo limitado, o servidor descarta
estas informações
• As requisições atuais não influenciaram as
próximas requisições
• ex. Session de uma página WEB
47. Servidor
Servidor deve guardar o estado dos clientes?
• Existem três tipos de servidor:
– Com Estado
• O servidor irá armazenar o estado do Cliente;
• As informações sobre precisam ser
explicitamente removidos pelo servidor;
• Problema: além de ter que armazenar o
estado de cada cliente, caso o servidor caia e
volte a funcionar, pode perder todos os
estados de todos os clientes;
• ex. Servidor de arquivos que permite a um
cliente manter cópia local de um arquivo.
Servidor mantêm uma tabela, com entradas
(cliente, arquivo). Permite monitorar as
permissões sobre um arquivo, etc.
• ex2: Tracker Bittorrent
48. Servidor - Clusters
• Uma forma de tornar o serviço mais disponível
agrupando computadores formando um Cluster
• Cluster é: Conjunto de máquinas conectadas por
uma rede, no qual cada máquina executa um ou
mais servidores. Estas máquinas estão conectadas
por uma rede local, com alta largura de banda e
baixa latência.
• Geralmente, é divido em 3 camadas;
50. Servidor - Clusters
• Primeira Camada
– Forma o ponto de entrada para o cluster de
servidores, oferecendo um único endereço de
rede.
– Considerando TCP, o comutador aceita
requisições e as transfere a um dos servidores
– Deve elaborar algum esquema de
balanceamento de carga: identificando o melhor
servidor a tratar a requisição ou sempre
selecionado um servidor diferente
52. Servidor - Clusters
• Segunda Camada
– Servidores dedicados a processamento de
aplicações
– Normalmente servidores que executam
hardware de alto desempenho dedicado a
aumentar a capacidade de computação
– Clusters corporativos podem rodar com
máquinas comuns quando o gragalo for o acesso
ao disco.
53. Servidor - Clusters
• Terceira Camada
– Servidores de processamento de dados,
especialmente servidores de arquivo e banco de
dados
– Podem usar máquinas especializadas para
acesso a alta velocidade a disco e que têm
grandes caches dedos ao lado do servidor
54. Um exemplo de um site a utilizar técnicas de balanceamento de carga é a
própria Wikimedia Foundation e os seus projetos. Em Junho de 2004, a carga
era balanceada usando uma combinação de:
➔
Round robin DNS, que distribui os pedidos uniformemente para um dos
três servidores de cache Squid;
➔
Estes servidores de cache usam os tempos de resposta para distribuir os
pedidos para cada um dos sete servidores de páginas. Em média, os
servidores Squid já têm em cache páginas suficientes para satisfazer 75%
dos pedidos sem sequer consultar os servidores de páginas;
➔
Os scripts PHP que formam a aplicação distribuem a carga para um de vários
servidores de base de dados dependendo do tipo do pedido, com as
atualizações indo para um servidor primário e as consultas para um ou mais
servidores secundários.
- http://pt.wikipedia.org/wiki/Balanceamento_de_Carga
Balanceamento de Carga (Load Balancing)
55. Migração de Código
• Migração de código ocorre, tradicionalmente, na
forma de migração de processo;
• Todo o processo migra de uma máquina à outra;
• Isso é uma tarefa custosa e complicada;
• O motivo para fazer isso é sempre a
otimização (desempenho);
• Exemplo de um uso:
– Em um cluster, para melhorar o balanceamento
de carga, pode migrar programas para máquinas
ociosas, liberando as demais;
– Um cliente, antes de interagir com o servidor,
necessita baixa um código;
57. Migração de Código
• Consiste em três segmentos:
– Segmento de código: contém o conjunto de
instruções que compõem o programa que está
em execução
– Segmento de recursos: contém referências a
recursos externos (arquivos, impressoras)
– Segmento de execução: armazenar o estado
em execução de um processo no momento da
migração (dados privados, pilha,contador de
programa)
58. Migração de Código
• Mobilidade pode ser de dois tipos:
– Mobilidade Fraca: possível transferir somente
o segmento de código, junto com alguns dados
de inicialização. Requer somente que a
máquina-alvo possa executar o código
(portabilidade)
– Mobilidade Forte: segmento de execução
também pode ser transferido. O processo em
execução pode ser parado e movido para uma
outra máquina e retomar a execução no ponto
original
59. Migração de Código
• Em relação do ponto de início da migração:
– Iniciada pelo remetente: a migração é
iniciada na máquina em que o código está em
execução
• Ex.: enviar programa de busca pela Internet
a um servidor de banco de dados para
realização de pesquisas; agente móvel que→
passa de site para site
– Iniciada pelo destinatário: Iniciativa da
migração de código é tomada pela máquina-alvo
(cliente);
• Ex.: Applet do Java
60. Migração de Código
• Destinatário:
– Mais simples que pelo remetente.
– Cliente toma iniciativa de migração.
• Contrário requer mecanismos de confiança entre
cliente e servidor
– Login/identificação
• Destinatário pode ser feita no anonimato
– Servidor não se interessa pelos dados do cliente
– Migração serve para melhorar desempenho do
cliente.
61. Migração de Código - Recursos
• Três tipos de vinculações processo-recurso:
– Vinculação por identificador
• Processo requer exatamente o recurso
referenciado (URL de um site)
– Vinculação por valor
• É necessário somente um valor
• Se outro recurso fornece o mesmo valor,
execução não é afetada (bibliotecas
padronizadas)
– Vinculação por tipo
• Processo requer um recurso de um tipo
específico (monitores,impressoras)
62. Migração de Código - Recursos
• Três tipos de vinculações recurso-máquina:
– Recursos não ligados: recursos podem ser
movidos com facilidade entre maquinas
diferentes(arquivos de dados)
– Recursos amarrados: recursos podem ser
movidos ou copiados, mas só a custo
relativamente alto ( banco de dados locais)
– Recurso fixos: recursos estão intimamente
vinculados a uma máquina ou ambiente
especifico e não podem ser movidos (porta)
63. Migração de Código
• Referência global
– Caso vários processos referenciem um recurso,
uma alternativa é estabelecer uma referência
global, que atravesse as fronteiras das máquinas
• URL (baixa complexidade)
• Memória compartilhada entre processos
(referência global significa memória
compartilhada)
64. Migração de Código
• Complexidade está ligada aos tipos de vínculo
processo-recurso e recurso-máquina
– Recursos não ligados: Melhor solução é copiar
ou mover o recurso para o novo destino
– Vinculações por tipo: A solução é vincular
novamente o processo a um recurso do mesmo
tipo disponível no local
65. Migração de Código - Heterogêneos
• Sistemas distribuído são construídos em ambientes
heterogêneos (S.O. E arquitetura de máquina);
• A migração de código neste cenário requer que
cada plataforma seja suportada pelo sistemas;
• Assegurando que cada segmento de código pode
ser executado e representado em cada plataforma;
66. Migração de Código - Heterogêneos
• Existem duas alternativas:
– Utilizar linguagens de programação alta
portabilidade (ex. Baseadas em
interpretadores/scripts – PHP – ou “compiladas”
- Java );
• conseguimos executar segmento de processo
em máquina diferentes
– Usar máquinas virtuais, virtualizando
recursos da máquina, possibilitando uniformiza
estes recursos;
• permite migra todo um sistema operacional
de uma máquina a outra;