Você está na página 1de 49

Organização e Arquitetura de Computadores II

Revisão Pré prova


Modelos de transferência
Modelos de transferência

1. O que diferencia os modelo síncrono, semi-síncrono e assíncrono. Ilustre


as diferenças através de um diagrama de tempos.

2. Explique o protocolo de comunicação abaixo, mostrando o diagrama de


tempos para os sinais DATA, ACK e BUS. Este diagrama poderia ser
reduzido (eliminado um estado) e ainda assim manter o mesmo modelo?
Qual a consequência da redução de um estado?
Modelos de transferência

4. No modelo de transferência de dados assíncrono, considerando


comunicação unidirecional e sinais de controle send/ack, qual o intervalo de
tempo teórico para efetuar a transmissão do primeiro dado da CPU para o
periférico? Como ficam os demais dados?
– Considere que
– CPU tem clock de 100 MHz e o periférico tem clock de 20 MHz
– Tanto a CPU quanto o periférico são máquinas geram seus sinais de transmissão e
controle na borda de subida de seus clocks
– Pede-se ainda
– Apresente o diagrama de blocos e diagrama de tempo da comunicação
dado

Resposta CPU send Periférico

ack

4. RESPOSTA: 100MHz 20MHz

CKCPU
CKPER
dado Considerando
send o pior caso
ack

110 100 100 tempo (ns)

CKCPU
CKPER Considerando
dado o melhor caso
send
ack
tempo (ns)
80 100 100
TCPU = 1/fCPU = 1/100MHz = 1/100*106 = 10-8 = 10 ns
TPeriférico = 1/fPeriférico = 1/20MHz = 1/20*106 = 5*10-8 = 50 ns
Intervalo considerado para comunicação assíncrona do primeiro dado: [80ns, 110ns]
Tempo para transmissão dos dados subseqüentes:
100 ns (dois pulsos de relógio da máquina mais lenta)
Modelos de transferência

5. Considere o mesmo sistema do exercício anterior, mas agora a comunicação


é conforme o modelo de transferência semi-síncrona. Calcule o novo tempo
necessário para a transferência
– Considere que a CPU e periférico são controladas por um clock de frequência
equivalente
– No primeiro caso, considere uma frequência de 100 MHz
– No segundo caso, considere uma frequência de 20 MHz
dado2

Resposta dado1

send1
CPU Periférico
5. RESPOSTA:
ack1
send2

ack2

clock
Clock
dado
send
ack

100 100 100 tempo (ns)


• Ao contrário da implementação assíncrona, o primeiro dado é lido no mesmo tempo dos
demais
Para clock de 20 MHz
• Total = intervalo_transmissãoCPU→Periférico + ComputaçãoPeriférico +
intervalo_transmissãoPeriférico→CPU
• Total = (100 * 100 ns) + 5 * 50 ns + (2 * 100 ns) = 10.000 ns + 250 ns + 200 ns = 10.450 ns
Para clock de 100 MHz
• Total = intervalo_transmissãoCPU→Periférico + ComputaçãoPeriférico +
intervalo_transmissãoPeriférico→CPU
• Total = (100 * 20 ns) + 5 * 10 ns + (2 * 20 ns) = 2.000 ns + 50 ns + 40 ns = 2.090 ns
Modos de transferência
Entrada e saída programada
Modos de transferência

1. Dada uma serial assíncrona de 2 Mbps sendo escrita em um buffer


de um controlador a uma taxa máxima de leitura a cada 100 ms,
Pede-se:
- Qual a área de armazenamento mínima requerida de buffer para que um
programa ler este por polling?
- Caso a área seja menor do que a calculada, qual o problema associado?

2. Suponha um programa de alto nível que avalia (por polling) a cada


20 ms um buffer de serial com capacidade para armazenar 64 bytes
• Supor que o tempo de leitura do buffer é desprezível
• Qual a maior taxa em bytes/segundo para comunicação serial?
Modos de transferência

1. Dada uma serial assíncrona de 2 Mbps sendo escrita em um buffer


de um controlador a uma taxa máxima de leitura a cada 100 ms,
Pede-se:
- Qual a área de armazenamento mínima requerida de buffer para que um
programa ler este por polling?
RESPOSTA:
– Em 1 seg são transferidos 2Mbps
– Uma Leitura ocorre a cada 100ms => 0,1s, ou seja, a cada segundo são
feitas 10 leituras. Assim, o buffer deve ter 1/10 da taxa de transmissão, ou
seja 200Kbits
- Caso a área seja menor do que a calculada, qual o problema associado?
RESPOSTA:
– Overrun

2. Suponha um programa de alto nível que avalia (por polling) a cada


20 ms um buffer de serial com capacidade para armazenar 64 bytes
• Supor que o tempo de leitura do buffer é desprezível
• Qual a maior taxa em bytes/segundo para comunicação serial?
Modos de transferência

1. Dada uma serial assíncrona de 2 Mbps sendo escrita em um buffer


de um controlador a uma taxa máxima de leitura a cada 100 ms,
Pede-se:
- Qual a área de armazenamento mínima requerida de buffer para que um
programa ler este por polling?
- Caso a área seja menor do que a calculada, qual o problema associado?

2. Suponha um programa de alto nível que avalia (por polling) a cada


20 ms um buffer de serial com capacidade para armazenar 64 bytes
• Supor que o tempo de leitura do buffer é desprezível
• Qual a maior taxa em bytes/segundo para comunicação serial sem que
ocorra overrun?
RESPOSTA:
– TaxaLeitura >= 3.200 bytes/s
– TaxaEscrita <= 3.200 bytes/s
Exercícios
3. Dado o projeto de um sistema embarcado, cujo processador acessa um
dispositivo de entrada/saída por polling a uma taxa média de 1 acesso a
cada 20 ms. Considerando uma comunicação assíncrona P82 (paridade par,
8 bits de dados e dois stop bit além do start bit), com 144.000 bps e uma
UART com um registrador de buffer e um de deslocamento, sendo que em
cada polling a CPU pode fazer uma ou duas escritas na UART, calcule:
– Qual a taxa máxima de transmissão ideal (não deve ser considerado o tempo de polling
do processador)?
– Qual a taxa efetiva de transmissão em caracteres?
– Qual o tempo necessário para transmitir 100 Kbytes para cada caso acima?
– Faça um esboço para ilustrar os instantes de tempo onde ocorre transmissão do dado,
a comunicação CPU com dispositivo de E/S, e o tempo em que o processador está em
atividades entre polling
Exercícios
RESPOSTA (3):
Acesso (polling) = 1/20 ms Dados (8 bits) Dados (8 bits)
Comunicação = P82 →
STT – Start Bit
STT P STP STP
P - Paridade
STP – Stop Bit
Taxa = 144.000 bps (bits por segundo)
UART = 1 buffer + 1 shift register
Quantidade = 100 Kbytes (KB)

A) Taxa máxima = 144.000 bps / 12 b = 12.000 Bps (bytes por segundo)


Tempo para transmitir na taxa máxima = 100KB / 12.000 Bps = 8,333 seg
...

B) Taxa efetiva ...


1/12.000 20 ms Comunicação CPU dispositivo
= 83,33µs de E/S (não fornecido)

C) Taxa efetiva = 2 B / 20 ms = 1 B / 10 ms = 100 B/seg (desconsiderando o tempo de


comunicação da CPU com dispositivos de E/S)
Tempo = 100KB / 100 Bps = 1K seg = 1000 seg
Modos de transferência
Interrupção
Exercícios

1. Explique as principais diferenças entre E/S programada e


E/S não programada

2. Compare polling, interjeição e interrupção de duas


formas distintas
1. Em nível de hardware.
2. Em nível de software.
Exercícios Extras
1. Como funciona o mecanismo de mascaramento de interrupções? O que
significa interrupção não mascarável? Dê um exemplo de aplicação

2. Como é realizado o mecanismo de tratamento de interrupção em um


processador? Cite as principais etapas do processo, comparando com o
tratamento a atendimento de chamada à sub-rotina

3. Dado um programa que trata uma comunicação através de interrupção,


pede-se:
– O que pode acontecer se o programa foi escrito sem análise de poder ser interrompido
em qualquer trecho?
Exercícios
4. (ENADE 2005) Processadores atuais incluem mecanismos para o tratamento de
situações especiais, conhecidas como interrupções. Em uma interrupção, o fluxo
normal de instruções é interrompido para que a causa da interrupção seja tratada.
Com relação a esse assunto, assinale a opção correta:
a. Controladores de entrada e saída geram interrupções de forma síncrona à execução
do processador, para que nenhuma instrução fique incompleta devido à ocorrência da
interrupção
b. Quando uma interrupção ocorre, o próprio processador salva todo o seu contexto
atual, tais como registradores de dados e endereço e códigos de condição, para que
esse mesmo contexto possa ser restaurado pela rotina de atendimento da interrupção
c. O processador pode auto interromper-se para tratar exceções de execução, tais como
um erro em uma operação aritmética, uma tentativa de execução de instrução ilegal ou
uma falha de página em memória virtual
d. Rotinas de tratamento de interrupção devem ser executadas com o mecanismo de
interrupção inibido, pois esse tipo de rotina não permite aninhamento
e. O uso de interrupção para realizar entrada ou saída de dados somente é eficiente
quando o periférico trata grandes quantidades de dados, como é o caso de discos
magnéticos e discos ópticos. Para periféricos com pouco volume de dados, como
teclados e mouses, o uso de interrupção é ineficiente
Exercícios
4. Comentários sobre a questão (ENADE 2005):
a. Controladores de entrada e saída geram interrupções de forma síncrona à execução do
processador, para que nenhuma instrução fique incompleta devido à ocorrência da interrupção →
Resposta errada, pois não há sincronismo. Os sistemas (controlador e processador) são
essencialmente assíncronos
b. Quando uma interrupção ocorre, o próprio processador salva todo o seu contexto atual, tais como
registradores de dados e endereço e códigos de condição, para que esse mesmo contexto possa
ser restaurado pela rotina de atendimento da interrupção → Resposta dúbia. O processador
pode salvar o contexto, ou o contexto pode ser salvo em pilha, dependendo do tipo de mecanismo
implementado. A recuperação do contexto pode ser feita ao término do rotina de atendimento de
interrupção, com recuperação da pilha ou após retornar desta, de forma automática pelo próprio
processador
c. O processador pode auto-interromper-se para tratar exceções de execução, tais como um erro em
uma operação aritmética, uma tentativa de execução de instrução ilegal ou uma falha de página em
memória virtual → Resposta certa. Este mecanismo é implementado em quase a totalidade dos
processadores comerciais
d. Rotinas de tratamento de interrupção devem ser executadas com o mecanismo de interrupção
inibido, pois esse tipo de rotina não permite aninhamento → Resposta errada. O erro ocorre
principalmente devido a palavra devem. Dependendo da arquitetura do processador não é
permitido o aninhamento de interrupções. Este é o caso típico de tratamento de interrupções
rápidas que somente tem um banco de registradores espelho. Porém, muitos processadores
permitem aninhamento de ints
e. O uso de interrupção para realizar entrada ou saída de dados somente é eficiente quando o
periférico trata grandes quantidades de dados, como é o caso de discos magnéticos e discos
ópticos. Para periféricos com pouco volume de dados, como teclados e mouses, o uso de
interrupção é ineficiente → Resposta errada. O que pode ser considerado errada é dizer que int
é somente eficiente se tratar de transferência com grande quantidade de dados. Além do mais,
depende do que vem a ser a definição de eficiência. No contexto desta questão, a eficiência tem a
ver apenas com a velocidade de execução do programa. Aqui não são levadas em consideração
questões como código necessário, consumo de energia, etc...
Exercícios Extras
5. Dado o projeto de um sistema embarcado, cujo acesso do processador ao
dispositivo de entrada/saída seja controlado por interrupção. Considere que
o tratamento da rotina de interrupção consuma em média 100 instruções
para um processador com CPI média 1.5 e frequência de operação 100 MHZ.
Para uma comunicação assíncrona P82 (paridade par, 8 bits de dados e dois
stop bit além do start bit), com 144.000 bps e uma UART com um registrador
de buffer e um de deslocamento, calcule:
– Qual a taxa máxima de transmissão ideal?
– Qual a taxa efetiva de transmissão?
– Qual o tempo necessário para transmitir 100 Kbytes para cada caso acima?
– Faça um esboço para ilustrar os instantes de tempo onde ocorre transmissão do dado,
a comunicação CPU com dispositivo de E/S, e o tempo em que o processador está em
atividades interrupção
Exercícios Extras
Resposta (5):
Acesso (interrupção)
Retorno da interrupção = 100 instruções
CPI média = 1,5
Freqüência = 100 MHz
Tempo da interrupção = 100 * 1.5 * 1/100MHz = 1,5 µs
Taxa = 144.000 bps (bits por segundo)
UART = 1 buffer + 1 shift register
Quantidade = 100 Kbytes (KB)
A) Taxa efetiva 83,33µs

1,5µs
B) Tempo (preenche o buffer)

(100 B * 1024) / 12.000 Bps = 8,5 seg


C) Ganho
8,5 seg → 100%
1024 seg → X
X = 120 vezes
Exercícios
6. Dado o projeto de um sistema embarcado, cujo processador acessa
um dispositivo de entrada/saída por polling a uma taxa média de 1
acesso a cada 20 ms. Considerando uma comunicação assíncrona
P82 (paridade par, 8 bits de dados e dois stop bit além do start bit),
com 144.000 bps e uma UART com um registrador de buffer e um de
deslocamento, calcule:
– Qual a taxa máxima de transmissão ideal (não deve ser considerado o tempo
de polling do processador)?
– Qual a taxa efetiva de transmissão?
– Qual o tempo necessário para transmitir 100 Kbytes para cada caso acima?
– Faça um esboço para ilustrar os instantes de tempo onde ocorre transmissão
do dado, a comunicação CPU com dispositivo de E/S, e o tempo em que o
processador está em atividades entre polling
Exercícios
Dados (8 bits)
RESPOSTA (6):
Acesso (polling) = 1/20 msDados (8 bits) STT P STP STP
Comunicação = P82 →
STT – Start Bit
P - Paridade
STP – Stop Bit
Taxa = 144.000 bps (bits por segundo)
UART = 1 buffer + 1 shift register
Quantidade = 100 Kbytes (KB)

A) Taxa máxima = 144.000 bps / 12 b = 12.000 Bps (bytes por segundo)


Tempo = (100 B * 1024) / 12.000 Bps = 8,5 seg...
...

B) Taxa efetiva ...


1/12.000 20 ms Comunicação CPU dispositivo
= 83,33µs de E/S (não fornecido)

C) Taxa efetiva = 2 B / 20 ms = 1 B / 10 ms = 100 B/seg (desconsiderando o tempo de


comunicação da CPU com dispositivos de E/S).
Tempo = (100 B * 1024) / 100 Bps = 1024 seg
Modos de transferência
DMA
Exercícios

1. Qual fração de tempo do processador é consumido na


operação de DMA considerando as informações que
seguem?
• Processador operando a 50 MHz
• HD transferindo dados a 2 MBps continuamente, utilizando DMA
• Duração da programação do controlador de DMA pelo processador
necessita 1.500 ciclos de relógio
• Duração da rotina de interrupção para tratar término do DMA é de
1.000 ciclos de relógio
• Cada operação de transferência do disco manipula 1 KB
Solução de Exercício
1. Solução:

Frequência de operação = 50 MHz


Período do relógio = 1 / 50 MHz = 20 ns

Ciclos para programação do DMAC = 1.500 ciclos


Tempo para programação do DMAC = 1.500 ciclos * 20 ns = 30 us

Ciclos para interrupção de DMA = 1.000 ciclos


Tempo para interrupção de DMA = 1.000 ciclos * 20 ns = 20 us

Taxa de transferência de dados do HD = 2 MBps


Volume de transferência por operação = 1 KB
Número de operações necessárias por segundo = 2 MB / 1 KB = 2.000

Tempo total = 2.000 * (30 us + 20 us) = 2.000 * 50 us = 100 ms

A cada segundo o DMA consome


1000 ms → 100%
100 ms → X = 10 % do processador
Exercícios

2. Quanto tempo de processamento consome a mesma


transferência de dados do problema anterior com as
informações que seguem?
• Supondo agora que o barramento de dados entre o HD e o
processador seja de 32 bits
• O processador consegue transferir um dado do HD para a memória a
cada 6 ciclos de relógio
Solução de Exercícios
2. Solução:

Período do relógio = 20 ns
Número de ciclos para transferir um dado = 6
Tempo para transferir um dado = 6 * 20 ns = 120 ns
Taxa de transferência de dados do HD = 2 MBps
Número de bytes de um dado = 32 / 8 = 4
Número de dados transferidos por segundo
= 2 MB / 4 B = 0,5 M
Tempo para transferir todos os bytes
= 0,5 M * 120 ns = 60 ms

CONCLUSÃO: Para este caso, não é interessante utilizar DMA, pois o tempo
para programá-lo somado ao de interrupção (60 ms) é maior que o
consumido apenas pelo processador
Paralelismo em máquinas monoprocessadas
Exercícios

1. Diferencie máquinas máquinas pipeline, superpipeline e superescalares

2. Comente a afirmação: - “Máquinas implementadas com pipeline são


completamente transparentes para o programador”

3. Quais tipos de dependências são encontradas nos pipelines das arquiteturas


superescalares?
i. Compare com máquinas que tem apenas um pipeline
ii. Exemplifique estas dependências em um trecho de programa
iii. Aponte soluções para evitar os problemas inerentes a estas dependências
Resposta de Exercícios
3. Quais tipos de dependências são encontradas nos pipelines das arquiteturas
superescalares?
i. Compare com máquinas que tem apenas um pipeline
ii. Exemplifique estas dependências em um trecho de programa
iii. Aponte soluções para evitar os problemas inerentes a estas dependências

i. Dependências verdadeiras (Read-after-Write - RAW), antidependências (Write-


after-Read - WAR) e dependências de saída (Write-after-Write - WAW)

ii. Exemplo
r3:= r0 + r5 (I1)
r4:= r3 + 1 (I2)
r3:= r5 + 1 (I3)
r7:= r3 - r4 (I4)
– Dependência Verdadeira: I2 e I1, I4 e I3, I4 e I2
– Antidependências: I3 não pode terminar antes de I2 iniciar
– Dependências de Saída: I3 não pode terminar antes de I1

iii. Para solucionar as dependências podem ser utilizado adiantamento de sinais,


reordenação de código, inserção de bolhas, renomeação de registradores, ...
Exercícios

4. Comente a afirmação: -”A técnica de Superpipeline não é nada mais


que um pipeline normal com um relógio muito mais rápido”

5. Compare a complexidade de implementação da unidade de controle de


uma máquina superescalar com uma máquina apenas com pipeline

6. Explique o conceito de pipeline superescalar. Qual o seu CPI teórico?


Indique dois problemas ligados a este conceito
Resposta de Exercícios
4. Comente a afirmação: -”A técnica de Superpipeline não é nada mais que um
pipeline normal, com um relógio muito mais rápido”
• A divisão em estágios menores permite que o relógio de uma máquina
Superpipeline seja bem maior que a de um pipeline normal. Contudo, a técnica
permite, também, balancear o pipeline, de forma a ter estágios de tamanho mais
próximo, acelerando ainda mais a velocidade do relógio

5. Compare a complexidade de implementação da unidade de controle de uma


máquina superescalar com uma máquina apenas com pipeline
• Unidades de controle de máquinas superescalares são mais complexas, pois
requerem o tratamento de mais de um fluxo de dados, onde podem ocorrer mais
tipos de dependência e execução de instruções fora de ordem

6. Explique o conceito de pipeline superescalar. Qual o seu CPI teórico? Indique


dois problemas ligados a este conceito
• Pipelines superescalares apresentam paralelismo temporal e espacial. Ou seja,
existe replicação de pipelines. O CPI teórico máximo é 1/N, sendo N igual ao
número de pipelines replicados
Exercícios

7. (Baseado no POSCOMP 2006 - 24) Num processador superescalar


com emissão dinâmica de instruções para o estágio de execução, o
circuito com a lógica de emissão de instruções tem as seguintes
funções:
I. Computar, em tempo de execução, o grafo de dependências entre as
instruções;
II. Manter a ordem de execução das instruções segundo o código fonte;
III. Trocar a ordem de execução das instruções, segundo o código fonte;
IV. Tolerar a latência dos acessos à memória;
V. Expor a latência dos acessos à memória.

a) Somente as alternativas (I), (II) e (IV) são verdadeiras.


b) Somente as alternativas (I), (III) e (IV) são verdadeiras.
c) Somente as alternativas (I), (II) e (V) são verdadeiras.
d) Somente as alternativas (I), (III) e (V) são verdadeiras.
e) Todas as alternativas são verdadeiras.
Resposta de Exercícios

7. (Baseado no POSCOMP 2006 - 24) Num processador superescalar


com emissão dinâmica de instruções para o estágio de execução, o
circuito com a lógica de emissão de instruções tem as seguintes
funções:
I. Computar, em tempo de execução, o grafo de dependências entre as
instruções;
II. Manter a ordem de execução das instruções segundo o código fonte;
III. Trocar a ordem de execução das instruções, segundo o código fonte;
IV. Tolerar a latência dos acessos à memória;
V. Expor a latência dos acessos à memória.

a) Somente as alternativas (I), (II) e (IV) são verdadeiras.


b) Somente as alternativas (I), (III) e (IV) são verdadeiras.
c) Somente as alternativas (I), (II) e (V) são verdadeiras.
d) Somente as alternativas (I), (III) e (V) são verdadeiras.
e) Todas as alternativas são verdadeiras.
Exercícios

1. Compare uma arquitetura VLIW com uma arquitetura Superescalar e com


uma arquitetura Superpipeline em termos de consumo de energia,
complexidade de execução e compilação de programas, dependência de
dados

2. Explique o funcionamento de tecnologias do tipo Multithreading

3. Para a programação em máquinas vetoriais, o programador pode levar


alguma vantagem se conhecer as limitações desta? Se sim diga quais?
Se não, justifique
Resposta de Exercícios
1. Compare uma arquitetura VLIW com uma arquitetura Superescalar e com
uma arquitetura Superpipeline em termos de consumo de energia,
complexidade de execução e compilação de programas, dependência de
dados
Consumo de Complexidade de Compilação de Dependência de
energia execução programas dados
VLIW Menor que o Baixa → grande Complexa e Não existe
superescalar parte dos problemas demorada
é resolvida na
compilação
Superescalar Maior de todos Máxima Média complexidade intra
e inter pipelines
Superpipeline Menor de todos Média / baixa Baixa complexidade Intra pipeline
Resposta de Exercícios

2. Explique o funcionamento de tecnologias do tipo Multithreading


• Estas tecnologias exploram o paralelismo ao nível de thread, permitindo
uma melhor ocupação dos recursos com um baixo consumo de área
devido à inserção desta técnica. Neste tipo de processador é replicado a
lógica de controle e o conjunto de registradores referentes ao contexto
dos processos em execução

3. Para a programação em máquinas vetoriais, o programador pode levar


alguma vantagem se conhecer as limitações desta? Se sim diga quais?
Se não, justifique
Na programação em alto nível, a maior parte das otimizações podem ser
feitas pelo compilador, deixando para o programador otimizações
normalmente algorítmicas. Na programação de baixo nível, o
programador tem mais poderes. Conhecendo, por exemplo, o tamanho
do vetor de registradores, ele pode privilegiar um algoritmo que use
estes recursos ao máximo.
Exercícios

4. (POSCOMP 2016 - 48) Analise as seguintes definições de


pipeline de instruções simples, superescalar e Multithreading
simultâneo:
I. Pipeline instruções simples: instruções individuais que são executadas
através de um pipeline de estágios, de maneira que, enquanto uma
instrução está sendo executada em um estágio, outra instrução está sendo
executada em outro estágio do pipeline.
II. Superescalar: um pipeline é construído por meio da replicação de recursos
de execução, o que permite a execução paralela de instruções em pipelines
paralelos.
III. Multithreading simultâneo (SMT): bancos de registros são replicados para
que múltiplas threads possam compartilhar o uso dos recursos de pipelines.
• Quais estão corretas?
a) Apenas I
b) Apenas III
c) Apenas I e II
d) Apenas II e III
e) Todas as afirmativas estão corretas
Resposta de Exercícios

4. (POSCOMP 2016 - 48) Analise as seguintes definições de


pipeline de instruções simples, superescalar e Multithreading
simultâneo:
I. Pipeline instruções simples: instruções individuais que são executadas
através de um pipeline de estágios, de maneira que, enquanto uma
instrução está sendo executada em um estágio, outra instrução está sendo
executada em outro estágio do pipeline.
II. Superescalar: um pipeline é construído por meio da replicação de recursos
de execução, o que permite a execução paralela de instruções em pipelines
paralelos.
III. Multithreading simultâneo (SMT): bancos de registros são replicados para
que múltiplas threads possam compartilhar o uso dos recursos de pipelines.
• Quais estão corretas?
a) Apenas I
b) Apenas III
c) Apenas I e II
d) Apenas II e III
e) Todas as afirmativas estão corretas
Máquinas Paralelas
Exercícios
1. Segundo o modelo de compartilhamento de memória, quais são as duas
possibilidades para se construir máquinas com vários processadores? Que nome
é dado a cada uma delas?

2. Qual o efeito prático de ter um espaço de endereçamento único?

3. Discuta a afirmação: - “A programação paralela com memória de endereçamento


compartilhado é mais simples que a programação com endereçamento
distribuído”

4. Quais as vantagens das máquinas UMA/NUMA sobre as máquinas NORMA, sob


o ponto de vista do programador? Por quê?

5. Qual classe de máquinas possui uma memória distribuída e compartilhada?

6. Quais são as características das arquiteturas UMA e NUMA quanto: (a) número
de processadores, (b) rede de interconexão, (c) tempo de acesso à memória?
Exercícios
7. (ENADE 2008 - adaptado) Uma alternativa para o aumento de desempenho é o uso de
processadores com múltiplos núcleos (multicores). Nesses sistemas, cada núcleo,
normalmente, tem funcionalidades completas de um processador. Atualmente é comum
configurações com 4 ou mais núcleos. Com relação ao uso de multicores, e sabendo que
threads são estruturas de execução associadas a um processo, que compartilham áreas
de código e dados, mantendo contextos independentes, analise as seguintes asserções:
Tendo suas atividades divididas em múltiplos threads que podem ser executadas
paralelamente, aplicações podem se beneficiar mais efetivamente dos diversos
núcleos dos processadores multicores
porque
o SO que executa em processadores multicores pode alocar os núcleos existentes para
executar simultaneamente diversas sequências de código, sobrepondo suas
execuções e, normalmente, reduzindo o tempo de resposta das aplicações às quais
estão associadas.
Acerca dessas asserções, assinale a opção correta:
i. As duas asserções são proposições verdadeiras, sendo a segunda uma justificativa correta
da primeira
ii. As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa
correta da primeira.
iii. A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa.
iv. A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira.
v. Tanto a primeira quanto a segunda asserções são proposições falsas.
Resposta de Exercícios
7. (ENADE 2008 - adaptado) Uma alternativa para o aumento de desempenho é o uso de
processadores com múltiplos núcleos (multicores). Nesses sistemas, cada núcleo,
normalmente, tem funcionalidades completas de um processador. Atualmente é comum
configurações com 4 ou mais núcleos. Com relação ao uso de multicores, e sabendo que
threads são estruturas de execução associadas a um processo, que compartilham áreas
de código e dados, mantendo contextos independentes, analise as seguintes asserções:
Tendo suas atividades divididas em múltiplos threads que podem ser executadas
paralelamente, aplicações podem se beneficiar mais efetivamente dos diversos
núcleos dos processadores multicores
porque
o SO que executa em processadores multicores pode alocar os núcleos existentes para
executar simultaneamente diversas sequências de código, sobrepondo suas
execuções e, normalmente, reduzindo o tempo de resposta das aplicações às quais
estão associadas.
Acerca dessas asserções, assinale a opção correta:
i. As duas asserções são proposições verdadeiras, sendo a segunda uma justificativa correta
da primeira.
ii. As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa
correta da primeira.
iii. A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa.
iv. A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira.
v. Tanto a primeira quanto a segunda asserções são proposições falsas.
Exercícios
8. (POSCOMP 2011, Questão 29) Relacione a coluna da esquerda com a coluna da direita

(I) Multicore (A) Múltiplos pipelines que operam em paralelo


(II) Superpipeline (B) Execução de instruções fora de ordem em um pipeline
(III) Superescalar (C) Pipelines com grande número de estágios
(IV) Pipeline dinâmico (D) Múltiplos processadores compartilhando um espaço de endereços
(V) Multiprocessadores (E) Múltiplos processadores em um único encapsulamento

Assinale a alternativa que contém a associação correta

a) I-B, II-A, III-C, IV-E, V-D


b) I-C, II-A, III-B, IV-D, V-E
c) I-D, II-E, III-B, IV-A, V-C
d) I-E, II-C, III-A, IV-B; V-D
e) I-E, II-C, III-A, IV-D, V-B
Resposta de Exercícios
8. (POSCOMP 2011, Questão 29) Relacione a coluna da esquerda com a coluna da direita

(I) Multicore (A) Múltiplos pipelines que operam em paralelo


(II) Superpipeline (B) Execução de instruções fora de ordem em um pipeline
(III) Superescalar (C) Pipelines com grande número de estágios
(IV) Pipeline dinâmico (D) Múltiplos processadores compartilhando um espaço de endereços
(V) Multiprocessadores (E) Múltiplos processadores em um único encapsulamento

Assinale a alternativa que contém a associação correta

a) I-B, II-A, III-C, IV-E, V-D


b) I-C, II-A, III-B, IV-D, V-E
c) I-D, II-E, III-B, IV-A, V-C
d) I-E, II-C, III-A, IV-B, V-D
e) I-E, II-C, III-A, IV-D, V-B
Exercícios
9. (POSCOMP 2011, Questão 41) O gerenciamento de processos em sistemas modernos é
feito, quase sempre, com o uso de preempção de processos através de técnicas de
compartilhamento de tempo. O que a introdução de processadores com vários núcleos
altera nesse gerenciamento?

a) Torna-se possível a paralelização efetiva de processos concorrentes.


b) Torna-se possível eliminar a condição de corrida em processos concorrentes executados em
paralelo
c) Torna-se possível o uso de threads para a execução de processos concorrentes
d) Torna-se possível separar os demais mecanismos de gerenciamento do sistema operacional
do gerenciamento de processos
e) Torna-se possível o uso de sistemas operacionais multitarefas
Resposta de Exercícios
9. (POSCOMP 2011, Questão 41) O gerenciamento de processos em sistemas modernos é
feito, quase sempre, com o uso de preempção de processos através de técnicas de
compartilhamento de tempo. O que a introdução de processadores com vários núcleos
altera nesse gerenciamento?

a) Torna-se possível a paralelização efetiva de processos concorrentes


b) Torna-se possível eliminar a condição de corrida em processos concorrentes executados em
paralelo
c) Torna-se possível o uso de threads para a execução de processos concorrentes
d) Torna-se possível separar os demais mecanismos de gerenciamento do sistema operacional
do gerenciamento de processos
e) Torna-se possível o uso de sistemas operacionais multitarefas
Exercícios
10. (POSCOMP 2012, Questão 46) Com relação a processadores, considere as afirmativas a
seguir

I. Arquiteturas Superescalares podem executar instruções concorrentemente em pipelines


diferentes
II. O Superpipeline permite a execução de duas tarefas em um único ciclo de clock do
processador
III. Multiprocessadores simétricos compartilham a utilização da memória principal
IV. A utilização de uma memória cache L2 compartilhada em processadores multicore é
vantajosa em threads que possuem alta localidade

Assinale a alternativa correta

a) Somente as afirmativas I e II são corretas


b) Somente as afirmativas I e IV são corretas
c) Somente as afirmativas III e IV são corretas
d) Somente as afirmativas I, II e III são corretas
e) Somente as afirmativas II, III e IV são corretas
Resposta de Exercícios
10. (POSCOMP 2012, Questão 46) Com relação a processadores, considere as afirmativas a
seguir

I. Arquiteturas Superescalares podem executar instruções concorrentemente em pipelines


diferentes
II. O superpipeline permite a execução de duas tarefas em um único ciclo de clock do
processador
III. Multiprocessadores simétricos compartilham a utilização da memória principal
IV. A utilização de uma memória cache L2 compartilhada em processadores multicore é
vantajosa em threads que possuem alta localidade

Assinale a alternativa correta

a) Somente as afirmativas I e II são corretas


b) Somente as afirmativas I e IV são corretas
c) Somente as afirmativas III e IV são corretas
d) Somente as afirmativas I, II e III são corretas
e) Somente as afirmativas II, III e IV são corretas

Você também pode gostar