Logo Passei Direto
Buscar
Material
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Questões comentadas
Arquitetura de Computadores
para concursos
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Prefácio
O estudo de requisitos necessários para que um computador funcione e da maneira de orga-
nizar seus componentes com o objetivo de conseguir melhores desempenhos dá origem a um
projeto conceitual de extrema importância na área de computação: a Arquitetura de Compu-
tadores. Ela determina aspectos relacionados à qualidade, ao desempenho e à aplicação para a
qual determinado computador vai ser orientado.
Dado que o conhecimento em Arquitetura de Computadores é fundamental para o entendi-
mento do funcionamento do computador e de suas potencialidades, tornando-se um alvo fácil
em questões de concursos, o Grupo Handbook de TI preparou este volume, que traz uma série
de questões comentadas sobre os Arquitetura de Computadores para você se preparar adequa-
damente para essa área.
Bons estudos,
Grupo Handbook de TI
Página 1 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Direitos Autorais
Este material é registrado no Escritório de Direitos Autorais (EDA) da Fundação Biblioteca
Nacional. Todos os direitos autorais referentes a esta obra são reservados exclusivamente aos
seus autores.
Os autores deste material não proíbem seu compartilhamento entre amigos e colegas próxi-
mos de estudo. Contudo, a reprodução, parcial ou integral, e a disseminação deste material de
forma indiscriminada através de qualquer meio, inclusive na Internet, extrapolam os limites da
colaboração. Essa prática desincentiva o lançamento de novos produtos e enfraquece a comuni-
dade concurseira Handbook de TI.
A série Handbook de Questões de TI Comentadas para Concursos � Além do Gabarito é uma
produção independente e contamos com você para mantê-la sempre viva.
Grupo Handbook de TI
Página 2 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Canais de Comunicação
O Grupo Handbook de TI disponibiliza diversos canais de comunicação para os concurseiros
de TI.
Loja Handbook de TI
Acesse a nossa loja virtual em http://www.handbookdeti.com.br
Serviço de Atendimento
Comunique-se diretamente conosco através do e-mail faleconosco@handbookdeti.com.br
Twitter do Handbook de TI
Acompanhe de perto promoções e lançamentos de produtos pelo nosso Twitter http://twitter.
com/handbookdeti
Página 3 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
1. Assuntos relacionados: Organização de Computadores, Endereçamento de Memória,
Banca: CESGRANRIO
Instituição: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questão: 51
O hardware de um sistema microprocessado foi projetado para funcionar com uma memória
de 20 bits de endereçamento e palavra de 16 bits. Se neste sistema já estão instalados 1.024
KB de memória, qual a quantidade máxima de memória possível para expansão, em KB?
(a). 1.024
(b). 924
(c). 768
(d). 512
(e). 256
Solução:
As memórias são constituídas de células que são identificadas por números, denominados
endereços, pelo qual programas podem referenciá-las. Todas as células contêm o mesmo
número de bits. Se uma célula consiste de m bits, ela pode armazenar m bits de informação.
Os endereços de memória são expressos por números binários. Se um endereço tiver n
bits, o número máximo de células endereçáveis é 2n.
Para determinar a quantidade máxima de memória possível para expansão, primeiramente,
devemos calcular a capacidade total de memória em bytes que o hardware em questão su-
porta. A informação de que 20 bits são necessários para endereçar uma memória nos diz que
o hardware possui 220 células. Uma palavra de 16 bits informa que cada célula de memória
armazena até 2 bytes de informação.
A capacidade total de memória suportada é obtida pela multiplicação entre a capacidade
de cada célula e o número de células, ou seja, 2*220 = 2 MB = 2048 KB. Como no sistema
já estão instalados 1024 KB, a quantidade máxima de memória possível para expansão é de
1024 KB.
Página 4 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
2. Assuntos relacionados: Arquitetura de Computadores, Modos de Endereçamento de Me-
mória,
Banca: CESGRANRIO
Instituição: Petrobras
Cargo: Analista de Sistemas - Eng. de Software
Ano: 2008
Questão: 21
Um computador tem um registrador R e um conjunto de instruções de um operando, todas
com modo de endereçamento indireto. Três destas instruções são especificadas a seguir.
LD: Copia da memória principal para o registrador R.
AC: Adiciona da memória principal ao registrador R.
ST: Move do registrador R para a memória principal.
Considere o programa apresentado abaixo, executado no computador, acessando o bloco de
memória principal, cuja situação inicial é mostrada a seguir.
Endereço Valor Armazenado
00H 01H
01H 02H
02H 03H
03H 04H
04H 05H
LD 01H
AC 02H
ST 03H
AC 00H
ST 01H
LD 03H
ST 00H
Considere que tanto o endereçamento quanto os valores envolvidos nas operações utilizam
apenas um byte de memória cada. Após a execução do programa, qual será, em hexadeci-
mais, a soma dos valores armazenados no bloco de memória?
(a). 00H
(b). 04H
(c). 0AH
(d). 10H
(e). 1CH
Solução:
Primeiramente, os conceitos de endereçamento de dados devem estar bem claros. Em uma
instrução de programa, há várias maneiras de referenciar um valor, as mais conhecidas são:
• Imediato: o valor do operando é especificado diretamente na instrução. Sua principal
vantagem é não requerer acesso à memória para obter o operando. A desvantagem é que
esse modo impõe uma limitação no tamanho do operando. Suponha que o computador
Página 5 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
descrito suporte acesso imediato. A instrução LD 30H faria com que o valor 30H fosse
copiado para o registrador R. Entretanto, há ocasiões em que não somente um byte
deve ser copiado, por exemplo LD 201040H. Nesse caso, como o valor é armazenado
diretamente na instrução, seria necessário aumentar o tamanho da instrução e isso não
é possível na maioria das arquiteturas de computador;
• Direto: o campo de endereço contém o endereço efetivo do operando na memória. Re-
quer, portanto, apenas um acesso para determinar o valor do operando. Sua limitação
é fornecer um espaço de endereçamento limitado. Suponha que o computador descrito
suporte endereçamento direto. A instrução LD 01H, faria com que o valor armazenado
na posição de memória 01H, ou seja, 02H fosse copiado. Entretanto, se a instrução
possuir somente um byte para o endereçamento direto, por exemplo, a quantidade de
posições de memória estará limitada em 256 (28);
• Indireto: o campo de endereço aponta para uma posição de memória que contém o
endereço de memória do operando. Sua principal desvantagem é a necessidade de dois
acessos à memória. A vantagem em relação ao modo de endereçamento direto é o au-
mento do espaço de endereçamento, que passa a ser igual 2n, onde n é o tamanho da
palavra na memória. Suponha que o computador tenha somente um byte para endere-
çar a posição de memória, mas que essa posição de memória corresponda a uma palavra
com tamanho de 2 bytes. Um endereçamento na forma indireta, possibilitará o ende-
reçamento de 65536 posições de memória (216) e não mais 256 como no endereçamento
direto. Não é o caso da questão, onde tanto o tamanho permitido para endereçamento
na instrução e o tamanho da palavra de memória são iguais a um byte;
• Registrador : é semelhante aomodo direto, no entanto, o campo de endereço se refere a
um registrador e não a uma posição de memória. Geralmente, esse campo é composto
por 3 ou 4 bits, o que permite referenciar de 8 a 16 registradores de propósito geral.
Suas vantagens são o tamanho pequeno do campo de endereço e a não necessidade
de se acessar à memória. Sua desvantagem é o espaço de endereçamento limitado
pelo número de registradores. Por exemplo, poderíamos supor que o computador da
questão permitisse endereçamento por registrador e tivesse 16 registradores. Assim,
seria possível que um registrador além do R, por exemplo S, pudesse ser endereçado
como 05H. Uma instrução da maneira LD 05H copiaria o valor do registrador S para o
registrador R;
• Indireto via Registrador : semelhante ao modo de endereçamento indireto. O campo
de endereço aponta para o registrador que contém a posição de memória do operando.
Sua vantagem é a necessidade de um único acesso à memória, um a menos que no modo
indireto;
• Deslocamento: requer que uma instrução tenha dois campos de endereço, com pelo
menos um explícito. O valor de um dos campos é usado diretamente (valor = A). O
outro campo é baseado no código da operação, e especifica um registrador cujo conteúdo
é adicionado à A, para produzir o endereço efetivo. Os três modos de endereçamento
por deslocamento são: relativo, via registrador-base e indexado;
• Pilha: a pilha é um bloco reservado de posições de memória. Elementos podem ser
colocados e removidos do topo da pilha. O apontador do topo da pilha (stack-pointer)
é mantido em um registrador. Portanto, de fato, referências a pilha são feitas por
endereçamento indireto via registrador.
Já que a questão trata de endereçamento indireto, o valor armazenado no local especificado
pelo operando é o endereço de memória do valor que será utilizado na operação. Por exemplo,
a instrução LD 01H, carrega, no registrador R, o valor 03H, pois no endereço 01H está
Página 6 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
armazenado o endereço 02H, que por sua vez, contém o valor desejado, 03H. Seguindo os
passos do programa, teremos:
1. LD 01H, R ← 03H, R recebe o valor armazenado no endereço 02H;
2. AC 02H, R ← 03H + 04H ← 07H, o valor de R é somado ao valor armazenado no
endereço 03H;
3. ST 03H, [04H] ← 07H, a posição de memória 04H recebe o valor do registrador R;
4. AC 00H, R ← 07H + 02H ← 09H, o valor de R é somado ao valor da posição 01H;
5. ST 01H, [02H] ← 09H, a posição de memória 02H recebe o valor de R;
6. LD 03H, R ← 07H, R recebe o valor armazenado no endereço 04H;
7. ST 00H, [01H] ← 07H, a posição de memória 01H recebe o valor de R.
Após o término do programa, a situação final do bloco de memória será de acordo com a
Tabela 1.
Tabela 1: situação final do bloco de memória.
Endereço Valor Armazenado
00H 01H
01H 07H
02H 09H
03H 04H
04H 07H
A soma é 01H+07H+09H+04H+07H = 1CH, que, em decimal, é 28. Logo, a alternativa
correta é a letra (e).
Página 7 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
3. Assuntos relacionados: Arquitetura de Computadores, Modos de Endereçamento de Me-
mória,
Banca: Cesgranrio
Instituição: BR Distribuidora
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questão: 25
Qual o modo de endereçamento que utiliza ponteiro(s) para especificar a localização do(s)
operando(s) em uma instrução?
(a). Pilha
(b). Direto
(c). Imediato
(d). Registrador
(e). Indireto de registrador
Solução:
Os modos de endereçamento estão relacionados com a forma utilizada para especificar o va-
lor ou endereço de um operando de uma instrução. Em geral, as arquiteturas não oferecem
só um modo de endereçamento, mas sim um conjunto de modos.
Analisemos agora cada alternativa a fim de obter a resposta.
(A) ERRADA
A pilha é um bloco reservado de posições de memória, algumas vezes referida como uma fila
último-a-chegar primeiro-a-sair, onde elementos podem ser colocados ou removidos. Associ-
ado com a pilha está um apontador cujo valor é o endereço do topo da pilha (stack-pointer),
o qual é mantido num registrador auxiliar (SP). Assim, as referências a posições da pilha na
memória são na verdade endereços indiretos via registrador. Contudo, como o processador
tem a �noção� de manipulação de dados em uma pilha, isto é, nenhum endereço precisa ser
fornecido na instrução, pois as operações sempre se referem ao topo da pilha, dizemos que
se trata de um endereçamento implícito, o que invalida a alternativa.
(B) ERRADA
Nesta forma de endereçamento, o valor do campo operando indica o endereço do dado
na memória principal. Exemplo:
MOV R1, 70H
Após a execução da instrução, o registrador R1 armazenará o valor existente no endereço
de memória 70H. Requer, portanto, apenas um acesso à memória para determinar o valor
do operando. Sua limitação é fornecer um espaço de endereçamento limitado (tamanho do
operando).
Este modo de endereçamento é mais rápido que o modo indireto e mais lento que o modo
imediato.
Página 8 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
(C) ERRADA
Neste modo de endereçamento, o valor do operando é uma constante e faz parte do corpo
da instrução. Exemplo:
MVI R1,4
Após a execução desta instrução, o registrador R1 armazenará o valor 4. Note que não são
necessárias referências à memória para a busca do operando, pois o valor do operando está
na própria instrução. A desvantagem é que o tamanho do dado fica limitado ao número de
bits do operando (campo operando da instrução).
(D) ERRADA
Semelhante ao modo de endereçamento direto, no entanto se refere a um registrador e não
a uma posição de memória, isto é, o operando aponta para um registrador, o qual contém o
dado. Exemplo:
MOV R1,R2
Após a execução desta instrução, o registrador R1 armazenará o conteúdo de R2. Suas
vantagens são o pequeno tamanho do campo de endereço (economia de espaço de armaze-
namento de instrução) e a não necessidade de se acessar a memória (o acesso ao registrador
é muito mais rápido que o acesso à memória). A principal desvantagem reside no fato de
haver um pequeno número de registradores � se forem muitos os dados endereçados por
registrador, os registradores disponíveis podem não ser suficientes
(E) CORRETA
No modo de endereçamento indireto, o campo operando contém um endereço de memória
cujo conteúdo é o endereço do dado a ser operado. Portanto, há um duplo endereçamento.
O endereço intermediário é chamado ponteiro (pointer). Suponha que no endereço 30H (da
memória principal) esteja armazenado o valor 15H, assim,
MOV R1,(30H)
carregará o conteúdo do endereço 15H no registrado R1. Isto permite implementar estrutu-
ras de organização de dados mais complexas, mais sofisticadas, além de eliminar a limitação
de células endereçáveis. No entanto, requer maior quantidade de acessos à memória principal
para completar o ciclo de execução da instrução, acarretando que o tempo requerido para a
execução da instrução é maior.
Já no modo de endereçamento indireto via registrador, o operando aponta para um re-
gistrador, o qual contém um endereço de memória (ponteiro) para o dado. Suponhamos que
R2 armazene o valor 45H que representa um endereço de memória, assim:
MOV R1,(R2)
carregará o valor armazenado na posição de memória 45H no registrador R1. Isto representa
a economia de 1 (um) acesso à memória principal quando comparamos com o modo de
endereçamento indireto (puro).
Página 9 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
4. Assuntos relacionados: Arquitetura de Computadores,Memória Principal,
Banca: Cesgranrio
Instituição: Petrobras
Cargo: Analista de Sistemas - Infraestrutura
Ano: 2008
Questão: 47
Se um computador tem uma MP com disponibilidade de armazenar 216 bits e possui barra
de dados com tamanho de 16 bits, qual o tamanho mínimo do REM e do RDM? (Considere
que a barra de dado tem o tamanho de uma palavra)
(a). 8 e 12
(b). 8 e 16
(c). 12 e 8
(d). 12 e 12
(e). 12 e 16
Solução:
Memória é um termo genérico usado para designar as partes do computador ou dos dispo-
sitivos periféricos onde os dados e programas são armazenados. A memória do computador
pode ser dividida em duas categorias:
• principal: de acesso mais rápido, mas de capacidade mais restrita. Armazena in-
formações temporariamente durante um processamento realizado pela UCP (Unidade
Central de Processamento);
• secundária: de acesso mais lento, mas de capacidade bem maior. Armazena grande
conjunto de dados que a memória principal não suporta.
A comunicação entre MP (Memória Principal) e UCP usa dois registradores da UCP cha-
mados de REM (Registrador de Endereços de Memória) ou, em inglês, MAR (Memory
Address Register), bem o como o RDM (Registrador de Dados da Memória) ou, em inglês,
MBR (Memory Buffer Register).
O REM armazena temporariamente o endereço de acesso a uma posição de memória ao
se iniciar a operação de leitura ou escrita. Em seguida, o endereço é encaminhado à área
de controle da MP para decodificação e localização da célula desejada. Possui a mesma
quantidade de bits do barramento de endereços e deve ser suficiente para endereçar toda
a memória principal. Já o RDM armazena temporariamente a informação que está sendo
transferida da MP para a UCP (leitura) ou da UCP para MP (escrita). Possui a mesma
quantidade de bits do barramento de dados e deve ter espaço suficiente para armazenar, no
mínimo, uma palavra.
Já que o tamanho total da memória principal é de 216 bits e cada palavra possui 16 bits, pois
o tamanho da palavra é o mesmo da barra de dado, haverá, no total, 216/16 = 212 palavras
para serem endereçadas pelo REM. Logo, basta que o REM tenha 12 bits para realizar a
sua tarefa de endereçamento. O RDM deve possuir 16 bits, pois, em geral, possui o mesmo
tamanho do barramento de dados. Portanto, a alternativa correta é a letra (E).
Página 10 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
5. Assuntos relacionados: Arquitetura de Computadores, Modelo de von Neumann, Modos
de Endereçamento de Memória, Aritmética Computacional,
Banca: Cespe
Instituição: ANAC
Cargo: Analista Administrativo - Tecnologia da Informação
Ano: 2009
Questão: 31�35
O primeiro computador eletrônico e digital construído no mundo para emprego geral, de-
nominado ENIAC (electronic numerical integrator and computer), foi projetado por John
Mauchly e John P. Eckert, de 1943 a 1946. Daí em diante, a arquitetura dos computadores
tem mudado constantemente. Em relação aos componentes funcionais (hardware) de um
computador, julgue os itens a seguir.
31 Se um computador é de 16 bits e outro é de 32 bits, significa que esses computadores
adotam células de memória com tamanho de 16 e 32 bits, respectivamente.
32 Ao se projetar um computador sequencial, seguindo o modelo de von Neumann, é fun-
damental adotar um processador no qual o tamanho em bits do contador de instrução
seja igual ao tamanho do registrador de dados da memória.
33 Considerando que, em um computador, as instruções M e N possuam um código de
operação e um operando, que a instrução M acesse a memória principal no modo
indireto e a instrução N acesse a memória principal no modo base mais deslocamento,
é correto afirmar que a instrução N fará menos ciclo de memória que a instrução M
para completar o seu ciclo de instrução.
34 Para se representar o número decimal 524.288 em binário, são necessários 19 bits.
35 Na área de arquitetura de computadores, o espaço de endereçamento determina a ca-
pacidade de um processador acessar um número máximo de células da memória, então
um processador que manipula endereços de E bits é capaz de acessar, no máximo, E2
células de memória.
Solução:
31 ERRADO
Há várias formas de se medir a capacidade computacional de um computador. É
possível medir sua taxa de processamento em micro-instruções; quantidade de micro-
instruções processadas em paralelo � pipeline; quantidade de memória passível de ende-
reçamento; entre tantas outras. O comércio adotou a quantidade de bits da palavra do
processador como uma das medidas padrão, de forma a aumentar as vendas baseando-se
em números maiores. Assim, quando nos referenciamos a um computador pela quan-
tidade de bits � seja ela 16, 32 ou 64 � estamos tratando do tamanho de sua palavra,
ou seja, a quantidade de bits que seus registradores de dados armazenam.
A palavra é a unidade de dado que o processador trabalha por padrão. Todas as
tarefas executadas por um programa em alto-nível são traduzidas para instruções de
nível de máquina. Estas instruções, bem como os dados com que elas trabalham, são
convertidas para expressões numéricas de forma que o processador possa reconhecê-las
e executá-las e armazenadas na memória quando o programa é carregado.
Página 11 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Processadores de 16 bits buscam, a cada nova instrução, no mínimo
1
16 bits na memó-
ria principal para trazerem para seus registradores e executá-la. Os registradores desse
tipo de processador armazenam no máximo 16 bits. Entretanto, o projeto de arquite-
tura de um processador específico pode permitir que os registradores sejam acessados
em partes.
Por exemplo, os processadores X86, da Intel, possuíam instruções que faziam refe-
rência aos registradores de dados inteiros e outras que trabalhavam apenas com a parte
alta ou baixa dos mesmos registradores:
MOV @10, AX: mover o conteúdo da posição de memória @10 para o
registrador AX;
MOV @11, AL: mover o conteúdo da posição de memória @11 para o re-
gistrador AL, que é a parte baixa do registrador AX.
Repare que estas instruções prevêem quantidades de bits a serem buscadas na me-
mória diferentes. A primeira faz com que o processador busque, por exemplo, 16 bits
da memória. Essa busca não tem referência direta com o projeto de memória nem de
barramento! Se o processador estiver trabalhando com barramento de 8 bits (e tiver
suporte para isso, claro) ele mesmo se encarregará de realizar duas buscas no barra-
mento para conseguir realizar a instrução MOV @10, AX completamente, trazendo os
16 bits necessários (8 no primeiro acesso ao barramento; outros 8 no segundo).
Diante disso, concluímos que a classificação de quantidade de bits em nada se rela-
ciona com o projeto da memória e sim determina o tamanho dos registradores do
processador que o computador utiliza.
32 ERRADO
Para introduzir os conceitos envolvidos nesta questão, vamos relembrar as premissas
básicas das máquinas baseadas no modelo de von Neumann:
� tanto os dados quanto as instruções são armazenados em uma memória que é única
e permita leitura e escrita;
� o conteúdo da memória (dado ou instrução) é sempre endereçado pela sua posição
na memória;
� as instruções são executadas em sequência (exceto quando a sequencia é explicita-
mente alterada entre uma instrução e a seguinte).
Os processadores modernos baseados nas máquinas de von Neumann funcionam sob
um ciclo bem simples que se repete até a instrução de fim do programa (HALT). Veja
um exemplo na Figura 1.
Apesar do conceito básico da máquina de von Neumann prever uma memória única, os
processadores utilizam registradores internos para carregar a instrução e osoperandos
envolvidos antes de literalmente executar a instrução.
1
No caso de instruções maiores que 16 bits, geralmente as que possuem muitos operandos, o processador as
reconhece na primeira palavra e carrega o restante de seu código para outros registradores até que seja possível
executá-la.
Página 12 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Figura 1: funcionamento baseado em máquina de von Neumann.
Existem vários registradores envolvidos no controle de execução e na guarda temporária
dos operandos. A questão atual trata de 2 deles:
� o contador de instrução � IC (em inglês program Counter � PC) armazena o en-
dereço da próxima instrução a ser buscada na memória;
� o registrador de dados da memória, recebe os dados dos operandos que estão na
memória para que a instrução seja executada.
Como podemos perceber, é importante que o IC tenha o mesmo número de bits que o es-
paço de endereçamento deste processador. E mais: não há nenhum vínculo obrigatório
entre as quantidades de bits do espaço de endereçamento e da palavra do computador.
Logo, o contador de instrução não precisa ter relação alguma com o(s) registrador(es)
de dados.
Isto pode ser verificado até historicamente: bem no início da micro-informática, as
memórias principais eram muito caras, e por isso, escassas. Entretanto, a necessidade
de cálculos mais precisos tornava obrigatório o aumento da palavra dos novos proces-
sadores. Para viabilizar este incremento computacional sem aumentar muito os custos
dos processadores, os fabricantes decidiram por alterar apenas o tamanho da palavra do
processador e manter ou alterar de forma desproporcional o espaço de endereçamento.
Este é o caso inclusive dos processadores atuais. Temos máquinas com palavras de 64
bits que, no entanto, possuem espaço de endereçamento restrito a apenas 4 GB, o que
se traduz num espaço de endereçamento de apenas 33 bits.
33 CERTO
Para entendermos essa questão devemos, inicialmente, rever as formas de endereça-
mento de operandos pelas instruções dos processadores.
Na computação atual, os programas são desenvolvidos em linguagens de alto nível,
ou seja, aquelas que são facilmente entendidas pelos humanos. Estas linguagens pos-
suem estruturas de dados complexas e uma semântica poderosa, o que permite que um
simples comando gere o resultado esperado. Entretanto, os processadores são capazes
de interpretar apenas comandos simples e com poucos operandos. Para que um pro-
grama escrito em uma linguagem de alto nível seja executável por um processador de
propósito geral é necessário que esta seja traduzida para uma sequência de operações
(instruções) de processador. O mesmo ocorre com os dados, que são traduzidos de
forma a serem manipulados por essas operações.
As operações que o processador dispõe, como já explicado, são bastante simples, con-
sistindo em somas de 2 ou 3 operandos, troca de dados de uma posição de memória
para outra ou para registradores etc. A forma como essas operações se referem a seus
operandos é conhecida como modo de endereçamento de operandos. Para entendermos
Página 13 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
as diferenças entre os modos de endereçamento, precisamos conhecer o formato das
instruções.
Após a compilação do programa de auto nível, um código de máquina executável é
gerado. Esse código é uma sequência de instruções seguidas ou não de seus operan-
dos. Ao ser carregado na memória, o programa é alocado em uma determinada região
de forma contígua e sua primeira instrução é carregada no registrador de instrução �
RI (em inglês, instruction register � IR). Toda instrução terá, no mínimo, o tamanho
da palavra do processador em questão. Isso não quer dizer que sempre todos os seus
bits serão ativos, podendo haver operações que não utilizem todos os bits, assim como
outras que precisem de mais de uma palavra para fornecerem todas as informações
necessárias para sua execução.
OpCode Operando / end. operando / lixo (trailing bits)
Tabela 2: ilustração de estrutura de uma operação.
Na Tabela 2, vemos a estrutura de uma operação. O retângulo completo representa
uma palavra. A parte de OpCode é formada por n bits (n depende da arquitetura do
processador) é o identificador da operação que será executada. O restante dos bits da
palavra conterá, dependendo da operação que será executada, o operando em si, um
endereço onde encontrá-lo � seja em outro endereço de memória ou outro registrador -
ou simplesmente lixo que não será utilizado na execução.
Entendida essa estrutura, podemos estudar as formas de endereçamento em si:
� IMEDIATO: O valor a ser utilizado pela operação vem junto com a mesma. Os
bits após o OpCode contém o valor do operando;
� DIRETO: Um endereço de memória onde o valor do operando está vem definido
nos bits após o OpCode. Para executar a operação o processador precisa ir à
memória para buscar o valor contido na posição indicada nos trailing bits;
� INDIRETO: Os trailing bits indicam uma posição de memória. Nesta posição
está guardada outra posição de memória que realmente contém o valor a ser uti-
lizado na operação. A diferença entre este método e o direto é que o espaço de
endereçamento deste é igual a 2n, onde n é o tamanho da palavra. Isso se deve
ao fato do endereço real do operando estar guardado na memória em uma posição
inteira, sem descontar os bits do OpCode, como ocorre no modo direto. Neste
modo, o processador precisa ir 2 vezes à memória antes de executar a operação:
na primeira, busca o endereço do operando; na segunda, o operando em si;
� REGISTRADOR: Neste modo de endereçamento os bits finais da operação indi-
cam um outro registrador (geralmente de uso geral) do processador onde o valor do
operando está armazenado. A operação é feita diretamente, sem acesso à memória,
pois os dados já estão carregados nos registradores envolvidos;
� REGISTRADOR INDIRETO: os trailing bits indicam um registrador. Neste,
há um endereço de memória principal onde está de fato o valor do operando. Como
o endereço está em um registrador, apenas um acesso é feito à memória para se
obter o valor do operando e executar a instrução;
� DESLOCAMENTO (ou INDEXADO): os trailing bits trazem um desloca-
mento em relação a um endereço pré-carregado em algum dos registradores do
processador. Há instruções que utilizam mecanismos default de indexação, onde
a base (registrador que contém o endereço de início do deslocamento) é sempre
Página 14 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
obtida do mesmo registrador, sendo implícita na operação e outras em que a base
é explicitamente informada. Assim, o endereço onde o valor do operando está
é calculado no próprio processador, e apenas um acesso é feito à memória, para
buscar o valor do operando;
� PILHA: os operandos são implicitamente pegos da região de pilha do programa.
Cada operando necessitará de um acesso á memória para permitir a execução da
instrução.
Como foi sinalizado nos métodos acima, o método indireto necessita de 2 acessos à me-
mória contra apenas 1 do indexado. Assim, chegamos à conclusão de que a afirmativa
da questão é verdadeira.
34 ERRADO
Há duas formas de resolver esta questão. A primeira é fazer a aproximação pelos
limites de representação a cada aumento de 1 dígito na base 2 até chegarmos a um
número maior do que o que queremos representar. Nesse ponto, teremos a quantidade
necessária de bits para representá-lo. A segunda é mais taxativa e baseia-se em realizar
a transformação da base 10 para a base 2 utilizando fatorações sucessivas do número e
verificarquantos dígitos são necessários na base 2 para representá-lo.
A primeira abordagem é a mais indicada para empregarmos numa prova de concurso,
onde o tempo é escasso. Ela funciona da seguinte maneira:
� pegamos a menor representação na base 2, ou seja, 1 bit, e verificamos qual o maior
número que podemos escrever com ela. Enquanto esse número for menor ou igual
do que o que pretendemos escrever:
∗ aumentamos a representação em 1 bit.
O número obtido dos passos acima terá a quantidade de bits necessária para escrevermos
o número em questão. Esse é o processo padrão. Entretanto, podemos pegar alguns
atalhos para diminuir as contas que teremos que fazer. Por exemplo, sabemos que 210
= 1024. Podemos iniciar nossos cálculos a partir daí, visto que esse número é menor
do que o pesquisado, no caso, 524.288. Seguindo os cálculos:
� 211 = 2048
� 212 = 4096
� 213 = 8192
� 214 = 16384
� 215 = 32768
� 216 = 65536
� 217 = 131072
� 218 = 262144
� 219 = 524288
Pelas contas acima, vemos que são necessários 20 bits para escrevermos o número de-
sejado. É importante entender que, apesar de 19 bits permitirem expressar 524288
números diferentes, essa numeração inicia com o zero. Portanto, o maior número que
podemos escrever com 19 bits é (524288 � 1) e o menor, 0.
A segunda abordagem é mais demorada e, como envolve muitos cálculos, é mais pas-
sível de erros. Não é recomendada para se fazer durante uma prova. Entretanto, para
Página 15 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
entendermos o raciocínio, a apresentaremos. Esse outro método também é conhecido
como divisões sucessivas, e consiste em dividirmos o número original pela base de des-
tino, no caso 2, sucessivamente, até obtermos um quociente menor do que a base. Esse
último resultado também será dividido uma última vez. Os restos das divisões, lidos
da última divisão para a primeira, darão a representação do número na base de destino.
Vejamos no exemplo como isso é feito:
Figura 2: exemplo de divisões sucessivas.
Feita a leitura da forma correta, teremos que a representação de 524288 na base 2 é
10000000000000000000. Este número possui 20 bits. Logo, a quantidade de bits neces-
sária para escrevê-lo, obviamente, é 20.
35 ERRADO
O espaço de endereçamento, conforme o enunciado informa, é a quantidade de cé-
lulas de memória que o processador é capaz de acessar. Esse limite é calculado baseado
na quantidade de linhas de endereçamento disponíveis. Cada linha corresponde a 1 bit
de endereçamento.
A base 2 é adotada nos computadores por serem equipamentos eletrônicos. Eles utili-
zam a variação de voltagem para representar os números. Porém, para evitar problemas
com o sinal recebido das fornecedoras de energia elétrica, foi escolhido utilizar apenas
duas representações possíveis: componente carregado, quando sua voltagem é maior
do que zero � representado pelo bit com valor 1; componente descarregado, quando
sua voltagem é nula � representado pelo bit com valor 0. Assim, a base que as CPUs
utilizam é 2.
Quando o processador precisa acessar um determinado endereço de memória, ele �es-
creve� nas linhas de endereçamento a posição que deseja acessar. Essa posição é nu-
mérica, e é traduzida para a base 2. O número na base 2 é utilizado para carregar ou
descarregar cada uma das linhas, indicando para a placa-mãe qual a célula que se deseja.
Pela natureza da base 2, sabemos que cada algarismo pode representar apenas 2 nú-
meros: 0 ou 1. Além disso, é preciso lembrar como funciona a concatenação de valores
Página 16 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
da base 10 para entendermos o sistema de contagem na base 2 por analogia.
Na base 10, temos:
Ou seja, a cada posição para a esquerda que se ande, está se representado um múltiplo
da base elevado à potência relativa à posição ocupada pelo algarismo � 1.
Também conclui-se da observação da figura acima que conseguimos representar 10N
números na base 10 quando N for o limite de algarismos disponíveis. Por exemplo, se
utilizarmos 3 posições para representação, XXX, a maior quantidade de números que
podemos representar é 1000 ou 103, onde 3 é a quantidade de dígitos disponíveis para
representação e 10 é a base em que estamos trabalhando.
Utilizando os conceitos acima para resolver a questão, vemos que o processador mencio-
nado possui E linhas de endereçamento. Isso quer dizer que este processador possui N =
E bits (algarismos) disponíveis para �escrevermos� a posição da memória que queremos
acessar. Logo, a quantidade máxima de posições que serão acessíveis é 2E .
Página 17 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
6. Assuntos relacionados: Arquitetura de Computadores,
Banca: FCC
Instituição: MPU
Cargo: Analista de Desenvolvimento de Sistemas
Ano: 2007
Questão: 37
A família de instruções de desvio, JUMP ou BRANCH, no repertório de uma máquina,
pertence à categoria de instruções
(a). condicionais.
(b). de aritmética/lógica.
(c). de transferência de dados.
(d). imperativas.
(e). de controle.
Solução:
O conjunto de instruções (instruction set) de um computador define quais são as instruções
que o processador é capaz de decodificar e executar. Cada processador tem definido o seu
conjunto de instruções.
As instruções utilizadas pela maioria das arquiteturas de computadores podem ser clas-
sificadas da seguinte maneira:
• Aritmético e Lógico: aritmética de inteiros e operações lógicas: ADD, SUB, AND,
OR;
• Transferência de dados: transferência de dados entre memória e registradores: Load,
Store;
• Controle: branchs, jumps, chamada e retorno de procedimento, traps;
• Sistema: chamadas do sistema operacional, instruções de gerenciamento da memória
virtual;
• Ponto flutuante: operações de ponto flutuante: ADD, MULTIPLY;
• Decimal: soma e multiplicação decimal, conversão de decimais para caracteres;
• String: comparação, busca, cópias de strings;
• Gráfico: operações de pixel, de compressão e de descompressão.
Concluímos, então, que a alternativa a ser marcada é a letra (E).
Analisando esse conjunto de instruções mais a fundo, sabemos que as instruções de con-
trole ou fluxo de controle podem se distinguir em quatro tipos diferentes:
• branch (condicional);
• jump (incondicional);
• chamada de procedimentos;
• retorno de procedimentos.
O endereço de destino de uma instrução de controle de fluxo sempre deve ser especificado. Na
maioria dos casos, o destino é especificado explicitamente na instrução. A exceção principal
é o retorno de um procedimento, pois o retorno não é conhecido em tempo de compilação.
Página 18 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
7. Assuntos relacionados: Arquitetura de Processadores, Arquitetura RISC, Arquitetura
CISC, Pipelining, Endereçamento de Memória,
Banca: Cesgranrio
Instituição: IBGE
Cargo: Analista de Sistemas - Suporte
Ano: 2010
Questão: 56
Durante uma apresentação das arquiteturas RISC e CISC, um analista fez as afirmativas a
seguir.
I � O pipelining é uma técnica utilizada em arquiteturas RISC pela qual várias instruções
são sobrepostas na execução, tirando proveito do paralelismo que existe entre as ações
necessárias para executar uma instrução.
II � Em uma arquitetura RISC, todas as operações sobre dados se aplicam a dados em
registradores, sendo que as únicas operações que afetam a memória são as operações
de carga e armazenamento que movem dados da memória para um registrador ou de
um registrador para a memória, respectivamente.
III � A arquitetura MIPS é uma arquitetura CISCque apresenta uma série de registradores
de uso geral, além de ser caracterizada por apresentar uma operação elementar por ciclo
de máquina.
Está(ão) correta(s) a(s) afirmativa(s)
(a). I, apenas.
(b). II, apenas.
(c). III, apenas.
(d). I e II, apenas.
(e). I, II e III.
Solução:
Sobre o Item I
O pipelining é uma técnica em que o hardware processa mais de uma instrução de cada
vez. Ele não espera o término de uma instrução para executar outra. Em uma máquina
CISC (Complex Instruction Set Computer - Computador com um Conjunto Complexo de
Instruções) típica, temos, basicamente, quatro fases para a execução: busca, decodificação,
execução e escrita. Em uma máquina RISC (Reduced Instruction Set Computer - Computa-
dor com um Conjunto Reduzido de Instruções), temos as mesmas fases, só que executadas
em paralelo, de maneira idêntica a uma linha de montagem industrial. Numa linha de mon-
tagem, a produção é dividida em uma sequência de operações onde cada uma delas pode
ser executada simultaneamente por diferentes unidades de produção. Quando uma unidade
de produção termina a sua tarefa, ela imediatamente envia o resultado do seu trabalho para
a próxima unidade na estrutura da linha de montagem e recebe o resultado da unidade
anterior para iniciar uma nova tarefa. Este processo torna possível iniciar a produção de um
novo produto antes do término da produção do produto atual. Isto é a essência do �pipeline�.
Suponha que a execução de uma instrução envolva 4 etapas:
1. busca da instrução (Fetch);
Página 19 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
2. decodificação da instrução (Decode);
3. execução da instrução (Execute);
4. escrita de operando (Writeback).
Cada uma dessas etapas é executada por circuitos próprios, numa espécie de linha de mon-
tagem (pipelining). A Tabela 3 exemplifica o funcionamento deste pipelining hipotético.
Estágio C1 C2 C3 C4 C5 C6
Busca da instrução I1 I2 I3 I4 I5 I6
Decodificação da instrução I1 I2 I3 I4 I5
Execução da instrução I1 I2 I3 I4
Escrita do operando I1 I2 I3
Tabela 3: pipelining.
No ciclo 1 (C1), a instrução 1 (I1) é buscada. No ciclo 2 (C2), a instrução 2 (I2) é buscada
e I1 é decodificada. No ciclo 3 (C3), a instrução 3 (I3) é buscada, I2 é decodificada e I1 é
executada. No ciclo 4 (C4), a instrução 4 (I4) é buscada, I3 é decodificada, e I2 é executada
e I1 escreve os valores do operando no Banco de Registrador. Note que, a partir do ciclo 4,
teremos um throughput igual a uma instrução por ciclo.
Portanto, o item I está correto.
Sobre o Item II
A maioria das instruções RISC envolve endereçamento por registrador, sem acesso à memó-
ria. Portanto as instruções são executadas em um ciclo. Contudo, nos deparamos com a
seguinte pergunta: como os valores são carregados nos registradores ou descarregados dos
mesmos? A reposta é simples, há duas instruções que acessam a memória:
• Load: carrega o dado da memória para o registrador;
• Store: armazena o dado do registrador na memória.
Enquanto que nas arquiteturas RISC a regra é a alocação a registradores, as arquiteturas
CISC, por disporem de um menor número de registradores, alocam variáveis escalares em
posições de memória. Devido a isto, há uma grande riqueza na especificação de modos de
endereçamento em processadores CISC:
• imediato;
• direto;
• indireto;
• registrador;
• indireto via registrador;
• deslocamento;
• pilha;
Portanto, este item também está correto.
Página 20 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Sobre o Item III
MIPS, acrônimo para Microprocessor without Interlocked Pipeline Stages (Microprocessador
sem estágios interligados de pipeline), é uma arquitetura de processadores RISC desenvol-
vida pela MIPS Computer Systems em 1984. O conceito básico era aumentar o desempenho
com o uso profundo de pipelines (leia-se, maior número de estágios) para as instruções.
Quando o MIPS estava sendo desenvolvido, quatro regras foram definidas para guiar o
projeto. Elas são a filosofia do MIPS:
• a simplicidade favorece a regularidade;
• o menor é (quase sempre) mais rápido;
• um bom projeto demanda compromissos;
• O caso comum deve ser mais rápido (regra baseada na �Lei de Amdahl�).
Pela sua elegância e simplicidade, processadores MIPS são bastante usados em cursos de
arquiteturas de muitas universidades. Ele é considerado um processador bastante didático.
Portanto, o item está errado.
Concluímos, assim, que a alternativa D está correta.
Página 21 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
8. Assuntos relacionados: Arquitetura de Computadores, Tipos de Memória, Memória Vir-
tual,
Banca: Cesgranrio
Instituição: IBGE
Cargo: Analista de Sistemas - Suporte
Ano: 2010
Questão: 57
Em arquiteturas RISC, a figura acima é utilizada para representar um(a)
(a). ALU.
(b). Registrador.
(c). Memória.
(d). LRU.
(e). TLB.
Solução:
(A) CORRETA
A Figura em V acima é adotada em livros de Arquiteturas de Computador para repre-
sentar a ULA (Unidade Lógica Aritmética) ou, em inglês, ALU (Aritmetc Logical Unit).
Neste hardware são realizadas operação lógicas bit a bit (AND, OR, XOR, NOT), operações
de deslocamento de bit à esquerda (�) e à direita (�), comparações (<, >, =), além, é claro,
de operações aritméticas com números inteiros (soma, subtração, multiplicação e divisão).
(B) ERRADA
Um processador contém frequentemente vários tipos de registradores, que podem ser classi-
ficados de acordo com o conteúdo ou de acordo com as instruções que operam sobre eles:
• Registradores de dados: são usados para armazenar valores numéricos (inteiro ou
ponto flutuante);
• Registradores de endereços: armazenam endereços e são usados por instruções que
acessam diretamente a memória;
• Registradores condicionais: armazenam valores que são utilizados para determinar
se alguma instrução deve ou não ser executada;
• Registradores de uso geral: podem armazenar ambos dados e endereços;
• Registradores de ponto flutuante;
• Registradores de constante: armazenam valores que só podem serem lidos, como
0, 1, PI;
• Registradores de vetor: armazena dados para processamento vetorial realizado por
instruções SIMD (Single Instruction, Multiple Data - Única Instrução, Múltiplos Da-
dos);
Página 22 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
• Registradores de propósito: armazenam o estado do programa; incluindo o con-
tador do programa (também chamado de ponteiro de instrução), ponteiro para pilha
entre outros.
A título de curiosidade, saiba que todo processador possui, pelo menos, um Banco de Re-
gistrador (Register File) que contém um determinado número de registradores (depende da
arquitetura) e é utilizado para armazenar valores que são pertinentes ao estado corrente de
execução do programa. Trata-se de uma memória muita rápida e cara, do tipo SRAM (Static
Random Access Memory), que as instruções utilizam para ler e/ou escrever um determinado
conteúdo (são os registradores de dados mencionados acima).
Afinal, por que utilizar um Banco de Registrador? Bom, sabemos que uma propriedade co-
mum dos programas é a localidade: os mesmos valores são repetidamente acessados; manter
estes valores frequentemente utilizados em registradores melhora o desempenho de execução
do programa.
A Tabela 4 mostra o número de registradores de algumas arquiteturas:
Arquitetura Registrados Inteiros Registrados de Ponto Flutuante
X86 8 8
x86-64 16 16
Itanium4 128 128
Power 32 32
Tabela 4: registradores em arquiteturas comerciais.
O tamanho do registradordepende da arquitetura (pode possuir, 16, 32 e até 64 bits) e é
representado por um retângulo na literatura.
(C) ERRADA
Memória de acesso aleatório � RAM (do inglês Random Access Memory) é um tipo de
memória que permite a leitura e a escrita, utilizada como memória primária em sistemas
eletrônicos digitais. Recebe este nome por permitir que qualquer posição possa ser acessada
a qualquer momento (diferentemente do acesso sequencial presente em alguns dispositivos
de armazenamento). Trata-se de uma memória volátil, isto é, todo o seu conteúdo é perdido
quando a alimentação da memória é desligada.
Na realidade, existem outras memórias de acesso aleatório nos computadores, inclusive não
voláteis (memórias ROMs, por exemplo), portanto, é importante ter o conhecimento de que
o nome RAM é apenas uma popularização do nome da memória principal dos computadores.
Dentro das memórias RAM existem dois subtipos de memória:
• DRAM (Dynamic RAM ou RAM Dinâmica): necessitam que os seus dados sejam
frequentemente recarregados (atualizados) por uma bateria, caso contrário, a células
de memória �perdem� o estado;
• SRAM (Static RAM ou RAM Estática): aquelas que não necessitam de recargada.
A capacidade de uma memória é medida em Bytes, Kilobytes (1 KB = 1024 ou 210 Bytes),
Megabytes (1 MB = 1024 KB ou 220 Bytes) ou Gigabytes (1 GB = 1024 MB ou 230 Bytes).
Página 23 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
A velocidade de funcionamento de uma memória é medida em Hz ou MHz. Este valor está
relacionado com a quantidade de blocos de dados que podem ser transferidos durante um
segundo. Existem, no entanto, algumas memórias RAM que podem efetuar duas trans-
ferências de dados no mesmo ciclo de clock (as memórias DDRs têm esta característica),
duplicando a taxa de transferência de informação para a mesma frequência de trabalho.
Além disso, a colocação das memórias em paralelo (propriedade da arquitetura de certos
sistemas) permite multiplicar a velocidade aparente da memória.
(D) ERRADA
Na verdade, LRU (Least Recently Used � Menos Recentemente Utilizado) é um algoritmo
de substituição de blocos muito adotado pelos processadores do mercado. Com bem sabe-
mos, todo processador possui uma hierarquia de memória, composta por memórias caches
de nível 1 (L1), nível 2 (L2) e, recentemente, nível 3 (L3). Por mais que a capacidade de
armazenamento de tais caches aumente ao longo dos anos, sempre existirá uma demanda
muita maior por dados (programas maiores, jogos mais �pesados�, programas executando
concorrentemente, isto é, disputando recursos). Em vista disso, a memória cache tem que
escolher o bloco de dados que deverá permanecer na mesma.
Considere uma cache L1 que possua apenas uma linha (um set) e possua dois blocos por
linha (cache com associatividade igual a 2, ou 2-way), onde cada bloco possui um campo
que armazena o instante (ciclo de clock) em que foi acessado (requisitado) pelo processador.
Suponha que estes dois blocos estejam �ocupados� com dados válidos e que um deles acabou
de ser requisitado (leitura ou escrita) pelo processador e que o outro foi acessado há muitos
ciclos atrás. Num instante posterior, este mesmo processador passa a requerer uma dado
que não se encontra na cache (dizemos que ocorreu um miss), forçando-o a buscar o dado
nos níveis mais baixos da hierarquia de memória. Quando o bloco que contém o dado de
interesse é recuperado, o mesmo deve ser inserido na cache L1, para tanto um dos dois blocos
existentes deverá ser expulso (evicted). É neste instante que o algoritmo LRU entra em ação.
O algoritmo LRU baseia-se no princípio da localidade temporal para escolher o bloco que
deve ser despeja da cache: uma dado que foi acessado recentemente tende a ser acessado
novamente num futuro próximo; e mantendo este dado na cache melhorará o desempenho
do programa. Resumindo, o algoritmo LRU despejará o bloco que foi menos recentemente
utilizado (acessado).
(E) ERRADA
Como sabemos, a memória principal disponível em um computador é, em geral, bem menor
do que o tamanho máximo de memória permitido pelo processador. Para contornar esta li-
mitação, foi criado o sistema de memória virtual que permite a execução de programas cujas
exigências quanto ao tamanho da memória sejam maiores do que a capacidade de memória
instalada no sistema.
Em um sistema sem memória virtual, o endereço gerado pelo programa em execução é
o próprio endereço usado para acessar a memória principal. O mesmo não acontece em um
sistema com memória virtual. O endereço gerado pelo programa, ou endereço virtual, é dife-
rente do endereço real (também chamado de endereço físico) usado para acessar a memória
principal.
Página 24 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Sob o ponto de vista de um programa, a memória disponível é aquela representada pelo
espaço de endereçamento virtual. O espaço de endereçamento virtual visto e utilizado pelo
programa pode ser bem maior do que o espaço de endereçamento real. Efetivamente re-
tirando do programa as limitações impostas pela capacidade da memória física de fato
existente no sistema. É importante perceber que o espaço de endereçamento virtual é uma
abstração. Embora sob o ponto de vista do programa as instruções e dados estejam armaze-
nados dentro do espaço de endereçamento virtual na realidade eles continuam armazenados
na memória principal, representada pelo espaço de endereçamento real.
Esta distinção entre endereços e espaços de endereçamento exige um mecanismo que faça a
correspondência entre o endereço virtual gerado pelo programa e o endereço real que é usado
para acessar a memória principal. Além disso, a técnica de memória virtual permite que as
instruções e os dados do programa que se encontram no espaço virtual, não estejam presentes
na memória principal no momento em que são referenciados. Assim, além do mapeamento
anteriormente mencionado, é necessário um mecanismo para o carregamento automático na
memória principal das instruções e dados que são referenciados pelo programa dentro da sua
memória virtual e que não se encontram presentes na memória física.
Para realizar o mapeamento, utiliza-se uma tabela de mapeamento localizada na memó-
ria principal. A tabela de mapeamento permanece na memória principal durante a execu-
ção do programa. Ao receber um endereço virtual, a MMU (Memory Management Unit
� Unidade de Gerenciamento de Memória) usa este endereço para indexar a tabela de ma-
peamento. A entrada indexada contém o endereço físico correspondente ao endereço virtual.
Na realidade, o mapeamento não é feito no nível de cada locação de memória, pois isto
exigiria uma tabela de mapeamento com um número de entradas igual ao tamanho do es-
paço de endereçamento virtual. Para manter um tamanho de tabela aceitável o mapeamento
é feito no nível de blocos (o espaço de endereçamento virtual é logicamente dividido em blo-
cos ou páginas, que são mapeados para o espaço de endereçamento físico pela MMU).
Observe que neste mecanismo de mapeamento, para cada referência à memória realizada
pelo programa é necessário um acesso adicional para consultar a tabela de mapeamento.
Neste esquema o número de acessos à memória principal durante a execução de um pro-
grama seria duplicado, comprometendo seriamente o desempenho. Para solucionar este
problema, a MMU possui internamente uma pequena memória, denominada TLB (Trans-
lation Lookaside Buffer). A TLB age como uma memória cache (na verdade é mais rápida
do que as caches convencionais), armazenando os pares (bits de mais alta ordem do ende-
reço virtual, bits de mais alta ordem do endereço físico) que foram usados nos acessos maisrecentes. Note que os bits de mais baixa ordem (page offset) são preservados.
Uma operação de mapeamento com a TLB ocorre, então, da seguinte forma. A MMU
�procura� os bits de mais alta ordem do endereço virtual nas entradas da TLB. Caso acon-
teça um TLB hit (acerto), a MMU obtém os bits de mais alta ordem do endereço físico
correspondente a partir da TLB. Neste caso, o mapeamento não acrescenta nenhum retardo
significativo ao acesso. Caso aconteça um TLB miss (falta), a MMU consulta a tabela de
mapeamento na memória para realizar o mapeamento, armazenando, ao final, o par (bits de
mais alta ordem do endereço virtual, bits de mais alta ordem do endereço físico) na TLB. Na
prática, a maioria dos mapeamentos é satisfeita pela TLB. Isto acontece devido ao princípio
da localidade temporal e espacial, e cada mapeamento poderá ser completado rapidamente.
Página 25 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
9. Assuntos relacionados: Arquitetura de Computadores, Arquitetura RISC, Arquitetura
CISC, Pipelining,
Banca: ESAF
Instituição: Superintendência de Seguros Privados (SUSEP)
Cargo: Analista Técnico da SUSEP - Tecnologia da Informação
Ano: 2010
Questão: 12
Em uma Arquitetura RISC
(a). há poucos registradores.
(b). há pouco uso da técnica pipelining.
(c). as instruções possuem diversos formatos.
(d). as instruções são realizadas por microcódigo.
(e). as instruções utilizam poucos ciclos de máquina.
Solução:
Arquiteturas de computadores de conjunto de instruções reduzidos (RISC) possuem as se-
guintes características principais:
• todas as operações em dados são aplicadas a dados em registradores e, normalmente,
mudam o estado de todo o registrador;
• as únicas instruções que alteram a memória são instruções de load e store, que mo-
vem os dados da memória para um registrador e de um registrador para a memória,
respectivamente;
• há poucos formatos de instruções e todas as instruções tipicamente possuem o mesmo
tamanho. O código que identifica as operações, opcode costuma possuir o mesmo
tamanho, o que simplifica a etapa de decodificação da instrução.
Uma consequência dessa característica é que a implementação de pipelining é simplificada
drasticamente, um dos motivos pelos quais essa arquitetura foi projetada dessa forma
2
.
Além disso, por possuir uma lógica mais simples, menos transistores serão usados para
implementá-la, permitindo, originalmente, que o número de registradores e o paralelismo
interno dos processadores fosse aumentado. Outra característica das arquiteturas RISC é
que, como suas instruções realizam pouco trabalho, as instruções costumam executar em
poucos ciclos de máquina, normalmente em um ciclo de memória.
Arquiteturas CISC, predecessoras das arquiteturas RISC, possuem a filosofia de que de-
vem existir instruções poderosas e fáceis de usar, movidos pelo fato de que, no início da
evolução da computação, os projetos de hardware eram mais maduros que os projetos de
compiladores.
Conhecendo um pouco mais sobre as características da arquitetura RISC, podemos discutir
as alternativas desta questão.
2
Computer Architecture: A quantitative approach, 4th edition, John L. Hennessy & David A. Patterson.
Página 26 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
A) INCORRETA
Como vimos nas características básicas de arquiteturas RISC, é possível aumentar o nú-
mero de registradores quando comparadas a arquiteturas CISC. Considere, por exemplo, as
arquiteturas MIPS e do 80386: Enquanto o 80386, arquitetura CISC, possui apenas oito re-
gistradores de propósito geral, o MIPS, arquitetura RISC, possui trinta e dois registradores
de propósito geral. Assim, essa alternativa é incorreta.
B) INCORRETA
Como discutido acima, a facilidade de uso de pipelines é uma característica das arquiteturas
RISC. O pipelining é facilitado por que, como as instruções são simples e, normalmente,
com funções ortogonais, há uma separação clara entre cada estágio das instruções, o que
facilita a criação de pipelines. Portanto, essa alternativa é incorreta.
C) INCORRETA
Conforme previamente discutido, o formato das instruções de uma arquitetura RISC cos-
tuma ser regular. Considere, por exemplo, a arquitetura MIPS I. Nela, há três tipos de
instruções: R, I e J. Todas iniciam com um código de identificação da operação, opcode, de
6 bits. Além do opcode, as instruções do tipo J especificam um endereço de 26 bits para
salto para outra posição de memória. As instruções do tipo I, usadas para representar ins-
truções de transferência de dados, especificam dois registradores e um valor de endereço de
16 bits. Esse endereço permite escolher qualquer palavra de memória dentro da faixa entre
o endereço constante no registrador-base (campo rs da instrução de tipo I). Já as instruções
de tipo R, onde R significa que essas instruções operam sobre registradores, possuem cinco
campos além do opcode:
• rs: o registrador contendo o primeiro operando;
• rt: o registrador contendo o segundo operando;
• rd: o registrador que armazena o resultado da operação;
• shamt: quantidade de bits que devem ser deslocados;
• funct: uma variação específica da operação apontada no campo de opcode.
A Tabela 5 exibe um sumário das instruções do MIPS. O aspecto importante aqui é que nessa
arquitetura todas as instruções possuem 32 bits. Quando contrastada com a arquitetura do
80386, que possui instruções com tamanho variando de um a dezessete bytes, vemos que há
diferença de formatos entre arquiteturas RISC e CISC. No entanto, as arquiteturas RISC
tendem a possuir menos formatos de instruções que arquiteturas CISC.
Tipo Formato (bits) do mais significativo ao menos significativo
R opcode (6) rs (5) rt (5) rd (5) shamt (5) funct (6)
I opcode (6) rs (5) rt (5) imediato (16)
J opcode (6) endereço (26)
Tabela 5: sumário das instruções do MIPS.
Página 27 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
D) INCORRETA
Microcódigo é uma camada de instruções de hardware usadas na implementação de ins-
truções de mais alto nível. As instruções de microcódigo são chamadas micro instruções. O
microcódigo costuma residir em uma memória especializada de alto desempenho e, quando
instruções complexas são enviadas ao processador, elas são divididas em micro instruções
que as implementam. Com o uso de microcódigo, o desenvolvimento da lógica de controle
do computador se torna mais simples, já que é possível desenvolver hardware especializado
para implementar as micro instruções e construir as instruções mais complexas em cima
dessas.
O uso de microcódigo não é inerente ao desenvolvimento de processadores RISC (ou CISC).
E, por isso, essa alternativa é incorreta. No entanto, todos os processadores, desde 1995,
que implementam a IA-32 (x86) fazem uso dessa técnica em seus projetos.
E) CORRETA
Conforme apresentado na discussão sobre arquiteturas RISC, essa é, realmente, uma carac-
terística dessas arquiteturas: com a redução da complexidade das instruções, elas executam
em poucos ciclos de máquina. Sendo esta alternativa considerada correta.
Página 28 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
10. Assuntos relacionados: Sistemas de Enumeração,
Banca: FCC
Instituição: MPU
Cargo: Analista de Desenvolvimento de Sistemas
Ano: 2007
Questão: 31
As representações de números inteiros, positivos e negativos na notação de complemento de
dois, bem como os positivos e negativos na notação de excesso, têm os bits de sinal com os
respectivos valores:
(a). 0, 1, 0 e 1
(b). 1, 0, 0 e 1
(c). 0,1, 1 e 0
(d). 1, 0, 1 e 0
(e). 0, 0, 1 e 1
Solução:
As notações de complemento de dois e de excesso são as mais conhecidas para a representa-
ção de números inteiros. Entretanto, a notação de complemento de dois é mais largamente
utilizada na prática.
Na notação de complemento de dois, os valores positivos são formados partindo de uma
cadeia de 0s e então contando em binário até que o padrão seja formado por um 0 seguido
de 1s, formando os números 0, 1, 2... nessa ordem. Já os números negativos, são formados
partindo de uma cadeia de 1s e contando em binário, em ordem decrescente, até que o pa-
drão seja formado de um 1 seguido de 0s, formando os números -1, -2, -3... nessa ordem.
Nesta notação, o bit mais à esquerda do padrão indica o sinal do valor representado. Esse
bit é mais conhecido como bit de sinal. Ou seja, na notação de complemento de dois, o
bit de sinal dos números positivos é 0 e dos números negativos é 1.
Na notação de excesso, o valor zero é representado por um 1 seguido de 0s. Os padrões
que seguem são representados para representar os números positivos 1, 2, 3...; os que prece-
dem são utilizados para representar os números negativos -1, -2, -3... Note que os números
positivos são representados começando com 1 e os números negativos são representados co-
meçando com 0.
Na Tabela 6, um quadro comparativo das notações de complemento de dois e de excesso
para melhor entendimento de como são representados os números inteiros. Note que a única
diferença é o bit de sinal.
Já podemos concluir com o que foi apresentado e de acordo com a Tabela 6 que a resposta
a ser marcada é a letra C.
Página 29 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Valor Complemento de dois Excesso
7 0111 1111
6 0110 1110
5 0101 1101
4 0100 1100
3 0011 1011
2 0010 1010
1 0001 1001
0 0000 1000
-1 1111 0111
-2 1110 0110
-3 1101 0101
-4 1100 0100
-5 1011 0011
-6 1010 0010
-7 1001 0001
-8 1000 0000
Tabela 6: notações dos números inteiros.
Página 30 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
11. Assuntos relacionados: Sistemas de Enumeração,
Banca: FCC
Instituição: MPU
Cargo: Analista de Desenvolvimento de Sistemas
Ano: 2007
Questão: 32
O resultado da operação lógica �10101011 XOR 11101100� será:
(a). 10111000
(b). 01000111
(c). 10010111
(d). 11101111
(e). 10101000
Solução:
A operação XOR é também conhecida como ou-exclusivo ou disjunção-exclusiva. A disjun-
ção exclusiva de um par de proposições p e q, deve significar que p é verdadeiro ou que q é
verdadeiro, mas não ambos. A Tabela 7 é a tabela verdade para a operação XOR.
P Q P XOR Q
V V F
V F V
F V V
F F F
Tabela 7: tabela verdade da operação XOR.
O resultado da operação é feito bit a bit, onde 1 indica verdadeiro é 0 indica falso. Por
exemplo, o primeiro bit do primeiro operando (10101011) é 1 e o primeiro bit do segundo
operando (11101100) também é 1, logo, pela tabela verdade, concluímos que o primeiro bit
do resultado deve ser 0(falso). A operação é feita entre os segundos bits de cada operando
e assim por diante. O resultado final será 01000111, tornando a letra B, a alternativa a ser
marcada.
Página 31 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
12. Assuntos relacionados: Assuntos relacionados: Sistemas de Enumeração,
Banca: FCC
Instituição: MPU
Cargo: Analista de Desenvolvimento de Sistemas
Ano: 2007
Questão: 33
O tipo de dados float refere-se também aos dados do tipo
(a). caractere.
(b). inteiro.
(c). booleano.
(d). real.
(e). local.
Solução:
A forma de representação de números reais mais utilizada no computador é conhecida como
ponto flutuante (floating point). Não existe sistema de numeração que seja capaz de for-
necer uma representação única para cada número real existente. Logo, uma abordagem
consiste em aproximar o número real por um valor x com um erro de no máximo �. A
representação de um número real através de um número com quantidade fixa de casas deci-
mais é conhecida como representação de ponto fixo. Entretanto, a representação por ponto
flutuante atingiu um sucesso muito maior, pois, por separar a mantissa do expoente (exem-
plo: 0.00001 = 0.1×10−5) é capaz de representar números bem pequenos e bastante grandes.
Os tipos de variáveis mais utilizados para representar números reais nas linguagens de pro-
gramação são float e double, sendo que double possui uma precisão maior. Ambos tipos
de variáveis são do tipo ponto flutuante. Em geral, o hardware possui partes especializadas
para representação e cálculos envolvendo essas variáveis.
Até cerca de 1980, cada fabricante de computadores tinha seu próprio formato de ponto flu-
tuante, e todos diferentes. Para evitar problemas de interoperabilidade, foi criado um padrão
conhecido como IEEE 754 que normatiza aspectos referentes à representação, às operações
numéricas e aos algoritmos de arredondamento que envolvem os números de ponto flutuante.
Como exposto acima, a alternativa correta é a letra D, pois foi mostrado que o tipo de
dados float é utilizado para representar números reais.
Página 32 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
13. Assuntos relacionados: Aritmética Computacional, Conversão Numérica,
Banca: Cesgranrio
Instituição: BR Distribuidora
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questão: 26
Sejam X o número binário 1010010, Y o número octal 121 e Z o número hexadecimal 53.
Colocando-os em ordem crescente, tem-se
(a). X, Y, Z
(b). X, Z, Y
(c). Y, X, Z
(d). Y, Z, X
(e). Z, Y, X
Solução:
Para facilitar a resolução da questão podemos passar as representações de binário e octal
para hexadecimal, pois conseguiremos visualizar com mais clareza qual número é maior que
o outro.
Para passar da representação binária para hexadecimal, temos que 4 bits representam um
número hexadecimal sendo que o conjunto 0000 em binário representa 0 em hexadecimal e
1111 representa F. O número X em binário 1010010 tem sua representação em hexa 52.
Para passar o número octal para hexadecimal primeiramente passamos para binário e depois
para hexadecimal. Cada número em octal é representado por 3 bits. A representação do
número Y em binário é 001010001. Passando o Y em binário para hexadecimal temos que
Y é 51.
Após as conversões, temos que as representações em hexadecimal são: X = 52, Y = 51
e Z = 53. Colocando-os em ordem crescente temos que Y < X < Z. Então, a alternativa
correta é a letra C.
Página 33 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
14. Assuntos relacionados: Lógica,
Banca: ESAF
Instituição: Receita Federal (RF)
Cargo: Técnico da Receita Federal - Tecnologia da Informação
Ano: 2006
Questão: 3
O número inteiro positivo 5487, no sistema decimal, será representado no sistema hexadeci-
mal por
(a). CB78
(b). DC89
(c). 156F
(d). F651
(e). 1157
Solução:
O sistema hexadecimal representa os números na base 16, isto é, com o sistema hexadecimal
é possível representar 16 símbolos, os quais são: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.
A Tabela 8 mostra a conversão do entre o sistema decimal e os sistemas binários e he-
xadecimal.
Decimal Binário Hexadecimal
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Tabela 8: conversão do sistema decimalpara binário e hexadecimal.
Podemos realizar a conversão do sistema decimal para o sistema hexadecimal pelo método
da divisão repetitiva, ou seja, dividimos o número na representação decimal por 16. Porém,
para facilitar as nossas contas, podemos primeiramente representar o número decimal em
binário, e posteriormente, com base na Tabela 9, convertemos o número em binário para a
representação hexadecimal. A Tabela 9 mostra passo o método da divisão repetitiva para a
conversão do decimal para binário.
Página 34 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Passo Operação Quociente Resto
1 5487 / 2 2743 1
2 2743 / 2 1371 1
3 1371 / 2 685 1
4 685 / 2 342 1
5 342 / 2 171 0
6 171 / 2 85 1
7 85 / 2 42 1
8 42 / 2 21 0
9 21 / 2 10 1
10 10 / 2 5 0
11 5 / 2 2 1
12 2 / 2 1 0
13 1 / 2 0 1
Tabela 9: conversão do decimal 5487 para o sistema binário.
Na Tabela 9, a coluna Passo foi colocada apenas para mostrar os passos realizados na con-
versão do sistema decimal para binário. A coluna Operação representa a operação de divisão
de um número por 2 (dois), por exemplo, no passo 1 dividimos o número 5487 por 2. A
coluna Quociente representa o quociente da operação de divisão, por exemplo, no passo 1 o
quociente da divisão de 5487 por 2 é 2743 e o resto (coluna Resto) é 1. No passo 2, dividimos
o quociente do passo 1 por 2 novamente, e temos como resultado dessa divisão quociente
igual 1371 e resto 1. Assim prossegue a conversão até encontrarmos quociente igual a zero.
A representação em binário é obtida a partir da coluna Resto do passo 13 ao passo 1, ou
seja, o resto do passo 13 representa o bit de mais alta ordem e resto do passo 1 representa o
bit mais baixa ordem na representação em binário. Então, a representação do número 5487
em binário é 1010101101111.
Para realizar a conversão de binário em hexadecimal, agrupamos os bits em grupo de 4
da direita para esquerda: 1| 0101| 0110 | 1111. De acordo com a Tabela 8, temos a seguinte
representação em hexadecimal: 1 | 5 | 6 | F. Portanto, a conversão do número 5487 no
sistema decimal para o sistema hexadecimal é 156F. Logo, a alternativa correta é (C).
Página 35 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
15. Assuntos relacionados: Arquitetura de Computadores, Memória Principal, Memória Ca-
che, Aritmética Computacional, Basic Input Output System (BIOS), Barramento AGP,
Banca: Cespe
Instituição: ANAC
Cargo: Analista Administrativo - Tecnologia da Informação
Ano: 2009
Questão: 36�39
Quanto aos conceitos de hardware e software, julgue os itens de 36 a 40.
36 A memória principal funciona como memória intermediária para a memória cache sem-
pre que se fizer necessário implementar cache em dois níveis.
37 Considere que os números, em decimal, A = -345 e B = +239 sejam convertidos para a
representação em complemento a 2, usando-se registradores de 16 bits. Nessa situação,
após a conversão, caso seja realizada a operação A � B, esta proverá como resultado,
também em complemento a 2 e 16 bits, o valor binário 1111110110111000.
38 Um microcomputador contém um conjunto de circuitos integrados, que são gerenciados
para realizar processamento e armazenamento. O BIOS (basic input output system)
é o circuito que gerencia praticamente todo o funcionamento da placa-mãe. Ele tem
a responsabilidade de manter todas as informações necessárias ao reconhecimento de
hardware.
39 O barramento AGP foi desenvolvido com o propósito de acelerar as transferências
de dados do vídeo para a memória. Trata-se, pois, de uma interface que permite a
comunicação direta do adaptador de vídeo com a memória RAM.
Solução:
36 ERRADO
Pela origem do nome, memórias cache são memórias escondidas, ou seja, o proces-
sador nem o programador conhecem sua existência em suas operações. As memórias
cache foram introduzidas nos processadores modernos com o intuito de guardarem o
conteúdo da memória principal mais acessado, aproveitando ao máximo os benefícios
das localidades de espaço e de tempo que geralmente estão presentes nos programas de
uso cotidiano.
O conceito de localidade temporal diz que um programa tende a acessar repetidamente
posições de memória com mais frequência do que outras, conforme é utilizado. Já o
conceito de localidade espacial prega que programas bem comportados (bem escritos)
acessam posições de memória, de modo geral, adjacentes.
O que realmente distancia a memória principal da memória cache é a diferença de
velocidade entre as 2. A memória cache, por trabalhar acoplada ao processador, conse-
gue ter rendimento bastante próximo ao clock do mesmo. Entretanto, para conseguir
isso, ela é bastante cara.
Ora, se a idéia básica da memória cache é tornar o processamento mais rápido, não faz
sentido um projeto de arquitetura que considere como opção de memória cache de 2
o
ní-
vel a própria memória principal! Esta abordagem, ao invés de acelerar o processamento
Página 36 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
o tornaria mais lento, pois cada dado a ser lido ou gravado na memória, independente-
mente da política de acesso ao cache, deveria passar novamente pela mesma memória
principal, porém em outra região! Portanto, a questão está errada.
37 CERTO
Antes de falarmos sobre como é feita representação em complemento de 2, é preciso
deixar claro que essa forma de representar os números já inclui em si, no bit mais signi-
ficativo, o indicador de sinal. Logo, qualquer operação em complemento a 2 é traduzida
em uma soma dos números representados em complemento de 2 com o respectivo sinal.
A forma mais simples de se representar um número negativo em complemento a 2
é escrevê-lo normalmente em binário. Depois, geramos sua representação em comple-
mento de 1, que é obtida invertendo-se todos os bits. Ao resultado do complemento de
1, somamos 1. Este resultado será a representação do número negativo em complemento
de 2. O bit mais significativo dos números negativos representados em complemento
de 2 deve ter valor 1. Caso isso não ocorra após o processo, verifique se tudo foi feito
corretamente. Se afirmativo, então o número não é representável nesta quantidade de
bits, ocorrendo overflow.
Números positivos são mais facilmente representados. Devemos apenas escrevê-los em
sua forma binária, garantindo que o bit mais significativo (MSB � Most Significant Bit)
seja 0. Se o limite da palavra (quantidade de bits) não permitir que o MSB seja zero,
então há overflow e o número não pode ser representado naquela palavra.
Outro dado importante é que, para N bits da palavra, conseguimos representar nú-
meros inteiros que variam de −2N−1 a 2N−1 − 1. Isso quer dizer que, se tivermos uma
palavra de 3 bits, poderemos representar, em complemento de 2, os números inteiros
de −4(−2(3−1)) a 3(2(3−1) − 1).
Com essas informações, podemos iniciar a resolução da questão convertendo os nú-
meros para suas representações em complemento de 2.
A = -345
345 → 0000000101011001
Comp.1 → 1111111010100110
Soma 1 → 1111111010100111
B = 239 (calcularemos �B, já que a conta utilizará o valor negativo)
239 → 0000000011101111
Comp.1 → 1111111100010000
Soma 1 → 1111111100010001
Agora, basta somarmos os valores diretamente, sem realizar qualquer conta a mais:
Página 37 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
A + (-B)
A → 1111111010100111
-B → 1111111100010001
A + (-B) → 1111110110111000
Pelo resultado acima, vemos que a questão está correta. Uma dica importante para
esse tipo de questão é olhar, de cara, para oresultado em decimal e ver se o resul-
tado sugerido pela questão está com o bit de sinal correto. Além disso, verificar se
os operandos e o resultado são representáveis na palavra indicada (ou seja, não ocorre
overflow).
38 ERRADO
Este tipo de questão não requer raciocínio, apenas um conhecimento superficial so-
bre a arquitetura básica dos computadores modernos. Pela própria definição do termo,
podemos perceber que a concepção inicial do BIOS era controlar as entradas e saídas
básicas do computador. Entretanto, a despeito do nome, essa não é a principal ativi-
dade executada pelo BIOS.
O BIOS é um trecho de código responsável pela inicialização do computador. Como
sabemos, os computadores executam instruções que são carregadas em seus registrado-
res, normalmente lidas da memória. Porém, é fácil perceber que assim que é ligado, não
há nenhuma informação inteligível na memória principal. Para resolver esse problema,
os arquitetos de placas-mãe desenvolveram o conceito do BIOS.
Assim que a chave de ligar e acionada, a placa-mãe copia o código da BIOS, que
geralmente é armazenado compactado em uma memória flash
3
, para a memória princi-
pal na posição 0. Em seguida, o descompacta, e instrui o processador a ler a primeira
instrução da posição 0 da memória. A partir daí, o processador já está executando
código, nesse caso, o BIOS.
Como o BIOS é fabricado por empresas, geralmente terceirizadas pelos fabricantes
de placas-mãe, os passos de execução não seguem rigorosamente alguma ordem, mas,
em linhas gerais, podemos dizer que a execução envolve:
1. verificar a configuração (setup) da CMOS para os ajustes personalizados;
2. carregar os manipuladores de interrupção;
3. inicializar registradores e gerenciamento de energia;
4. efetuar o auto-teste durante a energização (POST);
5. exibir as configurações do sistema;
6. determinar quais dispositivos são inicializáveis e inicializá-los;
7. começar a sequência de inicialização (conhecida como bootstrap ou, de forma
mais reduzida, como boot), passando o controle ao sistema operacional.
3
Como dado histórico, é interessante saber que a adoção de memória flash para armazenar o BIOS é, de certa
forma, recente. Nos primórdios, o BIOS era gravado em memórias do tipo ROM e não permitia atualização
qualquer sem que fosse necessária a troca da pastilha. Com o avanço da tecnologia das memórias ROM (PROM,
EPROM e EEPROM) e com o aumento da necessidade de atualização do BIOS � seja por causa de bugs de seu
código ou simplesmente melhorias de desempenho � os BIOs também evoluíram.
Página 38 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
A CMOS é uma outra memória utilizada pelo BIOS onde ficam armazenadas infor-
mações sobre as configurações dos dispositivos conectados à placa-mãe, entre outras,
como data e hora corrente etc.
Vistos os aspectos acima, concluímos que a função principal do BIOS é preparar todo o
ambiente para enfim carregar o sistema operacional. Claro que o nome BIOS em si não
foi escolhido completamente ao acaso. Como vemos, antes de carregar o sistema opera-
cional, o processador é totalmente regido pelo BIOS. Portanto, nesse momento, quem
cuida da interface entre os periféricos e o processador é o BIOS. Ele faz isso através do
código que carrega para os manipuladores de interrupção. Além disso, o código do BIOS
é capaz de trazer o trecho inicial do sistema operacional (ou do gerenciador de boot)
do disco rígido para a memória. Este trecho fica armazenado nos primeiros bytes do
dispositivo de armazenamento de massa e é conhecido por MBR (Master Boot Record).
Além disso, nos SOs mais antigos, as I/Os eram literalmente controladas pelo BIOS,
que as repassava, após tratá-las, para o SO.
39 CERTO
O padrão de conexão AGP foi lançado por volta de julho de 1996 pela Intel para
resolver um problema que estava impedindo a ampliação do poder das placas de vídeo
da época: o barramento onde estas eram conectadas, o PCI � Peripheral Component
Interconnect, ou, mais corretamente, PCI Local Bus
4
� , era compartilhado por todos
os dispositivos. Sua largura era de 32 bits a um clock de 33 Mhz, o que, potencialmente,
fornecia aos elementos interconectados uma taxa de 133Mb/s. Porém, exatamente pelo
fato de ser compartilhado, o PCI dificilmente oferecia a taxa máxima para um compo-
nente específico.
Como é de conhecimento geral, a manipulação de gráficos e imagens é consumidora
voraz de processamento e memória. Assim, para que as placas gráficas pudessem al-
cançar patamares maiores, era necessário que sua comunicação com a memória fosse
mais rápida. Assim, o padrão AGP propunha uma conexão direta exclusiva entre
o dispositivo conectado ao slot AGP e a memória. Basicamente, estamos falando de
um canal direto entre esses dois elementos, e não mais de um barramento, visto que
a idéia deste último é a conexão de vários elementos e a possibilidade de expansão da
quantidade destes.
É importante ver que a comunicação direta entre memória e dispositivo já era um
conceito aplicado mesmo no padrão PCI. Essa possibilidade dos dispositivos se comu-
nicarem diretamente com a memória é conhecida como DMA � Direct Memory Access �
uma forma de otimizar o tempo de processador dos programas que fazem interface com
periféricos, visto que o processador fica desocupado da tarefa de transferir os dados do
dispositivo para a memória. Este método mudou radicalmente a forma de processar,
passando do paradoxo do pooling de periféricos para o conceito de interrupção.
Com os conceitos acima, vemos que a redação da questão não está o mais clara pos-
sível, pois, se a intenção era tratar da peculiaridade do padrão AGP, o ponto mais
importante seria o acesso exclusivo do adaptador de vídeo com a memória. Da forma
4
Como o padrão específica um barramento, o nome completo é PCI Local Bus, por se tratar de um barramento
local. Historicamente, o nome foi abreviado para PCI apenas por ser de memorização mais fácil.
Página 39 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
como está escrita, a questão nos leva a remeter a idéia de DMA. Apesar disso, ainda
assim, a afirmativa estaria correta.
Página 40 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
16. Assuntos relacionados: Pool de Impressão, Porta Serial, Device Driver, Interface SCSI,
Banca: ESAF
Instituição: Receita Federal (RF)
Cargo: Técnico da Receita Federal - Tecnologia da Informação
Ano: 2006
Questão: 2
Analise as seguintes afirmações relacionadas a componentes funcionais de computadores:
I. Um pool de impressão é formado quando duas ou mais impressoras diferentes conecta-
das a um servidor de impressão agem como uma única impressora. Nesse caso, quando
se deseja imprimir um documento, o trabalho de impressão será enviado para o servidor
que irá procurar pela primeira impressora disponível no pool.
II. Porta serial é uma porta de computador que permite a transmissão assíncrona de
caracteres de dados, um bit de cada vez. Também é chamada de porta de comunicações
ou porta COM.
III. Um driver é um equipamento periférico utilizado em computadores com a finalidade
de ler e gravar dados em discos flexíveis ou discos rígidos.
IV. Uma interface SCSI (Small Computer System Interface) é utilizada para conectar mi-
crocomputadores a dispositivos periféricos, como discos rígidos e impressoras, a outros
computadores.
Indique a opção que contenha todas as afirmações verdadeiras.
(a). II e IV
(b). II e III
(c). III e IV
(d). I e III
(e). I e II
Solução:
I. FALSO: um pool de impressão é formado por duas ou mais impressoras idênticas
associadascom uma fila de impressão compartilhada (em um servidor de impressão).
A impressora que estiver disponível recebe o próximo documento;
II. VERDADEIRO: em computação, a porta serial é uma interface de comunicação
na qual dados são enviados ou recebidos um bit por vez. O padrão dessa interface
é o RS-232 e é utilizado comumente para comunicação de modens, mouses, algumas
impressoras e outros dispositivos de hardware;
III. FALSO: um driver ou device driver é uma parte do sistema operacional (SO) que tem
a função de se comunicar diretamente com o hardware. Com o driver, o SO consegue
permitir que aplicações de alto-nível interajam com o dispositivo necessário abstraindo
a complexidade e protegendo o hardware. Normalmente, cada driver está relacionado
com um dispositivo específico ou, no máximo, uma classe de dispositivos similares. A
definição dada, foi de um DRIVE (sem o R), comumente usada em computação para
se referir a um dispositivo periférico acoplado ao computador;
IV. VERDADEIRO: Small Computer System Interface ou SCSI é um conjunto de pa-
drões para conectar fisicamente e transferir dados entre computadores, e dispositivos
periféricos. Esses padrões definem comandos, protocolos e interfaces elétricas e óticas.
Página 41 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Sendo assim, como resolução da questão anterior, temos:
a) CORRETO: afirma que a II e IV estão corretas;
b) ERRADO: diz que a III está correta, o que é falso, e não menciona a IV, que é
verdadeira;
c) ERRADO: diz que a III está correta, o que é falso, e não menciona a II, que é
verdadeira;
d) ERRADO: diz que I e III são verdadeiras, o que é falso, e não menciona a II e IV,
que são verdadeiras;
e) ERRADO: diz que a I é verdadeira, o que é falso, e não menciona a IV.
Página 42 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
17. Assuntos relacionados: ASCII, Barramento de Comunicação, Dynamic Link Libraries
(DLL), Porta de Comunicação,
Banca: ESAF
Instituição: Receita Federal (RF)
Cargo: Técnico da Receita Federal - Tecnologia da Informação
Ano: 2006
Questão: 4
Analise as seguintes afirmações relacionadas a Fundamentos da Computação:
I. O ASCII é um sistema de codificação de caracteres de byte simples usado para dados
com base em texto. Esse sistema de codificação usa combinações numéricas designadas
de 7 ou 8 bits para permitir que até 128 ou 256 caracteres sejam representados. O
ASCII padrão usa 7 bits para representar todas as letras maiúsculas ou minúsculas,
os números 0 a 9, caracteres de pontuação e de controle especial usados no inglês
americano. A maior parte dos sistemas com base em Intel possibilita o uso de ASCII
estendido (ou �alto�). O ASCII estendido permite que o oitavo bit de cada caractere
seja usado para identificar outros 128 caracteres de símbolos especiais, letras de línguas
estrangeiras e símbolos gráficos.
II. Barramentos são as linhas de comunicação usadas para transferência de dados entre
os componentes do sistema do computador. Essencialmente, os barramentos permitem
que diferentes partes do sistema compartilhem dados. Por exemplo, um barramento
conecta o controlador da unidade de disco, a memória e as portas de entrada/saída ao
microprocessador.
III. Uma DLL é um recurso do sistema operacional que permite que rotinas executáveis
(geralmente servindo uma função específica ou conjunto de funções) sejam armazenadas
separadamente como arquivos com extensões .dll. Todas estas rotinas são carregadas
pelo Sistema Operacional no momento de sua inicialização, estando sempre disponíveis
em memória RAM para qualquer programa que delas necessitar.
IV. Uma porta de comunicação ou de conexão é uma forma de transferir e compartilhar
informações entre aplicativos, como um processador de textos e uma planilha eletrônica,
usando os recursos copiar/colar.
Indique a opção que contenha todas as afirmações verdadeiras.
(a). II e III
(b). I e II
(c). III e IV
(d). I e III
(e). II e IV
Solução:
ASCII
O mapeamento de caracteres para números inteiros é denominado código de caracteres.
Para que os computadores possam se comunicar a contento, é necessário que utilizem o
mesmo código de caracteres. Um dos padrões utilizados ainda hoje é o ASCII (American
Standard Code for Information Interchabe), o código padrão americano para troca de in-
formações. Como o nome sugere, ele é bastante adequado à língua inglesa, porém não o é
Página 43 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
para outros tantos idiomas (como o português, que necessita de símbolos designados para
representar �ç� e �á�, por exemplo).
No ASCII, cada caractere tem 7 bits, possibilitando um total de 128 caracteres distintos.
Diversos desses caracteres são destinados à comunicação entre máquinas. Outros, designam
caracteres de impressão. Todos os caracteres minúsculos e maiúsculos do idioma americano
são cobertos, além dos algarismos de 0 a 9 e outros caracteres que auxiliam a produção
textual, como �espaço� e �exclamação�.
Numa tentativa de possibilitar o uso de caracteres pertencentes a outros idiomas, foi de-
finido o ASCII Estendido, um código de 8 bits (1 byte) capaz de representar 256 caracteres.
Assim, passou a ser possível representar, dentre outros, os caracteres acentuados. Obvia-
mente, o ASCII Estendido é compatível com o ASCII original. Contudo, este incremento no
código não consegue atender a demanda dos diversos idiomas existentes, sendo satisfatório
praticamente apenas para idiomas cujo alfabeto seja de origem latina e/ou grega. A solução
proposta, e gradualmente em implantação, é o sistema de codificação Unicode, que utiliza
16 bits para realizar a tarefa de representar caracteres dos mais variados alfabetos (árabe,
cirílico, hebreu, latino, grego, etc).
O item I apresenta informações corretas sobre o ASCII (Estendido).
Barramentos
Os componentes básicos de um computador são a CPU (processador), a memória princi-
pal (RAM) e os dispositivos de entrada/saída (E/S), como disco, impressora e teclado. Os
controladores de tais componentes são interligados por barramentos de comunicação, que
nada mais são do que fios paralelos na placa-mãe que transmitem endereços, dados e sinais
de controle.
Existem diversos tipos de barramentos para atender às mais variadas necessidades. Al-
guns exemplos são os barramentos AGP, PCI e PCI Express. Além dos barramentos ditos
�externos�, deve-se ter em conta que há barramentos �internos� à CPU, proporcionando a
comunicação entre seus diversos componentes.
O item II está correto ao apresentar as informações sobre barramentos de computador.
DLL
Nas diversas versões do sistema operacional Windows, as aplicações que efetuam chama-
das às rotinas do sistema utilizam a Win32 Application Program Interface, ou simplesmente
API do Windows. Esse conjunto de bibliotecas é implementado por meio de DLLs (Dynamic
Link Libraries), que nada mais são do que procedimentos que são ligados a aplicações em
tempo de execução.
A grande vantagem no uso de DLLs é evitar que cada aplicação implemente (e carregue
para a memória principal) seus próprios procedimentos relacionados às chamadas ao sis-
tema operacional. Desta forma, uma única cópia fornecida pelo sistema está disponível
simultaneamente para todos os programas que dela precisarem.
Diferentemente do que afirma o item III, as DLLs não são carregadas todas em memória no
Página 44 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
momento de inicialização do sistema operacional. À medida que as aplicações necessitamde
utilizar funcionalidades oferecidas por determinada DLL, seu respectivo trecho de código é
carregado para a memória principal.
Porta de Comunicação
Portas de comunicação são interfaces físicas disponibilizadas na parte externa dos gabinetes
de computadores, cujo objetivo é permitir a conexão, ao sistema, de periféricos diversos,
como modens, impressoras, teclados e monitores. Podem ser do tipo hot swap (ou hot
swapping), isto é, podem permitir a conexão e desconexão de periféricos sem necessidade
de desligamento do sistema. Alguns exemplos desta classe são as portas USB, Firewire e
as interfaces SCSI. Já as famosas portas serial e paralela não possuem tal característica,
geralmente necessitando do reboot (reinicialização) do sistema para propiciarem a correta
identificação dos periféricos conectados.
Observa-se com facilidade que o item IV apresenta um conceito equivocado e totalmente
diverso da teoria exposta, estando incorreto, portanto.
Desta forma, a letra b) é a resposta para a questão.
Página 45 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
18. Assuntos relacionados: Arquitetura de Computadores, Avaliação de Desempenho Com-
putacional, Throughput de Processamento,
Banca: Cesgranrio
Instituição: BNDES
Cargo: Analista de Sistemas - Suporte
Ano: 2008
Questão: 41
Seja A uma máquina hipotética com tempo de ciclo de 5 ns e sem paralelismo no nível de
instrução. Assumindo-se que cada estágio demora um ciclo de relógio, qual opção indica
uma latência e um número de estágios no pipeline de uma máquina hipotética B suficientes
para que B tenha uma largura de banda de processador superior ao da máquina A?
(a). 12 ns de latência e 2 estágios.
(b). 14 ns de latência e 2 estágios.
(c). 20 ns de latência e 5 estágios.
(d). 24 ns de latência e 3 estágios.
(e). 28 ns de latência e 4 estágios.
Solução:
Esta é uma questão em que o candidato precisa mais de habilidades matemáticas do que
conhecimentos profundos em informática, neste caso na área de arquiteturas de computado-
res. Para que não se tenha dúvidas, vamos explicitar rapidamente cada conceito relevante
que aparece no enunciado.
• tempo de ciclo: equivale a um ciclo de relógio, que é o inverso da frequência de
trabalho do processador. No caso da máquina hipotética A, como o tempo de ciclo é
de 5ns, conclui-se que o seu processador trabalho na frequência de 200 MHz (inverso
de 5ns);
• estágio: uma subdivisão de instrução de baixo nível (adição, subtração, shift, etc.);
• número de estágios no pipeline: número necessário de estágios para execução de
uma instrução de baixo nível. Em algumas arquiteturas reais de mercado, o número
necessário de estágios para execução de uma instrução de baixo nível é dependente da
instrução. Contudo, no caso hipotético desta questão, esse detalhe não é considerado;
• latência: tempo em que um estágio é executado;
• largura de banda de processador: quantidade de instruções executadas em um
intervalo de tempo. Este conceito também é chamado de throughput (vazão) de pro-
cessamento.
Como o enunciado especifica que não há paralelismo no nível de instrução, ou seja, somente
uma instrução é executada por vez, o throughput de um processador pode ser calculado com
a seguinte equação:
throughput = (número de estágios no pipeline)/latência
No caso da máquina A, temos que o throughput é 200 milhões de instruções por segundo
(1/5ns). Ao calcularmos o throughput de cada alternativas, temos:
a) 2/12ns = 166,67 milhões de instruções por segundo
b) 2/14ns = 142,86 milhões de instruções por segundo
Página 46 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
c) 5/20ns = 250,00 milhões de instruções por segundo
d) 3/24ns = 125,00 milhões de instruções por segundo
e) 4/28ns = 142,86 milhões de instruções por segundo
Perceba, portanto, que a única alternativa que traz um throughput maior que o throughput
da máquina A é a letra c.
Página 47 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
19. Assuntos relacionados: Arquitetura de Computadores, Aritmética Computacional,
Banca: ESAF
Instituição: Receita Federal (RF)
Cargo: Técnico da Receita Federal - Tecnologia da Informação
Ano: 2006
Questão: 5
Analise as seguintes operações relacionadas à Aritmética Computacional, considerando que
os valores utilizados estão na representação hexadecimal.
I. ((2222 AND AAAA) XOR FFFF) = DDDD.
II. ((2222 OR BBBB) XOR FFFF) = DDDD.
III. ((2222 NOT CCCC) XOR FFFF) = 3333.
IV. ((2222 XOR DDDD) XOR FFFF) = 3333.
Indique a opção que contenha todas as afirmações verdadeiras.
(a). I e II
(b). II e III
(c). III e IV
(d). I e IV
(e). I e III
Solução:
A função AND produz o produto lógico de duas variáveis lógicas. Isto é, o produto lógico
de um par de variáveis P e Q é 1 se ambas as variáveis forem 1. A Tabela 10 é a tabela
verdade para a operação AND.
P Q P AND Q
1 1 1
1 0 0
0 1 0
0 0 0
Tabela 10: tabela verdade da operação AND.
OR:
A função OR, também conhecida como OU INCLUSIVO, produz a soma lógica de duas
variáveis. Ou seja, a soma lógica de um par de variáveis P e Q é 1 se qualquer uma da
variáveis for 1. A Tabela 11 é a tabela verdade para a operação OR.
Página 48 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
P Q P OR Q
1 1 1
1 0 1
0 1 1
0 0 0
Tabela 11: tabela verdade da operação OR.
XOR:
A operação XOR, também conhecida como OU EXCLUSIVO, realiza um teste para igual-
dade entre duas variáveis lógicas. Ou seja, se duas variáveis de entrada P e Q são iguais,
a saída ou resultado da operação XOR é 0. Se as entradas não são iguais, a saída é 1. A
Tabela 12 é a tabela verdade para a operação XOR.
P Q P XOR Q
1 1 0
1 0 1
0 1 1
0 0 0
Tabela 12: tabela verdade da operação XOR.
NOT:
A operação NOT, também conhecida como operação inversora, realizada uma complemen-
tação direta de uma entrada simples. Ou seja, uma entrada 1 produzirá uma saída 0. A
Tabela 13 é a tabela verdade para a operação NOT.
P NOT P
1 0
0 1
Tabela 13: tabela verdade da operação NOT.
Agora precisamos saber como passar da representação hexadecimal para a representação
binária.
Saiba que um número hexadecimal é representado por 4 bits, sendo que 0 é representado
pelo conjunto 0000 e F é representado por 1111. A Tabela 14 apresenta a correspondência
entre um número hexadecimal e sua respectiva representação binária.
Página 49 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Hexadecimal Binária
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
Tabela 14: correspondência entra a representação hexadecimal e binária.
Bom, agora já estamos aptos a abordar as 4 afirmativas.
Para facilitar a resolução de cada operação lógica, nós faremos uso de uma tabela cons-
tituída de duas colunas: a primeira é a representação hexadecimal dos operandos e das
operações; e a segunda é representação binária dos operandos ou do resultado da operação
lógica.
Só para reforçar: o resultado da operação é feito bit a bit!
I. ((2222 AND AAAA) XOR FFFF) = DDDD.
2222 0010001000100010
AAAA 1010101010101010
2222 AND AAAA 0010001000100010
FFFF 1111111111111111
((2222 AND AAAA) XOR FFFF) 1101110111011101
DDDD 1101110111011101
Tabela 15: resultado da verificação ((2222 AND AAAA) XOR FFFF) = DDDD.
Nota-se que a afirmativa é verdadeira.
Página 50 de 62
www.handbookdeti.com.brHandbook de Questões de TI Comentadas para Concursos Volume questões de TI
II. ((2222 OR BBBB) XOR FFFF) = DDDD.
2222 0010001000100010
BBBB 1011101110111011
2222 OR BBBB 1011101110111011
FFFF 1111111111111111
((2222 OR BBBB) XOR FFFF) 0100010001000100
DDDD 1101110111011101
Tabela 16: resultado da verificação ((2222 OR BBBB) XOR FFFF) = DDDD.
Como podemos ver, a afirmativa é falsa.
III. ((2222 NOT CCCC) XOR FFFF) = 3333.
Atenção: o operador NOT é unário, e não binário como está nesta afirmativa!
Muito provavelmente ocorreu um erro de grafia, o que nos fornece recurso para invalidar
toda a questão.
IV. ((2222 XOR DDDD) XOR FFFF) = 3333.
2222 0010001000100010
DDDD 1101110111011101
2222 XOR DDDD 1111111111111111
FFFF 1111111111111111
((2222 XOR DDDD) XOR FFFF) 0000000000000000
3333 0011001100110011
Tabela 17: resultado da verificação ((2222 XOR DDDD) XOR FFFF) = 3333.
Novamente, afirmativa falsa.
Finalizando....
Como já podemos imaginar, esta questão gerou muita discussão. Mesmo após todos os
recursos impetrados, a ESAF se permaneceu irredutível, mantendo a questão como válida e
indicando a alternativa E como resposta.
Candidato, caso você se depare com uma situação semelhante a esta, elabore o seu re-
curso cuidadosamente, sempre indicando referências bibliográficas. Agora, se mesmo assim
não aceitarem o seu recurso, entre com um mandado de segurança, afinal, uma questão pode
mudar o futuro de muita gente!
Página 51 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
20. Assuntos relacionados: Sistemas Operacionais, Operações de Entrada e Saída, DMA,
Banca: Cesgranrio
Instituição: BR Distribuidora
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questão: 30
Que tecnologia tem por objetivo liberar a CPU em operações de entrada/saída?
(a). Acesso direto à memória (DMA)
(b). Cache
(c). Paginação
(d). Pipeline
(e). Spool
Solução:
Antes desta tecnologia, a transferência de dados, além de envolver o processador, envolvia
dois movimentos: um da interface (controlador) para o processador, e outro do processador
para a memória. A técnica que libera o CPU de operações de entrada e saída, ou seja, per-
mite que os dados sejam transferidos diretamente do controlador para a memória é chamada
de Direct Memory Acces (DMA � Acesso Direto à Memória). Logo, a alternativa correta é
a letra A.
A técnica de DMA baseia-se na utilização de um hardware especial, chamado de contro-
lador de DMA, para transferir os dados entre um dispositivo de entrada/saída e memória.
O controlador de DMA é conectado fisicamente ao barramento de dados e de endereços para
acessar diretamente a memória.
Para que ocorra uma transferência de dados, o processador precisa inicializar o controlador
de DMA fornecendo informações como quantidade de dados a transferir, origem e destino
dos dados e qual sentido de transferência, memória para dispositivo ou vice-versa. Após
essa inicialização, o controlador realiza a transferência e libera o processador para executar
outras tarefas. Após finalizar a transferência, o controlador de DMA avisa o processador
por meio de uma interrupção.
É importante observar que existe uma disputa pelo barramento de dados e endereço pelo
controlador de DMA e o processador. Essa disputa é coordenada pelo arbitramento do bar-
ramento.
Cache é uma memória rápida que contém dados e/ou instruções recentemente referenci-
adas pelo processador. A técnica de paginação permite que um programa ocupe áreas não
contíguas na memória. A técnica de Pipeline trabalha as diversas etapas do ciclo de instru-
ção (busca, indireto, execução e interrupção) de forma paralela, e não serial, aumentando o
desempenho da CPU. E Spool é um recurso compartilhado no disco para aceitar operações
de saída para melhorar o desempenho de impressão.
Página 52 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
21. Assuntos relacionados: Arquitetura de Computadores, Modelo de von Neumann, Arqui-
tetura de Harvard,
Banca: ESAF
Instituição: Superintendência de Seguros Privados (SUSEP)
Cargo: Analista Técnico da SUSEP - Tecnologia da Informação
Ano: 2010
Questão: 11
Segundo o conceito da Máquina de Von Neumann
(a). apenas instruções ficam armazenadas.
(b). instruções e dados são armazenados na mesma memória.
(c). instruções e dados são armazenados em memórias distintas.
(d). instruções e dados não são armazenados, com vistas à otimização do uso da me-
mória.
(e). os dados ficam armazenados na memória, não havendo armazenamento de instru-
ções.
Solução:
O conceito máquina de Von Neumann, ou �arquitetura de Von Neumann� é um conceito que
apresenta um modelo de projeto para computadores digitais com programa armazenado. As
características encontradas nessa arquitetura podem ser encontradas em diversas arquitetu-
ras de computadores atuais.
A arquitetura de Von Neumann consiste de três subsistemas: processamento de instruções,
unidade aritmética e memória, como exibido na Figura 3. Uma característica importante
dessa arquitetura é que instruções e dados compartilham o mesmo espaço de endereçamento
e, portanto, há apenas uma fonte de endereços para a memória: a unidade de processa-
mento. A saída da memória é levada ou para a unidade de controle ou para a unidade
aritmética, dependendo se uma instrução ou um dado está sendo trazido da memória. Uma
consequência dessa decisão de projeto é que instruções também podem ser tratadas como
dados. Fonte: Computer architecture and implementation, Harvey G. Cragon.
Figura 3: arquitetura de Von Neumann.
Página 53 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Com essas informações, podemos responder à questão com certeza de que a alternativa b é
a correta. Pelo relacionamento mutuamente exclusivo com as outras alternativas e da des-
crição acima, é possível compreender que o fato de instruções e dados serem armazenados
na mesma memória as torna incorretas.
Uma arquitetura que contrasta com a de Von Neumann, e que poderia corresponder à
alternativa c é a arquitetura de Harvard, exemplificada na Figura 4. Nela, o processador é
conectado a dois bancos de memória independentes por dois buses diferentes. Na arquitetura
original, um dos bancos de memória armazena dados enquanto o outro armazena instruções.
�Sua maior vantagem é que dois acessos à memória podem ser feitos durante um único ciclo
de instrução.� Fonte: Electronic Circuit Design: From Concept to Implementation, Nihal
Kularatna.
Figura 4: arquitetura de Harvard.
Página 54 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
22. Assuntos relacionados: Arquitetura de Computadores, Memória Cache, Memória Buffer,
Sistemas de Enumeração,
Banca: Cespe
Instituição: Petrobras
Cargo: Analista de Sistemas Júnior - Infraestrutura
Ano: 2007
Questão: 56 e 64
Acerca de arquitetura de computadores e sistemas de numeração, julgue os seguintes itens.
56 O número hexadecimal C9 corresponde ao decimal 201. O número decimal 34 corres-
ponde ao octal 42. O número binário 100101 corresponde ao decimal 53. A soma do
octal 72 ao octal 23 resulta no octal 105.
64 Uma das diferenças entre uma memória buffer e uma cache é que uma memória cache
armazena sempre a única cópia existente de um item de dado, enquanto uma memória
buffer armazena, tipicamente em uma memória de alta velocidade, uma cópia de um
item de dado que se encontra também armazenado em outra área de memória.
Solução:
56 ERRADO
Uma ótima referência para os assuntos �conversão de bases� e �aritméticacomputa-
cional� é o livro Introdução à Organização de Computadores do Mário A. Monteiro.
Convertendo C9 (base 16) em decimal: 9*160 + C*161 = 9*1 + 12*16 = 201 (os
hexadecimais A, B, C, D, E e F correspondem, respectivamente, aos decimais 10, 11,
12, 13, 14 e 15).
Convertendo 42 (base 8) em decimal: 2*80 + 4*81 = 2*1 + 4*8 = 34.
Convertendo 100101 (base 2) em decimal: 1*20 + 0*21 + 1*22 + 0*23 + 0*24 +
1*25 = 1*1 + 1*4 + 1*32 = 37.
Somando 72 (base 8) e 23 (base 8):
1 <<-- vai um
72
+23
---
115
Enfim, as afirmações 1 e 2 são corretas, contudo as afirmações 3 e 4 são ERRADAs.
Portanto, a questão como um todo é ERRADA.
64 ERRADO
Memória cache é um tipo de memória utilizada para interligar logicamente registrado-
res de um processador à memória principal do sistema. Suas principais características
são intermediárias entre os registradores e a memória principal, tais como: seu tempo
de acesso é maior que o dos registradores, porém menor que o da memória principal;
Página 55 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
seu custo por byte é menor que o dos registradores, contudo maior que o da memória
principal; e a sua capacidade de armazenamento é maior que o dos registradores, mas
menor que o da memória principal.
Arquitetos de computadores utilizam várias técnicas para combinarem esses três ti-
pos de memória (registradores, cache e principal) de forma a otimizar o desempenho
do sistema como um todo. Dependendo da arquitetura, pode-se encontrar 1, 2 ou até
3 níveis de cache, as famosas cache L1, L2 e L3 (L vem de level). Dependendo da ar-
quitetura, alguns níveis se encontram dentro do chip do processador e outros em chips
próprios, porém bem próximos fisicamente ao processador. Por se tratar de uma me-
mória de interligação lógica entre os registradores e a memória principal, é frequente
se encontrar dados na cache que são cópias fiéis de dados da memória principal. A
utilização da memória cache depende principalmente dos seguintes aspectos:
� função de mapeamento de dados entre a memória principal e a cache:
mapeamento direto, associativo ou associativo por conjunto;
� algoritmo de substituição de dados na cache: alguns exemplos são LRU
(Least Recently Used - o que não é usado há mais tempo), FIFO (First In, First
Out - primeiro a chegar é o primeiro a ser atendido), LFU (Least Frequently Used
- o que tem menos referência) e Escolha Aleatória;
� política de escrita pela cache: alguns exemplos são Escrita em Ambas (Write
Through), Escrita somente no retorno (Write Back) e Escrita uma Vez (Write
Once).
Buffer é um outro tipo de memória muito utilizada para interligar logicamente, possibi-
litando troca de dados, dispositivos que geralmente trabalham em velocidades diferen-
tes. Casos típicos são entre impressora/computador e teclado/computador. Perceba,
portanto, que essa memória é utilizada temporariamente, onde um dispositivo escreve
em uma determinada taxa e o outro dispositivo lê o dado possivelmente em outra taxa.
Dessa forma, tipicamente os dados que estão em buffer não são copiados em outras
memórias.
Tendo em vista o exposto, não é difícil concluir que a afirmativa feita por esta questão
é ERRADA.
Página 56 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
23. Assuntos relacionados: Sistemas Distribuídos, Independência de Localização, Indepen-
dência de Fragmentação, Independência do Sistema Operacional,
Banca: Cesgranrio
Instituição: Petrobras
Cargo: Analista de Sistemas - Processos de Negócio
Ano: 2008
Questão: 64
Sistemas de informações distribuídos são aqueles em que dados são armazenados e proces-
sados em diferentes localizações. Um banco de dados distribuído é um exemplo deste tipo
de sistema. Para o usuário, um sistema de banco de dados distribuído deve parecer exata-
mente como um sistema não distribuído. Para que tal meta seja alcançada, alguns objetivos
secundários são normalmente estabelecidos, entre os quais NÃO se inclui a
(a). independência de localização.
(b). independência de fragmentação.
(c). independência do sistema operacional.
(d). operação contínua.
(e). coordenação em um nó central.
Solução:
Operação contínua
Uma vantagem dos sistemas distribuídos (SD) é que eles devem fornecer maior confiabi-
lidade e maior disponibilidade. A confiabilidade em SD implica no funcionamento sem
queda em qualquer momento, isto acontece, porque sistemas distribuídos podem continuar
a funcionar mesmo diante da falha de algum componente individual, como um servidor iso-
lado. A disponibilidade refere se ao funcionamento continuamente sem queda do sistema
durante um período, isso porque existe a possibilidade de replicação dos dados.
Não será preciso desligar o sistema para a execução de alguma tarefa, como adicionar um ser-
vidor ou atualizar o sistema de banco de dados. Esta característica é fundamental, uma vez
que os sistemas garantem o funcionamento/acesso dos dados/metadados, independente do
tempo necessário para manipulá-los. Como os metadados estarão distribuídos (replicados)
em todos os servidores, mesmo na presença de uma falha, algum servidor disponibilizará os
metadados para serem manipulados.
Independência de localização
Também conhecida por transparência de localização, é quando os usuários não precisam
saber onde estão fisicamente armazenados os dados. É uma característica desejável, pois
simplifica programas e atividades em aplicações e permite que dados migrem de um servi-
dor para outro, sem invalidar qualquer desses programas e atividades. Essa capacidade de
migração é desejável porque permite que dados sejam deslocados pela rede em resposta a
alterações de exigências de desempenho. Utilizando-se de metadados, a transparência de
armazenamento faz com que os usuários das aplicações desconheçam a forma (em que local)
como os metadados são mantidos, simplificando a adição de novos servidores no sistema
distribuído.
Página 57 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Independência de fragmentação
Um sistema admite fragmentação de dados se uma dada variável de relação armazenada
pode ser dividida em pedaços (fragmentos) para fins de armazenamento físico. A fragmen-
tação é desejável por razões de desempenho: os dados podem ser armazenados no local
em que são mais freqüentemente utilizados, de modo que a maior parte das operações seja
apenas local e o tráfego na rede seja reduzido.
Independência de sistema Operacional
O suporte a um sistema de banco de dados distribuídos implica que uma única aplica-
ção seja capaz de operar de modo transparente sobre dados dispersos em uma variedade
de banco de dados diferentes, gerenciados por vários SGBDs diferentes, em execução em
uma variedade de máquinas diferentes que podem estar rodando em diversas plataformas
diferentes e uma variedade de sistemas operacionais. Onde o modo transparente diz respeito
à aplicação operar sob um ponto de vista lógico como se os dados fossem gerenciados por
um único SGBD, funcionando em uma única máquina com apenas um sistema operacional.
Assim, um sistema distribuído consiste em adicionar o poder computacional de diversos
computadores interligados por uma rede de computadores ou mais de um processador traba-
lhando em conjunto no mesmo computador, para processar colaborativamente determinada
tarefa de forma coerente e transparente, ou seja, como se apenas um único e centralizado
computador estivesse executando a tarefa, portanto a alternativa E está incorreta.
Página 58 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questõesde TI
24. Assuntos relacionados: Sistemas Operacionais, Sistemas Distribuídos, Cycle-scavenging,
Cycle-stealing,
Banca: Cesgranrio
Instituição: IBGE
Cargo: Analista de Sistemas - Suporte
Ano: 2010
Questão: 64
Cycle-scavenging e cycle stealing são exemplos de
(a). algoritmos de criptografia implementados em hardware por Mainframes.
(b). estratégias de balanceamento de carga utilizadas em switches.
(c). estratégias de virtualização de servidores do z/VM.
(d). técnicas de armazenamento de dados utilizadas em redes SANs.
(e). técnicas de varrimento de CPU utilizadas em computação em GRID.
Solução:
Uma Grade Computacional, ou GRID, é um serviço para o compartilhamento de poder de
processamento e capacidade de armazenamento pela Internet, tendo o objetivo de otimizar
as tarefas realizadas. Sua ideia é transformar a rede global de computadores em um único
e vasto recurso computacional. Assim, as Grades Computacionais são uma particularidade
da Computação Distribuída.
Um dos conceitos envolvidos nessa abordagem é a �Computação Oportunística�, cuja ideia
é fazer uso da capacidade de processamento não utilizada pelos computadores integrantes
da grade e executar processos de baixas prioridades, sem interferir nas demais execuções do
computador do usuário.
Técnicas de varrimento de CPU (CPU-scavenging, cycle-scavenging, cycle-stealing ou sha-
red computing) são aplicadas de modo a tornar possível a utilização do tempo ocioso de um
sistema.
Face ao exposto, a alternativa (E) é a única dentre as apresentadas que explica de forma
correta os termos Cycle-scavenging e cycle stealing apresentadas na questão.
Página 59 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
25. Assuntos relacionados: Organização de Computadores, Arquitetura de Computadores,
Memória Virtual,
Banca: CESGRANRIO
Instituição: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questão: 52
O uso de memória secundária (de menor velocidade, comparada com a memória principal)
como memória virtual acaba ocasionando perda de desempenho. Neste contexto, supondo
que um computador da linha PC, monoprocessado, admita expansibilidade de seus com-
ponentes, a solução que atualmente oferece melhor relação custo-benefício para atenuar o
problema é:
(a). adicionar um disco rígido de maior capacidade.
(b). adicionar memória RAM.
(c). aumentar o tamanho do arquivo de troca (swap) do sistema operacional.
(d). substituir o processador por um mais veloz.
(e). trocar o computador todo por um mais moderno, pois não há solução para o
problema.
Solução:
Assim como as memórias caches permitem acesso rápido a instruções e dados na memória,
a técnica de memória virtual permite acesso rápido a dados e programas localizados em
unidades de armazenamento secundário (disco rígido).
Imagine uma coleção de programas sendo executandos ao mesmo tempo em um compu-
tador. A memória total necessária para a execução desses programas pode ser maior do
que a memória física do computador. Entretanto, pode acontecer que apenas uma fração
da memória total necessária seja usada em qualquer ponto de execução dos programas. A
memória principal precisa conter apenas a parte �ativa� dos programas, em execução.
A técnica de memória virtual permite compartilhar de forma eficiente o uso da memória
principal entre vários programas, realizando a gerência automática entre os dois níveis de
hierarquia de memória (memória principal e secundária). Essa gerência é feita por transfe-
rência de dados e instruções de partes do programas entre a memória principal e a secundária,
e vice-versa.
De acordo com o exposto, analisaremos cada alternativa:
(A) ERRADA
Um disco com maior capacidade não resolveria o nosso problema, pois partes dos dados
e instruções dos programas precisariam, ainda, ser transferidas da memória secundária para
a principal. Essa transferência é lenta, pois demanda acesso à memória secundária.
(B) CORRETA
Adicionar memória RAM, memória principal, ao computador seria uma solução de me-
lhor custo-benefício, pois a memória RAM é barata e permitiria que mais programas fossem
Página 60 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
alocados na memória principal, reduzindo acessos à memória secundária, que é lenta. Por-
tanto, esta é a alternativa correta.
(C) ERRADA
Essa solução apresenta um custo-benefício alto, pois para aumentarmos o tamanho do ar-
quivo de troca teríamos que alterar o kernel do sistema operacional. Isso não é nada fácil e
não traria benefícios consideráveis.
(D) ERRADA
A troca de um processador não atenuaria o problema. Como explicado acima, a memó-
ria virtual é dependente da memória principal, indiferentemente do processador utilizado.
(E) ERRADA
A troca do computador por um mais moderno poderia atenuar o problema, mas seria uma
solução mais cara que a apresentada na alternativa B.
Página 61 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume questões de TI
Questão Resposta
1 A
2 E
3 E
4 E
5 31 ERRADO 32 ERRADO 33 CERTO 34 ERRADO 35 ERRADO
6 E
7 D
8 A
9 E
10 C
11 B
12 D
13 C
14 C
15 36 ERRADO 37 CERTO 38 ERRADO 39 CERTO
16 A
17 B
18 C
19 E
20 A
21 B
22 56 ERRADO 64 ERRADO
23 E
24 E
25 B
Página 62 de 62 Handbook de TI Além do Gabarito
Índice Remissivo
Aritmética Computacional, 11, 33, 36, 48
Arquitetura CISC, 19, 26
Arquitetura de Computadores, 5, 8, 10, 11, 18,
22, 26, 36, 46, 48, 53, 55, 60
Arquitetura de Harvard, 53
Arquitetura de Processadores, 19
Arquitetura RISC, 19, 26
ASCII, 43
Avaliação de Desempenho Computacional, 46
Barramento AGP, 36
Barramento de Comunicação, 43
Basic Input Output System (BIOS), 36
Conversão Numérica, 33
Cycle-scavenging, 59
Cycle-stealing, 59
Device Driver, 41
DMA, 52
Dynamic Link Libraries (DLL), 43
Endereçamento de Memória, 4, 19
Independência de Fragmentação, 57
Independência de Localização, 57
Independência do Sistema Operacional, 57
Interface SCSI, 41
Lógica, 34
Memória Buffer, 55
Memória Cache, 36, 55
Memória Principal, 10, 36
Memória Virtual, 22, 60
Modelo de von Neumann, 11, 53
Modos de Endereçamento de Memória, 5, 8, 11
Operações de Entrada e Saída, 52
Organização de Computadores, 4, 60
Pipelining, 19, 26
Pool de Impressão, 41
Porta de Comunicação, 43
Porta Serial, 41
Sistemas de Enumeração, 29, 31, 32, 55
Sistemas Distribuídos, 57, 59
Sistemas Operacionais, 52, 59
Throughput de Processamento, 46
Tipos de Memória, 22
63

Mais conteúdos dessa disciplina