Arquitetura de Computadores
para concursos
Questões comentadas
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 organizar 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 Computadores. 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 entendimento 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 adequadamente 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óximos 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 comunidade concurseira Handbook de TI.
A série
Handbook de Questões de TI Comentadas para Concursos Além do Gabarito
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
é uma
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
[email protected]
Twitter do Handbook de TI
Acompanhe de perto promoções e lançamentos de produtos pelo nosso Twitter
com/handbookdeti
Página 3 de 62
www.handbookdeti.com.br
http://twitter.
Handbook de Questões de TI Comentadas para Concursos
1.
Volume questões de TI
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 identicadas 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.
bits, o número máximo de células endereçáveis é
Se um endereço tiver n
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 suporta. 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
20 = 2 MB = 2048 KB. Como no sistema
de cada célula e o número de células, ou seja, 2*2
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
2.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Modos de Endereçamento de Memó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 especicadas 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 hexadecimais, 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 é especicado 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
8
posições de memória estará limitada em 256 (2 );
• 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 aumento 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-
16 ) e não mais 256 como no endereçamento
reçamento de 65536 posições de memória (2
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 ao modo 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 especica um registrador cujo conteúdo
é adicionado à A, para produzir o endereço efetivo. Os três modos de endereçamento
por deslocamento são:
• Pilha :
relativo, via registrador-base
e
indexado ;
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 especicado
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
2. AC 02H, R
←
03H, R recebe o valor armazenado no endereço 02H;
←
03H + 04H
←
07H, o valor de R é somado ao valor armazenado no
endereço 03H;
3. ST 03H, [04H]
4. AC 00H, R
←
5. ST 01H, [02H]
6. LD 03H, R
←
7. ST 00H, [01H]
←
07H, a posição de memória 04H recebe o valor do registrador R;
07H + 02H
←
←
09H, o valor de R é somado ao valor da posição 01H;
09H, a posição de memória 02H recebe o valor de R;
07H, R recebe o valor armazenado no endereço 04H;
←
07H, a posição de memória 01H recebe o valor de R.
Após o término do programa, a situação nal do bloco de memória será de acordo com a
Tabela 1.
Tabela 1: situação nal do bloco de memória.
A soma é
Endereço
Valor Armazenado
00H
01H
01H
07H
02H
09H
03H
04H
04H
07H
01H +07H +09H +04H +07H = 1CH , que, em decimal, é 28.
correta é a letra (e).
Página 7 de 62
www.handbookdeti.com.br
Logo, a alternativa
Handbook de Questões de TI Comentadas para Concursos
3.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Modos de Endereçamento de Memó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 especicar 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 especicar o valor 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 m de obter a resposta.
(A) ERRADA
A pilha é um bloco reservado de posições de memória, algumas vezes referida como uma la
último-a-chegar primeiro-a-sair, onde elementos podem ser colocados ou removidos. Associado 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 ca 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 armazenamento 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 sucientes
(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 estruturas de organização de dados mais complexas, mais sosticadas, 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 registrador, 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
4.
Volume questões de TI
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 dispositivos 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
mados de
REM
MP
(Memória Principal) e UCP usa dois registradores da UCP cha-
(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 Buer 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 decodicação e localização da célula desejada.
Possui a mesma
quantidade de bits do barramento de endereços e deve ser suciente 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 suciente 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
5.
Volume questões de TI
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: 3135
O primeiro computador eletrônico e digital construído no mundo para emprego geral, denominado 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, signica 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, é fundamental 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 armar 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
35
Para se representar o número decimal 524.288 em binário, são necessários 19 bits.
Na área de arquitetura de computadores, o espaço de endereçamento determina a capacidade 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 microinstruções processadas em paralelo pipeline; quantidade de memória passível de endereç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 quantidade 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 arquitetura de um processador especíco pode permitir que os registradores sejam acessados
em partes.
Por exemplo, os processadores X86, da Intel, possuíam instruções que faziam referê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 memó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 barramento 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 classicação de quantidade de bits em nada se relaciona 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 é explicitamente 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 m 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 os operandos
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 endereç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 espaç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 vericado 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 processadores. 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çamento 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 possuem 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 programa 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, consistindo 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 operandos. 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 identicador 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 denido
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 utilizado 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 nais da operação indicam 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 à memória contra apenas 1 do indexado. Assim, chegamos à conclusão de que a armativa
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
vericar quantos 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 vericamos 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
212
213
214
215
216
217
218
219
= 2048
= 4096
= 8192
= 16384
= 32768
= 65536
= 131072
= 262144
= 524288
Pelas contas acima, vemos que são necessários 20 bits para escrevermos o número desejado.
É 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 passí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 destino, 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 necessá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 utilizam 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 escreve nas linhas de endereçamento a posição que deseja acessar. Essa posição é numé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 gura 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 mencionado 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 é
Página 17 de 62
www.handbookdeti.com.br
2E .
Handbook de Questões de TI Comentadas para Concursos
6.
Volume questões de TI
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 dene quais são as instruções
que o processador é capaz de decodicar e executar. Cada processador tem denido o seu
conjunto de instruções.
As instruções utilizadas pela maioria das arquiteturas de computadores podem ser classicadas 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:
• Sistema:
branchs, jumps, chamada e retorno de procedimento, traps;
chamadas do sistema operacional, instruções de gerenciamento da memória
virtual;
• Ponto utuante:
• Decimal:
• String:
operações de ponto utuante: ADD, MULTIPLY;
soma e multiplicação decimal, conversão de decimais para caracteres;
comparação, busca, cópias de strings;
• Gráco:
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 controle ou uxo 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 uxo sempre deve ser especicado. Na
maioria dos casos, o destino é especicado 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
7.
Volume questões de TI
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 armativas 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 CISC que 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) armativa(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
vez.
é uma técnica em que o hardware processa mais de uma instrução de cada
Ele não espera o término de uma instrução para executar outra.
CISC (Complex
Instruction Set Computer
Em uma máquina
- Computador com um Conjunto Complexo de
Instruções) típica, temos, basicamente, quatro fases para a execução: busca, decodicaçã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 montagem, 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. decodicaçã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 montagem (pipelining ). A Tabela 3 exemplica o funcionamento deste
pipelining
Estágio
C1 C2 C3 C4 C5 C6
Busca da instrução
I1
Decodicação da instrução
I2
I3
I4
I5
I6
I1
I2
I3
I4
I5
I1
I2
I3
I4
I1
I2
I3
Execução da instrução
Escrita do operando
Tabela 3:
hipotético.
pipelining.
No ciclo 1 (C1), a instrução 1 (I1) é buscada. No ciclo 2 (C2), a instrução 2 (I2) é buscada
e I1 é decodicada. No ciclo 3 (C3), a instrução 3 (I3) é buscada, I2 é decodicada e I1 é
executada. No ciclo 4 (C4), a instrução 4 (I4) é buscada, I3 é decodicada, 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 especicaçã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
pipeline ), é uma arquitetura de processadores RISC desenvol-
sem estágios interligados de
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 denidas para guiar o
projeto. Elas são a losoa 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
8.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Tipos de Memória, Memória Virtual,
Banca: Cesgranrio
Instituição: IBGE
Cargo: Analista de Sistemas - Suporte
Ano: 2010
Questão: 57
Em arquiteturas RISC, a gura 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 representar 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 classicados 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 utuante);
• 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 utuante;
• 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 Dados);
Página 22 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
• Registradores de propósito:
Volume questões de TI
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 Registrador (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).
Anal, por que utilizar um Banco de Registrador? Bom, sabemos que uma propriedade comum 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
16
16
128
128
32
32
x86-64
Itanium4
Power
Tabela 4: registradores em arquiteturas comerciais.
O tamanho do registrador depende 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.
210
30
ou 2
A capacidade de uma memória é medida em Bytes, Kilobytes (1 KB = 1024 ou
Bytes),
20 Bytes) ou Gigabytes (1 GB = 1024 MB
Megabytes (1 MB = 1024 KB ou 2
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 sabemos, 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 limitaçã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, é diferente 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 armazenados 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 mapeamento. 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 espaç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 blocos 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 programa seria duplicado, comprometendo seriamente o desempenho.
Para solucionar este
problema, a MMU possui internamente uma pequena memória, denominada TLB (Trans-
lation Lookaside Buer ).
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 endereço virtual, bits de mais alta ordem do endereço físico) que foram usados nos acessos mais
recentes. Note que os bits de mais baixa ordem (page
oset )
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 aconteç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
signicativo 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 nal, 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
9.
Volume questões de TI
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 seguintes 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 movem 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 identica as operações, opcode costuma possuir o mesmo
tamanho, o que simplica a etapa de decodicação da instrução.
Uma consequência dessa característica é que a implementação de pipelining é simplicada
2
drasticamente, um dos motivos pelos quais essa arquitetura foi projetada dessa forma .
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 losoa de que devem 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 registradores 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 costuma 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 identicação da operação, opcode, de
6 bits. Além do opcode, as instruções do tipo J especicam um endereço de 26 bits para
salto para outra posição de memória. As instruções do tipo I, usadas para representar instruções de transferência de dados, especicam 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 signica 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:
• funct:
quantidade de bits que devem ser deslocados;
uma variação especíca 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 signicativo ao menos signicativo
R
opcode (6)
rs (5)
rt (5)
I
opcode (6)
rs (5)
rt (5)
J
opcode (6)
rd (5)
shamt (5)
funct (6)
imediato (16)
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 instruçõ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 caracterí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
10.
Volume questões de TI
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 padrã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 precedem 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 começ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
11.
Volume questões de TI
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 signicar 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 nal 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
12.
Volume questões de TI
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 oat 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 utuante (oating point). Não existe sistema de numeração que seja capaz de fornecer 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 xa de casas decimais é conhecida como representação de ponto xo. Entretanto, a representação por ponto
utuante atingiu um sucesso muito maior, pois, por separar a mantissa do expoente (exemplo:
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 programação são oat e double, sendo que double possui uma precisão maior.
Ambos tipos
de variáveis são do tipo ponto utuante. 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 utuante, 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 utuante.
Como exposto acima, a alternativa correta é a letra D, pois foi mostrado que o tipo de
dados oat é utilizado para representar números reais.
Página 32 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
13.
Volume questões de TI
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:
e
Z = 53.
Colocando-os em ordem crescente temos que
Y < X < Z.
correta é a letra C.
Página 33 de 62
www.handbookdeti.com.br
X = 52, Y = 51
Então, a alternativa
Handbook de Questões de TI Comentadas para Concursos
14.
Volume questões de TI
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 hexadecimal 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 hexadecimal.
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 decimal para 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 conversã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 é
Página 35 de 62
www.handbookdeti.com.br
(C).
Handbook de Questões de TI Comentadas para Concursos
15.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Memória Principal, Memória Cache, 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: 3639
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 sempre que se zer 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 processador 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, consegue 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, independentemente 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 signicativo, 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 complemento 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 signicativo dos números negativos representados em complemento
de 2 deve ter valor 1. Caso isso não ocorra após o processo, verique se tudo foi feito
corretamente. Se armativo, então o número não é representável nesta quantidade de
bits, ocorrendo overow.
Números positivos são mais facilmente representados. Devemos apenas escrevê-los em
sua forma binária, garantindo que o bit mais signicativo (MSB Most Signicant Bit)
seja 0. Se o limite da palavra (quantidade de bits) não permitir que o MSB seja zero,
então há overow 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
Comp.1
Soma 1
→
→
→
0000000101011001
1111111010100110
1111111010100111
B = 239 (calcularemos B, já que a conta utilizará o valor negativo)
239
Comp.1
Soma 1
→
→
→
0000000011101111
1111111100010000
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
-B
A + (-B)
→
→
→
1111111010100111
1111111100010001
1111110110111000
Pelo resultado acima, vemos que a questão está correta.
Uma dica importante para
esse tipo de questão é olhar, de cara, para o resultado em decimal e ver se o resultado sugerido pela questão está com o bit de sinal correto.
Além disso, vericar se
os operandos e o resultado são representáveis na palavra indicada (ou seja, não ocorre
overow).
38
ERRADO
Este tipo de questão não requer raciocínio, apenas um conhecimento supercial sobre a arquitetura básica dos computadores modernos. Pela própria deniçã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 atividade 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 registradores, 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
3
geralmente é armazenado compactado em uma memória ash , para a memória principal 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. vericar a conguraçã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 congurações do sistema;
6. determinar quais dispositivos são inicializáveis e inicializá-los;
bootstrap ou, de
boot), passando o controle ao sistema operacional.
7. começar a sequência de inicialização (conhecida como
mais reduzida, como
3
forma
Como dado histórico, é interessante saber que a adoção de memória ash 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 cam armazenadas informações sobre as conguraçõ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 enm 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 operacional, 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 ca 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 dicilmente oferecia a taxa máxima para um componente especíco.
Como é de conhecimento geral, a manipulação de grácos e imagens é consumidora
voraz de processamento e memória. Assim, para que as placas grácas pudessem alcanç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 comunicarem 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 ca 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 possí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.
4
Da forma
Como o padrão especíca 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 armativa estaria correta.
Página 40 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
16.
Volume questões de TI
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 armações relacionadas a componentes funcionais de computadores:
I. Um pool de impressão é formado quando duas ou mais impressoras diferentes conectadas 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 nalidade
de ler e gravar dados em discos exíveis ou discos rígidos.
IV. Uma interface SCSI (Small Computer System Interface) é utilizada para conectar microcomputadores a dispositivos periféricos, como discos rígidos e impressoras, a outros
computadores.
Indique a opção que contenha todas as armaçõ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
associadas com uma la 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íco ou, no máximo, uma classe de dispositivos similares. A
deniçã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 sicamente e transferir dados entre computadores, e dispositivos
periféricos. Esses padrões denem 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)
b)
CORRETO: arma que a II e IV estão corretas;
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
17.
Volume questões de TI
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 armações relacionadas a Fundamentos da Computação:
I. O ASCII é um sistema de codicação de caracteres de byte simples usado para dados
com base em texto. Esse sistema de codicaçã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 identicar outros 128 caracteres de símbolos especiais, letras de línguas
estrangeiras e símbolos grácos.
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íca 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 armaçõ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 informaçõ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 denido 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. Obviamente, 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 codicaçã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 principal (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 os 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 chamadas à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 sistema operacional.
Desta forma, uma única cópia fornecida pelo sistema está disponível
simultaneamente para todos os programas que dela precisarem.
Diferentemente do que arma 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 necessitam de
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
identicaçã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
18.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Avaliação de Desempenho Computacional, 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 sucientes
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 computadores. 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 processamento.
Como o enunciado especica 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
19.
Volume questões de TI
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 armaçõ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 igualdade 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 complementaçã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 armativas.
Para facilitar a resolução de cada operação lógica, nós faremos uso de uma tabela constituí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
0010001000100010
AND AAAA
FFFF
((2222 AND AAAA)
XOR FFFF)
DDDD
1111111111111111
1101110111011101
1101110111011101
Tabela 15: resultado da vericação ((2222 AND AAAA) XOR FFFF) = DDDD.
Nota-se que a armativa é verdadeira.
Página 50 de 62
www.handbookdeti.com.br
Handbook 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
1011101110111011
OR BBBB
FFFF
((2222 OR BBBB)
XOR FFFF)
DDDD
1111111111111111
0100010001000100
1101110111011101
Tabela 16: resultado da vericação ((2222 OR BBBB) XOR FFFF) = DDDD.
Como podemos ver, a armativa é falsa.
III. ((2222 NOT CCCC) XOR FFFF) = 3333.
Atenção:
o operador NOT é
unário, e não binário como está nesta armativa!
Muito provavelmente ocorreu um erro de graa, o que nos fornece recurso para invalidar
toda a questão.
IV. ((2222 XOR DDDD) XOR FFFF) = 3333.
2222
0010001000100010
DDDD
1101110111011101
2222
1111111111111111
XOR DDDD
FFFF
((2222 XOR DDDD)
XOR FFFF)
3333
1111111111111111
0000000000000000
0011001100110011
Tabela 17: resultado da vericação ((2222 XOR DDDD) XOR FFFF) = 3333.
Novamente, armativa 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 recurso cuidadosamente, sempre indicando referências bibliográcas. Agora, se mesmo assim
não aceitarem o seu recurso, entre com um mandado de segurança, anal, 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
20.
Volume questões de TI
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, permite 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 controlador de DMA, para transferir os dados entre um dispositivo de entrada/saída e memória.
O controlador de DMA é conectado sicamente 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 nalizar 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 barramento.
Cache é uma memória rápida que contém dados e/ou instruções recentemente referenciadas 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
21.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Modelo de von Neumann, Arquitetura 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 cam 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 memória.
(e). os dados cam 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 arquiteturas 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 processamento.
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 descriçã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, exemplicada 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
22.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Memória Cache, Memória Buer,
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 corresponde 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 buer e uma cache é que uma memória cache
armazena sempre a única cópia existente de um item de dado, enquanto uma memória
buer 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ética computacional é o livro Introdução à Organização de Computadores do Mário A. Monteiro.
0 + C*161 = 9*1 + 12*16 = 201 (os
9*16
Convertendo C9 (base 16) em decimal:
hexadecimais A, B, C, D, E e F correspondem, respectivamente, aos decimais 10, 11,
12, 13, 14 e 15).
0 + 4*81 = 2*1 + 4*8 = 34.
Convertendo 42 (base 8) em decimal: 2*8
Convertendo 100101 (base 2) em decimal:
0 + 0*21 + 1*22 + 0*23 + 0*24 +
1*2
5
1*2 = 1*1 + 1*4 + 1*32 = 37.
Somando 72 (base 8) e 23 (base 8):
1 <<-- vai um
72
+23
--115
Enm, as armações 1 e 2 são corretas, contudo as armaçõ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 registradores 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 tipos 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 arquitetura, alguns níveis se encontram dentro do chip do processador e outros em chips
próprios, porém bem próximos sicamente ao processador. Por se tratar de uma memó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 é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).
Buer é um outro tipo de memória muito utilizada para interligar logicamente, possibilitando troca de dados, dispositivos que geralmente trabalham em velocidades diferentes. 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 buer não são copiados em outras
memórias.
Tendo em vista o exposto, não é difícil concluir que a armativa feita por esta questão
é ERRADA.
Página 56 de 62
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
23.
Volume questões de TI
Assuntos relacionados: Sistemas Distribuídos, Independência de Localização, Independê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 processados 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 exatamente 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 conabilidade e maior disponibilidade.
A conabilidade 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 isolado.
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 servidor 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 sicamente armazenados os dados.
É uma característica desejável, pois
simplica programas e atividades em aplicações e permite que dados migrem de um servidor 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, simplicando 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 ns de armazenamento físico. A fragmentaçã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 trabalhando 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
Página 58 de 62
www.handbookdeti.com.br
E está incorreta.
Handbook de Questões de TI Comentadas para Concursos
24.
Volume questões de TI
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 criptograa 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 shared 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
25.
Volume questões de TI
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 componentes, 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 computador.
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 eciente 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 transferê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 melhor 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. Portanto, esta é a alternativa correta.
(C) ERRADA
Essa solução apresenta um custo-benefício alto, pois para aumentarmos o tamanho do arquivo 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
Questão
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Página 62 de 62
Volume questões de TI
Resposta
A
E
E
E
31 ERRADO 32 ERRADO 33 CERTO 34 ERRADO 35 ERRADO
E
D
A
E
C
B
D
C
C
36 ERRADO 37 CERTO 38 ERRADO 39 CERTO
A
B
C
E
A
B
56 ERRADO 64 ERRADO
E
E
B
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 Buer, 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
Download

Arquitetura de Computadores