0% acharam este documento útil (0 voto)
5 visualizações2 páginas

Concorrência e Multithreading em Aplicações

Enviado por

teukufaqe
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações2 páginas

Concorrência e Multithreading em Aplicações

Enviado por

teukufaqe
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

1 Como uma aplicação pode implementar concorrência em um ambiente

monothread?
Elas permitem dividir as aplicações para trabalhar de forma concorrente,
implementadas com múltiplos processos independentes ou subprocessos.

2 Quais os problemas de aplicações concorrentes desenvolvidas em ambientes


monothread?
Demanda o consumo de diversos recursos do sistema monothread, pois quando há a
criação de um novo processo, o sistema deve alocar recursos para cada
um dos processos, tomando tempo. E problemas no compartilhamento do espaço do
endereçamento, tornando-se lenta quando cada um dos processos tem seu
proprio espaço de endereçamento.

3 O que é um ambiente multithread e quais as vantagens de sua utilização?


Cada processo pode responder a várias solicitações concorrentemente ou mesmo
simultaneamente, no caso de haver mais de um processador.
A vantagem no uso de threads é minimizar a alocação de recursos com a criação de
novos processos.

4 Explique a diferença entre unidade de alocação de recursos e unidade de


escalonamento.
Unidade de alocação de recursos: onde o processo e todos seus threads compartilham
espaço de endereçamento, descritores de arquivos e dispositivos.
Unidade de escalonamento: distribui o acesso aos recursos presentes no sistema
entre os processos ativos, permitindo que todos eles que estejam na fila possam
utilizar a CPU.

5 Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento


entre threads de um mesmo processo?
Compartilhar os dados entre as threads, porém o compartilhamento do espaço de
endereçamento, dentro desse espaço não há proteção de acesso a memória,
permitindo que os dados entre as threads sejam alterados.

6 No programa multithread do item 6.4, qual dos três threads será executado
primeiro, depois de criados?
Thread num 1, depois entra em um tempo de espera entre 0 e 5 segundos, depois está
pronta para ser escalonada.

7 No programa multithread do item 6.4, é possível que o thread 3 seja executado


mais que três vezes seguidas?
Não é possível determinar qual sera executada apos a criação de três threads.

8 Altere o programa do item 6.4 de forma a criar mais um thread, totalizando uma
aplicação concorrente com quatro threads.
int i, n = 4; //mudanca de tres para quatro

9 Compare os pacotes de threads em modo usuário e modo kernel.


Modo usuário: implementadas pela aplicação e não pelo SO. Deve existir uma
biblioteca de rotinas que permite a aplicação
realizar tarefas (criar e eliminar threads, comonicação entre threads).
Responsabilidade da aplicação gerenciar e sincronizar as diversas
threads existentes.
Modo kernel: SO sabe da existência de cada thread e pode escaloná-los de maneira
individual. As rotinas do sistema oferecem todas as funções de gerenciamento de
sincronização.
Em muilti-cores, os threads de um mesmo processo podem ser executados
simultaneamente.

10 Qual a vantagem do scheduler activations comparado ao pacote híbrido?


Combina as duas arquiteturas do modo híbrido, mas inves de dividir as threads em
ambos os modos(usúario e kernel), o núcel do sistema troca informações com a
biblioteca threads com estrutura de dados.

11 Dê exemplos do uso de threads no desenvolvimento de aplicativos, como editores


de textos e planilhas eletrônicas
Words e PowerPoint, há threads prontas para ser executada como correções
ortograficas, criação de novas paginas, sugestões de palavras,etc.

12 Como o uso de threads pode melhorar o desempenho de aplicações paralelas em


ambientes com múltiplos processadores?
Com o uso do modo híbrido, a biblioteca em modo usuario e o kernel se comunicam e
trabalham de forma cooperativa, trocando informações quando necessário.

Você também pode gostar