Buscar

Programação paralela utilizando memória compartilhada

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 5 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

Prévia do material em texto

Programação paralela utilizando memória compartilhada
Exercícios
1. Um sistema operacional tem a responsabilidade de fazer o gerenciamento de
todo o hardware do computador, tendo como objetivo propiciar decisões
importantes como a definição dos processos que irão ser executados. Entretanto,
para exercer suas funcionalidades, terá que operar em sincronia com todos os
componentes de hardware que integram a estrutura computacional, onde diversos
componentes, dispositivos e controladores são interligados entre si para que a
comunicação aconteça de maneira correta. Para a compreensão do funcionamento
da memória compartilhada, se faz necessário entender sua importância a partir da
inicialização de um sistema operacional.
A respeito das etapas que envolvem esse processo, analise as afirmativas a seguir:
I. A partir do momento em que o computador inicia sua operação, os recursos
necessários para essa operação também serão alocados.
II. Na primeira etapa, serão inicializados os registradores da CPU (central process
unit – unidade central de processamento) ao conteúdo da memória e, na etapa
seguinte, todos os requisitos do sistema.
III. A CPU tem a responsabilidade de concentrar todas as operações de cálculo, bem
como desempenhar funções de processamento.
É(são) verdadeira(s) a(s) afirmativa(s):
Você acertou!
B. I e III.
Desde que o computador inicia sua operação, os recursos necessários são alocados para
que se possa operar,  o  que  torna a afirmativa   I  verdadeira.  Logo após,  um pequeno
programa, denominado Bootstrap, passa a ser executado, bem como todas as instruções
que   definem   sua   utilidade.   Na   etapa   inicial,   todos   os   requisitos   do   sistema   são
inicializados, assim como os registradores da CPU, os controladores de dispositivos e
conteúdo da memória, o que torna a afirmativa II falsa. Além da memória, a CPU é um
dos   componentes   mais   importantes   para   garantir   a   funcionalidade   de   um   sistema
operacional,   tendo a responsabilidade de realizar  todas as operações de cálculo e as
tarefas de processamento, sendo considerado o cérebro do computador, o que torna a
afirmativa III verdadeira.
2. No multiprocessamento simétrico (SMP), cada processador da CPU executa as
funções simultaneamente, abrangendo funções que são realizadas pelo sistema
operacional e processos direcionados pelo usuário a partir de um conjunto próprio
de registros e cache.
A respeito da memória compartilhada em sistemas multiprocessadores, considere
as seguintes afirmações e classifique-as em verdadeiras (V) ou falsas (F):
1. ( ) Alguns recursos são compartilhados entre processadores como a memória
física do barramento, possibilitando a execução de muitos processos por CPU ao
mesmo tempo.
2. ( ) O controlador de memória faz a sincronização do acesso à memória
compartilhada, garantindo acessos ordenados pelos processos do sistema.
3. ( ) Os sistemas Unix são exemplos de memória compartilhada, sendo que estes
usam parte da memória cheia do sistema para bloquear o armazenamento de
informações.
4. ( ) O compartilhamento de recursos entre os processadores faz com que os
processos sejam executados pelas CPUs, um de cada vez, de forma isolada e
individual.
Assinale a alternativa que apresenta a sequência correta.
Você acertou!
C. V – V – F – F.
A relação dos sistemas multiprocessadores com a memória compartilhada no sistema diz
respeito ao fato de alguns recursos serem compartilhados entre os processadores como
memória física do barramento, fazendo com que muitos processos sejam executados por
cada CPU simultaneamente, o que torna a afirmativa 1 verdadeira e a afirmativa 4 falsa.
Entre   os   controladores,   está   o   controlador   de   memória,   que   sincroniza   o   acesso   à
memória compartilhada para garantir um acesso ordenado por parte dos processos do
sistema, o que torna a afirmativa 2 verdadeira. Os sistemas Unix são um exemplo disso,
pois  usam uma parte  da memória   livre  do  sistema para gerenciar  as   interrupções,  o
armazenamento  de  informações  importantes e as  instruções que devem ser seguidas
para o melhor desempenho do ambiente. Nesse caso, a CPU e a memória compartilhada
entre os processos são sempre gerenciadas em paralelo, o que torna a afirmativa 3 falsa.
3. Nos sistemas operacionais legados, enquanto um processador de texto estava
sendo utilizado e o usuário precisasse usar a agenda também, o primeiro processo
era bloqueado para que o segundo fosse finalizado, sendo, portanto, os processos
apenas executados um por vez. Já, nos sistemas operacionais modernos, na maior
parte do tempo, os processos trabalham juntos com a possibilidade de
compartilhar alguma memória.
A respeito do processo da memória compartilhada, analise as afirmativas a seguir:
I. A memória compartilhada precisa estar sempre localizada na memória principal,
nas estruturas de dados centrais.
II. A localização da memória compartilhada não é um fator que tenha poder de
alterar a natureza da comunicação.
III. A área da memória que é utilizada por diversos processos no compartilhamento
de memória é denominada buffer.
IV. No compartilhamento de memória, uma área específica é usada, denominada
“múltiplos processos”.
São verdadeiras as afirmativas:
Você acertou!
A. II e III.
Normalmente, nos sistemas operacionais modernos, a execução de dois processos pode
acontecer simultaneamente,  podendo estes compartilhar alguma memória comum para
que ambos sejam capazes de ler e escrever ao mesmo tempo, por exemplo. A memória
compartilhada pode estar  tanto na memória principal  (provavelmente em estruturas de
dados  centrais)  ou   relacionada  com o  uso  de  um arquivo  compartilhado.  Portanto,  a
localização   da   memória   compartilhada   não   modifica   a   natureza   da   comunicação   ou
mesmo   dos   problemas   que   possam   ser   resultado   desse   processo,   o   que   torna   a
afirmativa I  falsa e a  II  verdadeira.  O compartilhamento de memória tem sido um dos
mecanismos   de   comunicação   entre   os   processos   mais   utilizados.   Sendo   assim,
determinada   área   de   memória   é   manuseada   por   diversos   processos   e   essa   área   é
chamada de buffer, sendo o recurso acessível para vários processos de uma aplicação
concorrente, o que torna a afirmativa III verdadeira e a IV falsa.
4. A programação paralela é uma maneira de solucionar muitos problemas de forma
concorrente, sendo que cada parte do problema é formada por diversas instruções
executadas em sequência, mas, ao mesmo tempo, concorre com a execução
simultânea de vários processadores. A respeito da programação paralela, escolha a
alternativa correta.
Você acertou!
D. A programação paralela auxilia  na resolução de problemas complexos,   levando em
consideração um tempo satisfatório de processamento.
É possível executar a programação paralela considerando diferentes métodos e uma das
mais importantes razões para a sua utilização diz respeito ao fato de que os requisitos
necessários de um programa estão sempre mudando. Com a programação paralela, é
possível resolver muitos problemas com base em programas, de maneira ágil, e lidar com
problemas complexos, considerando um tempo aceitável de processamento. Também é
possível   evitar   a   subutilização   de   recursos   computacionais   e   superar   limitações   de
memória quando uma única máquina não oferece recursos necessários para atender a
determinada demanda.
5. A utilização de arquiteturas paralelas e da programação baseada no
compartilhamento de memória é uma forma eficiente de impulsionar a capacidade
de execução. Os modelos de programação paralela são divididos em modelos de
memória compartilhada e de memória distribuída, sendo que, nas execuções com
base no compartilhamento de memória, a programação é realizada
utilizando threads.
A respeito da comunicaçãopor meio da memória compartilhada e dos threads,
considere as seguintes afirmações e classifique-as em verdadeiras (V) ou falsas (F):
1. ( ) Por meio de um thread,podem ser organizadas tarefas, sendo ele uma unidade
básica usada pela CPU.
2. ( ) O surgimento do OpenMP ocorreu por ser difícil ter APIs (application
programming interface – interface de programação de aplicações)   padronizadas
para memória compartilhada.
3. ( ) O OpenMP usa threads que realizam a comunicação por meio de variáveis
compartilhadas.
Assinale a alternativa que apresenta a sequência correta.
Você acertou!
E. V – V – V.
Um thread é uma unidade básica utilizada pela CPU, sendo que, a partir de um thread, é
possível  a  organização de  tarefas,  o que  torna a afirmativa  1 verdadeira.  O OpenMP
surgiu   da   dificuldade   de   encontrar  APIs   padronizadas   para   arquiteturas   de   memória
compartilhada,   tendo   sido   construído   como   uma   API,   o   que   torna   a   afirmativa   2
verdadeira.   O   principal   objetivo   do   OpenMP   é   fornecer   instruções   para   expressar
paralelismo de dados, assim como paralelismo de tarefas em fragmentos de código e
aplicações   que   usam loops em   sua   estrutura.   O   OpenMP  é   um   modelo   de   memória
compartilhada.   Por   isso,   utiliza   os threads que   se   comunicam   por   meio   de   variáveis
compartilhadas, o que torna a afirmativa 3 verdadeira.
	Programação paralela utilizando memória compartilhada
	Exercícios

Continue navegando

Outros materiais