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.

Entradas relacionadas: