Exercícios Resolvidos: Sistemas Distribuídos e Threads
Classificado em Computação
Escrito em em
português com um tamanho de 4,02 KB
Atividade SD_EX_04
1. O que são Threads em sistemas distribuídos?
Uma thread é uma unidade básica de utilização de CPU, composta por um ID de definição e um contador de programa. Em sistemas operacionais modernos, a implementação de threads ocorre através de bibliotecas executadas em modo usuário ou pelo gerenciamento direto do kernel para escalonamento.
2. Comparação: Servidor Monothread vs. Multithread
Considerando 15ms para processamento (cache) e 75ms adicionais para operações de disco (1/3 das vezes):
- Monothread: O tempo médio por requisição é 15 + (1/3 * 75) = 40ms. Capacidade: 1000ms / 40ms = 25 requisições/segundo.
- Multithread: O servidor pode manipular requisições enquanto outras aguardam I/O, aumentando significativamente a vazão (throughput) conforme a disponibilidade de recursos.
3. Limitação de threads em um servidor
Sim, é necessário limitar. Threads consomem memória para suas pilhas (stacks). Um número excessivo pode levar ao esgotamento de memória, prejudicando a estabilidade do servidor.
4. Áreas compartilhadas entre threads
As áreas de variáveis, constantes e dados (buffer) são compartilhadas, pois são essenciais para as operações de leitura e processamento de requisições comuns ao processo.
5. Ocultação de latência em redes de longa distância
Exemplo: Formulários de cadastro (CEP, CPF). Ao preencher um campo, o sistema dispara threads assíncronas ao servidor. Enquanto o servidor processa a validação, o usuário continua preenchendo outros campos, ocultando a latência.
6. Servidores CPU Bound
Em sistemas CPU bound, o desempenho é limitado pela velocidade do processador. Adicionar múltiplas threads aumenta a complexidade sem ganho de performance, ao contrário de sistemas I/O bound, onde threads permitem sobrepor tempos de espera.
SD_EX_03
1. Localização e comunicação em sistemas distribuídos
A localização é definida por coordenadas cartesianas particionadas entre nós. A comunicação utiliza protocolos como TCP/IP. Em caixas eletrônicos, prioriza-se segurança e disponibilidade; em consultas ao DETRAN, prioriza-se desempenho e integridade dos dados.
2. Arquitetura cliente-servidor de três camadas
Consiste em programas de processamento que residem em servidores separados, podendo ser distribuídos entre interfaces, aplicações e dados, tanto no cliente quanto no servidor.
3. Distribuição Vertical vs. Horizontal
- Vertical: O cliente requisita a um servidor específico que acessa um banco de dados dedicado.
- Horizontal: O servidor é subdividido em partes lógicas equivalentes (cluster), distribuindo o processamento entre várias máquinas.
4. Latência e capacidade de atendimento
Latência é o tempo decorrido entre o envio e a chegada dos dados. Capacidade de atendimento é a estrutura do sistema para suportar múltiplos usuários e processar requisições de forma eficaz.
5. Requisitos para Superpares (P2P)
Superpares devem possuir maior disponibilidade, capacidade de processamento e atuar como nós de roteamento hierárquico dentro da rede.
6. O que é Thin Client?
É um computador com hardware reduzido que depende de um servidor central para processamento e armazenamento, utilizando protocolos de conexão remota.
7. Sistemas de realimentação em carros
Exemplo: Injeção eletrônica. Sensores monitoram a temperatura e o desempenho do motor, enviando dados à CPU para ajustar a mistura de combustível em tempo real.
8. Organização cliente-servidor (Exemplo prático)
Em um pedido de crédito, a aplicação identifica o perfil (físico ou jurídico) e consulta o banco de dados para retornar o limite de crédito específico para aquele perfil.