Questão de Sistemas Operacionais — EXT2, EXT3, XFS, etc. — FUNDATEC 2023
- Código
- qa541266
- Banca
- FUNDATEC
- Órgão
- COMUSA
- Ano
- 2023
- Cargo
- Ana Sist ( )
- AFAT16
- BFAT32
- CEXT3
- DEXT4
- ENTFS
GabaritoD — EXT4
Gabarito: letra D (EXT4). O EXT4 é o sistema de arquivos do Linux que utiliza blocos contíguos de armazenamento chamados de extensões (extents), o que reduz drasticamente a necessidade de operações de metadados por bloco, pois um único registro de extensão descreve um conjunto contíguo de blocos. Essa é a característica central que o enunciado descreve, e ela não está presente no FAT16, FAT32, EXT3 ou NTFS.
O enunciado descreve uma característica técnica específica de sistemas de arquivos modernos: a alocação por extensões (extents). Para entender por que isso importa, é preciso primeiro compreender como os sistemas de arquivos tradicionais, como o EXT2 e o EXT3, alocam espaço. Eles usam um esquema de blocos individuais (block mapping), onde cada bloco de dados de um arquivo é apontado por uma entrada separada em uma estrutura de metadados (como os ponteiros diretos, indiretos, duplos e triplos do inode). Isso significa que, para um arquivo grande, o sistema precisa consultar e atualizar uma longa cadeia de ponteiros, o que gera muitas operações de metadados e fragmentação.
O EXT4 introduziu o conceito de extensões (extents) como mecanismo de alocação padrão. Uma extensão é um conjunto de blocos fisicamente contíguos no disco. Em vez de listar cada bloco individualmente, o inode armazena apenas o endereço do primeiro bloco da extensão e o seu comprimento (quantos blocos ela contém). Isso reduz drasticamente a quantidade de metadados necessária para descrever um arquivo, especialmente os grandes, e melhora o desempenho de leitura e gravação, pois os dados tendem a ficar agrupados. O enunciado captura exatamente essa ideia: "blocos contíguos de armazenamento, chamados de extensões" e "não exige operações de metadados para cada bloco de armazenamento".
É importante distinguir as famílias de sistemas de arquivos. O FAT16 e o FAT32 são sistemas de arquivos da Microsoft, antigos e simples, que usam uma tabela de alocação de arquivos (File Allocation Table) para rastrear os blocos de cada arquivo — não usam extensões e não possuem journaling. O NTFS, também da Microsoft, é mais moderno e possui journaling, mas não usa o conceito de extensões da mesma forma que o EXT4 (embora use um conceito similar chamado "runs", a terminologia e a implementação diferem, e a banca claramente se refere ao EXT4). O EXT3 é uma evolução do EXT2 com adição de journaling, mas mantém o mesmo esquema de alocação por blocos individuais do EXT2 — não usa extensões. O EXT4 é o que combina journaling com alocação por extensões, pré-alocação e outras otimizações.
A pegadinha desta questão é justamente a menção a "extensões" e "metadados", termos técnicos que podem confundir o candidato que não domina a diferença entre EXT3 e EXT4. O EXT3 é frequentemente lembrado por ser o "EXT2 com journaling", mas a adição de journaling não alterou o mecanismo de alocação de blocos. Foi o EXT4 que revolucionou a alocação com as extensões. Portanto, a alternativa que descreve corretamente o uso de extensões é o EXT4.
Guarde esta distinção: EXT3 = EXT2 + journaling (mesma alocação por blocos); EXT4 = EXT3 + extensões + pré-alocação + alocação atrasada + suporte a volumes e arquivos muito maiores. É exatamente nessa fronteira que as alternativas se dividem.
Sistema de Arquivos | Utiliza Extensões (Extents) | Exige Metadados por Bloco | Journaling | Família/Origem |
|---|---|---|---|---|
FAT16 | Não | Sim | Não | Microsoft |
FAT32 | Não | Sim | Não | Microsoft |
EXT3 | Não | Sim | Sim | Linux |
EXT4 | Sim | Não | Sim | Linux |
NTFS | Não (usa "runs") | Não (usa "runs") | Sim | Microsoft |
O FAT16 é um sistema de arquivos da Microsoft, antigo e simples, usado em disquetes e partições pequenas. Ele não utiliza extensões; em vez disso, usa uma File Allocation Table (FAT) para rastrear a cadeia de blocos de cada arquivo. Além disso, não possui journaling. Portanto, não corresponde à descrição do enunciado.
O FAT32 é uma evolução do FAT16, também da Microsoft, usado em pendrives e cartões de memória. Assim como o FAT16, ele usa uma tabela de alocação de arquivos e não utiliza extensões nem possui journaling. A descrição do enunciado (extensões e ausência de metadados por bloco) não se aplica a ele.
O EXT3 é um sistema de arquivos do Linux, mas é essencialmente o EXT2 com suporte a journaling. Ele não utiliza extensões; mantém o esquema de alocação por blocos individuais do EXT2, onde cada bloco de um arquivo é apontado por uma entrada separada nos metadados do inode. Portanto, ele exige operações de metadados para cada bloco, contrariando o enunciado. A confusão aqui é comum: o candidato pode associar o EXT3 a "moderno" por causa do journaling, mas a alocação por extensões é uma inovação do EXT4.
O EXT4 é o sistema de arquivos do Linux que utiliza extensões (extents) como mecanismo de alocação. Uma extensão é um conjunto de blocos fisicamente contíguos, descrito no inode apenas pelo endereço do primeiro bloco e pelo comprimento da extensão. Isso elimina a necessidade de uma operação de metadados para cada bloco individual, exatamente como afirma o enunciado. Além disso, o EXT4 possui journaling, suporte a volumes de até 1 EiB e arquivos de até 16 TiB, pré-alocação e alocação atrasada.
O NTFS (New Technology File System) é o sistema de arquivos padrão do Windows. Embora seja moderno, possua journaling e use um conceito de alocação por "runs" (que é semelhante a extensões), a terminologia e a implementação diferem do conceito de "extensões" do EXT4. Além disso, o enunciado especifica "sistema de arquivos utilizado em sistemas operacionais Linux", e o NTFS não é o sistema de arquivos nativo do Linux (embora possa ser lido/gravado com drivers). A banca claramente se refere ao EXT4, que é o sistema de arquivos Linux que popularizou o termo "extensões".
Gabarito: letra D (EXT4).
Link permanente: /questoes/qa541266