Buscar

SISTEMAS E APLICAÇÕES DISTRIBUÍDAS GAB

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

das
A
Gabarito
utoatividades
SISTEMAS E APLICAÇÕES 
DISTRIBUÍDAS
Centro Universitário Leonardo da Vinci
Rodovia , nº .BR 470 Km 71, 1 040
Bairro Benedito - CEP 89130-000
I daialn - Santa Catarina - 47 3281-9000
Elaboração:
Revisão, Diagramação e Produção:
Centro Universitário Leonardo da Vinci - UNIASSELVI
2018
Prof. Danton Cavalcanti Franco Junior
Prof. Jan Charles Gross 
3UNIASSELVI
NEAD
GABARITO DAS AUTOATIVIDADES
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
GABARITO DAS AUTOATIVIDADES DE
SISTEMAS E APLICAÇÕES DISTRIBUÍDAS
UNIDADE 1
TÓPICO 1
1 Quais são os elementos que compõem a estrutura de um sistema 
computacional?
R.: São quatro elementos: o hardware, o sistema operacional, os programas 
e os usuários. O hardware compreende toda a parte física, já os programas, 
também conhecidos como aplicativos, fornecem funcionalidades específicas 
como planilhas, editores de texto, editores gráficos etc. Os usuários são 
as pessoas que interagem com esses programas, e o sistema operacional 
é responsável por gerenciar os recursos de hardware, tornando o uso da 
máquina transparente aos usuários.
2 Quais são as funções básicas de um sistema operacional?
R.: São várias as funções do sistema operacional, entretanto, são duas 
as funções básicas: facilidade de acesso aos recursos do sistema, 
compartilhamento de recursos de forma organizada e protegida.
Para os sistemas de rede, pode-se adicionar o controle e gerenciamento da 
rede.
3 Quais gerações são apontadas na história e qual é o período que 
compreendem?
R.: Primeira geração (1940 até 1955).
Segunda geração (1956 e 1965).
Terceira geração (1966 e 1980).
Quarta geração (1981 e 1990).
Quinta geração (de 1991 até os dias atuais).
4 Em qual geração surgiram os sistemas operacionais de rede? Por quê?
R.: Os sistemas operacionais de rede surgiram na quarta geração, 
porque houve nesse período um grande desenvolvimento do hardware 
Centro Universitário Leonardo da Vinci
Rodovia , nº .BR 470 Km 71, 1 040
Bairro Benedito - CEP 89130-000
I daialn - Santa Catarina - 47 3281-9000
Elaboração:
Revisão, Diagramação e Produção:
Centro Universitário Leonardo da Vinci - UNIASSELVI
2018
4 GABARITO DAS AUTOATIVIDADES UNIASSELVI
NEAD
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
(miniaturização e barateamento), viabilizando os computadores pessoais, 
a criação de conceitos inovadores como multitarefa e multiprocessamento, 
assim como a criação de protocolos de redes, como TCP/IP, além das redes de 
computadores locais (LAN), metropolitanas (MAN) e de longa distância (WAN).
5 Quais são os tipos de sistemas operacionais?
R.: Basicamente temos dois tipos de sistemas operacionais:
- os monotarefa: rodam apenas uma tarefa por vez.
- os multitarefa: executam várias tarefas simultaneamente.
Salienta-se que dentro de cada sistema pode haver subtipos de sistemas.
6 Em que ano surgiu a primeira versão do Windows?
R.: Windows 1.0, surgiu em novembro de 1985.
TÓPICO 2
1 Baseado na leitura complementar, pesquise na internet outras formas 
de adaptação de equipamentos, e os sistemas operacionais utilizados 
para a comunicação entre eles.
R.: Os acadêmicos devem pesquisar e apresentar técnicas como computação 
paralela, computação em grid. São exemplos a pesquisa de vida extraterrestre, 
simulação do clima na Terra, busca de números primos, quebras de algoritmos 
de criptografia, simulações etc.
2 Especifique como poderiam ser conectados três computadores, duas 
impressoras e um sistema de armazenamento de forma que todos 
compartilhassem recursos.
R.: Esta atividade não tem padrão de resposta, mas é importante que o(a) 
acadêmico(a) consiga entender e visualizar o compartilhamento de recursos 
em sistemas operacionais. São soluções aceitas: a estrutura de barramento, 
onde cada elemento acima seja um recurso independente, conectado ao 
barramento. Outra abordagem seria a ligação de uma impressora em cada 
micro, e o sistema de armazenamento no terceiro micro.
5UNIASSELVI
NEAD
GABARITO DAS AUTOATIVIDADES
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
TÓPICO 3
1 Leia o artigo “Sistemas Operacionais”, disponível em: <http://www.lume.
ufrgs.br/bitstream/handle/10183/19242/000102159.pdf> e responda:
a) Faça uma resenha do artigo.
R.: Esta atividade não tem padrão de resposta. De fato, é importante apenas 
que o(a) acadêmico(a) consiga sintetizar o artigo, sem que sejam efetuadas 
cópias. É interessante que o tutor leia o artigo antes de discuti-lo com os 
acadêmicos.
b) Elenque pelo menos duas características de cada item do artigo que 
você julgue importante, e justifique sua resposta.
R.: Essa atividade não possui uma resposta padrão, mas o(a) acadêmico(a) 
deve elencar situações de:
- Gerência do processador.
- Gerência de memória.
- Sistema de arquivos.
- Entrada/saída.
- Segurança.
- Organização interna.
- Sistemas operacionais distribuídos.
- Sistema operacional de tempo real.
UNIDADE 2
TÓPICO 1
1 O que é um processo?
R.: Pode-se dizer que um processo é um programa em execução (ativo) e 
que programa é um conjunto de códigos (passivo) que quando carregado 
em memória vira um processo.
2 O PBC deve armazenar que tipo de informação?
6 GABARITO DAS AUTOATIVIDADES UNIASSELVI
NEAD
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
R.: É fundamental que o PCB armazene:
 - Nome do processo e/ou número do processo.
 - Ponteiros.
 - Estado do processo.
 - Prioridade.
 - Registradores.
 - Limites de memória.
 - Listas de arquivos abertos.
3 Quais são os estados de um processo e qual é a sua função?
R.: Os cinco estados possíveis são:
- Novo (new): quando o processo é criado, iniciado com os valores padrão 
dos seus registradores e aceito pelo sistema operacional, seu estado inicial 
é novo.
- Pronto (ready): o processo encontra-se nesse estado quando aguarda 
apenas que o mecanismo de escalonamento do sistema operacional o coloque 
para executar na CPU.
- Execução (running): estado em que o processo entra quando a CPU 
executa suas instruções. Apenas um processo pode estar nesse estado por 
vez (em sistemas monoprocessados), contudo, se o hardware possuir mais 
de um processador (multiprocessado), pode-se ter mais de um processo no 
estado de execução.
- Espera: o processo encontra-se esperando quando aguarda a ação de 
algum evento externo.
- Encerrado (finish): quando o processo termina sua execução, que pode 
ocorrer de forma normal ou por erro de execução.
4 O estado de espera apresenta quais particularidades?
R.: Pode ser dividido em dois grupos:
- Espera (wait): quando o processo aguarda a conclusão de uma operação 
em um recurso que já foi garantido.
- Bloqueado (blocked): quando o processo aguarda a liberação de um 
recurso que está alocado para outro processo.
5 Quais são as possíveis mudanças de estado de um processo?
R.: As mudanças possíveis são:
- Novo – pronto: quando o PCB (processo) é criado e alocado na área 
reservada ao sistema operacional, seguindo então para a lista de prontos.
- Pronto – executando: é realizada pelo escalonador de acordo com a política 
implementada pelo sistema operacional.
7UNIASSELVI
NEAD
GABARITO DAS AUTOATIVIDADES
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
- Executando – pronto: quando o processo é interrompido por outro de maior 
prioridade, ou quando termina de executar em sua fatia de tempo conforme 
as regras de escalonamento implementadas pelo sistema operacional.
- Executando – espera: quando o processo realiza uma operação de I/O,ele entra na fila de espera, até que a solicitação seja realizada.
- Espera – pronto: é realizado pelo escalonador quando este recebe um sinal 
indicando que a solicitação de I/O do processo foi realizada com sucesso.
- Executando – terminado: acontece quando o programa termina sua 
execução com sucesso ou com erro, quem realiza essa transição é o 
escalonador de processos.
6 Baseado na figura 31, responda:
a) Ao encerrar o processo F, qual(is) processo(s) será(ão) finalizado(s)?
R.: Apenas o processo F.
b) Ao encerrar o processo B, qual(is) processo(s) será(ão) finalizado(s)?
R.: O próprio B, o processo D, processo E e processo F.
7 Conceitue:
a) Thread.
R.: A thread possui a mesma ideia de um subprocesso, entretanto, compartilha 
a mesma área de dados com o programa principal. Sua principal vantagem 
é a economia de recursos do sistema, pois não há criação de PCB, já que o 
contexto da thread é comum ao programa principal.
b) Interrupções.
R.: São eventos que podem ser gerados por hardware ou por software e são 
independentes do programa executando, devendo ser tratados pelo sistema 
operacional. É exemplo de interrupção um periférico que avisa a CPU que 
precisa carregar dados para a memória. São assíncronos.
c) Exceções.
R.: Esse tipo de evento ocorre quando o próprio programa gera um erro, por 
exemplo, um estouro de pilha ou uma divisão por zero. São síncronos.
8 GABARITO DAS AUTOATIVIDADES UNIASSELVI
NEAD
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
TÓPICO 2
1 O que é escalonamento?
R.: Um dos objetivos de um sistema multiprogramável é manter a CPU ocupada 
com algum processamento, ou seja, maximizar o uso da CPU. Desta forma, o 
ato de escalonar significa escolher qual processo irá executar na CPU.
2 Quais são os critérios de escalonamento?
R.: Os critérios são:
- Utilização do processador: desejado que o sistema fique ocupado a 
maior parte do tempo. Quanto maior a utilização, melhor aproveitamento (um 
sistema que utiliza 30% é bem menos eficaz que um que consegue utilizar 
a CPU em 90% do tempo).
- Throughput: determina a quantidade de processos que podem ser 
executados num intervalo de tempo; quanto maior a quantidade de processos 
executados, maior o throughput.
- Tempo de processador (CPU): determina o tempo que um processo fica 
no estado de executando, ou seja, está rodando na CPU.
- Tempo de espera: é o tempo que um processo aguarda na fila de espera 
para ser executado; quanto menor esse tempo, melhor.
- Tempo de turnaround: é o tempo que um processo leva desde a sua criação 
até sua conclusão, levando em consideração todo o tempo de alocação, 
espera, entrada e saída. Os mecanismos de alocação de processos visam 
minimizar o turnaround dos processos.
- Tempo de resposta: tempo de uma requisição ao sistema ou aplicação e 
o instante em que ela é atendida.
3 O que significa justiça no processo de escalonamento?
R.: Processos semelhantes devem ter um critério de escalonamento 
semelhante, pois não é justo dar mais tempo de CPU a um processo que tem 
papel equivalente a outro. Da mesma forma é importante garantir que todos 
os processos executem evitando o que chamamos de starvation, onde um 
processo de menor prioridade sempre é deixado de executar em função de 
outros de maior prioridade.
4 O que diferencia escalonamento preemptivo de não preemptivo?
R.: Um escalonamento é preemptivo quando o sistema permite a interrupção 
de um processo para a execução de outro. Desta forma, processos mais 
prioritários podem ganhar a atenção da CPU, com a vantagem de se ter uma 
9UNIASSELVI
NEAD
GABARITO DAS AUTOATIVIDADES
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
execução mais uniforme entre os processos. Já no não preemptivo quando 
um processo ganha a CPU, nenhum outro pode interrompê-lo tirando-o da 
execução.
5 Explique dois tipos de escalonamento preemptivo.
R.: Escalonamento circular: sua técnica é estipular tempos determinados 
para cada processo. Desta forma, ao encerrar o tempo, o processo é 
deslocado para o fim da fila. No caso de o processo encerrar antes de terminar 
seu tempo, o próximo processo da fila é escalonado.
Escalonamento por prioridades: atribui prioridades aos processos (através 
de um valor armazenado em seu PCB). Desta forma, os processos que 
possuem o maior valor de prioridade são executados primeiro. No caso de 
existir processo com prioridade igual, o mecanismo de circular é implementado 
para a execução.
Múltiplas filas: quando é possível a classificação dos processos em grupos, 
por exemplo, processos do sistema, processos batch, processos de alta 
interação etc., é possível a implementação de filas que possuem seu próprio 
mecanismo de escalonamento.
6 Explique dois tipos de escalonamento não preemptivo.
R.: First-in-first-out (FIFO): é um algoritmo extremamente simples, onde 
basta a implementação de uma fila em que o primeiro programa que entra é 
o primeiro a ser selecionado para a execução.
Escalonamento job mais curto primeiro: também conhecido por 
Escalonemanto Shortest-Job-First (SJF), prioriza os processos menores, ou 
seja, aqueles que executam em menos tempo.
Escalonamento cooperativo, quem determina que o tempo de execução 
encerrou é o próprio processo, ou seja, o processo voluntariamente libera a 
CPU para o próximo processo na fila de pronto (cooperação).
7 Faça uma pesquisa na internet sobre deadlock e apresente um 
relatório com suas conclusões.
R.: Esta pergunta não tem resposta padrão, mas é interessante que o(a) 
acadêmico(a) identifique em sua resposta técnicas para controle de deadlock, 
e problemas clássicos, como o dos cinco filósofos.
10 GABARITO DAS AUTOATIVIDADES UNIASSELVI
NEAD
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
TÓPICO 3
1 Qual é a vantagem de se ter independência de dispositivo?
R.: Compatibilidade com vários sistemas operacionais, pois basta apenas 
escrever o driver para o dispositivo, que as demais chamadas permanecem 
iguais.
2 Por que o device driver é fortemente acoplado ao hardware?
R.: Isso é devido ao device driver ser escrito para o hardware específico, e 
geralmente em linguagem de máquina. Desta forma fica totalmente ligado e 
dependente do dispositivo.
3 O que aconteceria se não existisse o device driver? Como deveriam 
funcionar os sistemas operacionais para utilizar um dispositivo?
R.: O sistema operacional deveria possuir o programa para acessar e 
controlar o dispositivo. O funcionamento seria genérico, ou seja, o sistema 
operacional ofereceria recursos genéricos e limitados para os dispositivos. 
Algo semelhante ocorre com as placas de vídeo, o padrão SVGA é instalado 
com o sistema operacional Windows, e se desejarmos aproveitar melhor os 
recursos do sistema operacional, devemos instalar os drives que acompanham 
a placa de vídeo.
4 Explique por que o buffer de um dispositivo é importante.
R.: São importantes, pois auxiliam os dispositivos lendo antecipadamente 
dados, ganhando desempenho, além disso, alguns buffers são usados para 
a comunicação entre os dispositivos.
5 Qual é a importância da abstração dos comandos de acesso de um 
dispositivo para o usuário?
R.: O usuário não precisa saber os comandos particulares de acesso a um 
dispositivo. Pois isso é implementado pelo device driver em comunicação com 
o sistema operacional. Desta forma, para gravar um arquivo, por exemplo, o 
usuário precisa saber apenas o comando da linguagem como um writeFile, 
que internamente, independente do tipo de disco ou fabricante, a gravação 
do arquivo será efetuada.
11UNIASSELVI
NEAD
GABARITO DAS AUTOATIVIDADES
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
TR
I
B
U
Í
D
A
S
UNIDADE 3
TÓPICO 1
1 Os sistemas distribuídos surgiram sustentados por quais tecnologias?
R.: Resumindo, as referidas tecnologias são as redes de computadores e os 
sistemas de telefonia e telecomunicações, em especial, a internet.
2 Qual é o nível de acoplamento de um sistema distribuído?
R.: A resposta a seguir foi extraída na íntegra do Tópico 1. O(A) acadêmico(a) 
pode dar outra resposta parecida, baseada em alguma consulta realizada 
em bibliografia ou internet.
Segundo Gross (2008, p. 4), “sistemas distribuídos são uma categoria de 
sistemas ditos fracamente acoplados, os quais podem utilizar uma grande 
quantidade de computadores que estejam de alguma forma interligados, mas 
não necessariamente dependentes.”
3 Cite dois benefícios diretos proporcionados pela utilização de 
sistemas distribuídos.
R.: A resposta a seguir foi extraída na íntegra do Tópico 1. O(A) acadêmico(a) 
pode dar outra resposta parecida, baseada em alguma consulta realizada 
em bibliografia ou internet.
Compartilhamento de recursos, crescimento incremental, concorrência, 
escalabilidade, tolerância a falhas, transparência, heterogeneidade e abertura.
4 Qual é a diferença entre crescimento incremental e escalabilidade?
R.: A resposta a seguir foi extraída na íntegra do Tópico 1. O(A) acadêmico(a) 
pode dar outra resposta parecida, baseada em alguma consulta realizada 
em bibliografia ou internet.
“O crescimento incremental pode ser realizado em nível de hardware, pela 
adição de novos equipamentos oferecendo maior espaço de armazenamento, 
maior poder de processamento, entre outros. E também pode ser realizado 
em nível de software através da disponibilização de novos softwares para 
os usuários.” (GROSS, 2008, p. 6). De acordo com Coulouris, Dollimore e 
Kindberg (2007, p. 31), “um sistema é descrito como escalável se permanece 
eficiente quando há um aumento significativo no número de recursos e no 
número de usuários.”
12 GABARITO DAS AUTOATIVIDADES UNIASSELVI
NEAD
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
5 A sincronização é elemento importante em quais das características 
de sistemas distribuídos?
R.: A resposta a seguir foi extraída na íntegra do Tópico 1. O(A) acadêmico(a) 
pode dar outra resposta parecida, baseada em alguma consulta realizada 
em bibliografia ou internet. Compartilhamento de recursos e concorrência. 
TÓPICO 2
1 Faça uma ilustração da arquitetura cliente-servidor contendo um 
ou mais servidores de aplicativos de internet (por exemplo, correio 
eletrônico ou proxy).
R.: Pode ser um desenho que represente alguns computadores mais 
robustos, ditos como servidores, conforme ilustra a figura a seguir, sendo que 
estes estão ligados ao modem (equipamento no canto superior direito) que 
possibilita o acesso à internet, e consequentemente aos serviços solicitados 
(correio eletrônico e proxy). Não precisa ilustrar as pessoas, apenas o 
hardware com sua identificação de serviços implementados em cada um dos 
hardwares demonstrados.
13UNIASSELVI
NEAD
GABARITO DAS AUTOATIVIDADES
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
2 Para os aplicativos citados no exercício 1, explique como os 
servidores cooperam no fornecimento de seus serviços.
R.: Basicamente o(a) acadêmico(a) deve dizer quais os serviços que são 
disponibilizados por cada um dos servidores demonstrados em seu desenho, 
e de que forma podem interagir entre si e com os usuários de seus serviços. 
Isto vai variar em função tanto do desenho que o aluno fizer quanto dos 
serviços por ele demonstrados.
3 Cite quais são os recursos locais que podem ser vulneráveis a um 
ataque de um programa não confiável, cujo download foi feito a 
partir de um site remoto, sendo o mesmo executado localmente no 
computador do usuário.
R.: Podem ser vulneráveis tanto o sistema operacional quanto os programas e 
aplicativos instalados no computador do usuário, os arquivos de dados, textos, 
planilhas, imagens e outros, assim como os dispositivos locais do computador 
do usuário e seus dispositivos remotos, aos quais ele esteja conectado.
4 Usualmente, computadores utilizados em sistemas peer-to-peer são 
computadores desktop domésticos ou de escritórios dos usuários. Quais 
são as implicações disso referindo-se à disponibilidade e segurança dos 
objetos de dados compartilhados contidos nos mesmos?
R.: Esta pergunta deixa bastante liberdade ao(à) acadêmico(a) para discorrer 
sobre as implicações do uso dessa tecnologia. Pode citar problemas 
relacionados à segurança dos computadores e das informações contidas 
nos mesmos por conta do compartilhamento de arquivos indesejados e/ou 
programas tidos como "cavalos de Troia" ou "portas dos fundos", o primeiro 
que faz outra coisa diferente do que o usuário esperava, e o segundo que 
abre o acesso do equipamento do usuário a invasores. Também pode citar 
problemas oriundos da pirataria, do compartilhamento de programas e 
arquivos de música protegidos por direitos autorais. Também pode comentar 
sobre o consumo da banda de internet, por conta do compartilhamento e 
troca de arquivos com outros usuários. Por fim, o(a) acadêmico(a) também 
pode tratar da indisponibilidade dos seus recursos por conta da demanda 
de tais sistemas. Enfim, dependendo do(a) acadêmico(a), a resposta será 
mais ou menos completa.
5 Cite três exemplos de aplicações em que o uso de código móvel seja 
vantajoso.
14 GABARITO DAS AUTOATIVIDADES UNIASSELVI
NEAD
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
R.: Novamente, o(a) acadêmico(o) tem bastante liberdade para ilustrar 
exemplos, como instalação e atualização de programas pela internet, softwares 
de auditoria computacional e de gerência de configuração, atualização sob 
demanda de notícias, imagens multimídia, áudios, entre outros tantos.
TÓPICO 3
1 O que é uma thread?
R.: Existem várias definições, porém o que se espera no mínimo é que o(a) 
acadêmico(a) saiba que um processo em execução, podendo este processo 
ser iniciado por outro processo (um sistema multithread, por exemplo). Podem-
se buscar mais definições para threads na internet.
2 O que é uma API?
R.: Novamente, o(a) acadêmico(a) pode buscar qualquer definição, desde 
que ele comente que é um acrônimo de Application Programming Interface 
(Interface de programação de aplicativos), um conjunto de padrões de 
programação que permite construir aplicativos.
3 Quais são os principais modos de operação dos sockets?
R.: A resposta a seguir foi extraída na íntegra do Tópico 3. O(A) acadêmico(a) 
pode dar outra resposta parecida, baseada em alguma consulta realizada 
em bibliografia ou internet.
Os sockets utilizam como principais modos de operação o modo baseado em 
conexões e o modo sem conexão. Os sockets baseados no modo de operação 
com conexões funcionam de maneira similar a um telefone, que precisa 
estabelecer uma conexão e suspender a ligação. Todos os dados que fluem 
entre os dois eventos chegam na mesma ordem em que foram transmitidos. 
Já os sockets sem conexão funcionam de maneira similar ao correio no qual 
a entrega não é garantida e os diferentes itens da correspondência podem 
chegar em uma ordem diferente daquela em que foram enviados (HOPSON; 
INGRAM, 1997).
4 Em relação ao TCP, como é a confiabilidade do UDP?
R.: A resposta a seguir foi extraída na íntegra do Tópico 3. O(A) acadêmico(a) 
pode dar outra resposta parecida, baseada em alguma consulta realizada 
em bibliografia ou internet.
15UNIASSELVI
NEAD
GABARITO DAS AUTOATIVIDADES
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
As operações sem conexão utilizam o protocolo UDP (User Datagram 
Protocol). Umdatagrama é uma unidade autônoma que tem todas as 
informações necessárias para a realização da entrega dos conteúdos. 
Um datagrama pode ser análogo a um envelope que tem o endereço do 
destinatário e do remetente, e que contém em seu interior os conteúdos 
(dados) a serem enviados. Um socket nesse modo de operação não precisa 
se conectar a um socket de destino, pois ele simplesmente envia o datagrama. 
O protocolo UDP realiza o melhor esforço possível para realizar a entrega do 
datagrama. A operação sem conexão é rápida e eficiente, mas não possui 
garantia de entrega do conteúdo (HOPSON; INGRAM, 1997).
A operação baseada em conexão utiliza o protocolo TCP (Transport Control 
Protocol). Um socket nesse modo de operação precisa se conectar ao 
destino antes de transmitir o conteúdo. Uma vez conectados, os sockets 
são acessados pelo uso de uma interface de fluxos através da sequência 
abertura, leitura, escrita e fechamento (open-read-write-close). Tudo que 
é enviado por um socket é recebido pela outra extremidade da conexão, 
exatamente na mesma ordem em que foi transmitido na origem. A operação 
baseada em conexão é menos eficiente em termos de velocidade do que a 
operação sem conexão, mas possibilita a garantia de entrega do conteúdo 
(HOPSON; INGRAM, 1997).
5 Como o protocolo TCP trata a diversidade de tamanho de mensagens?
R.: A resposta a seguir foi extraída na íntegra do Tópico 3. O(a) acadêmico(a) 
pode dar outra resposta parecida, baseada em alguma consulta realizada 
em bibliografia ou internet.
“Tamanhos de blocos de dados diferentes podem ser manipulados no contexto 
das aplicações. Uma aplicação de correio eletrônico, por exemplo, pode ser 
composta de apenas uma linha ou transportar um arquivo relativamente 
grande. A diversidade de tamanho do conteúdo a ser transmitido deve ser 
gerenciada pelo protocolo TCP. O tratamento dos diferentes blocos de dados 
das aplicações é realizado basicamente em duas situações típicas. Primeiro, 
no caso de blocos de dados muito grandes, o TCP deve fragmentá-los de 
modo a entregar segmentos de tamanho mais adequado ao protocolo de nível 
inferior. Segundo, no caso de blocos de dados extremamente pequenos, o 
procedimento é inverso. O TCP bufferiza estes blocos e os envia em grupos 
encapsulados num mesmo segmento de nível inferior. Este procedimento 
permite diminuir o overhead do protocolo no envio de mensagens e otimizar 
a utilização da rede (MAZZOLA, 2002).
No protocolo TCP é realizada a abstração de fluxo (streaming) que possui 
características de rede que podem parecer ocultas. Algumas destas 
características são o tamanho da mensagem, mensagens perdidas, controle 
16 GABARITO DAS AUTOATIVIDADES UNIASSELVI
NEAD
S
I
S
T
E
M
A
S
 
E
 
A
P
L
I
C
A
Ç
Õ
E
S
 
D
I
S
T
R
I
B
U
Í
D
A
S
de fluxo, duplicação e ordenamento de mensagens e destinos de mensagens. 
Quanto ao tamanho das mensagens, o aplicativo pode escolher o volume de 
conteúdo (dados) que vai ser enviado ou recebido em um fluxo. Ele pode tratar 
com conjuntos de dados muito pequenos ou muito grandes. A implementação 
da camada TCP possui estratégias para determinar o volume de dados a 
coletar, e transmiti-los efetivamente como um ou mais pacotes IP. Ao chegar, 
os dados são entregues para o aplicativo, conforme solicitado. Se necessário, 
os aplicativos podem exigir que os dados sejam enviados imediatamente” 
(COULOURIS; DOLLIMORE; KINDBERG, 2007, p. 126).

Continue navegando