Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Embarcados
• Necessidade de armazenamento de dados
• Questões:
• Tipo de dispositivo a ser utilizado no armazenamento?
• Armazenamento permanente ou volátil?
• Forma de organizar
g e acessar os dados?
Sistemas de arquivos
• Sistemas operacionais respondem a essas questões através
de sistemas de arquivos
• Conjunto de arquivos e diretórios mantidos em uma partição de
um dispositivo de armazenamento
• e.g: ext2, ext3, NTFS, reiserfs, etc
• Módulo de software que provê acesso ao arquivos
Aula 08
INF01059 - Sistemas Embarcados 2
• Dispositivos de bloco • Prático para armazenar dados que não precisam ser
• Sistemas não jornalizados mantidos entre sucessivos boot do sistema
• Pode gerar inconsistências após um desligamento abrupto ou • Emula na RAM um dispositivo de armazenamento tipo bloco
colapso (crash = pendurada) • Sistema de arquivos convencional orientado a bloco
• Exemplos tradicionais • Tamanho fixo
• Linux: ext2 e fsck • Espaço não usado da RAM é desperdiçado
• Windows: FAT e scandisk • Ocupa espaço duplo na RAM (uma cópia em cache e outra no
• Sistemas de arquivos jornalizados dispositivo)
• Garantem a consistência após desligamentos ou crashes • Versão melhorada: tmfs
• Todas as escritas são “logadas” em um jornal antes de • Elimina o desperdício na RAM
serem efetivadas no disco (commit) • Mantém apenas uma cópia dos dados
• Exemplos: • Consome memória por demanda
• ext3, ext4, reiserFS, JFS (ibm), XFS (sgi), NTFS...
INF01059 - Sistemas Embarcados 5 INF01059 - Sistemas Embarcados 6
cramfs squasfs
• Permite vários sistemas de arquivos serem montados a partir • Organizadas em regiões de 32, 64 ou 128 KB (eraseblocks)
de um único ponto de montagem • Possuem três operações básicas: read, write e erase
• Sobrepõe vários sistemas de arquivos • Para escrever é necessário apagar
• Um diretório pode possuir arquivos de vários sistemas de • O procedimento de erase apresenta alguns detalhes:
arquivos
• Executado sobre um eraseblock inteiro (não dá para apagar bytes!!)
• Não há um ponto de montagem único por sistema de arquivo
• Um eraseblock tem um número limitado de apagamentos (vida útil)
• Geralmente um sistema de arquivos é montado como read-write
• Wear leveling: escrever uniformemente na flash para aumentar a
e os demais como read-only
vida útil
• Implementado através do unionfs e do aufs
• Construídas de duas formas diferentes (NOR e NAND)
Flash NOR versus Flash NAND Diferenças entre discos e dispositivos MTD
NOR NAND
Acesso a dados Acesso randômico a dados Área é dividida em blocos e estes em Discos (block devices) MTD
páginas. O acesso é a páginas
Composto por setores Composto por blocos (eraseblocks)
Operações Read, write e erase (eraseblocks) Read e write (páginas) e erase (blocos)
Interface c/ sistema Barramento de dados e endereços Diferentes formas. Normalmente através de
um barramento de 8 bits (dados/comandos) Setores são pequenos (512, 1024 bytes) Erase blocks são grandes (32, 64, 128 KB)
Código para Permite execução do código Necessário copiar código para memória
execução diretamente armazenado Duas operações básicas: read e write Três operações: read eraseblock, write
Desempenho Leitura rápida, escrita e apagamento Leitura, escrita e apagamento rápidos erasabloc e erase eraseblock
lentos
Bad-sectors são remapeados e escondidos Bad-blocks devem ser tratados pelo software
Bad blocks Normalmente não tem esse problema Dispositivos de armazenamento de baixo pelo hardware (LBA disk drives)
porque foram projetadas para custo. Possui bad blocks, mas eles são
armazenar dados de sistema. marcados e não usados. Setores de disco tem um grande ciclo de vida Eraseblocks tem ciclo de vida limitado a 104
Utilização Execução de código (boot loader) Armazenamento de dados (mp3, set-top ou 105 ciclos de apagamento
boxes, etc).
• Sistemas de arquivos convencionais não são adequados para • Flash Translation Layer
flash • Idéia é adaptar sistemas de arquivos convencionais para os
• O apagamento é feito sobre blocos grandes ao passo que dispositivos do tipo flash
dispositivos orientados a disco os blocos são pequenos • Sistemas de arquivos específicos para flash
• Usam cache em RAM para desempenho • Arquitetura
q MTD
• Inconsistências do sistema de arquivos em caso de corte de • Mecanismos e primitivas para acesso a flash
alimentação
• Convencionais: sync periódicos e saída via shutdown
• Embarcados podem ficam sem energia repentinamente
(bateria)
• Vantagem dos sistemas convencionais
• Existem e tem um conjunto apropriado de primitivas e vasto
suporte do sistema operacional
• Camada de software que emula um dispositivo de bloco para • Projetado para homogeneizar escrita em setores de flash
flash • Problema da limitação do número de escritas na flash
• Objetivo é usar toda a infra-estrutura já existente de sistemas de • Sistema de arquivos comprimido
arquivos
• Permitir o máximo de dados em um setor da flash
• Desvantagem: • Compensar
p o tempo
p de acesso a flash
• Não trata das inconveniências dos Sistema de arquivos convencional
(ext2, ext 3 etc)
sistemas de arquivos tradicionais
• Desempenho FTL/NTFL
• Trata uma flash como se fosse um
dispositivo orientado a bloco
Flash
• Patenteado
FLT: memórias NOR
NFLT: memórias NAND
Aplicações MTD
Linux filesystem interface User-space applications
FTL NFTL INFTL MTD core Block device Char device Raw device
yaffs2 Read-only block device
• Adicionar o dispositivo na estrutura do núcleo • O MTD oferece dois drivers diferentes para serem usados:
• Particionamento: • Caracter: /dev/mtd? /dev/mtdr? (? = 0, 1, 2,...15)
• Permite criar múltiplas partições na flash (pode ter diferentes • Bloco: /dev/mtb? (?=0, 1, 2... 15)
FS) e tamanho
• Feito com auxilio de estruturas de dados (struct mtd_partition) e
/d // td1
/dev//mtd1 Major=90; minor=1 /dev/mtdb1 Major=31; minor=1
funções (add_mtd_partition)
• Concatenação
• Possibilidade de fazer com que duas flashes sejam vistas como
uma única flash (virtual) Char device Block device
mdt_table
29 30