• Nenhum resultado encontrado

Gerência de Arquivos. Prof. Dr. André Luiz da Costa Carvalho

N/A
N/A
Protected

Academic year: 2021

Share "Gerência de Arquivos. Prof. Dr. André Luiz da Costa Carvalho"

Copied!
38
0
0

Texto

(1)

Gerência  de  

Arquivos  

Prof.  Dr.  André  Luiz  da  Costa  Carvalho   andre@icomp.ufam.edu.br  

(2)

Arquivos  

Conjunto  de  dados  não  volá@l,  com  um  nome  para  referência  

posterior.  

Conteúdo  versá@l  

•  De  textos  de  poucos  bytes  até  filmes  em  alta  definição  

Organizados  hierarquicamente  

•  Diretórios  

Sistema  de  arquivos  

•  Organização  Msica  e  lógica  dos  arquivos  em  um  disposi@vo.  

•  Ex:  NTFS,  Fat32,  Ext*,HPFS,  ReiserFS.  

(3)

Atributos  de  um  arquivo  

•  Nome:  Sequência  de  caracteres  que  iden@fica  o  arquivo  

•  Tipo.  

•  Indicação  do  formato  dos  dados  do  arquivo,  como  áudio,  vídeo,   imagem,  texto  e  etc.  

•  Muitos  S.O.s  usam  o  próprio  nome  do  arquivo,  no  formato  de   extensões.  

•  Data  de  criação,  úl@ma  modificação  e  acesso.  

•  Proprietário:  Qual  usuário  criou  o  arquivo.  

•  Permissões:  O  que  pode  ser  feito  com  o  arquivo  (leitura,  gravação,  

execução).  

•  Localização  no  disposi@vo  Msico.  

•  Outros.  

•  Variam  de  S.O.  para  S.O.  

(4)

Operações  básicas  

Criar  

Abrir  

•  Necessário  antes  de  qualquer  operação  de  leitura/gravação.  

•  Solicitação  ao  S.O.  do  uso  do  arquivo.  

•  O  mesmo  checa  se  o  usuário/programa  tem  a  permissão  

necessária,  onde  o  arquivo  está  fisicamente  e  se  ele  está   disponível  no  momento.  

Ler  

Escrever  

Mudar  atributos  

Fechar  

•  Libera  recursos  usados  ao  abrir  o  arquivo  e  torna-­‐o  disponível.  

(5)

Formato  de  arquivos  

Arquivos  são  flexíveis.  

•  Autor  pode  gravar  a  informação  do  jeito  que  lhe  convém.  

Alguns  formatos  padrão  foram  criados  para  facilitar  a  troca  de  

arquivos.  

•  Jpeg,  pdf,  gif,  mp3,  avi.  

•  Porém  isto  não  impede  aplicações  de  u@lizarem  formatos  

proprietários.  

•  PSD  (Photoshop)  

Arquivos  de  texto  

•  Forma  comum  (porém  pouco  eficiente)  de  guardar  informação  

textual  simples.  

•  Códigos  fonte,  html,  xml.  

(6)

Arquivos  de  texto  

Sequência  de  caracteres.  

Linhas  são  formadas  logicamente,  e  não  na  prá@ca.  

•  Um  separador  é  u@lizado  no  meio  da  sequência  para  indicar  onde  

acaba  uma  linha.  

•  Unix  e  similares:  “\n”.  Windows:  “\r  seguido  de  “\n”  

(7)
(8)

Executáveis  

•  Executáveis  tem  uma  

organização  fixa.  

•  Dependente  do  S.O.  

•  UNIX:  

•  Executable  and  Linking  Format   (ELF).  Formado  por  um  

cabeçalho  e  vários  segmtos  e   seções,  contendo  o  código   executável,  tabela  de  símbolos   e  informações  de  relocação  de   código  

•  Windows:  

•  Portable  Executable  (PE):   adaptação  do  an@go  formato   COFF,  usado  anteriormente  no   UNIX.  

(9)

Identi>icação  de  conteúdo  

Dos/Windows  

•  Extensões.  

•  Nascido  da  falta  de  recursos.  

•  DOS  u@lizava  o  padrão  8.3  para  o  nome  dos  arquivos.  

•  8  caracteres  para  o  nome,  3  para  a  extensão.  

Unix  

•  Além  de  extensões,  os  bytes  iniciais  de  um  arquivo  podem  ser  

u@lizados  para  iden@ficar  seu  @po.  

•  Arquivos  sem  extensão  ainda  podem  ser  abertos.  

MacOS9  

(10)

Tipos  MIME  

Mul@purpose  Internet  Mail  Extensions  

U@lizado  para  troca  de  arquivos  por  email  

•  Muitas  vezes  o  conteúdo  pode  vir  em  arquivos  sem  extensão  

•  U@lizado  também  para  resolver  o  problema  de  dados  embedded  

em  emails.  

MacOS  X  

(11)

Arquivos  especiais  

•  Abstrações  de  disposi@vos  de  baixo  nível  

•  Unix  mapeia  disposi@vos  em  arquivos  dentro  doo  diretório  /dev  

•  /dev/oyS0  –  porta  serial  COM1  

•  /dev/audio  –  placa  de  som  

•  /dev/sda1  –  primeira  par@ção  do  primeiro  disco  SATA/SCSI  

•  Abstração  de  interfaces  do  núcleo  

•  Unix  nos  diretórios  /proc  e  /sys  disponibilizam  informações  do   sistema.  

•  /proc/cpuinfo  –  informações  sobre  o  processador  

•  /proc/3754/maps  –  áreas  de  memória  alocadas  pelo  processo  de  PID   3754  

•  /sys/block/sda/queue/scheduler  –  definição  de  polí@ca  de   escalonamento  do  disco  a  ser  usada  em  /dev/sda.  

•  Canais  de  comunicação  entre  processos.  

(12)

USANDO  ARQUIVOS  

(13)

Usando  arquivos  

Programas,  para  u@lizar  arquivos,  geralmente  dispõe  de  uma  

interface  disponibilizada  pela  linguagem  de  programação.  

Arquivo  geralmente  é  u@lizado  através  de:  

•  Uma  representação  lógica  do  arquivo,  que  nada  mais  é  que  uma  

referência  a  um  arquivo  no  disco.  

•  Um  conjunto  de  funções  para  realizar  operações  no  arquivo  

descrito  pela  representação.  

•  Através  destas  funções  são  feitas  chamadas  de  sistema  para  

(14)

Abrindo  arquivos  

Antes  de  se  trabalhar  com  arquivos,  é  necessário  abri-­‐los.  

•  Abrir  =  preparar  estruturas  de  memórias  necessárias  para  

manipular  o  arquivo  em  questão.  

Etapas:  

•  Localizar  o  arquivo  no  disposi@vo  Msico,  usando  seu  nome  e  

caminho  de  acesso    

•  Verificar  se  a  aplicação  tem  permissão  para  usar  aquele  arquivo  

da  forma  desejada  (leitura  e/ou  escrita);    

•  Criar  uma  estrutura  na  memória  do  núcleo  para  representar  o  

arquivo  aberto;    

•  Inserir  uma  referência  a  essa  estrutura  na  lista  de  arquivos  

abertos  man@da  pelo  sistema,  para  fins  de  gerência;    

•  Devolver  à  aplicação  uma  referência  a  essa  estrutura,  para  ser  

(15)

Abrindo  arquivos  

Após  a  abertura,  o  processo  solicitante  recebe  uma  referência  

ao  arquivo  recém-­‐aberto.  

•  Todas  as  operações  subsequentes  devem  ser  feitas  com  ela.  

Fechando  arquivos  

•  Conclui  todas  as  operações  de  escrita  pendentes  e  remove  

estruturas  da  memória.   •  Limite  de  arquivos  abertos  

•  Padrão  linux  1024  

Referências  em  C  

•  FILE  *  

•  Não  é  o  arquivo  propriamente  dito,  apenas  um  ponteiro  as  

(16)

Abrindo  Arquivos  

Windows  

•  File  Handles  –  structs  que  representam  os  arquivos  abertos  

Unix  

•  File  Descriptors  –  Número  inteiro  que  serve  de  índice  em  uma  

(17)

Formas  de  acesso  

Acesso  sequencial  

•  Dados  são  sempre  lidos  em  sequência.  

•  Cada  arquivo  tem  um  ponteiro  de  acesso,  que  a  cada  leitura/

gravação  é  incrementado.  

•  Ao  chegar  ao  final  do  arquivo,  leituras  não  são  permi@das,  porém  

escritas  são.  

•  Ao  chegar  no  fim  do  arquivo,  uma  flag  de  fim  do  arquivo  (End  of  

(18)

Formas  de  acesso  

Acesso  direto  ou  aleatório  

•  Se  indica  em  qual  posição  do  arquivo  onde  cada  leitura  ou  escrita  

pode  ser  feita,  sem  a  necessidade  de  um  ponteiro.  

•  Importante  para  aplicações  como  banco  de  dados  e  afins.  

Boa  parte  dos  S.O.s  usa  o  acesso  sequencial  como  modo  

padrão,  com  operações  de  movimentação  do  ponteiro  do  

arquivo.  

(19)

Formas  de  Acesso  

Mapeamento  em  memória  

•  Baseado  em  memória  virtual  (paginação).  

•  Arquivo  é  associado  a  um  vetor  do  mesmo  tamanho  que  o  

arquivo  na  memória.  

•  Cada  posição  no  arquivo  tem  uma  equivalente  no  vetor.  

•  Ao  se  ler  uma  posição  do  vetor  que  não  foi  lida,  ocorre  um  page  

fault,  e  a  gerência  de  memória  virtual  carrega  a  porção  do   arquivo  para  a  memória.  

•  Muito  mais  rápido  que  fazer  read  e  write.  

•  Tratamento  de  Page  Fault  é  bem  mais  rápido  que  todo  o  ciclo  de  vida  

(20)

Formas  de  Acesso  

Mapeamento  em  Memória  

•  Vantagem  principal:  Eficiência  em  muitos  casos.  

•  As  vezes  a  cache  do  S.O.  pode  ser  mais  rápida  que  ela.  

•  Paginação  sob  demanda  de  executável  

•  Ao  carregar  um  executavel,  S.O.  o  mapeia  na  memória,  e  carrega  os  

(21)

Controle  de  acesso  

S.O.  disponibiliza  controle  de  acesso  aos  arquivos.  

Forma  usual  de  controle:  

•  Proprietário:  Criador  do  arquivo.  Muitos  S.O.s  também  definem  

um  grupo  proprietário.  

•  Permissões:  Definem  que  operações  podem  ser  feitas  em  um  

arquivo.  

ACL  –  Access  Control  Lists  –  Formas  de  definir  quais  são  as  

(22)

Controle  de  Acesso  

•  Esta  abordagem  pode  ser  problemá@ca  em  sistemas  com  muitos  

usuários  e  arquivos.   •  Unix:  

•  3  níveis  de  permissões:  Dono  (User),  Grupo  do  dono  (Group)  e  demais  

usuários  (Others)  

•  3  permissões  Leitura  (r),  escrita  (e)  e  execução  (x).  

•  9  bits  para  permissões.  

•  NTFS  

(23)

ORGANIZAÇÃO  DE  DISCOS  

(24)

Organização  de  Volumes  

Normalmente,  discos  são  visualizados  pelos  S.O.s  como  um  

único  @po,  independente  de  sua  natureza  (Cd-­‐RW,  HD,  SSD,  

Pendrive).  

•  Disposi@vos  que  gravam  e  lêem  blocos  (block  devices)  

Padrão  PC.  

•  Espaço  de  armazenamento  sempre  possui  uma  área  inicial  de  

configuração.  

•  MBR  –  Master  Boot  Record.  

•  Contém  a  tabela  de  par@cionamento.  

•  Também  um  pequeno  código  executável,  necessário  para  o  

lançamento  do  S.O.,  se  o  disco  for  inicializável.  

(25)

Organização  de  Volumes  

Restante  do  espaço  pode  ser  dividido  em  1  ou  mais  par@ções  

de  dados,  disponíveis    para  o  armazenamento  de  arquivos.  

Cada  par@ção  deve  ser  formatada,  ou  seja,  estruturada  para  

conter  um  sistema  de  arquivos,  diretórios,  atalhos  e  etc.  

(26)

Diretórios  

Arquivos  em  um  sistema  moderno  podem  facilmente  chegar  

aos  milhões  

Para  organização,  arquivos  são  organizados  em  diretórios  

hierárquicos.  

Diretório  Raiz:  diretório  principal  de  um  volume.  

(27)

Diretórios  

• 

Implementação  simples:  

cada  diretório  é  um  

arquivo,  cujo  conteúdo  é  

uma  lista  de  entradas.  

•  Entradas  são  arquivos,  

atalhos  ou  outros   diretórios.  

•  Contém  nome,  @po  e  

localização  Msica.  

•  Não  contém  fisicamente,  

apenas  ponteiros.  

•  Duas  entradas  padrão:  “.”  

que  é  um  ponteiro  para  o   próprio  diretório,  e  “..”  que   é  um  ponteiro  para  o  seu   pai.  

(28)

Caminhos  

Para  se  localizar  um  arquivo  na  hierarquia,  normalmente  é  

necessário  saber  sua  localização  completa.  

•  Composta  pelo  nome  de  todos  os  diretórios  pais  deste  arquivo  +  

separadores.  

•  Windows  “\”.  Unix  “/”  

Diretório  de  trabalho  

•  Diretório  “atual”  onde  um  terminal  está  rodando.  

(29)

Referências  

Direta:  Somente  o  nome  do  arquivo.  Válida  somente  para  

arquivos  no  diretório  atual.  

•  Prova1.doc,  dados.dat  

Absoluta:  Caminho  completo  é  fornecido;  Independe  do  

diretório  de  trabalho.  

•  \Windows\system32\drivers\hosts.lm  

Rela@va:  Parte  do  diretório  de  trabalho  atual  e  “navega”  para  

sub-­‐diretórios  ou  diretórios  acima  através  da  referência  “..”  

(30)

File  Lookup  

•  /usr/lib/X11/libX.a    

•  Acessar  o  disco  para  ler  o  VBR  (Volume  Boot  Record)  do  volume;    

•  Nos  dados  lidos,  descobrir  onde  se  encontra  o  diretório  raiz  (/)  daquele  

sistema  de  arquivos;    

•  Acessar  o  disco  para  ler  o  diretório  raiz;    

•  Nos  dados  lidos,  descobrir  onde  se  encontra  o  diretório  usr;    

•  Acessar  o  disco  para  ler  o  diretório  usr;    

•  Nos  dados  lidos,  descobrir  onde  se  encontra  o  diretório  lib;    

•  Acessar  o  disco  para  ler  o  diretório  lib;    

•  Nos  dados  lidos,  descobrir  onde  se  encontra  o  diretório  X11;    

•  Acessar  o  disco  para  ler  o  diretório  X11;    

•  Nos  dados  lidos,  descobrir  onde  se  encontra  o  arquivo  libX11.a;    

•  Acessar  o  disco  para  ler  o  bloco  de  controle  do  arquivo  libX11.a,  que  

contém  seus  atributos;    

•  Criar  as  estruturas  em  memória  que  representam  o  arquivo  aberto;    

(31)

Localização  de  um  arquivo  

Trabalhoso  

•  5  leituras  no  disco  no  exemplo  apenas  para  localizar  o  arquivo  

desejado  no  disco.  

Solução:  Cache  de  entrada  de  diretórios  (Sim,  cache  de  novo  

J

)  

•  LRU  

(32)

Links  (Atalhos)  

Pode  ser  necessário  ter  um  mesmo  arquivo  ou  diretório  

replicado  em  várias  posições  do  disco.  

•  Bibliotecas  

Pode  se  perder  muito  tempo  acessando  arquivos/diretórios  

que  estão  em  níveis  profundos  da  hierarquia  

•  Especialmente  no  terminal.  

Links  são  uma  forma  de  criar  ponteiros  para  arquivos/

diretórios.  

•  Economizando  espaço  em  disco.  

(33)

Links  

Links  Simbólicos  (so|  links):  

•  Cada  cópia  é  uma  pequena  string  contendo  o  caminho  até  o  

arquivo/diretório  original.  

•  Pode  estar  localizado  em  outros  disposi@vos  Msicos.  

•  Independentes:  Se  moverem  o  arquivo  original,  os  links  não  são  

atualizados  automa@camente.  

•  Broken  Links  

Links  Físicos  (hard  links):  

•  Vários  arquivos  diferentes  apontam  para  a  mesma  posição  no  

disposi@vo.  

•  Devem  necessariamente  estar  no  mesmo  volume.  

•  Não  podem  ser  u@lizados  para  diretórios  (Unix)  

•  Contador  de  referências:  Conteúdo  só  é  apagado  de  fato  quando  

(34)
(35)

Montagem  de  Volumes  

Antes  de  u@lizar  um  volume,  o  S.O.  deve  ler  seu  bloco  de  

inicialização  e  criar  estruturas  em  memória  para  representá-­‐lo  

no  núcleo.  

•  Montagem  e  desmontagem.  

Frequente  no  caso  de  mídias  móveis  (CD,USB)  

Para  montar,  é  necessário  um  ponto  de  montagem.  

•  No  Unix,  um  diretório  qualquer  dentro  da  árvore  principal  de  

arquivos.  

•  No  Windows,  como  um  novo  volume,  com  uma  letra  condizente.  

(36)

Montagem  de  Volumes  

Estudo  de  caso:  Unix:  

•  Volume  principal:  Montado  durante  a  inicialização  do  sistema  

operacional  na  raiz  do  sistema  de  arquivos  (  “/”  )  

•  Pastas  padrão  do  unix  na  raiz,  como  /home,/lib,/bin,/usr  e  etc.  

•  Linux,  MacOS  X  também.  

•  Outras  unidades  normalmente  podem  ser  montadas  em  /mnt  

ou  /media,  a  depender  do  sistema.  

•  Montagem  de  USB  e  CD,  normalmente  automá@ca.  

•  E  se  não  funcionar?  

•  mount  –t  <sistema_de_arquivos>  <device>  <ponto_de_mnt>  

(37)
(38)

Referências

Documentos relacionados

Essa rede proporciona uma organização espacial para as organelas e serve como um arcabouço para os movimentos das organelas e de outros componentes do citoesqueleto.. O

Fundada no final de dezembro de 1943 na gestão do Ministro da Agricultura Apolônio Sales e inaugurada em julho de 1947 com a presença do presidente Dutra, a Universidade Rural,

 A partir das categorias de impacto ambiental identificadas, descreve- se como funcionam os critérios de avaliação de cada categoria: forma de aplicação, pontuação

FEA/USP (SP) André Luiz Fischer, Dr..

Através dos teores de ferro total via absorção atômica, de magnetita por suscetibilidade magnética, de hematita e goethita por espectroscopia Mössbauer,

A empresa EPPC – Estudos e Projetos em Patrimônio Cultural LTDA-ME, em cumprimento com o cronograma de desenvolvimento das atividades do Programa de Resgate

xix TABELA 7.6 – Relação área versus população estimada em relação aos valores do DNL em dB(A) no aeroporto de Congonhas ... 119 TABELA 8.1 – Dados da

Histórias Locais/Projetos Globais: colonialidade, saberes subalternos e pensamento liminar.. de Solange Ribeiro de