Baixe o app para aproveitar ainda mais
Prévia do material em texto
Questões comentadas Sistemas Operacionais para concursos 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, classificado 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 possibili- tar o uso eficiente 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 en- volvidos 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óxi- mos de estudo. Contudo, a reprodução, parcial ou integral, e a disseminação deste material de forma indiscriminada através de qualquer meio, inclusive na Internet, extrapolam os limites da colaboração. Essa prática desincentiva o lançamento de novos produtos e enfraquece a comuni- dade concurseira Handbook de TI. A série Handbook de Questões de TI Comentadas para Concursos � Além do Gabarito é uma produção independente e contamos com você para mantê-la sempre viva. Grupo Handbook de TI Página 2 de 55 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Canais de Comunicação O Grupo Handbook de TI disponibiliza diversos canais de comunicação para os concurseiros de TI. Loja Handbook de TI Acesse a nossa loja virtual em http://www.handbookdeti.com.br Serviço de Atendimento Comunique-se diretamente conosco através do e-mail faleconosco@handbookdeti.com.br Twitter do Handbook de TI Acompanhe de perto promoções e lançamentos de produtos pelo nosso Twitter http://twitter. com/handbookdeti Página 3 de 55 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI 1. 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 ope- racional 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 esca- lonamento, 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 apli- cá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 fila; • 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 fila 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 Volume questões de TI históricas do processo. Além disso, o SJF pode causar o problema da postergação indefinida 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 final da fila de prontos (preempção) e a posse do processador é dada para o próximo processo da fila. 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 definiçã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 final da fila de prontos aumentará. • Por Prioridades: Nesse algorítimo, a cada processo é atribuída uma prioridade. O processo com maior prioridade na fila de prontos receberá o processador. As prioridades podem ser atribuídas de forma estática (quando o processo tem uma prioridade fixa 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 indefinida, que pode com processos de baixa prioridade. O aumento dinâmico da prioridade dos processos é conhecido como aging. • Múltiplas Filas: 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 filas de prontos das outras classes (de maior priori- dade) estiverem vazias. Cada classe possui sua própria fila 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 queos processos podem mudar de classe (e consequentemente de fila), 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 Volume questões de TI 2. 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 exe- cuçã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 definida como um fluxo ú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 fluxos de execução (threads) se comu- niquem eficientemente. 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 fluxo 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 exemplifica o compartilhamento das threads dentro de um processo. Figura 1: exemplificaçã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 (th- roughput); • 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 Volume questões de TI 3. 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 afirmar 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 con- correntes, em um único processador. (e). no ambiente multithread, cada processo pode responder a várias solicitações con- correntes, 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 indepen- dentemente. 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 en- tanto, 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 filhos, 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 im- plementaçã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 notifica 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ágina9 de 55 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI 4. 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 é uma redução do termo bootstrap load. Já o termo boot, mais usado hoje em dia, é uma redução do termo bootstrap. O termo bootstrap começou 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 armazena- gem de dados não voláteis como discos rígidos, DVDs e flash 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 é comumente chamado de 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 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 algo- ritmo 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 Volume questões de TI (D) O shell 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áfica 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 ao kernel o que é para ser realizado. Os nomes de shell mais conhecido no Windows são o command.com e o cmd.exe, já no Linux existem o Bourne shell (sh), o Korn Shell (ksh), o C Shell (csh) e o Bash. (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 Volume questões de TI 5. 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 di- minua 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 significa 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 ope- raçõ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 + Ttransferencia 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 é suficiente 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 eficientes 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 frag- mentaçã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 Volume questões de TI 6. 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 configuração é utilizado pelo sistema operacional para verificar 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 chamaNFS. O protocolo NFS é especificado 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 pe- los clientes remotos. Quando um diretório é exportado, o mesmo acontece com todos os seus subdiretórios. 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 ficam 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 (file systems table) permite que partições (ou diretórios exportados) se- jam 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íficos. Dependendo dos parâmetros utilizados, o �mount� lê as configurações do arquivo /etc/fstab e realiza (ou atualiza) montagens de partições e de diretórios remotos. Em cada linha do arquivo fstab é especificado 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 mount point fs-type options dump-freq pass-num LABEL=/ / ext3 defaults 1 1 /dev/hda6 swap swap defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 # Montagem NFS pingu:/store /store nfs rw 0 0 # Mídias Removíveis /dev/cdrom /mount/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mount/floppy auto noauto,owner,kudzu 0 0 # NTFS Windows XP partição /dev/hda1 /mnt/WinXP ntfs ro,defaults 0 0 # Partição (pasta) Windows and Linux /dev/hda7 /mnt/shared vfat umask=000 0 0 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. Contudo, ele não é utilizado para especificar o que deve ser montado. Ele contém configuraçõ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 Volume questões de TI 7. 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 compar- tilhados 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 modificaçõ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 pra- ticamente 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 daemons que são processos que são executados em background no sistema. Os daemons de servidor NFS, chamados de daemons nfsd, são executados no servidor e aceitam chamadas RPC dos clientes. O daemon 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, verifica 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 de arquivos local até que seja desmontado com o comando umount ou até que o sistema local seja reinicializado. No cliente, o uso da cache e de buffers é manipulado pelo comando biod, o daemon de E/S de bloco. No cliente NFS, o daemon biod está normalmente em execuçã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 de porta TCP/IP apropriados. Se o daemon portmap não estiver sendo executado corre- tamente, 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 file 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. Página 16 de 55 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI Clientes e servidores rodam 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). 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 B está correta. Página 17 de 55 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI 8. 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 sofis- ticados, o sistema FAT foi ganhando alterações (identificadas 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 final 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 Volume questões de TI A alternativa correta da questão é a letra B. O I-node é 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 é identificado com um número I-node. O I-node é exclusivo somente para o dispositivo (partição) dentro do qual ele está con- tido. Portanto, para identificar 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 é identi- ficado 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 Unified 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 fins de redundância) e também na memória. Fornece a base para o gerenciamento do sistema de arquivos em disco à medida que define os parâmetros de gerenciamento do sis- tema 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 es- tado 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 estru- tura de superbloco é mantida em uma lista e são gerenciadas através de um conjunto de interfaces padrão, também conhecido como virtual file system switch (VFS). Página 19 de 55 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI 9. 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 afirmativas 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, é reco- mendá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 pa- ridade é 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 Volume questões de TI 10. 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 afirmar 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 controladorde disco. (d). utiliza tiras de tamanho fixo - n setores em cada. (e). é utilizado código de Hamming 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 configurados 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 confiabilidade de armazenamento e robustez a falhas. O RAID nível 2 trabalha por palavra (diferentemente dos RAIDs de nível 0 e 1 que traba- lham 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, proporcio- nando 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. Desta forma, possibilita-se a escrita de uma palavra de 7 bits codificada por Hamming, um bit em cada disco. Com esse esquema, a falha de um disco não causa qualquer problema, pois sua perda equi- vale 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 verificação de Hamming a cada tempo de bit. (A) ERRADA Face ao exposto, observa-se que a alternativa (A) está incorreta, pois a paridade é divi- dida 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 pro- cessamento por parte do controlador de discos devido à constante verificação dos dados codificados 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 afirmar 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 Volume questões de TI 11. 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 afirmativa 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 é reco- mendá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 finalidade 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 ga- rante 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 confiabilidade adicional, esta é uma opção a considerar. A Figura 3 exemplifica 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 suficiente 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 recons- truir dados perdidos indica que esse tipo de arranjo deve ser restrito ao armazenamento de dados não críticos e combinado com eficientes 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. Assim, se o disco principal recebe dados, o disco adicionado também os recebe. 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. Algunspontos 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 Hamming (có- digos ECC - 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 verificaçã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 é exclu- sivo 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 confiabilidade ao armazena- mento (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 al- teram 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 verificar quais bits mudaram, ler a paridade antiga, modificar 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 pos- sível satisfazer pedidos I/O em paralelo. RAID 5 Este é muito semelhante ao RAID 4, exceto o fato de que a paridade não fica 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 es- critas 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 da- dos 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 Volume questões de TI 12. 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 espelha- mento, 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 modeloem 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 confiabilidade (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. No caso do Windows 2000 pelo Windows Dynamic Disks. 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 Volume questões de TI 13. Assuntos relacionados: Sistemas Operacionais, Operações de Entrada e Saída, DMA, Banca: Cesgranrio Instituição: BR Distribuidora Cargo: Analista de Sistemas - Desenvolvimento Ano: 2008 Questão: 30 Que tecnologia tem por objetivo liberar a CPU em operações de entrada/saída? (a). Acesso direto à memória (DMA) (b). Cache (c). Paginação (d). Pipeline (e). Spool Solução: Antes desta tecnologia, a transferência de dados, além de envolver o processador, envolvia dois movimentos: um da interface (controlador) para o processador, e outro do processador para a memória. A técnica que libera o CPU de operações de entrada e saída, ou seja, per- mite que os dados sejam transferidos diretamente do controlador para a memória é chamada de Direct Memory Acces (DMA � Acesso Direto à Memória). Logo, a alternativa correta é a letra A. A técnica de DMA baseia-se na utilização de um hardware especial, chamado de contro- lador de DMA, para transferir os dados entre um dispositivo de entrada/saída e memória. O controlador de DMA é conectado fisicamente ao barramento de dados e de endereços para acessar diretamente a memória. Para que ocorra uma transferência de dados, o processador precisa inicializar o controlador de DMA fornecendo informações como quantidade de dados a transferir, origem e destino dos dados e qual sentido de transferência, memória para dispositivo ou vice-versa. Após essa inicialização, o controlador realiza a transferência e libera o processador para executar outras tarefas. Após finalizar a transferência, o controlador de DMA avisa o processador por meio de uma interrupção. É importante observar que existe uma disputa pelo barramento de dados e endereço pelo controlador de DMA e o processador. Essa disputa é coordenada pelo arbitramento do bar- ramento. Cache é uma memória rápida que contém dados e/ou instruções recentemente referenci- adas pelo processador. A técnica de paginação permite que um programa ocupe áreas não contíguas na memória. A técnica de Pipeline trabalha as diversas etapas do ciclo de instru- ção (busca, indireto, execução e interrupção) de forma paralela, e não serial, aumentando o desempenho da CPU. E Spool é um recurso compartilhado no disco para aceitar operações de saída para melhorar o desempenho de impressão. Página 29 de 55 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI 14. 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 modifique, 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 significa permitir que vários sis- temas 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 compar- tilhados pelos sistemas clientes de forma eficiente e segura. Nesse contexto, segurança significa garantir a correta execução das aplicações que estão rodando nas diversas máquinas virtuais. Para isso, é necessário que os monitores implemen- tem 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 significa 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 Volume questões de TI 15. 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 Postfix 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 ser- viç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 compar- tilhados 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 - Virtual Machine Monitor). Po- demos ver o VMM, também conhecido com hypervisor, como um sistema operacional para sistemas operacionais, capaz de criar uma ou mais máquinas virtuais sobre uma únicamá- 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 configurados 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 fica 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 subja- cente, denominado sistema anfitriã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 com- pilaçã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ífico e pode ser transportada para várias arquiteturas de computador distin- tas. Em cada arquitetura específica, 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 nome�textitjust-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 especificamente 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 proble- mas, 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 especificado 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 especificada 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 tecnolo- gia 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 Volume questões de TI 16. 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 virtuali- zaçã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 am- biente 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 fica descentralizado, e o suporte e a manutenção ficam mais comple- xos, 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 definição simplificada, a virtualização é um processo que, através do compartilha- mento 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 com- pleto, seguro e totalmente isolado como se fosse um computador independente. Com a virtualização, um único servidor pode armazenar diversos sistemas operacionais em uso. Istopermite 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 definido 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; • confianç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 fim de aumentar o seu desempenho; • suporte a aplicações legadas: q uando uma empresa decide migrar para um novo Sis- tema 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 confiabilidade. Os ambientes virtuais necessitam ser instanciados, monitorados, configurados e salvos. Exis- tem 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 contra- tempos na implementação da virtualização. Vale lembrar que o VMWare é a plataforma mais flexí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 admi- nistraçã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 afirmativa 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 afirmativa II verdadeira, mas devemos lembrar que, muitas vezes, a memória principal dos servidores físicos é subutilizada e o uso da virtu- alizaçã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 afirmativa I é, claramente, incorreta. Como somente a afirmativa 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 Volume questões de TI 17. 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 fisicamente, por exemplo: se uma máquina puder virtualizar 3 servidores, com isto o admi- nistrador usa um único meio físico para 3 máquinas com funções diferentes, que podem ser acessadas separadamente através da Internet. Uma definição mais acadêmica sobre virtua- lizaçã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). Na- quela é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 aplicati- vos de diferentes finalidades. Este conceito é, também, conhecido como Logical Partitioning (Particionamento Lógico). LPAR é uma abordagem de arquitetura do sistema que promete revolucionar as infraestru- turas 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 ma- neira 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 configu- radas 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 C está correta. Página 38 de 55 www.handbookdeti.com.br Handbook de Questões de TI Comentadas para Concursos Volume questões de TI 18. 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 configuraçã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
Compartilhar