1000 resultados para Sistemas operacionais distribuídos
Resumo:
O principal objetivo deste trabalho é apresentar um método e métricas para a avaliação do serviço Internet mais amplamente utilizado: a World Wide Web. As características básicas e funcionamento do serviço, bem como algumas ferramentas de avaliação de desempenho, serão descritas. Estes capítulos servirão de base para os demais, onde serão apresentados o método para avaliação do serviço web e métricas usadas para análise de desempenho, disponibilidade, confiabilidade, facilidades de administração e recursos. Por fim, o método e métricas serão aplicados na Procempa – Companhia de Processamento de Dados do Município de Porto Alegre, onde será possível verificá-los na prática. Além disto, dados importantes sobre a infra-estrutura web da Procempa serão fornecidos, os quais permitem uma análise do ambiente web atual e futuro da empresa.
Resumo:
Este trabalho trata da técnica de validação experimental de protocolos de comunicação confiável, através da injeção de falhas de comunicação. São estudadas inicialmente as técnicas de injeção de falhas, por hardware, software e simulação, e então são aprofundados os conceitos de injeção de falhas de comunicação, modelos de falha e especificação de experimentos de injeção de falhas. Em um segundo momento, são estudadas as formas de implementação de injetores de falhas em software, em suas duas formas mais comuns: no nível da aplicação e no nível do sistema operacional. São comentados os impactos da implementação de injetores no código da aplicação, por processos concorrentes à aplicação, em código utilizado pela aplicação e no meta-nível. Por fim, são estudados também que influências sofre a implementação de um injetor de falhas em um sistema operacional, e mais especificamente a de injetores de falhas de comunicação. O objetivo específico deste trabalho é implementar um injetor de falhas de comunicação bastante abrangente e flexível, situado dentro do núcleo do Sistema Operacional Linux. Para viabilizar esta implementação foi estudada também a arquitetura do Sistema Operacional Linux, sua decomposição em subsistemas e a interação entre estes. Foram estudadas também as várias técnicas de programação e mecanismos que o Sistema Operacional Linux fornece aos seus subsistemas. Estando completas a revisão bibliográfica a respeito de injeção de falhas e o estudo do código do Sistema Operacional Linux, são apresentadas a proposta e a implementação da ferramenta ComFIRM—Communication Fault Injection through Operating System Resource Modification, suas características e sua inserção dentro do núcleo do Sistema Operacional Linux. Finalizando este trabalho, são apresentados uma pequena série de testes de funcionamento e experimentos realizados com a ferramenta ComFIRM, visando demonstrar a correção de seu funcionamento, o cumprimento de seus objetivos e também sua praticidade e flexibilidade de uso. São apresentadas as conclusões deste trabalho, propostas de melhorias à ferramenta apresentada, bem como possibilidades de trabalhos futuros.
Resumo:
A área de Detecção de Intrusão, apesar de muito pesquisada, não responde a alguns problemas reais como níveis de ataques, dim ensão e complexidade de redes, tolerância a falhas, autenticação e privacidade, interoperabilidade e padronização. Uma pesquisa no Instituto de Informática da UFRGS, mais especificamente no Grupo de Segurança (GSEG), visa desenvolver um Sistema de Detecção de Intrusão Distribuído e com características de tolerância a falhas. Este projeto, denominado Asgaard, é a idealização de um sistema cujo objetivo não se restringe apenas a ser mais uma ferramenta de Detecção de Intrusão, mas uma plataforma que possibilite agregar novos módulos e técnicas, sendo um avanço em relação a outros Sistemas de Detecção atualmente em desenvolvimento. Um tópico ainda não abordado neste projeto seria a detecção de sniffers na rede, vindo a ser uma forma de prevenir que um ataque prossiga em outras estações ou redes interconectadas, desde que um intruso normalmente instala um sniffer após um ataque bem sucedido. Este trabalho discute as técnicas de detecção de sniffers, seus cenários, bem como avalia o uso destas técnicas em uma rede local. As técnicas conhecidas são testadas em um ambiente com diferentes sistemas operacionais, como linux e windows, mapeando os resultados sobre a eficiência das mesmas em condições diversas.
Resumo:
Numerosas pesquisas estão introduzindo o conceito de grupo em padrões abertos para programação distribuída. Nestas, o suporte a grupo de objetos por meio de middlewares, apresentam diferentes abordagens de interligação com a aplicação. Segundo princípios defendidos na tese de Felber, essas abordagens vão ao encontro do objetivo de facilitar o desenvolvimento e proporcionar confiabilidade e desempenho. Neste contexto, localizou-se três enfoques básicos para a interligação com a aplicação, denominados integração, serviço, e interceptação, que utilizam a captura de mensagens para obtenção de informações ou como meio para adicionar novas funcionalidades às aplicações. A utilização dessas informações pode auxiliar no ajuste de parâmetros funcionais de serviços relacionados, na escolha de mecanismos, influindo em aspectos como, desempenho e segurança. Ao longo do estudo dessas abordagens, sentiu-se a necessidade de estudar detalhes e testar aspectos de implementação, suas premissas de uso e as conseqüências advindas da incorporação de seus mecanismos junto à aplicação. Este trabalho visa apresentar uma análise do comportamento das referidas abordagens por meio da implementação de protótipos, possibilitando assim, investigar problemas relacionados ao emprego da técnica e suas conseqüências quando integradas à aplicação. Os objetivos específicos reúnem a busca de informações qualitativas, tais como: modularidade, transparência, facilidade de uso e portabilidade; e informações quantitativas, fundamentalmente traduzidas pelo grau de interferência no desempenho da aplicação. O desenvolvimento dos protótipos teve como início a busca por um ambiente que ofereceria suporte as condições necessárias para a implementação das diferentes abordagens. Percebeu-se que definir os mecanismos diretamente sobre uma linguagem de programação, como C ou C++, não era viável. As versões padrões dessas linguagens não oferecem mecanismos capazes de suportar algumas características de implementação como, por exemplo, a captura de mensagens na abordagem de interceptação. A possibilidade é introduzida apenas por extensões dessas linguagens. Assim, a investigação de um ambiente de implementação voltou-se para mecanismos disponíveis em sistemas operacionais. A opção pela utilização do Linux visou atender alguns requisitos importantes para o desenvolvimento dos protótipos tais como: facilidade de instalação, boa documentação e código aberto. Este último é um ponto essencial, pois a construção de parte dos protótipos explora a programação em nível do sistema operacional. A linguagem de programação C foi escolhida como base para a implementação, já que as diferentes abordagens exploram tanto o nível do kernel como o nível do usuário, e é compatível com o Linux. A etapa de desenvolvimento dos protótipos possibilitou a coleta de informações sobre aspectos qualitativos. As demais informações que fazem parte do perfil levantado por este trabalho sobre as abordagens, foram obtidas através da utilização dos protótipos em experimentos com duas aplicações distribuídas denominadas de “Ping-Pong” e “Escolha de Líderes”, que têm como característica geral à troca de mensagens, utilizando comunicação através de sockets. A realização de medidas em múltiplas execuções, avaliadas após o tratamento estatístico necessário, permitiu definir um perfil das diferentes abordagens.
Resumo:
A ideia básica desse trabalho é analisar o campo da infra-estrutura de tecnologia de informação e suas contribuições para as empresas. Serão também abordadas possíveis consequências obtidas por investimentos propostos. Este trabalho proporá uma divisão de áreas de especialização da infra-estrutura de TI, e abordará os conceitos atuais de cada uma delas. Dentre as alternativas apresentadas serão ressaltados os fatores de maior importância para a adoção de uma ou outra alternativa às necessidades identificadas. As áreas escolhidas para análise são: sistemas de processamento, sistemas de armazenamento, meios de acesso, gerenciamento eletrônico de documentos e impressão, conectividade, sistemas de energia, sistemas operacionais, outros sistemas de base e outros serviços de base. Por fim, serão apresentados dois estudos de caso sobre necessidades distintas de mudança de infra-estrutura de tecnologia de informação por empresas cariocas do setor químico.
Resumo:
A evolução da Computação Baseada em Clusters, impulsionada pelo avanço tecnológico e pelo custo relativamente baixo do hardware de PCs, tem levado ao surgimento de máquinas paralelas de porte cada vez maior, chegando à ordem das centenas e mesmo milhares de nós de processamento. Um dos principais problemas na implantação de clusters desse porte é o gerenciamento de E/S, pois soluções centralizadas de armazenamento de arquivos, como o NFS, rapidamente se tornam o gargalo dessa parte do sistema. Ao longo dos últimos anos, diversas soluções para esse problema têm sido propostas, tanto pela utilização de tecnologias especializadas de armazenamento e comunicação, como RAID e fibra ótica, como pela distribuição das funcionalidades do servidor de arquivos entre várias máquinas, objetivando a paralelização de suas operações. Seguindo essa última linha, o projeto NFSP (NFS Parallèle) é uma proposta de sistema de arquivos distribuído que estende o NFS padrão de forma a aumentar o desempenho das operações de leitura de dados pela distribuição do serviço em vários nós do cluster. Com essa abordagem, o NFSP objetiva aliar desempenho e escalabilidade aos benefícios do NFS, como a estabilidade de sua implementação e familiaridade de usuários e administradores com sua semântica de uso e seus procedimentos de configuração e gerenciamento. A proposta aqui apresentada, chamada de dNFSP, é uma extensão ao NFSP com o objetivo principal de proporcionar melhor desempenho a aplicações que explorem tanto a leitura como a escrita de dados, uma vez que essa última característica não é contemplada pelo modelo original A base para o funcionamento do sistema é um modelo de gerenciamento distribuído de meta-dados, que permite melhor escalabilidade e reduz o custo computacional sobre o meta-servidor original do NFSP, e também um mecanismo relaxado de manutenção de coerência baseado em LRC (Lazy Release Consistency), o qual permite a distribuição do serviço sem acarretar em operações onerosas de sincronização de dados. Um protótipo do modelo dNFSP foi implementado e avaliado com uma série de testes, benchmarks e aplicações. Os resultados obtidos comprovam que o modelo pode ser aplicado como sistema de arquivos para um cluster, efetivamente proporcionando melhor desempenho às aplicações e ao mesmo tempo mantendo um elevado nível de compatibilidade com as ferramentas e procedimentos habituais de administração de um cluster, em especial o uso de clientes NFS padrões disponíveis em praticamente todos os sistemas operacionais da atualidade.
Resumo:
Os sistemas operacionais de tempo real, assim como os sistemas embarcados, estão inseridos no desenvolvimento de projetos de automação industrial segmentado em diversas áreas de pesquisa como, por exemplo, robótica, telecomunicações, e barramentos industriais. As aplicações de sistemas modernos de controle e automação necessitam de alta confiabilidade, velocidade de comunicação, além de, determinismo temporal. Sistemas operacionais de tempo real (SOTR) têm-se apresentado como uma solução confiável quando aplicadas em sistemas que se fundamentam no cumprimento de requisitos temporais. Além disso, o desempenho computacional é totalmente dependente da capacidade operacional da unidade de processamento. Em um sistema monoprocessado, parte da capacidade computacional da unidade de processamento é utilizada em atividades administrativas, como por exemplo, processos de chaveamento e salvamento de contexto. Em decorrência disto, surge a sobrecarga computacional como fator preponderante para o desempenho do sistema. Este trabalho tem por objetivo, analisar e fornecer uma arquitetura alternativa para realizar o co-processamento de tarefas em uma plataforma IBM-PC, aumentando a capacidade computacional do microprocessador principal. No presente trabalho, a plataforma de coprocessamento realiza a execução do algoritmo de escalonamento do sistema operacional, desta forma distribuiu-se o gerenciamento temporal das tarefas entre a plataforma IBM-PC e a unidade de co-processamento.
Resumo:
Versão com menu acessível para leitores de tela e vídeo com audiodescrição
Resumo:
O material apresenta explicações e exemplos de processos e threads (tarefas). Destaca ainda a multitasking (capacidade do Sistema Operacional de ter mais de um processo em execução ao mesmo tempo), a estrutura interna de um Sistema Operacional, as interrupções síncronas e assíncronas, o gerenciamento de múltiplos processos (tarefas, ou tasks) e a técnica de multiprogramação. O material também cita e descreve o sistema operacional multiusuário; o multiprocessamento e as múltiplas threads (tarefas) em um mesmo processo.
Resumo:
O material apresenta uma visão geral de subsistemas de entrada e saída (E/S) de dados, destacando seu gerenciamento. O texto traz também as atuações do Sistema Operacional nas operações de E/S (emitir comandos para os dispositivos, atender interrupções geradas pelos dispositivos, tratar erros nas operações desses dispositivos, prover uma interface para utilização dos dispositivos), os aspectos de hardware, os aspectos de software e seus objetivos (independência de dispositivo, nomeação uniforme; manipulação de erros; transferência síncrona (bloqueante) e assíncrona (orientada a interrupções); dispositivos compartilhados e dedicados). Por fim, destaca uma forma de estruturação do software de E/S através de: Tratadores de interrupção, controladores de dispositivos, software de E/S independente de dispositivo e Software de E/S ao nível do usuário.
Resumo:
O material apresenta processos e threads (tarefas). Destaca a necessidade da criação de um código executável apropriado para a arquitetura (processador) e do sistema operacional do computador onde se deseja executá-lo. Além do código e das áreas de dados, diversas informações de controle precisam ser mantidas pelo Sistema Operacional para um processo em execução. O texto também apresenta processos no sistema operacional UNIX, os processos leves - threads ou linhas de execução, as vantagens do uso de threads, exemplo de programa Java que utiliza threads, e por fim, traz exercícios resolvidos sobre conceitos de processos na literatura técnica e mecanismo.
Resumo:
O material apresenta o conceito de processo, os estados de processo e transições, blocos de controle de processos (PCBs) e seus descritores, o chaveamento de processos/troca de contexto, a definição de interrupções em relação com hardware/software, a comunicação interprocessos (IPC) e os processos no UNIX. Além desses tópicos, o material também descreve threads, suas semelhanças e diferenças com processos, seu ciclo de vida, e noções básicas sobre threads POSIX, Linux, Windows XP e Java.
Resumo:
O material apresenta políticas de escalonamento de processos e threads. O escalonamento de processos (ou Escalonamento do processador) trata da decisão sobre qual processo será executado em um determinado instante e por qual processador. O material apresenta também algoritmos de escalonamento relevantes, incluindo exemplos de algoritmos preemptivos e não-preemptivos, objetivos e critérios do escalonamento e diferentes tipos de escalonamentos: Escalonamento FIFO (first-in first-out), Escalonamento circular RR (Round-Robin ), Escalonamento SPF (Shortest Process First), Escalonamento SRT (Shortest Remaining Time), Escalonamento FSS (Fair Share Scheduling), Escalonamento de tempo real, Escalonamento de threads Java – JVM, Escalonamento no Windows XP e UNIX.
Resumo:
O material apresenta o conceito de memória virtual, recurso que objetiva solucionar o problema de pouco espaço de memória. Através de técnicas de gerenciamento, o material destaca o conceito de paginação sob demanda, os desafios da substituição de páginas, diversas estratégias populares de substituição de páginas e como se comparam à substituição ideal, o impacto do tamanho da página sobre o desempenho da memória virtual e o comportamento do programa sob paginação.
Resumo:
O material apresenta a estrutura geral de um subsistema de Entrada/Saída, seus princípios do tratamento e complexidade. Destaca assuntos como: Hardware de E/S; Estrutura típica do barramento do PC; Comunicação entre CPU e controladoras; Endereços de algumas portas de I/O do PC; E/S programada – Polling; E/S por Interrupções; e Vetor de eventos do Intel Pentium. O material também trata do Acesso Direto à Memória e a operação de transferência por DMA; os dispositivos de Rede; as operações do subsistema de E/S (Escalonamento, Buferização, Caching, Spooling, Reserva de dispositivo); o tratamento de erros e as operações que podem estar sujeitas a falhas; e por fim, tratamento de requisições de E/S e o ciclo de vida de uma requisição de E/S.