Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre threads de um mesmo processo?

Classificado em Computação

Escrito em em português com um tamanho de 7,96 KB.

 

DESCREVEMOS NO TEXTO UM SERVIDOR DE ARQUIVO MULTITHREAD MOSTRANDO POR QUE ELE É MELHOR DO QUE UM SERVIDOR MONOTHREAD E UM SERVIDOR COM MÁQUINA DE ESTADO FINITO. HÁ ALGUMA CIRCUNSTÂNCIA NA QUAL UM SERVIDOR MONOTHREAD PODERIA SER MELHOR? DÊ EXEMPLOS.

RESPOSTA: SIM. EM PROCESSOS QUE SÃO CPU BOUND.

ASSOCIAR ESTATICAMENTE SOMENTE UM THREAD COM UM PROCESSO LEVE NÃO É UMA IDEIA ASSIM TÃO BOA. POR QUÊ?

RESPOSTA: TAL Associação SE TRADUZ EFETIVAMENTE A TER SOMENTE THREADS A NÍVEL DE KERNEL, IMPLICANDO QUE MUITO DO GANHO DE PERFOMANCE QUE SE TEM AO TER THREADS AO Nível DO Usuário EH PERDIDO.

TER SÓ UM PROCESSO LEVE POR PROCESSO NEM SEMPRE É UMA IDEIA ASSIM TÃO BOA. POR QUÊ?

RESPOSTA: CADA PROCESSO LEVE DEVE TER SEU PRÓPRIO CONTADOR DE PROGRAMA E SUA PRÓPRIA PILHA. PODEM CONTER TAMBÉM UMA ÁREA DE DADOS PRIVADOS. THREADS PODEM CRIAR OUTRAS THREADS E, COMO PROCESSOS PESADOS, PODEM BLOQUEAR-SE NA Éspera DE UM EVENTO. THREADS COMPARTILHAM O PROCESSADOR, DA MESMA MANEIRA QUE PROCESSOS PESADOS. PORÉM, DIFERENTEMENTE DE PROCESSOS PESADOS, UMA THREAD BLOQUEADA PODE CEDER O PROCESSADOR A OUTRA THREAD DO MESMO PROCESSO. EMBORA TENHAM SEU PRÓPRIO PC, SUA PILHA E DADOS PRIVADOS, AS THREADS SE EXECUTAM SOBRE UM MESMO ESPAÇO DE ENDEREÇAMENTO, COMPARTILHANDO VARIÁVEIS GLOBAIS SE FOR O CASO. SEGUNDO TANENBAUM, NÃO HÁ PROTEÇÃO ALGUMA ENTRE THREADS, POIS (1) É IMPOSSÍVEL (VISTO QUE TODAS ELAS ATUAM DENTRO DO ESPAÇO DE UM ÚNicó PROCESSO), E (2) EM GERAL, NÃO É NECESSÁRIO, POIS ESTES PROCESSOS LEVES ESTÃO EXATAMENTE COOPERANDO Pára RESOLVER UM PROBLEMA COMUM E PERTENCEM A UM MESMO USUÁRIO. THREADS POSSUEM ESTADOS TAMBÉM, NATURALMENTE: EM EXECUÇÃO, PRONTAS Pára EXECUTAR, BLOQUEADAS E TERMINADAS. DENTRO DESTE MODELO, É NECESSÁRIO CARACTERIZAR UM PROCESSO LEVE COMO TERMINADO, VISTO QUE OUTRAS THREADS PODEM ESTAR EM EXECUÇÃO E O ESPAÇO DE TRABALHO DEIXADO PELA THREAD QUE TERMINOU AINDA NÃO TENHA SIDO RECOLHIDO PELA THREAD PAI.

UM SERVIDOR QUE MANTEM UMA CONEXÃO TCP/IP COM UM CLIENTE É COM ESTADO OU SEM ESTADO?

RESPOSTA:  COM ESTADO.

DESCREVA COM DETALHES COMO PACOTES TCP FLUEM EM CASO DE TRANSFERÊNCIA TCP JUNTO COM A INFORMAÇÃO EM ENDEREÇOS DE FONTE E DESTINO NOS VÁRIOS CABEÇALHOS.

RESPOSTA: O PROTOCOLO ESPECIFICA O FORMATO DOS DADOS E DAS CONFIRMAÇÕES QUE OS DOIS COMPUTADORES TROCAM Pára OFERECER UMA TRANSFERÊNCIA CONFIÁVEL E, TAMBÉM, OS PROCEDIMENTOS DE QUE SE VALEM OS COMPUTADORES Pára ASSEGURAR QUE OS DADOS CHEGUEM CORRETAMENTE.

NO CASO DO TCP ELE APRESENTA COMO PRINCIPAIS CarácterÍSTICAS TRANSFERÊNCIA DE DADOS CONFIÁVEL FIM-A-FIM (TODO PACOTE TRANSMITIDO REQUER UM ACK QUE É UM BIT DE RECONHECIMENTO, HÁ RECUPERAÇÃO DE DADOS PERDIDOS, DESCARTE DE DADOS DUPLICADOS E REORGANIZAÇÃO DOS DADOS RECEBIDOS FORA DE ORDEM), COMUNICAÇÃO BIDIRECIONAL (FULL-DUPLEX) ENTRE CLIENTE SERVIDOR, O SEQUENCIAMENTO: BYTES DE SEGMENTOS SÃO NUMERADOS, DE FORMA A GARANTIR A ENTREGA EM ORDEM E A DETEÇÃO E ELIMINAÇÃO DE DUPLICATAS E É VOLTADO Pára ATUAR SOBRE REDES HETEROGÊNEAS COM TAMANHOS MÁXIMOS DE PACOTES VARIÁVEIS, FAIXAS DE PASSAGEM VARIÁVEIS TOPOLOGIAS DISTINTAS. O PONTO FRACO ATUAL DESTE PADRÃO É A ADAPTAÇÃO A TAXAS DE ERROS GRANDES, COMUM EM COMUNICAÇÃO SEM FIO (WIRELESS).

ESTE PROTOCOLO DIVIDE O PROCESSO DE COMUNICAÇÃO EM TRÊS FASES O INÍCIO ONDE O CLIENTE ENVIA SEGMENTO TIPO SYN (PEDIDO DE CONEXÃO, COM NÚMERO INICIAL DA SEQÜÊNCIA DE NUMERAÇÃO DE BYTES NO SENTIDO CLIENTE - SERVIDOR), O SERVIDOR RECONHECE PEDIDO DE CONEXÃO ENVIANDO SEGMENTO TIPO SYN COM BIT DE RECONHECIMENTO (ACK) LIGADO E COM NÚMERO INICIAL DE SEQÜÊNCIA DE NUMERAÇÃO NO SENTIDO SERVIDOR - CLIENTE.E O DESTINO ENVIA SEGMENTO ACK RECONHECENDO SYN DO SERVIDOR, A TROCA DE DADOS ONDE EFETIVAMENTE OCORRE A TRANSFERÊNCIA DE DADOS E O ENCERRAMENTO DA CONEXÃO QUE PODE SER INICIADA TANTO PELO CLIENTE COMO PELO SERVIDOR E ORIGEM ENVIA SEGMENTO FIN, O DESTINO ENVIA RECONHECIMENTO: ACK E ALGUM TEMPO DEPOIS A DESTINO ENVIA FIN (SINALIZANDO FIM DA CONEXÃO) E POR FIM ORIGEM ENVIA RECONHECIMENTO QUANDO CADA SEGMENTO FOR TRANSMITIDO É ADICIONADO UM CHECKSUM E QUANDO ESTES SÃO RECEBIDOS ELES SÃO VERIFICADOS, SE DANIFICADOS OS PACOTES SÃO DESCARTADOS, COMO SE TIVESSEM SE PERDIDO PELA REDE E RETRANSMITIDOS PELA ORIGEM.

SE UM CLIENTE E UM SERVIDOR FOREM COLOCADOS LONGES UM DO OUTRO, PODEMOS VER A LATÊNCIA DE REDE DOMINAR O DESEMPENHO GLOBAL. COMO PODEMOS ATACAR ESSE PROBLEMA?

RESPOSTA: PODE-SE ALTERAR A COMUNICAÇÃO DE SÍNCRONA Pára ASSÍNCRONA. DESSE MODO O CLIENTE   DEVE SER REORGANIZADO Pára QUE ELE POSSA REALIZAR OUTRAS TAREFAS ENQUANTO ELE ESTIVER   AGUARDANDO O SERVIDOR.

O QUE É UMA ARQUITETURA CLIENTE-SERVIDOR DE TRÊS DIVISÕES?

RESPOSTA: NA ARQUITETURA DE 3 NÍVEIS (CHAMADA ESTRUTURA 3-TIER), EXISTE UM NÍVEL INTERMÉDIO, O QUE QUER DIZER QUE TEM GERALMENTE UMA ARQUITETURA COMPARTILHADA ENTRE:

UM CLIENTE, QUER DIZER O COMPUTADOR REQUERENTE DE RECURSOS, EQUIPADO DE UM INTERFACE UTILIZADOR (GERALMENTE UM NAVEGADOR WEB) ENCARREGADO DA APRESENTAÇÃO;

O SERVIDOR DE APLICAÇÃO (CHAMADO IGUALMENTE MIDDLEWARE), ENCARREGADO DE FORNECER O RECURSO MAS QUE RECORRE A UM OUTRO SERVIDOR

O SERVIDOR DE DADOS, FORNECENDO AO SERVIDOR DE APLICAÇÃO OS DADOS DOS QUAIS ESTE TEM NECESSIDADE.

QUAL É A DIFERENÇA ENTRE UMA DISTRIBUIÇÃO VERTICAL E UMA DISTRIBUIÇÃO HORIZONTAL?

RESPOSTA: DISTRIBUIÇÃO VERTICAL: É A ORGANIZAÇÃO DA APLICAÇÃO EM MULTI-CAMADAS. DIVIDE COMPONENTES LOGICAMENTE DIFERENTES EM MÁQUINAS FISICAMENTE DIFERENTES. COM ISSO FACILITA O GERENCIAMENTO DO SISTEMA, POIS CADA MÁQUINA PODE SER RESPONSÁVEL POR UM GRUPO ESPECÍFICO DE FUNÇÕES.

 DISTRIBUIÇÃO HORIZONTAL: É A DISTRIBUIÇÃO USADA NO P2P. É BASEADA NA DISTRIBUIÇÃO DOS CLIENTES E SERVIDORES. UM CLIENTE OU SERVIDOR PODEM ESTAR FISICAMENTE DIVIDIDOS EM PARTES LÓGICAS EQUIVALENTES, CADA UMA OPERANDO SOBRE SUA PORÇÃO DE DADOS, O QUE BALANCEIA A CARGA. OS PROCESSOS QUE CONSTITUEM O SISTEMAS SÃO TODOS IGUAIS, O QUE SIGNIFICA QUE QUE AS FUNÇÕES NECESSÁRIAS DEVEM ESTAR EM TODOS OS PROCESSOS QUE COMPÕE O SISTEMA. MAIORIA DAS INTERAÇÕES ENTRE OS PROCESSOS É SIMÉTRICA, COM ISSO, CADA PROCESSO ATUA COMO “CLIENTE” E “SERVIDOR” AO MESMO TEMPO.

EM UMA REDE DE SOBREPOSIÇÃO ESTRUTURADA, MENSAGENS SÃO ROTEADAS DE ACORDO COM A TOPOLOGIA DA SOBREPOSIÇÃO. CITE UMA IMPORTANTE DESVANTAGEM DESSA ABORDAGEM.

RESPOSTA: O PROBLEMA É CONSEQÜÊNCIA DE LINKS LÓGICOS. É O CASO ONDE DOIS NÓS A E B QUE SÃO VIZINHOS NA REDE DE RECOBRIMENTO SÃO SITUADOS FISICAMENTE DISTANTE UMA DA OUTRA. CONSEQUENTEMENTE, O CAMINHO LOGICAMENTE CURTO ENTRE A E B PODEM REQUERER O ROTEAMENTO DE UMA MENSAGEM AO LONGO DE UM CAMINHO MUITO LONGO NA REDE FÍSICA SUBJACENTE.

Entradas relacionadas: