Sistemas Operacionais

Propaganda
Sistemas Operacionais
para concursos
Questões comentadas
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Prefácio
Tal como nas arquiteturas de hardware, os Sistemas Operacionais (SO) também passam por
um processo evolutivo, classicado em gerações. O surgimento dos SOs data da segunda geração de computadores, na década de 50.
Hoje, um sistema operacional implementa políticas e estruturas de software de modo a possibilitar o uso eciente e controlado dos diversos componentes de hardware do computador (unidade
central de processamento, memória, dispositivos de entrada e saída). Além disso, o S.O. oferece
uma interface mais amigável aos usuários em relação às operações associadas a cada componente
da máquina.
O tema Sistemas Operacionais, devido à sua relevância, tende a ser cobrado pela maioria dos
concursos da área de Tecnologia de Informação, que buscam averiguar se o conhecimento do
candidato evolui ao mesmo passo da área.
Este volume tem por objetivo fornecer ao candidato uma visão dos principais mecanismos envolvidos na concepção de um sistema operacional moderno. Para tanto, o Grupo Handbook de
TI selecionou uma série de questões comentadas em detalhes para você.
Bons estudos,
Grupo Handbook de TI
Página 1 de 55
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 55
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 55
www.handbookdeti.com.br
http://twitter.
Handbook de Questões de TI Comentadas para Concursos
1.
Volume questões de TI
Assuntos relacionados: Sistemas Operacionais, Gerenciamento de Processador, Escalo-
namento de Processos,
Banca: FCC
Instituição: TCE/CE
Cargo: Analista de Controle Externo - Auditoria de Tecnologia da Informação
Ano: 2008
Questão: 71
Criado para sistemas de tempo compartilhado e semelhante ao escalonamento FCFS, porém
com preempção para alternar entre processos. Trata-se do algoritmo de escalonamento
(a). Multilevel Queue.
(b). em tempo real.
(c). por prioridade.
(d). Multilevel Feedback-Queue.
(e). Round-Robin.
Solução:
Para implementar o compartilhamento da CPU entre diversos processos, um sistema operacional deve possuir um critério para determinar, entre os diversos processos no estado
pronto, qual o próximo processo a executar. Esse procedimento de seleção chama-se escalonamento, e é realizado por um componente do sistema operacional chamado escalonador.
Os principais objetivos do escalonamento de processos são:
•
maximizar a utilização do processador;
•
maximizar o número de processos completados por unidade de tempo;
•
garantir que todos o processos recebam o processador;
•
minimizar o tempo de resposta para o usuário.
Os algorítimos de escalonamento pode ser subdivididos em duas classes:
• Não Preemptivo:
processo que está executando não pode ser interrompido.
Pre-
sente nos primeiros sistemas multiprogramáveis, onde predominava o processamento
em batch. As políticas que implementam escalonamento não-preemptivo não são aplicáveis à sistemas de tempo compartilhado, pois em processos interativos é necessário
um tempo de resposta ao usuário razoável;
• Preemptivo:
o processador pode ser retirado do processo que está executando. Per-
mite atenção imediata aos processos mais prioritários, melhores tempos de resposta,
compartilhamento uniforme do processador.
Alguns exemplos de algorítimos de escalonamento não preemptivos são:
• FIFO (First In First Out):
Também conhecido como FCFS (First Come First
Served). O primeiro processo que chegar é o primeiro a ser selecionado para execução.
Esse algorítimo é implementado de forma simples utilizando uma única la;
• SJF (Shortest Job First):
O processo escolhido para execução é sempre o que tem
menor tempo de processador. Esse algorítimo minimiza o tempo médio de espera de um
conjunto de processos. A implementação do SJF depende da determinação antecipada
do tempo de processador que cada um dos processos da la exigirá. Essa uma tarefa
difícil, e na prática o tempo é estimado de forma aproximada com base em informações
Página 4 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
históricas do processo.
Volume questões de TI
Além disso, o SJF pode causar o problema da postergação
indenida para grandes processos, que não conseguiram tomar posse do processador
caso sempre existam processos menores.
Com relação aos algorítimos de escalonamento preemptivos, oa mais famosos são:
• Round Robin:
Essa é a resposta da questão. Nesse algorítimo, cada processo executa
durante uma fatia de tempo (time-slice). Se a fatia de tempo for excedida, o processo
que estava executando é movido para o nal da la de prontos (preempção) e a posse
do processador é dada para o próximo processo da la.
Esse algorítimo é bastante
adequado para sistemas de tempo compartilhado, favorecendo os processos pequenos,
que terminam primeiro, sem penalizar os grandes. Um aspecto crucial na implementação do round robin é a denição do time-slice. Se este for muito pequeno, haverá um
overhead em virtude da grande quantidade de trocas de contexto. Se for muito grande,
o tempo de resposta dos processos no nal da la de prontos aumentará.
• Por Prioridades:
Nesse algorítimo, a cada processo é atribuída uma prioridade. O
processo com maior prioridade na la de prontos receberá o processador. As prioridades
podem ser atribuídas de forma estática (quando o processo tem uma prioridade xa
durante seu tempo de vida), ou dinâmica (quando a prioridade muda ao longo do
tempo de vida do processo). A atribuição dinâmica pode ser utilizada para resolver o
problema da postergação indenida, que pode com processos de baixa prioridade. O
aumento dinâmico da prioridade dos processos é conhecido como
• Múltiplas Filas:
aging.
Nesse algorítimo, prioridades são atribuídas à classes de processos
de acordo com o tipo de processamento. Os processos das classes de maior prioridade
recebem o processador primeiro, enquanto os processos das classes de menor prioridade
só receberão o processador se as las de prontos das outras classes (de maior prioridade) estiverem vazias. Cada classe possui sua própria la de prontos, gerenciada pelo
seu próprio algorítimo de escalonamento (FIFO, SJF, Prioridades, Round Robin etc).
Uma variante do algoritmo de Múltiplas Filas é o algorítimo de Múltiplas Filas com
Realimentação, em que os processos podem mudar de classe (e consequentemente de
la), ao longo de seu ciclo de vida.
Página 5 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
2.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Thread,
Banca: CESGRANRIO
Instituição: Petrobras
Cargo: Analista de Sistemas - Eng. de Software
Ano: 2008
Questão: 22
Alguns sistemas operacionais permitem que seus processos criem múltiplos threads de execução.
Em operação normal, o que é previsto que os threads de um mesmo processo do
sistema operacional compartilhem?
(a). Arquivos abertos
(b). Registradores
(c). Pilha (stack)
(d). Variáveis locais de cada thread
(e). Contador de instrução (program counter)
Solução:
Uma thread é comumente denida como um uxo único de controle sequencial dentro de
um programa. O uso de threads visa reduzir o custo do gerenciamento de processos, que
consiste principalmente em:
•
criação do processo;
•
trocas de contextos entre processos;
•
overhead associado a esquemas de proteção de memória;
•
comunicação entre processos.
Podemos dizer que as threads pertencentes ao mesmo processo utilizam os recursos alocados
no sistema operacional para esse processo, como:
•
o espaço de endereçamento na memória;
•
os arquivo abertos (handles);
•
os objetos de sincronização.
O compartilhamento desses recursos permite que os uxos de execução (threads) se comuniquem ecientemente. Então, a letra (a) é a opção correta.
Entretanto, threads dentro de um processo (e também entre processos) são escalonadas
e executadas independentemente. No momento de sua execução, cada thread recebe alguns
recursos próprios, como:
•
os registradores;
•
a pilha de execução, que lhe dará poder para chamar métodos, passar parâmetros e
alocar variáveis locais;
•
o contador de instrução (program counter), que é essencial para que o uxo de execução
prossiga.
É importante perceber que para que o acesso a esses recursos exclusivos ocorra, é necessário
o chaveamento de contexto entre as threads, ou seja, o estado dos elementos próprios citados
deverá ser armazenado e restaurado a cada troca de thread no uso do processador.
Página 6 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Dado o exposto, as alternativas (b), (c), (d) e (e) podem ser eliminadas, pois citam recursos
que não são compartilhados entre threads. A Figura 1 exemplica o compartilhamento das
threads dentro de um processo.
Figura 1: exemplicação de um processo com uma única thread e com múltiplas threads.
Concluindo, as principais vantagens do uso de threads são:
•
permite a exploração do paralelismo real oferecido por máquinas multiprocessadas;
•
possibilita o aumento do número de atividades executadas por unidade de tempo (throughput);
•
permite sobrepor operações de cálculo com operações de I/O e, com isso, reduzir o
tempo de resposta;
•
o tempo de criação e destruição de threads é inferior ao tempo de criação e destruição
de processos, respectivamente;
•
o chaveamento de contexto entre threads é mais rápido que o tempo de chaveamento
entre processos;
•
como threads compartilham o descritor do processo, elas dividem o mesmo espaço de
endereçamento, o que permite a comunicação por memória compartilhada sem interação
com o núcleo (kernel) do sistema operacional.
Página 7 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
3.
Volume questões de TI
Assuntos relacionados: Programação Multithreading, Thread,
Banca: ESAF
Instituição: Superintendência de Seguros Privados (SUSEP)
Cargo: Analista Técnico da SUSEP - Tecnologia da Informação
Ano: 2010
Questão: 25
Em relação à programação multithreading, é correto armar que
(a). multithreads podem ser oferecidos em modo usuário e modo organização.
(b). um thread é a sub-rotina de um programa que não pode ser executado de forma
assíncrona.
(c). threads podem ser oferecidos em modo segmentado, modo estrutura, modo kernel
e modo híbrido.
(d). no ambiente multithread cada programa pode responder a várias processos concorrentes, em um único processador.
(e). no ambiente multithread, cada processo pode responder a várias solicitações concorrentes, caso haja mais de um processador.
Solução:
Um processo tradicional rodando em um sistema operacional possui apenas uma linha de
execução.
Um processo possui sua própria área de memória.
O conceito de multithread
separa um processo em várias linhas de execução (Threads), cada uma rodando independentemente. Caso haja mais de um processador, um processo pode ter mais de uma thread
executando simultaneamente na máquina.
A Thread compartilha o mesmo espaço de memória do processo de qual ela faz parte. No entanto, há itens que são intrínsecos das threads (apesar de poderem ser acessadas por outras
threads do processo): pilha, registradores, estado e program counter (apontador da instrução atual). As propriedades do processo são: variáveis globais, arquivos abertos, espaço de
endereço, processos lhos, alarmes pendentes, sinais e tratadores de sinais, informação de
conta (dono do processo, grupo, etc.).
As threads podem ser implementadas de três formas diferentes: Modo usuário, modo kernel
e modo híbrido.
O modo usuário pode ser implantado em um SO que não suporta threads, assim a implementação é um conjunto de procedimentos de gerência de threads e uma tabela para
gerenciar as propriedades das mesmas.
A principal vantagem é a velocidade de criação,
destruição e alternação entre linhas de execução. No entanto, sua principal desvantagem é
que chamadas de sistema bloqueantes, bloqueiam todo o processo e consequentemente todas
as threads dele.
No modo kernel, o Kernel possui uma tabela que gerência as threads de todos os processos
e a criação e destruição dessas são feitas através de chamadas de sistemas o que causa perda
de desempenho. Em compensação, chamadas de sistemas bloqueantes podem ser utilizadas
e há apenas o escalonamento de outra thread.
O modo híbrido busca atingir a velocidade do modo usuário com as vantagens do modo
Página 8 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
kernel. Uma das abordagens utilizadas para isso é o escalonador de ativações. Nessa técnica,
o kernel aloca processadores virtuais para cada processo e esses possuem um escalonador em
modo usuário que alocam threads a processadores. Em caso de ter mais de um processador,
um processador virtual pode ser um processador real.
Quando o kernel detecta que uma
thread será bloqueada, ele notica o processo através de um upcall, que é a ativação do
escalonador a partir de um ponto inicial conhecido. O sistema é parecido com a utilização
de sinais.
Sendo assim, como resolução da questão anterior, temos:
a)
ERRADO: como citado anteriormente Mutithreads pode ser oferecida em modo usuário, kernel e híbrido;
b)
ERRADO:
uma thread é uma linha de execução de um processo. Ela normalmente
tem como ponto inicial uma sub-rotina. Um processo poder ou não poder ser executado
assincronamente não possui relação com a criação de uma thread;
c)
ERRADO:
as threads são oferecidas nos três modos citados anteriormente;
d)
ERRADO:
em um ambiente multithread um processo pode possuir várias linhas de
execução simultâneas (threads) executando concorrentemente em um processador;
e)
CORRETO:
um exemplo desse fato pode ser um servidor web multithread, onde há
um receptor de requisições e a cada requisição, ele cria uma thread para atendê-la. Se
houver mais de um processador poderá haver mais de uma solicitação sendo atendida
ao mesmo tempo por processadores diferentes.
Página 9 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
4.
Volume questões de TI
Assuntos relacionados: Sistemas Operacionais, Bootstrap,
Banca: FCC
Instituição: MPU
Cargo: Analista de Desenvolvimento de Sistemas
Ano: 2007
Questão: 34
NÃO é um componente dos sistemas operacionais:
(a). bootstrap.
(b). scheduler.
(c). kernel.
(d). shell.
(e). GUI.
Solução:
Como se trata de uma questão muito direta e que cobra o entendimento de termos utilizados
em computação, vamos analisar alternativa por alternativa.
(A) O termo
bootstrap
bootstrap load. Já o termo boot,
bootstrap. O termo bootstrap começou
é uma redução do termo
usado hoje em dia, é uma redução do termo
mais
a ser
utilizado na década de 1950.
O processador central de um computador usualmente só é capaz de executar códigos que
estejam na memória ROM ou na memória RAM. Nos sistemas modernos, tanto o sistema
operacional quanto os programas de aplicação são armazenados em dispositivos de armazenagem de dados não voláteis como discos rígidos, DVDs e ash drives. Quando o computador
é iniciado, ele não possui o sistema operacional na memória ROM ou RAM. Para que o
sistema operacional possa ser usado, um pequeno programa armazenado na memória ROM
deve ser executado com o intuito de colocar os principais códigos do sistema operacional na
memória RAM para que eles possam ser executados. Esse programa armazenado na ROM
bootstrap loader. Frequentemente, os boot loaders funcionam em
várias etapas. Logo, é comum que o bootstrap de primeiro estágio carregue um boot loader
de segundo estágio na memória RAM e o execute. Esse boot loader terá a função de carregar
é comumente chamado de
o sistema operacional propriamente dito.
Como explicado, o
bootstrap
é responsável por colocar a partes mais importantes do sis-
tema operacional na memória RAM para que elas possam ser executadas e, portanto, o
bootstrap
não faz parte do sistema operacional. A alternativa a ser marcada é a letra A.
(B) Em um sistema de multiprogramação, temos frequentemente a situação onde vários
processos estão prontos para serem executados. Quando mais de um processo está pronto,
o sistema operacional deve decidir qual processo deve ser executado primeiro. A parte do
sistema operacional que toma esta decisão é chamada de escalonador (scheduler ). O algoritmo que é usado, neste caso, é chamado de algoritmo de escalonamento.
(C) A responsabilidade do
kernel
em um sistema operacional consiste em abstrair a in-
terface do hardware, permitindo que processos utilizem estes recursos concorrentemente, de
forma segura e padronizada. O
kernel
fornece sistema de arquivos, escalonamento de CPU,
gerência de memória e outras funções do sistema operacional através de chamadas de sistema.
Página 10 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
(D) O
shell
Volume questões de TI
de comando é um software independente que oferece comunicação direta entre
o usuário e o sistema operacional. A interface de usuário não gráca do
shell
de comando
é o ambiente propício para a execução de aplicativos e utilitários baseados em caracteres.
O
shell
de comando executa programas e exibe os dados de saída em uma tela usando ca-
racteres individuais. o
shell
nada mais é que o interpretador de comandos que transmite
kernel o que é para ser realizado. Os nomes de shell mais conhecido no Windows são
command.com e o cmd.exe, já no Linux existem o Bourne shell (sh), o Korn Shell (ksh),
C Shell (csh) e o Bash.
ao
o
o
(E) GUI, a sigla de Graphical User Interface, é uma interface Homem-computador (isto
é, uma maneira para que os seres humanos possam interagir com computadores) que usa
janelas, ícones e menus e que pode ser manipulada por um mouse e, às vezes, de forma
restrita, também pelo teclado. GUIs diferenciam-se de forma acentuada das interfaces por
linha de comando (CLI - Command Line Interface em Inglês), pois estas utilizam texto
apenas e são acessadas exclusivamente pelo teclado.
Página 11 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
5.
Volume questões de TI
Assuntos relacionados: Sistemas de Arquivos, Fragmentação de Dados,
Banca: CESGRANRIO
Instituição: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questão: 62
Sobre a fragmentação de dados em um disco rígido, tem-se que
(a). é desejável porque aumenta o desempenho de leitura dos arquivos, embora o diminua nos acessos de gravação.
(b). não há relação com a quantidade de movimentações dos cabeçotes de leitura e
gravação no acesso de um arquivo.
(c). o nível de fragmentação dos sistemas de arquivos EXT3 e NTFS é zero, ou seja,
não existem arquivos fragmentados.
(d). discos menos fragmentados têm vida útil mais reduzida em comparação com discos
mais fragmentados.
(e). comparando discos utilizados com o mesmo padrão de interleaving sobre os setores,
o impacto negativo da fragmentação é atenuado pelo disco de maior densidade de
dados e maior velocidade de rotação.
Solução:
Diz-se que um arquivo está fragmentado quando o espaço por ele alocado no disco rígido não
é contíguo. Ou seja, os dados que compõem o arquivo não estão unidos, mas sim espalhados
pelo disco. Isso signica dizer que para acessar um arquivo fragmentado é necessário um
maior deslocamento do cabeçote de leitura do disco rígido.
Por consequência, a fragmentação causa queda de desempenho do sistema, tanto para operações de leitura quanto para escrita. Lembrando que o tempo de acesso a um determinado
dado em disco é dado pela fórmula:
Tacesso = Tseek + Tlatencia + Ttransf erencia
Em discos com alto nível de fragmentação, o tempo de seek, que é o tempo necessário
para deslocar o cabeçote de leitura até o cilindro correto, tende a ser mais alto, já que os
diversos setores do disco que compõem o arquivo estão espalhados.
Na prática, a fragmentação ocorre quando nenhum dos espaços contíguos disponíveis no
disco é suciente para comportar um arquivo, e isso não depende do sistema de arquivos,
seja ele FAT, NTFS, EXT3 etc. É claro que alguns sistemas de arquivos são mais ecientes
na prevenção de altos índices de fragmentação. Notoriamente, os sistemas de arquivos do
Linux, por meio de técnicas heurísticas de alocação de espaço, apresentam índices de fragmentação quase nulos. Porém, ela ainda se manifesta quando o disco está com alta utilização
e existam arquivos grandes no sistema.
O padrão de interleaving, do qual fala a alternativa E, está relacionado com a organização dos setores no disco. Discos com mesmo fator de interleaving e mesma velocidade de
rotação, podem ser ditos equiparáveis em tempo médio de seek. A alternativa E é a correta,
pois quanto maior a velocidade de rotação, menor será o tempo de seek e, por consequência,
menor o tempo de acesso.
Página 12 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
6.
Volume questões de TI
Assuntos relacionados: Redes de Computadores, Network File System (NFS),
Banca: Cesgranrio
Instituição: IBGE
Cargo: Analista de Sistemas - Suporte
Ano: 2010
Questão: 32
Quando o Linux é iniciado, qual arquivo de conguração é utilizado pelo sistema operacional
para vericar quais os compartilhamentos NFS que devem ser montados?
(a). etc/exports
(b). etc/nfs.conf
(c). etc/fstab
(d). nfs/conf
(e). nfs/exports
Solução:
NFS (Network File System) é um sistema distribuído de arquivos, desenvolvido inicialmente
pela Sun Microsystems. O seu principal propósito é prover compartilhamento de arquivos
e diretórios entre computadores interconectados em rede, formando assim uma espécie de
diretório virtual. Esse sistema utiliza um protocolo que também se chama NFS. O protocolo
NFS é especicado nas seguintes RFCs: RFC 1094, RFC 1813 e RFC 3530 (que tornou a
RFC 3010 obsoleta).
O livro de Andrew S. Tanenbaum, intitulado Sistemas Operacionais Modernos, traz uma
ótima explicação sobre NFS. Nessa explicação, podemos entender que a ideia básica do NFS
é permitir que um conjunto qualquer de clientes e servidores compartilhem um sistema de
arquivos comum. Em muitos casos, todos os clientes e servidores estão na mesma LAN, mas
essa não é uma condição obrigatória.
É importante notar que um servidor NFS também
pode se comportar como cliente, e vice-versa. Veja na Figura 2, um cenário hipotético de
utilização de NFS.
Figura 2: exemplo de sistemas de arquivos montados remotamente via NFS.
Página 13 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Cada servidor NFS exporta um ou mais de seus diretórios locais para serem acessados pelos clientes remotos.
seus subdiretórios.
Quando um diretório é exportado, o mesmo acontece com todos os
A lista de diretórios que um servidor exporta é mantida, na maioria
dos sistemas, no arquivo /etc/exports.
Dessa forma, os diretórios podem ser exportados
automaticamente sempre que o servidor for reiniciado.
Cada cliente NFS monta um ou mais diretórios remotos, que cam fazendo parte de sua
hierarquia de diretórios.
É importante notar que os usuários de um sistema cliente NFS
nem percebem que um determinado diretório é remoto. Para eles, tudo acontece de forma
transparente e a utilização de diretórios remotos e locais não se altera. Analogamente ao
/etc/exports do lado servidor, no lado cliente temos o /etc/fstab.
O arquivo fstab (le systems table) permite que partições (ou diretórios exportados) sejam montadas com facilidade na inicialização do sistema, sem que o usuário tenha que fazer
as montagens manualmente todas vezes que o sistema for inicializado. Cabe ressaltar que o
fstab também pode ser utilizado em outros momentos sem ser o de inicialização do sistema.
Para isso, pode-se utilizar o comando mount com parâmetros especícos.
Dependendo
dos parâmetros utilizados, o mount lê as congurações do arquivo /etc/fstab e realiza (ou
atualiza) montagens de partições e de diretórios remotos. Em cada linha do arquivo fstab é
especicado o seguinte: o dispositivo ou o diretório que será montado; o diretório local onde
será feita a montagem; o tipo de sistema de arquivo que será utilizado; e outros parâmetros
de montagem. Veja um exemplo abaixo:
# device name
LABEL=/
/dev/hda6
none
none
none
mount point
/
swap
/dev/pts
/proc
/dev/shm
fs-type
ext3
swap
devpts
proc
tmpfs
# Montagem NFS
pingu:/store
/store
nfs
options
dump-freq pass-num
defaults
1 1
defaults
0 0
gid=5,mode=620
0 0
defaults
0 0
defaults
0 0
rw
0 0
# Mídias Removíveis
/dev/cdrom
/mount/cdrom
/dev/fd0
/mount/floppy
udf,iso9660 noauto,owner,kudzu,ro
auto
noauto,owner,kudzu
0 0
0 0
# NTFS Windows XP partição
/dev/hda1
/mnt/WinXP
ntfs
ro,defaults
0 0
umask=000
0 0
# Partição (pasta) Windows and Linux
/dev/hda7
/mnt/shared
vfat
Com o que já foi exposto, não é difícil perceber que a resposta correta para esta questão é a
letra c. Já vimos também o real propósito do arquivo /etc/exports. Agora vamos abordar
os outros arquivos mencionados nas alternativas.
Em alguns sistema baseados em UNIX há o arquivo /etc/nfs.conf.
utilizado para especicar o que deve ser montado.
Contudo, ele não é
Ele contém congurações de como o
servidor e/ou o cliente NFS deve funcionar.
Página 14 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Já as opções /nfs/conf e /nfs/exports nem mesmo fazem sentido. Isso porque, por padrão,
nenhum sistema operacional conhecido tem um diretório de nome nfs em sua raiz.
Página 15 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
7.
Volume questões de TI
Assuntos relacionados: Redes de Computadores, Network File System (NFS),
Banca: Cesgranrio
Instituição: Petrobras
Cargo: Analista de Sistemas - Infraestrutura
Ano: 2008
Questão: 30
O NFS é um protocolo que fornece aos usuários acesso transparente aos arquivos compartilhados em uma rede utilizando o protocolo TCP/IP. Para que o NFS funcione, alguns
serviços devem estar em execução no servidor NFS. Dos serviços abaixo, qual é fornecido
pelo daemon mountd?
(a). Atender as requisições dos clientes NFS.
(b). Executar as solicitações repassadas pelo nfsd.
(c). Fornecer números de porta nas quais os clientes podem se vincular.
(d). Monitorar o status dos servidores e clientes para recuperá-los de bloqueios NFS.
(e). Gerenciar os sistemas bloqueados para evitar modicações de dados por vários
clientes ao mesmo tempo.
Solução:
O NFS -
Network File System
é um protocolo de rede que permite que árvores de diretórios
e arquivos sejam compartilhados através de uma rede.
Através do NFS é possível mon-
tar diretórios compartilhados remoto como se fossem dispositivos locais.
É um protocolo
originalmente desenvolvido pela Sun Microsystens, mas atualmente está disponível em praticamente todos os sistemas UNIX. O NFS precisa estar habilitado no kernel, seja nativo ou
carregado como módulo, tanto no servidor quanto no cliente.
O NFS é mantido por diversos
no sistema. Os
daemons
daemons
que são processos que são executados em
de servidor NFS, chamados de
servidor e aceitam chamadas RPC dos clientes. O
daemon
daemons
background
nfsd, são executados no
nfsd nada mais é que um processo
receptor de subrotinas do kernel que executam operações de sistemas de arquivos. Ele existe
como um processo separado para prover um escalonamento tratado pelo kernel, permitindo
que um servidor aceite mais requisições NFS enquanto outros
daemons
nfsd estão aguar-
dando que uma operação no disco seja completada.
O servidor NFS também executa o
daemon mountd
que executa as solicitações que o nfsd
lhe passa, além disso, verica as permissões de acesso do cliente e retorna um ponteiro para
um sistema de arquivos. Uma vez montando um diretório, ele permanece ligado ao sistema
umount ou até que o sistema local
buers é manipulado pelo comando biod,
daemon biod está normalmente em execução
de arquivos local até que seja desmontado com o comando
seja reinicializado. No cliente, o uso da cache e de
o
daemon
de E/S de bloco. No cliente NFS, o
para melhorar a desempenho do NFS, apesar de não ser imprescindível.
O
daemon portmap
faz o mapeamento dos números de programa RPC para os números
daemon portmap não estiver sendo executado corretamente, o NFS também não funcionará. O daemon lock é o que manipula as requisições
locks de arquivos. É executado nos clientes e nos servidores. Clientes requisitam le lock
e os servidores fornecem. O daemon statd é exigido pelo lockd para fornecer os serviços
de monitoração. Permite que os locks sejam liberados após uma eventual queda da rede.
de porta TCP/IP apropriados.
Se o
Página 16 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
daemon statd. Os daemons NFS clients são: biod, statd e lockd
e os daemons server são biod, statd, lockd, nfsd e o mountd (os daemons server às vezes
executam como daemons clients utilizando os daemons biod, statd e lockd ).
Clientes e servidores rodam
Como foi apresentado acima, o
daemon mountd
realiza os pedidos que o nfsd passa a ele,
ou seja, trata as requisições repassadas pelo nfsd. Portanto, alternativa
Página 17 de 55
www.handbookdeti.com.br
B
está correta.
Handbook de Questões de TI Comentadas para Concursos
8.
Volume questões de TI
Assuntos relacionados: Sistemas Operacionais, Arquitetura de Computadores,
Banca: Cesgranrio
Instituição: BR Distribuidora
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questão: 29
Como é chamado o setor 0 (zero) de um disco, o primeiro a ser lido e executado pela BIOS?
(a). FAT
(b). MBR
(c). I-node
(d). GRUB
(e). Superbloco
Solução:
Vamos analisar alternativa por alternativa com o intuito de apresentar a teoria relacionada
com cada uma.
FAT
é um sistema de arquivos e é a sigla para
File Allocation Table
(ou tabela de alo-
cação de arquivos). O primeiro FAT surgiu em 1977, para funcionar com a primeira versão
do DOS. Trata-se de um sistema que funciona através de uma espécie de tabela que contém
indicações para onde estão as informações de cada arquivo. Quando um arquivo é salvo num
disquete por exemplo, o FAT divide a área do disco em pequenos blocos. Assim, um arquivo
pode (e ocupa) vários blocos, mas eles não precisam estar numa sequência. Os blocos de
determinados arquivos podem estar em várias posições diferentes. Daí a necessidade de uma
tabela para indicar cada bloco.
Com o surgimento de dispositivos de armazenamento com mais capacidade e mais sosticados, o sistema FAT foi ganhando alterações (identicadas pelos nomes FAT12 e FAT16).
Isso foi necessário porque o FAT era limitado a determinada capacidade de armazenamento.
Por exemplo, ele só operava com tamanho máximo de 2 GB. Assim, num disco de 5 GB, seria
necessário dividi-lo em 3 partições. Fora o fato de que o FAT apresentava problemas com
informações acima de 512 MB. Diante de tantos problemas, em 1996, a Microsoft lançou um
novo FAT: o FAT32, que é compatível com os Windows 9x/Me/2000 e XP (apesar destes
dois últimos terem um sistema de arquivos mais avançado, o NTFS).
MBR
é abreviação de Master Boot Record, também conhecido como setor 0.
O MBR
armazena tanto o gerenciador de boot quanto a tabela de particionamento do disco rígido.
Dos seus 512 bytes, 446 bytes são reservados para o setor de boot, enquanto os outros 66
bytes guardam a tabela de partição. Esta tabela contém informações sobre o tipo, endereço
de início e nal de cada partição.
O BIOS (Basic Input/Output System) é muito limitado no sentido de ser inicializar o sistema
operacional, embora seja capaz de contar a memória e reconhecer os periféricos instalados
(via plug-and-play), o BIOS não tem o discernimento de como prosseguir para carregar o
sistema. O setor de boot funciona como um ponto de partida, assim que o POST (Power
On Self Test )
é concluído, o BIOS lê o setor de boot e segue as instruções que estiverem
gravadas nele, que iniciarão o carregamento do sistema operacional. Como já dissemos, no
disco rígido, o setor de boot faz parte do MBR, que é o primeiro setor a ser lido pela BIOS.
Página 18 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
A alternativa correta da questão é a letra
O
I-node
Volume questões de TI
B.
é uma estrutura de dados constituinte de um sistema de arquivos que segue
a semântica Unix.
O I-node armazena informações sobre um arquivo, tais como o dono,
permissões e sua localização. Cada diretório e arquivo é identicado com um número I-node.
O I-node é exclusivo somente para o dispositivo (partição) dentro do qual ele está contido.
Portanto, para identicar unicamente um arquivo, o núcleo do sistema operacional
deve ter o número de dispositivo e o I-node do arquivo.
Um arquivo possui um único I-node, não importa por quantos nomes este arquivo é identicado no sistema. Logo, é o conjunto de inodes que indica o número de arquivos/diretórios
que o sistema possui.
O
GRUB
foi desenvolvido a partir de um pacote chamado
GRand Unied Bootloader,
de onde deriva o acrônimo GRUB. O GRUB é um multi-carregador de sistema operacional
(multi
boot boot-loader ) e
é adotado por diversos sistemas Linux. É utilizado, normalmente,
quando se deseja que um computador tenha
dual booting,
ou seja, que o usuário possa esco-
lher ao iniciar a máquina, um sistema operacional dentre dois ou mais sistemas instalados.
O MBR contém o primeiro estágio do GRUB. Dado o pequeno tamanho deste estágio, ele
apenas carrega o próximo estágio do GRUB, que pode residir em qualquer locação do disco.
O
superbloco
é o contêiner para os metadados de alto nível referentes a um sistema de
arquivos. É uma estrutura que existe no disco rígido (na verdade, em vários lugares no disco,
para ns de redundância) e também na memória. Fornece a base para o gerenciamento do
sistema de arquivos em disco à medida que dene os parâmetros de gerenciamento do sistema de arquivos (por exemplo, número total de blocos, blocos livres e nó de índice raiz).
No disco, o superbloco apresenta informações sobre o
kernel
na estrutura do sistema de
arquivos no disco. Na memória, o superbloco apresenta as informações necessárias e o estado para gerenciar o sistema de arquivos ativo (montado). Por exemplo, como o Linux dá
suporte a vários sistemas de arquivos concorrentes montados simultaneamente, cada estrutura de superbloco é mantida em uma lista e são gerenciadas através de um conjunto de
interfaces padrão, também conhecido como virtual le system switch (VFS).
Página 19 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
9.
Volume questões de TI
Assuntos relacionados: RAID,
Banca: CESGRANRIO
Instituição: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questão: 38
Oito discos rígidos, cada um com 1 TB de capacidade, formam um arranjo do tipo RAID 5.
A esse respeito, considere as armativas a seguir.
I - Caso dois discos falhem simultaneamente, o desempenho de leitura, em média, será
25%
menor, mas não haverá perda de dados.
II - Nesse arranjo, 1 TB é utilizado para dados de redundância e, portanto, o espaço em
disco útil é de 7 TB.
III - O disco destinado à paridade efetua muitas operações de escrita e, por isso, é recomendável que possua, pelo menos, 1 GB de cache de escrita.
Está(ão) correta(s) somente a(s) alternativa(s)
(a). I
(b). II
(c). III
(d). I e II
(e). I e III
Solução:
Em um arranjo em RAID 5, as informações de paridade são distribuídas ao longo de todos
os discos do conjunto ao invés de serem armazenas em um único disco dedicado como ocorre
no RAID 4.
Entretanto, as informações de cada disco são únicas, ou seja, os valores de
paridade armazenados em um disco são calculados em função dos outros discos.
Então,
não será possível recuperar o dado caso mais de um disco falhe. Logo, a alternativa I está
incorreta.
É necessário lembrar que a única diferença de um arranjo em RAID 6 em relação ao RAID 5
é que o primeiro possui o dobro de bits de paridade, tornando possível a recuperação quando
até dois discos falharem.
A alternativa II está correta, uma vez que o espaço reservado para as informações de paridade é equivalente a um disco do conjunto (1 TB), embora seja distribuído, tornando o
espaço em disco útil equivalente a 7 TB (8 TB - 1 TB).
Como explicado anteriormente, as informações de paridade são distribuídas e, portanto,
não existe disco dedicado para armazenar essas informações. Esse fato torna a alternativa
III incorreta.
Logo, somente a alternativa II está correta, tornando B a resposta a ser marcada.
Página 20 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
10.
Volume questões de TI
Assuntos relacionados: Alta Disponibilidade, Soluções de Armazenamento, RAID,
Banca: Cesgranrio
Instituição: BNDES
Cargo: Analista de Sistemas - Suporte
Ano: 2008
Questão: 43
Em relação a um arranjo de sete discos em RAID nível 2, pode-se armar que
(a). somente um dos discos é dedicado à paridade.
(b). em caso de falha em um disco, haverá perda de dados.
(c). não exige muito processamento do controlador de disco.
(d). utiliza tiras de tamanho xo (e). é utilizado código de
n
Hamming
setores em cada.
para redundância de informação.
Solução:
RAID (Redundant
Array of Inexpensive/Independent Disks )
é uma classe de dispositivo de
E/S cuja ideia fundamental é o uso de um conjunto de discos congurados de tal forma a
comportarem-se como um único disco de grande capacidade de armazenamento e de alto
desempenho de escrita/leitura, além de conabilidade de armazenamento e robustez a falhas.
O RAID nível 2 trabalha por palavra (diferentemente dos RAIDs de nível 0 e 1 que trabalham com tiras de dados), dividindo seus bits pelos discos existentes e intercalando-os com
bits de paridade.
Uma palavra de 4 bits, por exemplo, poderia ser dividida em 4 discos,
acrescentando-se mais 3 discos para paridade (em código
Hamming ),
o que resultaria em
uma palavra de 7 bits, com os bits 1, 2 e 4 destinados ao controle de paridade, proporcionando redundância da informação para prevenção de possíveis falhas.
Para seu efetivo funcionamento, deve haver sincronismo entre a posição do braço e a posição
rotacional dos sete discos.
codicada por
Hamming,
Desta forma, possibilita-se a escrita de uma palavra de 7 bits
um bit em cada disco.
Com esse esquema, a falha de um disco não causa qualquer problema, pois sua perda equivale a perder um bit por palavra, o que é facilmente gerenciado pelo código de
Hamming.
Em contrapartida, exige-se muito do controlador de discos (controlador de RAID), já que
ele deve efetuar uma soma de vericação de
Hamming
a cada tempo de bit.
(A) ERRADA
Face ao exposto, observa-se que a alternativa (A) está incorreta, pois a paridade é dividida por mais de um disco, à medida que o tamanho da palavra cresce. Os RAIDs de nível
3 e 4 organizam-se de forma a concentrar os bits de paridade em um único disco. O RAID
de nível 4 possui um disco dedicado apenas à paridade.
(B) ERRADA
A alternativa (B) também está incorreta, pois a falha de um disco não ocasiona perda
de dados devido à utilização do código de Hamming. O RAID nível 0 não possui quaisquer
redundância ou controle de erro, ocasionando perda de dados no caso de falha em um disco
Página 21 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
(alguns estudiosos nem consideram esse esquema um RAID verdadeiro).
(C) ERRADA
Conforme explanado, uma das desvantagens do RAID nível 2 é a grande exigência de processamento por parte do controlador de discos devido à constante vericação dos dados
codicados por Hamming. Desta forma, a alternativa (C) está incorreta ao comentar sobre
o processamento do controlador de disco.
(D) ERRADA
Como o RAID de nível 2 trabalha com palavras em vez de tiras de dados, a alternativa
(D) está incorreta. Além dos RAIDs nível 0 e 1, os RAIDs nível 4 e 5 também utilizam tiras
de dados para organização da informação armazenada.
(E) CORRETA
A alternativa (E) está correta ao armar que o RAID nível 2 utiliza o código Hamming
para proporcionar redundância de dados.
Página 22 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
11.
Volume questões de TI
Assuntos relacionados: Sistemas de Arquivos, RAID, Banco de Dados,
Banca: Cesgranrio
Instituição: BNDES
Cargo: Analista de Sistemas - Suporte
Ano: 2008
Questão: 70
Sobre a utilização de RAID 5 em bancos de dados, marque a armativa correta.
(a). Em bancos de dados OLTP com alta taxa de escritas, é o armazenamento que
oferece melhor desempenho.
(b). Possui desempenho de escrita superior ao RAID 0+1 (combinação dos dois níveis),
mas inferior ao RAID 0 puro.
(c). Como os dados de redundância (paridade) estão em um único disco, não é recomendável para aplicações de missão crítica.
(d). Quando o espaço em disco é um recurso escasso, e o banco de dados é somente de
consultas (query
database ),
o uso de RAID 5 é admissível.
(e). Oferece o melhor desempenho para bancos de dados
standby.
Solução:
O esquema RAID (Redundant
Array of Independent Disks
- Conjunto Redundante de Discos
Independente) é um meio de se criar um subsistema de armazenamento composto por vários
discos individuais, com a nalidade de ganhar segurança (redundância em caso de falha em
um dos discos) e desempenho (pedidos de I/O podem ser tratados em paralelo, desde que
os dados residam em discos separados).
O esquema RAID puro consiste em vários níveis (abordaremos alguns aqui), não havendo
qualquer relação hierárquica entre eles, mas cada um deles designa arquiteturas distintas
que compartilham 3 características:
•
o conjunto dos discos físicos em RAID é visto pelo sistema operacional como sendo um
único disco lógico;
•
os dados são distribuídos pelos discos físicos de um array;
•
redundância de capacidade é usada para armazenar informação de paridade, que garante a recuperação dos dados no caso de uma falha num disco.
Abordaremos, agora, cada nível RAID (exceto o RAID 6 e o RAID 1 + 0).
RAID 0
Este nível RAID refere-se a um array de discos onde os dados estão divididos em segmentos,
mas não existe nenhuma redundância para tolerância a falhas. Sempre que a performance
e a capacidade forem a preocupação principal e o baixo custo for mais importante que a
conabilidade adicional, esta é uma opção a considerar. A Figura 3 exemplica o tipo de
estrutura existente num sistema deste tipo.
Os dados são divididos em segmentos consecutivos (stripes ) que são escritos paralelamente
em cada um dos discos de um array. Alguns pontos em relação ao desempenho deste tipo
de esquema são descritos abaixo:
Página 23 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
•
Volume questões de TI
em um ambiente com uso intensivo de I/O ou em um ambiente de banco de dados
onde múltiplas requisições concorrentes são feitas para pequenos registros de dados
(banco de dados OLPT, por exemplo), um segmento de tamanho grande é preferencial,
pois se o tamanho de segmento para um disco é grande o suciente para conter um
registro inteiro, os discos do arranjo podem responder de forma independente para as
requisições simultâneas de dados;
•
em um ambiente onde grandes registros de dados são armazenados, segmentos de
pequeno tamanho são mais apropriados, pois se um determinado registro de dados
estende-se através de vários discos do arranjo, o conteúdo do registro pode ser lido em
paralelo, aumentando o desempenho total do sistema.
Figura 3: RAID 0.
Arranjos RAID-0 oferecem performance de escrita superior se comparados a outros níveis de
RAID por não apresentarem sobrecarga associada com cálculos de paridade ou com técnicas
de recuperação de dados (eliminamos, assim, a alternativa A). Esta incapacidade de reconstruir dados perdidos indica que esse tipo de arranjo deve ser restrito ao armazenamento de
dados não críticos e combinado com ecientes programas de backup.
RAID 1
Também conhecido como Mirroring ou Espelhamento, o RAID 1 funciona adicionando
HDs paralelos aos HDs principais existentes no computador. Assim, se, por exemplo, um
computador possui 2 discos, pode-se aplicar mais um HD para cada um, totalizando 4. Os
discos que foram adicionados trabalham como uma cópia do primeiro.
principal recebe dados, o disco adicionado também os recebe.
Assim, se o disco
Daí o nome de espelha-
mento, pois um HD passa a ser uma cópia praticamente idêntica do outro. Dessa forma, se
um dos HDs apresentar falha, o outro imediatamente pode assumir a operação e continuar a
disponibilizar as informações. A consequência neste caso, é que a gravação de dados é mais
lenta, pois é realizada duas vezes. No entanto, a leitura dessas informações é mais rápida,
pois pode-se acessar duas fontes. Alguns pontos em relação ao desempenho deste tipo de
esquema são descritos abaixo:
•
um pedido de leitura pode ser satisfeito por qualquer um dos dois discos que contenha
os dados em questão, podendo ser escolhido o que implicar um tempo menor de procura
Página 24 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
e latência de rotação (por esta razão, é muito comum o uso do RAID 1 em servidores
de arquivos);
•
um pedido de escrita requer uma atualização em ambos os discos, mas isto pode ser
feito em paralelo. Deste modo, a performance de escrita é ditada pela mais lenta das
duas faixas físicas (por esta razão, sempre que uma fração substancial dos pedidos for
escrita, pode não haver superioridade de desempenho relativamente a RAID 0);
•
a recuperação de uma falha é simples.
Quando ocorre uma falha num dos discos, é
sempre possível acessar os dados utilizando o outro disco.
RAID 2
O nível RAID 2, agora obsoleto, propõe um controle de erro por código
digos ECC -
Hamming
(có-
Error Correction Code ), o qual já está integrado diretamente nos controladores
de discos atuais.
Esta tecnologia consiste em armazenar os dados seguindo o mesmo princípio do RAID 0,
mas escrevendo numa unidade distinta os bits de controle ECC (geralmente 3 discos ECC
são utilizados para 4 discos de dados).
RAID 3
O RAID 3 requer apenas um disco redundante, qualquer que seja o tamanho do array
de discos. Em vez de um código corretor de erros, como o existente em RAID 2, um simples
bit de paridade é calculado para o conjunto de bits na mesma posição em todos os discos e
armazenado no disco redundante referido. Através da vericação da informação de paridade,
é possível assegurar a integridade dos dados, em casos de recuperação.
Em RAID 3, qualquer pedido I/O implicará a transferência paralela de dados de todos
os discos, contanto que todos os eixos das unidades de disco estejam sincronizados.
Este
aumento de desempenho é mais visível em grandes transferências. Por outro lado, apenas
um pedido de I/O pode ser executado de cada vez, portanto não constituirá a melhor opção
para um ambiente de transações.
RAID 4
Este tipo de RAID, basicamente, divide os dados entre os discos, sendo que um é exclusivo para paridade. O RAID 4 é indicado para o armazenamento de arquivos grandes, onde
é necessário assegurar a integridade das informações. Isso porque, neste nível, cada operação
de gravação requer um novo cálculo de paridade, dando maior conabilidade ao armazenamento (apesar de isso tornar as gravações de dados mais lentas).
Ao contrário do sistema de RAID 3 que armazena a paridade bit-a-bit, em RAID 4 a
paridade é armazenada sob a forma de blocos e associada a um conjunto de blocos de dados,
isto é, a paridade é simplesmente um somatório de informações; observando quais bits se alteram quando gravamos as novas informações, só precisamos mudar os bits correspondentes
no disco de paridade. Dessa forma, temos de ler os dados antigos do disco que está sendo
gravado, comparar os dados antigos com os novos para vericar quais bits mudaram, ler a
paridade antiga, modicar os bits correspondentes, depois gravar os novos dados e a nova
paridade. Desse modo, uma pequena gravação envolve quatro acessos a dois discos, em vez
do acesso a todos os discos (uma desvantagem do sistema é que o disco de paridade deve ser
Página 25 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
atualizado em cada gravação, tornando-se, assim, o gargalo de gravações).
Os sistemas RAID de nível 4, assim como os níveis 5 e 6, faz uso de uma técnica de acesso
independente. Neste tipo de acesso, cada disco opera independentemente sendo assim possível satisfazer pedidos I/O em paralelo.
RAID 5
Este é muito semelhante ao RAID 4, exceto o fato de que a paridade não ca destinada
a um único disco, mas a todo array de discos (eliminamos, aqui, a alternativa C). Isso faz
com que a gravação de dados seja mais rápida, pois não é necessário acessar um mesmo
disco de paridade em cada gravação, o que gerava um gargalo quando da ocorrência de escritas concorrentes. Ainda assim, o RAID 5 continuará a sofre por causa do processamento
adicional causado pela leitura, re-cálculo e atualização da informação sobre paridade. Por
isso, ele é mais indicado para ser utilizado em banco de dados cujas ações são limitadas a
consultas (operações de leitura). Isto reforça a indicação da alternativa D como correta.
Note que, ao invés de espelhar HDs inteiros para a tarefa, como em RAID 1, os dados de
paridade são espalhados entre os discos, o que representa uma melhor utilização do espaço
disponível. O espaço necessário para armazenar a informação de paridade é equivalente a
1/(Número de discos). Por exemplo, para uma matriz com 10 discos, 10% da usa capacidade
será utilizada para armazenar informação de paridade. Concluímos, aqui, que a alternativa
D
está correta.
Além disso, lembre-se que um banco de dados
standby
nada mais é que uma réplica de
outro banco de dados, criado a partir de um backup. Portanto, não há necessidade alguma
em se adotar RAID 5 numa cópia de um banco de dados, sendo mais adequado adotar RAID
0. Logo, eliminamos a alternativa E.
RAID 0+1
O RAID 0 + 1 é uma combinação dos níveis 0 (Striping ) e 1 (Mirroring ), onde os dados são divididos entre os discos para melhorar o rendimento, mas também utilizam outros
discos para duplicar as informações. Assim, é possível utilizar o bom rendimento do nível 0
com a redundância do nível 1.
Assim como o RAID 0, o RAID 0+1 não realiza cálculo de bit de paridade, o que torna o
tempo de escrita menor que o do RAID 5. Assim, eliminamos a alternativa B.
Página 26 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
12.
Volume questões de TI
Assuntos relacionados: Microsoft Windows 2000, RAID,
Banca: ESAF
Instituição: Receita Federal (RF)
Cargo: Técnico da Receita Federal - Tecnologia da Informação
Ano: 2006
Questão: 8
No Sistema Operacional Windows 2000 é possível a instalação de um sistema de discos
tolerante a falhas. Nesse caso, um sistema RAID 5 é caracterizado
(a). pelo espelhamento de discos, onde o sistema se encarregará de gravar, para os dois
discos, a mesma informação.
(b). pela duplicação de disco. É um sistema tolerante a falhas, semelhante ao espelhamento, só que os dois discos devem estar conectados a controladoras diferentes,
aumentando, assim, o desempenho do sistema quanto à leitura e gravação das
informações.
(c). pelo ganho real no espaço de armazenamento, que se torna (N + 1) vezes o tamanho
do primeiro volume, onde N é a quantidade de discos utilizados no sistema de faixa
de disco.
(d). por uma faixa de discos com paridade que permite que vários discos, no mínimo 3,
sejam acoplados como uma única unidade lógica de disco para obter a tolerância
a falhas.
(e). por uma faixa de discos sem paridade que permite que vários pares de discos, no
mínimo 4, sejam acoplados como uma única unidade lógica espelhados dois a dois.
Solução:
Redundant Array of Inexpensive Disks (mais tarde trocado para Independent) ou RAID é a
tecnologia que provê aumento na capacidade de armazenamento, aumento desempenho no
acesso aos dados e segurança através de redundância combinando vários discos de baixo custo
em uma unidade lógica onde os dispositivos são independentes. Há vários esquemas em que
podem ser organizados os discos que são normalmente referidos como níveis. Originalmente
foram concebidos os níveis padrões, conhecidos como RAID0 a RAID5 mas posteriormente
várias variações foram criadas.
Sendo assim, como resolução desta questão, temos:
a)
ERRADO:
o modelo em que há espelhamentos dos discos e os dados são salvos em
dois discos é o RAID 1.
É utilizado quando o desempenho de leitura (pode-se ler
paralelamente) ou conabilidade (se um disco falhar, haverá a cópia funcionando) são
mais importantes do que espaço;
b)
ERRADO:
espelhamento não caracteriza o RAID 5 e sim o RAID 1 ou RAID10. E
não há a necessidade de ser em controladoras separadas;
c)
ERRADO:
o ganho de armazenamento é caracterizado por Tmin*(N-1), onde Tmin
é o tamanho do menor disco;
d)
CORRETO:
RAID 5 utiliza strips, faixas de k setores, que são escritas nos discos
de forma round robin (de forma circular, escreve-se em um disco, na próxima vai
para o outro e quando chegar no último volta ao primeiro).
São calculados strips
de paridade que também são distribuídos pelos discos. Esse tipo de RAID, funciona
melhor com requisições de tamanho grande. Quanto maior melhor, pois pode-se tirar
Página 27 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
proveito do paralelismo dos discos. Ele é normalmente implementado pela controladora
mas pode ser implementado em nível de sistema operacional.
2000 pelo Windows Dynamic Disks.
No caso do Windows
A Figura 4 ilustra os strips dos dados sendo
salvos distribuidamente e para cada conjunto desses um de paridade também é salvo,
alternadamente entre os discos;
e)
ERRADO:
o modelo sem paridade que vários pares de discos sejam acoplados como
uma única unidade de disco espelhada dois a dois é o RAID10 (ou RAID 1 + 0).
Figura 4: ilustração de RAID 5.
Página 28 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
13.
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 29 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
14.
Volume questões de TI
Assuntos relacionados: Máquina Virtual,
Banca: CESGRANRIO
Instituição: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questão: 57
No âmbito de monitores de máquinas virtuais, que propriedade garante que um software em
execução em uma máquina virtual não acesse, nem modique, outro software em execução
em outra máquina virtual?
(a). Recompilação dinâmica
(b). Paravirtualização de código
(c). Virtualização de CPU
(d). Interposição
(e). Isolamento
Solução:
Em computação, virtualização é um termo amplo que se refere à abstração dos recursos
computacionais. Ainda dentro de uma visão conceitual, virtualizar é colocar uma camada
de abstração entre o recurso e o usuário do recurso, desacoplando os limites da natureza
física e os recursos dos usuários, permitindo o compartilhamento simultâneo.
No âmbito de virtualização de computadores, virtualizar signica permitir que vários sistemas operacionais sejam executados simultaneamente sobre um único computador físico.
Cada sistema operacional é executado em uma máquina virtual própria.
O monitor de máquinas virtuais é o responsável por arbitrar o acesso aos recursos (disco,
processador, memória etc) da máquina hospedeira, de modo que esses possam ser compartilhados pelos sistemas clientes de forma eciente e segura.
Nesse contexto, segurança signica garantir a correta execução das aplicações que estão
rodando nas diversas máquinas virtuais. Para isso, é necessário que os monitores implementem mecanismos de controle para a utilização simultânea dos recursos físicos pelas diversas
máquinas virtuais, como a proteção dos espaços de endereçamento, da alocação de espaço
em disco, e do processamento das aplicações.
A implementação desses mecanismos de controle é o que confere às máquinas virtuais a
propriedade de isolamento. Isolar signica tornar os funcionamentos das diversas máquinas
virtuais independentes entre si, apesar do fato delas compartilharem os recursos físicos.
Página 30 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
15.
Volume questões de TI
Assuntos relacionados: Sistemas Operacionais, Virtualização, Máquina Virtual, Coman-
dos UNIX, Java, Máquina Virtual Java (JVM),
Banca: Cesgranrio
Instituição: BNDES
Cargo: Analista de Sistemas - Suporte
Ano: 2008
Questão: 37
Suponha duas máquinas M1 e M2 com os seguintes serviços:
M1 - Servidor de correio Postx em Linux, arquitetura x86. M2 - Servidor WEB IIS em
Windows 2003, arquitetura x86.
Uma terceira máquina M3 (x86) com Windows 2000 será criada para execução dos serviços das máquinas M1 e M2, tornando esses dois últimos servidores máquinas virtuais.
Que software pode ser utilizado para isso?
(a). JIT-Server
(b). V-IDS
(c). Wine
(d). chroot
(e). VMWare
Solução:
Antes de analisarmos cada alternativa, faremos uma breve introdução sobre o conceito de
Virtualização e Máquina Virtual.
A Virtualização faz com que os recursos computacionais possam ser divididos e compartilhados por vários ambientes simultaneamente, permitindo, por exemplo, a execução de
múltiplos sistemas operacionais em um único hardware físico. O que temos, basicamente, é
um software que parece e funciona como um hardware que realmente não existe (Máquina
Virtual).
A Máquina virtual é um ambiente isolado que compartilha os recursos de um hardware
real através de um monitor de máquinas virtuais (VMM demos ver o VMM, também conhecido com
hypervisor,
Virtual Machine Monitor ).
Po-
como um sistema operacional para
sistemas operacionais, capaz de criar uma ou mais máquinas virtuais sobre uma única máquina real. Este Monitor pode ser implementado de duas formas diferentes (Vide Figuras 5
e 6).
Neste ponto, você pode estar se perguntando por que utilizar máquinas virtuais? Abaixo,
apresentamos algumas vantagens:
•
sistemas operacionais e aplicações não dependem do hardware físico;
•
facilidade na manutenção de hardwares;
•
menos problemas com atualizações de hardware;
•
novas opções de recuperação de desastres;
•
hardware virtual padronizado;
Página 31 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
•
extremamente fácil de criar uma imagem da máquina virtual;
•
o sistema operacional e suas aplicações são congurados uma única vez;
•
possibilidade de fazer o backup da máquina virtual inteira copiando apenas alguns
arquivos;
•
muitas VMs podem executar em um mesmo servidor físico;
•
maior e melhor utilização de recursos, reduzindo o tempo em que o processador ca
ocioso;
•
as máquinas virtuais não são afetadas por outras máquinas virtuais.
Existem, contudo, algumas desvantagens:
•
menor performance em relação ao uso de um servidor sem virtualização;
•
limitações do hardware virtual em relação ao físico.
Figura 5: o monitor é implementado entre o hardware e os sistemas convidados (textitguest
system).
Figura 6: o monitor é implementado como um processo de um sistema operacional real subjacente, denominado sistema antrião (textithost system).
Agora, partiremos para a análise de cada alternativa.
(A) ERRADA
Página 32 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
A compilação textitJust-In-Time (JIT) é uma técnica amplamente utilizada no aperfeiçoamento do desempenho da Máquina Virtual Java (JVM, do inglês textitJava Virtual
Machine), convertendo, em tempo de execução, instruções de um formato para outro, por
exemplo, de textitbytecode para código de máquina. Esta técnica é normalmente utilizada
para incrementar o desempenho de programas executados - na verdade, interpretados - em
máquinas virtuais.
Em sistemas computacionais baseados em máquinas virtuais, como Java, o processo de compilação traduz o código fonte para uma representação intermediária conhecida pelo termo
textitbytecode.
Esta representação intermediária não está associada a nenhum código de
máquina especíco e pode ser transportada para várias arquiteturas de computador distintas.
Em cada arquitetura especíca, essa representação intermediária é interpretada - ou
executada em uma máquina virtual.
Nos ambientes que oferecem o recurso de JIT, a máquina virtual responsável pela execução
dos textitbytecodes resultantes da compilação do programa fonte realiza a tradução desse
textitbytecode para código de máquina nativo enquanto o executa. No caso mais comum,
cada trecho de código é traduzido no instante em que está para ser executado pela primeira
vez, daí derivando o nometextitjust-in-time.
Neste escopo, o JIT-Server é adotado para otimizar chamadas constantes a classes/métodos
de Java, estando mais preparado para sessões que duram dias/semanas/meses. Apesar da
sobrecarga da expressão Máquina Virtual, lembre-se que JVM não virtualiza um sistema
real (virtualiza apenas uma aplicação), portanto, a alternativa está errada.
(B) ERRADA
Comando ou software inexistente. Alternativa, obviamente, errada.
(C) ERRADA
Wine (textitWINE Is Not an Emulator - Wine Não é um Emulador) é uma ferramenta
para sistemas UNIX que permite a execução de algum software especicamente concebido
para o Microsoft Windows.
Trata-se de uma implementação livre das bibliotecas do Windows no Linux, não sendo,
portanto um emulador, pois ele não faz nenhuma emulação para executar softwares para
Windows. O Wine funciona como uma camada que expõe uma API compatível com a do
Windows; ao serem executadas as diferentes funções, o Wine irá traduzi-las para rotinas em
UNIX cujo resultado seja idêntico.
O WINE atua então apenas como um tradutor ou um interpretador de linha de comando,
muito parecido com um shell. Se o Wine fosse de fato um emulador e uma máquina virtual
perfeita, a princípio, todos os programas do Windows deveriam rodar no Linux sem problemas, o que, de fato, não ocorre. Logo, alternativa errada.
(D) ERRADA
O comando chroot do sistema operacional Unix permite que super-usuários transformem
o diretório raiz no diretório especicado como parâmetro:
Página 33 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
# chroot <diretório>
A partir da execução do comando acima, a pasta especicada em <diretório> passa a ser
vista pelo sistema como se fosse o diretório raiz, fazendo com que todos os comandos sejam
executados dentro da mesma. Alternativa, obviamente, errada.
(E) CORRETA
VMware é um software de virtualização que permite a instalação e utilização de um sistema
operacional dentro de outro, dando suporte real a softwares de outros sistemas operacionais.
Usando software de virtualização como o VMware é possível executar um ou mais sistemas
operacionais simultaneamente num ambiente isolado, criando máquinas completas (virtuais)
que rodam dentro de uma mesma máquina real. Do ponto de vista do usuário e do software
não se nota diferença entre a máquina real e a virtual.
Saiba que o VMware não se trata de um emulador, pois ou o processador (com tecnologia AMD-V ou Intel VT-x) executa diretamente o código da máquina virtual ou o código é
convertido de forma que o processador não precise trocar o contexto para o modo real.
Dentre as utilidades do Vmware, podemos citar:
•
testar uma aplicação em várias plataformas;
•
dar suporte a diversas aplicações e sistemas operacionais;
•
migrar e consolidar servidores antigos, concentrando-os em uma máquina só;
•
testar sistemas operacionais novos;
•
manter a compatibilidade de hardware;
•
criar redundância contra falhas e segurança adicional contra intrusão.
Concluímos, assim, que esta alternativa está correta.
Página 34 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
16.
Volume questões de TI
Assuntos relacionados: Arquitetura de Computadores, Virtualização,
Banca: Cesgranrio
Instituição: IBGE
Cargo: Analista de Sistemas - Suporte
Ano: 2010
Questão: 48
Durante uma reunião da equipe de TI de uma empresa, para discutir a estratégia de virtualização dos seus servidores, um analista fez as seguintes considerações sobre os inconvenientes
relacionados à virtualização:
I a virtualização não pode ser utilizada quando as aplicações que rodarão em um ambiente virtualizado precisarem acessar dispositivos conectados à porta paralela ou à USB,
pois os softwares de virtualização ignoram a existência desses dispositivos;
II existe um grande consumo de memória RAM dos servidores, dado que cada máquina
virtual vai ocupar uma área separada da mesma;
III o gerenciamento ca descentralizado, e o suporte e a manutenção cam mais complexos, em comparação a um ambiente que não utiliza virtualização, mas sim, máquinas físicas
para suprir as necessidades.
Qual(is) dos inconveniente(s) apontado(s) pelo analista está(ão) correto(s)?
(a). I, apenas.
(b). II, apenas.
(c). III, apenas.
(d). I e II, apenas.
(e). I, II e III.
Solução:
Em uma denição simplicada, a virtualização é um processo que, através do compartilhamento de hardware, permite a execução de inúmeros sistemas operacionais em um único
equipamento. Cada máquina virtual criada neste processo é um ambiente operacional completo, seguro e totalmente isolado como se fosse um computador independente.
Com a
virtualização, um único servidor pode armazenar diversos sistemas operacionais em uso.
Isto permite que um data center opere com muito mais agilidade e com um custo mais baixo.
Dentre os benefícios da virtualização, podemos citar:
•
segurança:
usando máquinas virtuais, pode ser denido qual é o melhor ambiente
para executar cada serviço, com diferentes requerimentos de segurança, ferramentas
diferentes e o sistema operacional mais adequado para cada serviço. Além disso, cada
máquina virtual é isolada das demais. Usando uma máquina virtual para cada serviço,
a vulnerabilidade de um serviço não prejudica os demais;
•
conança e disponibilidade: a falha de um software não prejudica os demais serviços;
•
custo: a redução de custos é possível de ser alcançada com a consolidação de pequenos
servidores em outros mais poderosos;
•
adaptação às diferentes cargas de trabalho: variações na carga de trabalho podem ser
tratadas facilmente. Ferramentas autônomas podem realocar recursos de uma máquina
virtual para a outra;
Página 35 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
•
Volume questões de TI
balanceamento de carga: toda a máquina virtual está encapsulada no monitor de máquina virtual. Sendo assim, é fácil trocar a máquina virtual de plataforma, a m de
aumentar o seu desempenho;
•
suporte a aplicações legadas: q uando uma empresa decide migrar para um novo Sistema Operacional, é possível manter o sistema operacional antigo sendo executado em
uma máquina virtual, o que reduz os custos com a migração. Vale ainda lembrar que
a virtualização pode ser útil para aplicações que são executadas em hardware legado,
que está sujeito a falhas e tem altos custos de manutenção. Com a virtualização desse
hardware, é possível executar essas aplicações em hardwares mais novos, com custo de
manutenção mais baixo e maior conabilidade.
Os ambientes virtuais necessitam ser instanciados, monitorados, congurados e salvos. Existem produtos que fornecem essas soluções, mas esse é o campo no qual estão os maiores
investimentos na área de virtualização, justamente por se tratar de um dos maiores contratempos na implementação da virtualização.
Vale lembrar que o VMWare é a plataforma
mais exível e fácil de usar, mas ainda apresenta falhas que comprometem a segurança,
assim como as demais plataformas. Entretanto, os benefícios com a centralização da administração são inegáveis, uma vez que uma padronização entre os servidores é mais fácil de
ser conseguida com as ferramentas atuais, então a armativa III é falsa.
É verdade o fato de que cada máquina virtual vai ocupar áreas exclusivas de memória
RAM nos servidores físicos.
Isso torna a armativa II verdadeira, mas devemos lembrar
que, muitas vezes, a memória principal dos servidores físicos é subutilizada e o uso da virtualização pode ser vantajoso nesses casos. Em relação ao hardware dos servidores, incluindo,
o processador, em média, os servidores utilizam somente de
5%
a
10%
da sua capacidade,
segundo estimativa da empresa de software para virtualização VMware.
Devemos nos atentar às limitações de hardware da virtualização, pois o processamento,
a capacidade de armazenamento da memória virtual e o espaço em disco da máquina são
compartilhados pelos ambientes virtuais, e sendo assim, o hardware pode se tornar o gargalo
da virtualização. As máquinas virtuais não podem ser criadas livremente sem uma análise
dos recursos consumidos pela mesma.
Hoje em dia, os principais softwares que gerenciam a virtualização dão um bom suporte
ao acesso do hardware do computador hospedeiro como o uso de DVD, USB, monitor e
outras diversas formas de interface. A armativa I é, claramente, incorreta.
Como somente a armativa II está correta, a alternativa a ser marcada é a letra (B).
Página 36 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
17.
Volume questões de TI
Assuntos relacionados: LPAR, Virtualização, Máquina Virtual,
Banca: Cesgranrio
Instituição: IBGE
Cargo: Analista de Sistemas - Suporte
Ano: 2010
Questão: 58
Em uma arquitetura Mainframe, uma LPAR é um(a)
(a). banco de modems projetado para utilizar linhas de alta velocidade.
(b). conjunto de discos rígidos organizados segundo uma estrutura de RAID 1.
(c). subconjunto dos recursos de hardware de um computador virtualizado como um
computador separado.
(d). estratégia de gerenciamento de memória utilizada para otimizar o processo de
busca de informação.
(e). placa de rede utilizada para conectar um Mainframe a um switch de rede.
Solução:
Na área de TI, virtualizar é o ato de criar máquinas virtuais, máquinas que não existem
sicamente, por exemplo: se uma máquina puder virtualizar 3 servidores, com isto o administrador usa um único meio físico para 3 máquinas com funções diferentes, que podem ser
acessadas separadamente através da Internet. Uma denição mais acadêmica sobre virtualização pode ser a técnica que combina ou divide recursos computacionais para prover um
ou mais ambientes operacionais de execução, sendo chamado de máquinas virtuais.
A virtualização surgiu em 1960 com os mainframes (computadores de grande porte). Naquela época era muito caro adquirir e manter um mainframe, e devido ao elevado preço,
estes equipamentos só eram acessíveis a universidades e órgãos públicos. Com isso havia a
necessidade de compartilhar o mesmo meio físico para realizar operações e executar aplicativos de diferentes nalidades. Este conceito é, também, conhecido como
Logical Partitioning
(Particionamento Lógico).
LPAR é uma abordagem de arquitetura do sistema que promete revolucionar as infraestruturas corporativas de TI e ter um grande impacto nas operações de negócios e nas decisões
de compra de equipamento. Originalmente desenvolvida para computadores de mainframe,
LPAR permite a divisão de um único servidor em vários servidores ou partições virtuais
totalmente independentes.
Uma LPAR refere-se à divisão dos processadores, da memória e do armazenamento de um
computador em vários conjuntos de recursos, para que cada conjunto seja operado de maneira independente com sua própria instância de sistema operacional e seus aplicativos físicos
ou virtuais.
O particionamento lógico é tipicamente usado para permitir o uso de diferentes sistemas
operacionais e aplicativos em um único dispositivo. As partições podem ou não ser conguradas para se comunicarem entre si ou dividirem alguns recursos do servidor, como interfaces
de rede. Cada partição é independente das operações que ocorrem em outras partições, pode
executar sua própria versão do sistema operacional e ter recursos de processador, memória
e E/S dedicados à sua utilização exclusiva.
Página 37 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Concluindo, LPAR é a divisão dos processadores, da memória e do armazenamento de um
computador em vários conjuntos de recursos, ou seja, subconjunto dos recursos de hardware
de um computador virtualizado como um computador separado. Portanto, a alternativa
está correta.
Página 38 de 55
www.handbookdeti.com.br
C
Handbook de Questões de TI Comentadas para Concursos
18.
Volume questões de TI
Assuntos relacionados: Sistemas Operacionais, Gerenciamento de Memória, Alocação de
Memória,
Banca: Cesgranrio
Instituição: BNDES
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questão: 51
Um sistema operacional que usa segmentação de memória tem a seguinte conguração:
segmento 1 : 100 KB
segmento 2 : 50 KB
segmento 3 : 200 KB
segmento 4 : 50 KB
A memória é preenchida com segmentos de diversos tamanhos, colocados na ordem abaixo.
20 KB, 50 KB, 10 KB, 50 KB, 20 KB, 20 KB, 40 KB
Qual o espaço
livre
de cada segmento, respectivamente, para as estratégias abaixo?
best-t
rst-t
III: worst-t
I:
II:
(a). I: 1=30 KB, 2=0 KB, 3=160 KB, 4=0 KB
II: 1=0 KB, 2=0 KB, 3=140 KB, 4=50 KB
III: 1=60 KB, 2=50 KB, 3=30 KB, 4=50 KB
(b). I: 1=0 KB, 2=0 KB, 3=160 KB, 4=30 KB
II: 1=0 KB, 2=0 KB, 3=140 KB, 4=50 KB
III: 1=60 KB, 2=50 KB, 3=30 KB, 4=50 KB
(c). I: 1=30 KB, 2=0 KB, 3=160 KB, 4=0 KB
II: 1=60 KB, 2=50 KB, 3=30 KB, 4=50 KB
III: 1=0 KB, 2=0 KB, 3=140 KB, 4=50 KB
(d). I: 1=0 KB, 2=0 KB, 3=160 KB, 4=30 KB
II: 1=0 KB, 2=0 KB, 3=140 KB, 4=50 KB
III: 1=20 KB, 2=0 KB, 3=120 KB, 4=50 KB
(e). I: 1=20 KB, 2=0 KB, 3=120 KB, 4=50 KB
II: 1=60 KB, 2=50 KB, 3=30 KB, 4=50 KB
III: 1=0 KB, 2=0 KB, 3=140 KB, 4=50 KB
Solução:
A alocação de memória para processo (ou um segmento) está relacionada à Gerência de
Memória do Sistema Operacional. Os algoritmos em questão estão relacionados à alocação
de memória por partições variáveis, ou seja, o tamanho das partições é ajustado dinamicamente de acordo com a necessidade exata de memória do processo.
O sistema operacional mantém uma lista de segmentos livres. Quando um processo é criado, essa lista é percorrida e um segmento de tamanho igual ou maior que a necessidade do
processo é selecionado. Entretanto, o que segmento escolhido tiver a mais que o necessário
Página 39 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
será transformado em um novo segmento livre. Dessa forma, o processo recebe o tamanho
exato de memória que necessita.
First-t,
Best-t, que
Existem quatros formas básicas de percorrer a lista de segmentos livres. São eles:
que utiliza o primeiro segmento livre que encontrar com tamanho suciente;
Worst-t, que utiliza o segmento que resulta
na maior sobra; e Circular-t, que semelhante ao First-t, mas inicia a procura no segmento
utiliza o segmento que resultar em menor sobra;
seguinte à última sobra.
O enunciado especica inicialmente 4 segmentos livres: 100 KB, 50 KB, 200 KB e 50 KB, e
os novos segmentos a serem alocados na seguinte ordem são: 20 KB, 50 KB, 10 KB, 50 KB,
20 KB, 20 KB e 40 KB.
Best-t, temos que para o segmento de 20KB, o segmento que produz
menor sobra (30 KB) é o segmento 2. O segmento seguinte, 50 KB, é alocado no segmento
4, sobrando 0 KB. O segmento de 10 KB é alocado no segmento 2, pois produz menor sobra
Utilizando o algoritmo
(20 KB) entre os quatros segmentos. E assim por diante com os segmentos de 50 KB, 20
segmento 1 sobra 30
segmento 2 sobra 0 KB, no segmento 3 sobra 160 KB e no segmento 4 sobra 0 KB.
KB, 20 KB e 40 KB. Então, ao nal da alocação dos segmentos, no
KB, no
A Tabela 1 mostra para cada alocação a sobra em cada um dos quatros segmentos.
Segmentos
Segmento 1
Segmento 2
Segmento 3
Segmento 4
100 KB
50 KB
200 KB
50 KB
20 KB
100 KB
30 KB
200 KB
50 KB
50 KB
100 KB
30 KB
200 KB
0 KB
10 KB
100 KB
20 KB
200 KB
0 KB
50 KB
50 KB
20 KB
200 KB
0 KB
20 KB
50 KB
0 KB
200 KB
0 KB
20 KB
30 KB
0 KB
200 KB
0 KB
40 KB
30 KB
0 KB
160 KB
0 KB
Sobra
30 KB
0 KB
160 KB
0 KB
Tabela 1: alocação dos segmentos utilizando a estratégia
Best-t.
First-t, temos que para o segmento de 20 KB, o primeiro segmento
que comporta os 20 Kb é o segmento 1, gerando uma sobra de 80 KB. O segmento de 50
KB, novamente, é alocado no segmento 1, pois é o primeiro segmento que comporta os 50
KB, gerando uma sobra de 30 KB. O segmento de 10 KB, também, é alocado no segmento
1, gerando uma sobra de 20 KB, enquanto que os segmentos de 2 a 4 continuam com o
tamanho inicial. O outro segmento de 50 KB não é mais alocado no segmento 1, mas no
segmento 2, gerando uma sobra de 0 KB. E assim por diante com os segmentos de 20 KB,
20 KB e 40 KB. Então, ao nal da alocação dos segmentos, no segmento 1 sobra 0 KB, no
segmento 2 sobra 0 KB, no segmento 3 sobra 140 KB e no segmento 4 sobra 50 KB. A
Utilizando o algoritmo
Tabela 2 mostra para cada alocação a sobra em cada um dos quatros segmentos.
Worst-t, temos que para o segmento de 20KB, o segmento que
produz a maior sobra é o segmento 3, gerando uma sobra de 180 KB. O segmento de 50
KB, novamente, é alocado no segmento 3, pois este produz a maior sobra, gerando uma
sobra de 130 KB. O segmento de 10 KB, também, é alocado no segmento 3, gerando uma
Utilizando o algoritmo
Página 40 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Segmentos
Volume questões de TI
Segmento 1
Segmento 2
Segmento 3
Segmento 4
100 KB
50 KB
200 KB
50 KB
20 KB
80 KB
50 KB
200 KB
50 KB
50 KB
30 KB
50 KB
200 KB
50 KB
10 KB
20 KB
50 KB
200 KB
50 KB
50 KB
20 KB
0 KB
200 KB
50 KB
20 KB
0 KB
0 KB
200 KB
50 KB
20 KB
0 KB
0 KB
180 KB
50 KB
40 KB
0 KB
0 KB
140 KB
50 KB
Sobra
0 KB
0 KB
140 KB
50 KB
Tabela 2: alocação dos segmentos utilizando a estratégia
First-t.
sobra de 120 KB, enquanto que os segmentos de 1, 2 e 4 continuam com o tamanho inicial.
E assim por diante com os segmentos de 50 KB, 20 KB, 20 KB e 40 KB. Então, ao nal
segmento 1 sobra 60 KB, no segmento 2 sobra 50 KB, no
no segmento 4 sobra 50 KB. A Tabela 3 mostra para cada
da alocação dos segmentos, no
segmento 3
sobra 30 KB e
alocação a sobra em cada um dos quatros segmentos.
Segmentos
Segmento 1
Segmento 2
Segmento 3
Segmento 4
100 KB
50 KB
200 KB
50 KB
20 KB
100 KB
50 KB
180 KB
50 KB
50 KB
100 KB
50 KB
130 KB
50 KB
10 KB
100 KB
50 KB
120 KB
50 KB
50 KB
100 KB
50 KB
70 KB
50 KB
20 KB
80 KB
50 KB
70 KB
50 KB
20 KB
60 KB
50 KB
70 KB
50 KB
40 KB
60 KB
50 KB
30 KB
50 KB
Sobra
60 KB
50 KB
30 KB
50 KB
Tabela 3: alocação dos segmentos utilizando a estratégia
Worst-t.
Percebe-se nos exemplos de alocação de memória anterior, alguns segmentos de tamanho
pequeno surgem quando um processo é alocado. Não é interessante para o Sistema Operacional manter segmentos de poucos bytes. Para evitar o aparecimento de segmentos pequenos,
foi criada uma técnica chamada Parágrafo, que consiste em determinar a menor unidade de
alocação de memória.
De acordo com o discutido anteriormente, temos os seguintes valores de espaço livre para os
seguimentos de 1 a 4 de acordo com a técnica utilizada:
Página 41 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Segmentos
Segmento 1
Segmento 2
Segmento 3
Segmento 4
Best-t
First-t
Worst-t
30 KB
0 KB
60 KB
0 KB
0 KB
50 KB
160 KB
140 KB
30 KB
0 KB
50 KB
50 KB
Tabela 4: sumário das sobras dos segmentos de 1 a 4 para cada estratégia.
Então, a alternativa correta é a letra (A).
Página 42 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
19.
Volume questões de TI
Assuntos relacionados: Sistemas Operacionais, Gerenciamento de Memória, Alocação de
Memória,
Banca: Cesgranrio
Instituição: BR Distribuidora
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questão: 28
Um sistema encontra-se com a seguinte lista de segmentos de memória disponíveis, em
sequência: 13KB, 21KB, 9KB, 17KB, 40KB. Neste instante, recebe pedido de alocação de
memória para quatro novos processos, nesta ordem: 15KB, 24KB, 20KB, 11KB. Considere
os algoritmos a seguir, para alocação de memória.
I - First t
II - Best t
III - Worst t
Qual(is) o(s) algoritmo(s) que consegue(m) alocar memória para todos os quatro novos
processos?
(a). I, apenas.
(b). II, apenas.
(c). I e II, apenas.
(d). II e III, apenas.
(e). I, II e III.
Solução:
Umas das funções fundamentais dos sistemas operacionais é a de realizar a gerencia da memória principal do computador, permitindo que os diversos processos executem de forma
eciente e protegida. Nos primeiros sistemas operacionais, a memória era dividida em partições de tamanho xo, porém esta técnica acarretava em dois problemas: Fragmentação
interna e Fragmentação externa.
A fragmentação interna ocorre quando um programa aloca uma partição de memória que
excede a quantidade necessária. O espaço excedente naquela partição é desperdiçado. Já a
fragmentação externa ocorre quando, apesar da quantidade total de memória ser suciente,
não existe uma partição contígua capaz de atender as necessidades de um programa.
Para solucionar o problema da fragmentação interna, foi criado o mecanismo de particionamento dinâmico, no qual um programa aloca somente a quantidade exata de memória.
No entanto, esse método aumentava a fragmentação externa uma vez que permitia o aparecimento de lacunas pequenas demais para serem utilizadas por algum programa.
Para aprimorar ainda mais o gerenciamento de memória, surgiram inúmera técnicas de
preenchimento de lacunas, incluindo as apresentadas no enunciado da questão: rst t, best
t e worst t. A descrição das técnicas, bem como o resultado da aplicação delas no cenário
apresentado no enunciado são mostrada a seguir.
Na política de alocação First Fit, os processos são alocados no primeira lacuna que possua tamanho suciente. Já na Best Fit, os processos são alocados nas lacunas cujo tamanho
Página 43 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
seja mais próximo do tamanho necessário ao processo. Por m, na Worst Fit, os processos
são alocados nas maiores lacunas disponíveis. O resultado da aplicação dessas três políticas
no cenário apresentado no enunciado é mostrado na Figura 7.
Na Figura, as células em
amarelo representam o espaço na lacuna após a alocação de memória para o processo.
Figura 7: políticas de alocação de memória.
Portanto, percebe-se que somente com as políticas Best Fit e Worst Fit seria capaz alocar
memória suciente para todos os quatro processos.
Como mostrado na gura, a política
First Fit falhou ao ter que alocar memória para o processo de tamanho 20K, pois após as
duas primeiras alocações, não havia mais nenhum espaço contíguo maior ou igual a 20K.
Portanto, a resposta da questão é a alternativa D.
Finalizando a questão, vale à pena ressaltar o seguinte.
Todas as técnicas apresentadas
levam em consideração o fato de que os programas devem ocupar áreas contíguas de memória. Os sistema operacionais modernos supriram esta necessidade através da técnica de
Paginação.
Página 44 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
20.
Volume questões de TI
Assuntos relacionados: Servidor de Aplicações, Java, J2EE, Máquina Virtual Java (JVM),
Heap,
Banca: Cesgranrio
Instituição: BNDES
Cargo: Analista de Sistemas - Suporte
Ano: 2008
Questão: 31
Um servidor Linux, que roda, exclusivamente, um servidor de aplicação Java EE, possui 2
GB de memória RAM e 1 CPU. A única aplicação em execução atinge, em momentos de
pico, 50 usuários simultâneos. Para que essa aplicação tenha um desempenho adequado, o
tamanho máximo da Heap da JVM pode ser congurado para
(a). 100 threads.
(b). 32 MB.
(c). 60 threads.
(d). 2 GB.
(e). 512 MB.
Solução:
O Java EE (Enterprise Edition) é uma plataforma de desenvolvimento de sistemas em Java.
A plataforma inicialmente era conhecida por Java 2 Platform Enterprise Edition (J2EE),
até ter seu nome trocado para Java EE, o que ocorreu na versão 5.
A plataforma JEE oferece uma série de componentes e funcionalidades que permitem a
implementação de software Java distribuído.
Uma descrição sucinta da destinação e das
características gerais da plataforma JEE pode ser encontrada na Wikipedia:
A Plataforma Java (Enterprise Edition) difere-se da Plataforma Java Standard Edition
(Java SE) pela adição de bibliotecas que fornecem funcionalidade para implementar software
Java distribuído, tolerante a falhas e multi-camada, baseada amplamente em componentes
modulares executando em um servidor de aplicações. Ela é voltada para aplicações multicamadas, baseadas em componentes que são executados em um servidor de aplicações... Ela
contém bibliotecas desenvolvidas para o acesso a base de dados, RPC, CORBA, etc. Devido
a essas características a plataforma é utilizada principalmente para o desenvolvimento de
aplicações corporativas.
Os servidores de aplicação mencionados na descrição acima, em linhas gerais, são softwares
que provêem um ambiente onde as aplicações podem executar.
Uma aplicação Java usualmente é dividida em 2 partes:
uma parte que executa no cli-
ente e uma outra parte que executa no servidor. O servidor em si é dividido em diferentes
containers
que oferecem diferentes serviços às aplicações.
oferecidos pelos
containers
Entre os serviços mais comuns
estão a execução da lógica de negócio, serviços de mensagens,
serviços de gerenciamento de conexões a bancos de dados, serviços de segurança etc.
Entendido o conceito de servidores de aplicação, agora vamos falar um pouco sobre JVM
(Java Virtual Machines).
Página 45 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Quando um código Java é compilado, ele dá origem a um programa codicado nos chamados
bytecodes.
Os bytecodes são uma espécie de código intermediário, que só pode ser
executado por uma JVM. Uma JVM, por sua vez, é um programa que converte os bytecodes
em código executável de máquina, que pode então ser executado pela máquina física.
Em última instância, são os conceitos de bytecodes que garantem a portabilidade dos códigos
Java. Independente do sistema operacional ou plataforma física onde tenha sido desenvolvido o programa Java, os bytecodes sempre serão os mesmos.
Com isso, para executar o
programa Java em outro sistema, basta que se tenha uma JVM especíca, capaz de converter os bytecodes para o código de máquina apropriado.
Agora, vamos ao que realmente interessa para alcançarmos a resposta da questão.
A
heap
da JVM é uma área de memória onde todos os objetos das aplicações que estão
sendo executadas pela JVM residem. Além dos objetos criados nas aplicações, a heap ainda
possui uma área de memória reservada para outras funções da JVM. Portanto, para que as
aplicações executem com desempenho adequado, é necessário congurar bem o tamanho da
heap.
As alternativas A e C estão erradas, simplesmente, porque o tamanho da heap não é denido
em termos do número de threads, mas sim em termos de quantidade de memória. Já a alterativa D está errada pois não faz sentido alocar toda a memória do sistema (no caso, 2GB)
exclusivamente para a JVM. O sistema operacional sequer irá permitir a realização desta
operação, visto que boa parte da memória já estará sendo utilizada pelo próprio sistema
operacional.
Com isto, nos restam as alternativas B (32 MB) e D (512 MB). O enunciado da questão diz que o servidor possui 1 CPU, e que, em momentos de pico, a aplicação em execução
atinge 50 usuários simultâneos. O fato de o servidor possuir apenas 1 CPU implica dizer
que, em momentos de alta utilização da aplicação, haverá muitas trocas de contexto, ou
seja, muitas alternâncias entre os processos em execução.
Em princípio, a alteração da quantidade de memória não irá afetar a quantidade de trocas
de contexto, porém irá permitir que as múltiplas threads (que serão criadas para atender
uma grande quantidade usuários simultâneos) estejam sempre na memória principal, o que
pode conferir maior desempenho à aplicação.
Como o enunciado não presta informações sobre o consumo de memória das threads individuais que são geradas para atender cada um dos usuários simultâneos, e levando ainda
em consideração que o tamanho default da heap (ou seja, um tamanho que atende os requisitos de desempenho de uma aplicação média) da JVM varia entre 16MB a 64MB, podemos
armar que, para maximizar o desempenho da aplicação, o ideal seria congurar o tamanho
máximo da heap para 512MB.
Portanto, a resposta da questão é a alternativa E.
Página 46 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
21.
Volume questões de TI
Assuntos relacionados: Sistemas Operacionais, Gerenciamento de Memória, Swapping,
Fragmentação Interna de Memória, Fragmentação Externa de Memória, Segmentação de
Memória, Device Driver,
Banca: Cespe
Instituição: ANAC
Cargo: Analista Administrativo - Tecnologia da Informação
Ano: 2009
Questão: 53, 54 e 56
A crescente evolução da computação tem sido impulsionada pelo melhoramento do hardware
e pelo surgimento dos sistemas operacionais. No que concerne a sistema operacional, julgue
os itens de 51 a 60.
53
Uma das responsabilidades dos sistemas operacionais é gerenciar a memória. Para que
essa gerência possa garantir eciência na execução dos processos, os sistemas operacionais tentam maximizar o número de processos residentes na memória principal. Para
isso, foi introduzido, nos sistemas operacionais, o conceito de swapping, que consiste
em dividir o programa em módulos de tamanhos diferentes, a m de carregar o módulo
que tiver o tamanho da área livre na memória principal.
54
A diferença entre fragmentação interna e externa é que a primeira ocorre na memória
principal, e a segunda, no disco.
56
Entre as camadas do gerenciamento de entrada e saída de um sistema operacional,
há uma camada chamada de device drivers.
Os device drivers são denidos como
programas que objetivam padronizar a comunicação entre o susbsistema de E/S e o
kernel do sistema operacional.
Solução:
53
ERRADO
A técnica de swapping foi introduzida para contornar situações de insuciência de
memória principal. Essa técnica é aplicada à gerência de memória para programas que
esperam por memória livre para serem executados. A vezes, não há memória principal
suciente para armazenar todos os processos atualmente ativos, então, os processo em
excesso são mantidos no disco e trazidos de lá para execução dinamicamente.
Uma
solução para essa situação é o mecanismo chamado swapping. O swapping consiste em
trazer cada processo inteiro, executá-lo temporariamente e, então devolvê-lo ao disco.
Esta técnica pode ser desenvolvida utilizando dois modos de divisão da memória principal, as partições xas e as partições variáveis, a principal diferença entre elas é o
número de posições e o tamanho das partições que variam dinamicamente na partição
variável, enquanto os processos entram e saem, ao passo que as partições xas não
existe variação do tamanho. As partições variáveis tem a exibilidade de não se prender a um número xo de partições que podem ser muito grandes ou muito pequenas
otimizando a utilização da memória, mas também complica a tarefa de alocar e desalocar a memória, assim como a monitoração da memória utilizada.
A gerência de
memória reserva uma área de disco para o seu uso. Em determinadas situações, um
processo é completamente copiado da memória principal para o disco. Sua execução é
suspensa, e é dito que este processo sofreu um swap-out, e outro processo ocupará esta
área na memória principal. Mais tarde, ele sofrerá um swap-in, ou seja, será copiado
Página 47 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
novamente para a memória principal e sua execução será retornada, caso exista espaço
disponível na memória. O resultado desse revezamento no disco faz com que o sistema
operacional consiga executar mais processo do que caberia em um único instante na
memória principal.
54
ERRADO
A segmentação é uma técnica de gerência de memória onde o espaço de endereçamento virtual é dividido em blocos de tamanhos diferentes chamados segmentos. Esta
técnica não apresenta fragmentação interna, visto que a quantidade exata de memória necessária é alocada para cada segmento.
Entretanto, como áreas contíguas de
diferentes tamanhos devem ser alocadas, existe a ocorrência de fragmentação externa.
Nesse caso, o processo pode simplesmente ter de esperar até que mais memória (ou pelo
menos um bloco de memória maior) se torne disponível, ou a compactação pode ser
usada para criar um bloco de memória livre maior. De forma resumida a fragmentação
externa ocorre quando o tamanho do programa a ser carregado na memória RAM é
menor que o espaço total contíguo de memória disponível.
Tanto nos sistemas de alocação absoluta quando nos de realocação, os programas,
normalmente, não preenchem totalmente as partições onde são carregados na memória
RAM. Esse tipo de problema, decorrente da alocação xa das partições, é conhecido
como fragmentação interna.
A fragmentação interna ocorre quando um programa,
carregado na memória RAM, é alocado em uma partição de memória maior que a necessária, resultando no desperdício de espaço naquela partição.
56
ERRADO
Um device driver é um programa de computador permitindo um nível superior de
programa de computador que interagi com um dispositivo de hardware. Os drivers de
dispositivos (driver dispositivo) internamente são personalizados para cada dispositivo.
As unidades de I/O consistem tipicamente de componentes mecânicos e eletrônicos. O
componente eletrônico é chamado de controlador do dispositivo (device controller ou
adapter). O componente mecânico é o dispositivo propriamente dito.
O objetivo geral do gerenciamento de E/S é organizar parte do kernel em uma série de
camadas de software, com as mais baixas escondendo peculiaridades do hardware e as
mais altas mostrando-se simples para o usuário. A Figura 8 ilustra como as partes do
kernel relacionadas a I/O são estruturadas em camadas de software.
O objetivo da camada de device drivers é ocultar do subsistema de I/O do kernel
as diferenças entre as controladoras de dispositivo, do mesmo modo que as chamadas
ao sistema de I/O encapsulam o comportamento de dispositivos em poucas classes
genéricas que ocultam das aplicações as diferenças de hardware. Como pode ser observado na Figura 8, o device drivers não é uma camada intermediária ao kernel e o
subsistema do kernel, e sim uma camada para abstrair a complexidade das controlados
de dispositivos do subsistema de I/O do kernel.
Página 48 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Figura 8: representação do kernel em camadas e o seu relacionamento com o hardware.
Página 49 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
22.
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 50 de 55
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 51 de 55
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 52 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
23.
Volume questões de TI
Assuntos relacionados: Sistemas Operacionais, Gerenciamento de Memória, Fragmenta-
ção Externa de Memória, Fragmentação Interna de Memória,
Banca: ESAF
Instituição: Superintendência de Seguros Privados (SUSEP)
Cargo: Analista Técnico da SUSEP - Tecnologia da Informação
Ano: 2010
Questão: 15
Na alocação particionada dinâmica de memória
(a). ocorre fragmentação externa.
(b). ocorre fragmentação interna.
(c). não ocorre fragmentação externa.
(d). não ocorre nenhuma fragmentação.
(e). utilizam-se partições de tamanho xo.
Solução:
Apesar do barateamento da tecnologia de produção de memórias RAM e na consequente
facilidade de acesso a tais componentes, a eciência no gerenciamento de memória continua
sendo um requisito essencial aos Sistemas Operacionais (SOs), pois a demanda pelo recurso
de armazenamento por parte dos programas em execução acompanha de perto o aumento
da oferta de espaço.
Os processos (denominação dos programas, sob óptica do Sistema Operacional) precisam
estar na memória principal (memória RAM) para serem executados pelo(s) processador(es).
Em uma máquina equipada com apenas uma unidade de processamento, somente um processo pode ser efetivamente executado a cada ciclo.
Um esquema básico de gerência de memória, chamado Alocação Contígua Simples, consiste na divisão da memória principal em duas partes: uma para o Sistema Operacional,
outra para programas de usuários. Um controle de acesso à memória deve ser implementado
para evitar que os programas de usuários invadam o espaço de memória do SO. A Alocação Contígua Simples limita o tamanho do programa do usuário à quantidade de memória
instalada na máquina (excetuando-se o espaço ocupado pelo SO), além de sub-utilizar tal
recurso, já que ao carregar pequenos programas o espaço remanescente torna-se momentaneamente inacessível. O uso do processador também não é otimizado, pois em chamadas
de E/S (Entrada/Saída), por exemplo, outros processos continuam esperando a conclusão
do programa atualmente em execução para serem carregados em memória. Esse é o caso de
sistemas monoprogramados, como o DOS.
Uma tentativa de amenizar o problema da quantidade de memória disponível inferior ao
tamanho do programa a ser executado é um mecanismo chamado sobreposição (overlay),
que opera vericando se o programa possui seções que não necessitem permanecer na memória durante toda a execução. A ideia é carregar apenas as seções necessárias a cada instante
de execução, sobrepondo as seções não mais necessárias. O efeito colateral dessa manobra
é a lentidão que a sobreposição de seções ocasiona à execução do programa como um todo.
Além disso, esse mecanismo exige, no momento da programação, a denição das seções de
sobreposição por meio de diretivas especícas da linguagem de programação utilizada.
Página 53 de 55
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos
Volume questões de TI
Para suportar simultaneamente vários processos na memória, o SO precisa ser dotado de
multiprogramação (capacidade de execução simultânea de vários processos).
Evidente-
mente, um SO multiprogramado precisa de um esquema de gerenciamento de memória mais
elaborado do que a Alocação Contígua Simples. Uma solução possível é a Alocação Contígua Particionada Estática (ou Alocação Particionada Estática). Nesse esquema, a memória
principal deve ser subdividida em partições de tamanhos xos. Os tamanhos das partições,
estabelecidos no momento da inicialização do sistema, podem diferenciar-se entre si. Desta
forma, antes de ser carregado, um processo tem seu tamanho avaliado pelo SO para ser
alocado na menor partição disponível que o comporte.
Algumas partições podem eventualmente car vazias, caso os processos em espera para
serem executados não caibam nos espaços disponíveis.
Outro problema enfrentado pela
Alocação Particionada Estática é a fragmentação interna de partição.
Genericamente, a
fragmentação ocorre quando partes da memória, alocadas e não utilizadas por um processo,
cam impedidas de serem utilizadas por outros processos. A fragmentação interna ocorre
quando um processo é carregado em uma partição de tamanho superior ao necessário para
sua execução. O espaço não utilizado pelo processo permanece reservado até o nal da execução.
Para reduzir o excesso de fragmentação interna, a Alocação Contígua Particionada Dinâmica
(ou Alocação Particionada Dinâmica) elimina o conceito de partição xa e passa a alocar o
espaço de memória exatamente necessário para a execução do processo. Apesar de resolver o
problema de fragmentação interna (pois não há partição), a Alocação Particionada Dinâmica
precisa enfrentar o problema da fragmentação externa. À medida que os vários processos
são alocados e desalocados da memória principal, espaços de memória remanescentes entre
os vários processos podem ser tão pequenos a ponto de não comportarem qualquer processo
que encontre-se em espera, gerando a fragmentação externa da memória. Tal problema pode
ser solucionado com a implementação da compactação, processo que consiste na realocação
dinâmica de memória para os processos em execução. Enquanto os processos são alocados
e desalocados, o SO verica a existência de espaços de memória vazios e passa a realocar
devidamente alguns desses processos para outros endereços de memória.
A opção a) está correta ao armar que na Alocação Particionada Dinâmica ocorre fragmentação externa de memória e, consequentemente, as opções c) e d) estão incorretas ao
armar o contrário. Tanto a opção b) quanto a opção e) estão incorretas, pois referem-se a
situações exclusivamente relativas à Alocação Particionada Estática.
Página 54 de 55
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
Página 55 de 55
Volume questões de TI
Resposta
E
A
E
A
E
C
B
D
B
E
D
D
A
E
E
B
C
A
D
E
53 ERRADO 54 ERRADO 56 ERRADO
B
A
Handbook de TI
Além do Gabarito
Índice Remissivo
Thread, 6, 8
Virtualização, 31, 35, 37
Alocação de Memória, 39, 43
Alta Disponibilidade, 21
Arquitetura de Computadores, 6, 18, 35
ASCII, 50
Banco de Dados, 23
Barramento de Comunicação, 50
Bootstrap, 10
Comandos UNIX, 31
Device Driver, 47
DMA, 29
Dynamic Link Libraries (DLL), 50
Escalonamento de Processos, 4
Fragmentação de Dados, 12
Fragmentação Externa de Memória, 47, 53
Fragmentação Interna de Memória, 47, 53
Gerenciamento de Memória, 39, 43, 47, 53
Gerenciamento de Processador, 4
Heap, 45
J2EE, 45
Java, 31, 45
LPAR, 37
Máquina Virtual, 30, 31, 37
Máquina Virtual Java (JVM), 31, 45
Microsoft Windows 2000, 27
Network File System (NFS), 13, 16
Operações de Entrada e Saída, 29
Porta de Comunicação, 50
Programação Multithreading, 8
RAID, 20, 21, 23, 27
Redes de Computadores, 13, 16
Segmentação de Memória, 47
Servidor de Aplicações, 45
Sistemas de Arquivos, 12, 23
Sistemas Operacionais, 4, 10, 18, 29, 31, 39, 43,
47, 53
Soluções de Armazenamento, 21
Swapping, 47
56
Download