18/02/13 FAFIMAN 1 Sistemas Operacionais: Gerenciamento de Arquivos Prof. Leandro Magno Material...
Transcript of 18/02/13 FAFIMAN 1 Sistemas Operacionais: Gerenciamento de Arquivos Prof. Leandro Magno Material...
18/02/13 FAFIMAN 1
Sistemas Operacionais:Gerenciamento de Arquivos
Prof. Leandro Magno
Material gentilmente cedido pelo prof.Dr. Ronaldo Augusto de Lara Gonçalves
DIN - UEM
18/02/13 FAFIMAN 2
Gerenciamento de Arquivos
Terminologia Disco Controladores Drivers do SO Rotinas do SO Rotinas do usuário Interrupções Arquivos (descritores, tipos) Diretórios Cache de blocos do disco Algoritmos de alocação de
espaço livre e ocupado
18/02/13 FAFIMAN 3
Diretórios
Arq1
Nome do Arquivo
Arq5 5
:
:
Arq2 20
Arq8 34
Arq1 50
:
:
Diretório
Atributos
251060 :
Descritorde Arquivo
50
blocosde dados
60
10
25
18/02/13 FAFIMAN 4
Diretório de Nível Simples
nometipoetc...
.....Diretório
Arquivos
18/02/13 FAFIMAN 5
Diretório de Dois Níveis
usuário 1 usuário 2 usuário 3DiretórioMestre
Diretóriosdos
Usuários
Arquivos
18/02/13 FAFIMAN 6
Diretórios em Árvores
util exe fontes
dos vacinas pilha lista pilha lista
scan cura norton pctools
raíz
18/02/13 FAFIMAN 7
Diretórios em Grafos Acíclicos
alunos professorraíz
bcc pd
bete lu gil ana
din dema
luiz ana dina maria
trab2 turbo clipper projeto
18/02/13 FAFIMAN 8
Gerenciamento de Espaço Livre em Disco
Mapa de Bits Lista Encadeada de Blocos Livres Tabela (Bloco) de Endereços de Blocos
Livres Tabela de Blocos Livres Contíguos
18/02/13 FAFIMAN 9
Mapa de Bits
Cada bloco é representado por 1 bit
Fácil procura de n blocos livres consecutivos
Gasto de disco para armazenar o mapa de bits
Em uma única leitura no disco (leitura do mapa de bits), é possível saber a situação de um grande número de setores
18/02/13 FAFIMAN 10
Lista Encadeada de Blocos Livres
Cada bloco é acessado por 1 ponteiro, iniciando pela cabeça e seguindo o encadeamento
Difícil procura de n blocos livres quaisquer (caminhamento seqüencial bloco a bloco)
Extremamente difícil procura de n blocos livres consecutivos
Gasto de disco para armazenar os ponteiros, mas somente para aqueles que estão livres.
Não se tem uma visão geral sobre a proximidade dos blocos – dificulta controle de fragmentação
18/02/13 FAFIMAN 11
Lista Encadeada de Blocos Livres
: : :
head 0 1 2 3
4 5 6 7
8 9 1011
18/02/13 FAFIMAN 12
Tabela (Bloco) de Endereços de Blocos Livres
Cada bloco é acessado por 1 ponteiro. Existe uma tabela com ponteiros para todos os blocos livres
Difícil procura de n blocos livres consecutivos com custo médio entre o Mapa de Bits e a Lista de Blocos Livres
Gasto de disco para armazenar os ponteiros com a exigência de blocos de discos específicos para esta finalidade
18/02/13 FAFIMAN 13
Tabela (Bloco) de Endereços de Blocos Livres
: : :
head
18/02/13 FAFIMAN 14
Tabela de Blocos Livres Contíguos
Existe uma tabela onde cada entrada controla uma seqüencia de blocos livres
Fácil procura de n blocos livres consecutivos Semelhante ao mapa de bits: não tão
econômico mas sem a necessidade de cálculo da posição final do bloco.
Quanto mais disjuntos os blocos livres maior a tabela
18/02/13 FAFIMAN 15
Tabela de Blocos Livres Contíguos
1 3
7 8
: :
2030 20
tamanho da sequencia
início da sequencia
18/02/13 FAFIMAN 16
Pergunta 1
Na tabela de blocos livres contiguos, do exemplo anterior, como poderia a mesma ser atualizada, se o SO alocasse 2 setores da segunda sequência?
18/02/13 FAFIMAN 17
Pergunta 2
Em quais situações cada método poderá gastar mais espaço de controle/gerenciamento do que os demais?
18/02/13 FAFIMAN 18
Gerenciamento de Espaço Ocupado em Disco
Alocação Contígua Alocação Ligada
Alocação Indexada
18/02/13 FAFIMAN 19
Alocação Contígua
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15: :
Disco
: :
arquivo início tamanhocarta 2 3tese 9 5 : : :
diretório
18/02/13 FAFIMAN 20
Alocação Ligada
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15: :
Disco
: :
arquivo início fimrelato 2 11
: : :
diretório
18/02/13 FAFIMAN 21
Alocação Indexada
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14: :
Disco
: :
arquivo end. bloco índicecarta 15
: :
diretório
42
3 12 -1 -1
bloco de índices
18/02/13 FAFIMAN 22
Escalonamento de Disco
Tempos Importantes Deslocamento (seek) Rotação Transferência
Algoritmos Comuns FIFO/FCFS SSTF SCAN (elevador)
18/02/13 FAFIMAN 23
Exemplo: Posição Inicial = 53Ordem das Solicitações = 98, 183, 37, 122, 14, 124, 65
e 67
14 37 53 65 67 98 122 124 183
FCFS
SSTF
SCAN
640 trilhas
236 trilhas
208 trilhas
18/02/13 FAFIMAN 24
Gerenciamento de Arquivos no DOS
FAT (File Allocation Table) - 1
Disco é dividido em boot, FAT, diretório e cluster de dados
A FAT trabalha semelhante ao Mapa de Bits, para gerenciamento de espaço livre, e como Alocação Indexada (Bloco de Índices Único), para a alocação de espaço ocupado, onde as 2 primeiras entradas são reservadas e as demais são associadas a clusters do disco, em ordem. A 3o entrada é associada ao 1o cluster de dados, a 4o entrada ao 2o cluster e assim por diante.
18/02/13 FAFIMAN 25
Gerenciamento de Arquivos no DOS
FAT (File Allocation Table) - 2
Assim, o cluster n é associado a entrada de índice (n+2) da FAT
No diretório, cada arquivo mantém o valor da entrada na FAT relativo ao seu primeiro cluster de dados
Cada entrada da FAT pode conter: 0, indicando disponibilidade do cluster endereço do próximo cluster de algum arquivo código de “fim”, indicando que o cluster
associado é o último de algum arquivo.
18/02/13 FAFIMAN 26
Visão Geral do Disco Formatado
BOOT FAT ... C1 C2 C3 C4 ...
Ci = cluster i
18/02/13 FAFIMAN 27
Controle de Espaço Livre na FAT
4
reservado
reservado
FAT
1
2
3
5
:
n+2
DISCO
C1 C2 C3
C4 C5 C6
C7 .. Cn
18/02/13 FAFIMAN 28
Alocação de Espaço Ocupado na FAT
4
reservado
reservado
FAT
5
n+2
1
2
3
5
:
fimn+2
DISCO
C1 C2 C3
C4 C5 C6
C7 .. Cn
Nome doarquivo
Índice daFAT
carta.doc 3
: :
Diretório
18/02/13 FAFIMAN 29
Sistema de Arquivos do UNIX
Diretório hierárquico iniciado no root
Os diretórios principais são subsistemas de arquivos separados mas subordinados ao root e podem ser montados no mesmo disco do root ou em discos diferentes
Um sistema de arquivos pode ser ligado como diretório de um outro sistema de arquivos através de mount
Contém superbloco, vetor de i-nodes, blocos de dados e blocos livres.
18/02/13 FAFIMAN 30
Subsistemas de Arquivos do UNIX
/ root
etc bin usr dev lib tmp
comandos deadministraçãodo sistema
comandosUNIX maiscomumenteusados
contas dos usuários ealguns comandos
arquivos de dispositivos
arquivosbiblioteca para programaçãoem C
armazenamentotemporário
18/02/13 FAFIMAN 31
Características Gerais
Um mesmo arquivo físico pode aparecer em mais de uma entrada no diretório, com nomes #s (links)
Os links no diretório apontam para os i-nodes que por sua vez apontam para os arquivos físicos
O arquivo desaparece quando o último link é removido
18/02/13 FAFIMAN 32
TDA - Tabela de Descritores de Arquivos TAS - Tabela de Arquivos do Sistema e
Cada usuário contém uma TDA com informações de todos os seus arquivos.
Cada entrada da TDA aponta para uma entrada da TAS
A TAS representa o diretório do sistema e contém uma entrada para todos os arquivos do sistema. A TODA representa o diretório do usuário.
Cada entrada da TAS possui um ponteiro para o i-node (descritor) do arquivo
O i-node é uma estrutura contendo
18/02/13 FAFIMAN 33
identificação do usuário e grupo proprietários
bits de proteção locador de blocos (contém endereços físicos
do disco para os conteúdos do arquivo) tamanho do arquivo tempo de criação tempo da última modificação número de links do arquivo indicador que diz se o arquivo é um arquivo
comum, diretório, arquivo de dispositivo ou pipe
18/02/13 FAFIMAN 34
Componentes do Diretório
TabelaDescritor
de Arquivos
:
Tabelade Arquivosdo Sistema
do processo
:
:
:
:
:
Tabelade i-nodes
18/02/13 FAFIMAN 35
LocadorDe Blocos
locador de blocos
456789
10 11 12
0123
blocos dedados
: :
bloco indireto
blocos dedados
: :
:
:
blocoduplamenteindireto
: :
:
:
: :
:
:
:
:
:
:
:
:
blocoindiretotriplo
:
:
:
:
18/02/13 FAFIMAN 36
Exercícios para Entregar
• Analise os desempenho de cada algoritmo de escalonamento de disco para a seguinte situação: Posição Inicial = 70Ordem das Solicitações = 198, 1, 6, 183, 38, 71, 72, 3, 140, 50
• Explique o esquema de gerenciamento de arquivos no DOS
• Explique o esquema de gerenciamento de arquivos no UNIX
18/02/13 FAFIMAN 37
Gerenciamento de E/S
Principais Atividades Gerenciamento do espaço de nomes dos
dispositivos Controle de acesso aos dispositivos Alocação de espaço e alocação de dispositivos Gerenciamento de áreas temporárias, cache e
spool Escalonamento das solicitações de E/S Controle de status, erro e recuperação Configuração das rotinas de controle dos
dispositivos
18/02/13 FAFIMAN 38
Tipos e Componentes
Tipos de Dispositivos Blocos (endereçáveis – permite seek)
HDs, CDs, Floppys ... Caracteres (fluxo contínuo – não permite seek)
Impressoras, Terminais ...
Componentes Componente Eletro-Mecânico (acionador) Componente Eletrônico (adaptador,
controlador) Software Controlador (driver)
18/02/13 FAFIMAN 39
Taxas de Transmissão
18/02/13 FAFIMAN 40
Controladores ou Adaptadores
Modos de Endereçamento E/S Programada E/S Dirigida por Interrupção E/S Usando DMA
Controladordo Disco
Discos
MemóriaCPU Controladorda Impressora
Impressora
Outros...
18/02/13 FAFIMAN 41
Endereçamento Direto
Os controladores podem ser acessados através de seus registradores de controle os quais tem portas (endereços) associadas, usando instruções especiais do tipo IN e OUT. Ex:
IN REG, PORT /* lê um dado do controlador */
OUT PORT, REG /* escreve um dado no controlador */
18/02/13 FAFIMAN 42
Endereçamento Mapeado na Memória
Os controladores podem ser acessados através de seus registradores de controle os quais são mapeados em endereços convencionais de memória, usando instruções convencionais do tipo LOAD e STORE. Ex:
LOAD REG, (END) /* lê um dado do controlador */
STORE (END), REG /* escreve um dado no controlador */
18/02/13 FAFIMAN 43
Vantagens Acesso pode ser feito em código de alto nível,
pois estes endereços podem ser acessados como variáveis comuns.
Não requer mecanismo especial de proteção, pois estes endereços podem ser mapeados no espaço de memória virtual de cada usuário.
Desvantagens Memórias podem ser “cacheadas” e com isso os
programas podem estar acessando a cache ao invés do dispositivo.
Como o espaço de endereçamento é único, todos os módulos de memória e todos os dispositivos de E/S devem examinar todas as referências a memória para identificar cada um as suas.
18/02/13 FAFIMAN 44
Endereços de Portas Tradicionais em PCs
18/02/13 FAFIMAN 45
E/S Programada
A cada solicitação da CPU para um dispositivo de E/S, a própria CPU deve checar junto ao dispositivo (em um loop) se a sua solicitação já foi ou não atendida, ou melhor, se o dispositivo já está pronto ou não para realizar uma próxima operação. Esta espera pela CPU é conhecida como “espera ocupada” (busy waiting ou polling) e consome tempo desnecessário da CPU.
18/02/13 FAFIMAN 46
Exemplo
copia_do_usuario (buffer, p, contador);for (i=0; i < contador; i++) { while (*reg_status_impressora != PRONTO); *reg_dado_impressora = p[i]; }retorna_para_usuario();
Obs: buffer é do usuário, p é do núcleo
18/02/13 FAFIMAN 47
E/S Dirigida por Interrupção
Neste caso, após o driver ter solicitado a operação de E/S ao controlador do dispositivo, a CPU prossegue a execução de outras atividades e não pergunta pelo término da E/S. Quando o dispositivo terminar a sua operação, ele interrompe a CPU para avisá-la do término e que está pronto para atender outra solicitação.
18/02/13 FAFIMAN 48
Interrupção de Hardware e Software (Trap)
programa
CPUdispositivo
de E/S
interrupçãode softwareinterrupção
de hardware
rotina deE/S
18/02/13 FAFIMAN 49
Hardware de Interrupção
relógio
impressora
disco
Controladorde
InterrupçõesCPU
int
posiçãodo vetor
18/02/13 FAFIMAN 50
Vetor de Interrupções
ender do tratadorde teclado
:
ender do tratadordo relógio
:
tratador dorelógio
0
:
n
:
tratador doteclado
MEM
:
vetor deinterrupções
rotinas donúcleo para
tratar asinterrupções
18/02/13 FAFIMAN 51
Interrupção Precisa
Ocorre quando a máquina fica em um estado bem definido após uma interrupção, sendo que: O PC deve ser salvo em lugar conhecido (pilha) Todas as instruções anteriores aquela apontada pelo
PC devem ser executadas completamente Nenhuma instrução após aquela apontada pelo PC
deve ser executada com aproveitamento O estado da execução da instrução apontada pelo PC
deve ser conhecido
18/02/13 FAFIMAN 52
Exemplo do funcionamento básico de um dispositivo de caractere com
buffering
Device
Buffer
Controlador
Processo
variáveis locais
DeviceDriver
Rotinasde E/S
buffer de
caracteres
Character
1 caracter
read e write
interrupção
interrupção de hardware
desoftware
chamada de procedimento
18/02/13 FAFIMAN 53
Ciclo de E/S com Interrupção - Visão Geral -
Driver do Dispositivoinicia operação de E/S
CPU testa ocorrência deinterrupções entre instruções
CPU detecta ocorrênciade interrupção, transferecontrole para tratador da
interrupção
Tratador da interrupçãoprocessa os dados e
retorna da interrupção
CPU reiniciaprocessamento da tarefa
interrompida
CPU
1
Inicia E/S
Entrada pronta, saídacompleta ou erro.
Gera sinal deinterrupção.
2
3
4
5
6
7
Controlador de E/S
18/02/13 FAFIMAN 54
Ciclo de E/S com Interrupção - Visão Mais Detalhada -
requisição de E/S
chama rotina do sistema
requisiçãojá pode seratendida?
envia requisição ao driverdo controlador e bloqueia
proc chamador ( se devido)
não
processa requisição e enviacomandos ao controlador.
Configura o driver para ficarbloq até ocorrer uma intpt
comandos ao controlador
controla o dispos e causaintept quando termina a E/S
processodo usuário
subsistema deE/S do núcleo
subsistema deE/S do núcleo
driver dodispositivo
tratador deinterrupções
controlador doteclado
E/S terminada.Gera interrupção
tempo
recebe o controle, colocadados em área do driver
(qdo entrada) e envia sinalpara desbloquear o driver
determina qual operação deE/S terminou e indica
mudança de estado para osubsistema de E/S
transfere dados (seadequado) ao processo eretorna código de erro ou
sucesso
E/S terminada
sim
18/02/13 FAFIMAN 55
E/S com DMA (Direct Access Memory)
Usa-se DMA para evitar que a CPU transfira byte a byte grandes quantidades de dados. A CPU informa ao controlador DMA o início, o fim e o número de bytes que deseja transferir (por ex: do disco para a memória) e prossegue com outra atividade. O DMA também prossegue transferindo sem a ajuda da CPU, usando o barramento e quando termina interrompe a CPU.
18/02/13 FAFIMAN 56
Observações
Quando o DMA usa o barramento da memória, a CPU fica momentaneamente impedida de usar a memória principal, embora ela possa ainda usar suas caches.
Placas de E/S com gerenciamento de uso de barramento contém normalmente seu próprio hardware de DMA de alta velocidade.
18/02/13 FAFIMAN 57
Organização DMA
CPU MEMÓRIA
: :
Controlador doDisco c/ DMA
buffer
end. da memóriaend. do bloconro de bytes
Disco
18/02/13 FAFIMAN 58
Tipos de Barramentos
ISA (industry Standard Architecture) Original do PC/AT da IBM Opera a 8.33 MHz Pode transferir 2 bytes por vez a uma
velocidade máxima de 16,67 MB/s Possui compatibilidade com
dispositivos mais lentos
18/02/13 FAFIMAN 59
Tipos de Barramentos
PCI (Peripheral Component Interconnect) Sucessor do ISA - Inventado pela Intel Pode operar a 66 MHz Pode transferir 8 bytes por vez a uma
velocidade de 528 MB/s Maioria dos dispositivos de E/S de alta
velocidade usam PCI
18/02/13 FAFIMAN 60
Tipos de Barramentos
USB (Universal Serial Bus) Para ligar dispositivos lentos (teclado,
mouse) Controlador centralizado que varre a cada
1 ms para ver se existe tráfego Pode transmitir até 1,5 MB/s serialmente Driver único para todos dispositivos
conectados Não precisam de reboot para nova adição
18/02/13 FAFIMAN 61
Tipos de Barramentos
SCSI (Small Computer System Interface) Barramento de alto desempenho para
dispositivos que precisam de alta taxa de transferência tais como discos e scanners.
Pode transferir até 160 MB/s Presente no Macintosh Apple desde sua
criação e é muito popular em ambientes UNIX
18/02/13 FAFIMAN 62
Tipos de Barramentos
Barramento IEEE 1394 Chamado as vezes de FireWire Usado em equipamentos Macintosh Apple Pode transmitir até 50 MB/s serialmente Útil para conectar câmeras de vídeo digital Não tem controlador centralizado
18/02/13 FAFIMAN 63
Facilidade Plug and Play
Como era antes?
O próprio sistema (BIOS) detecta os dispositivos e configura seus valores para interrupção e endereços de portas de E/S e então informa estes valores para cada controlador de dispositivo. Você pode eventualmente ter ainda controladores antigos com valores pré-fixados.
18/02/13 FAFIMAN 64
Estrutura Possível de um Pentium
18/02/13 FAFIMAN 65
Relógios e Temporizadores
Funções básicas Informar o instante atual Informar intervalo de tempo decorrido Ajustar temporizador para iniciar certa operação
em certo instante de tempo Hardware (temporizador programável):
pode ser programado para gerar uma interrupção após certo intervalo de tempo
Taxa comum de 18 a 60 interrupções/s
Note: Um processador moderno pode executar centenas de milhões de instruções/s
18/02/13 FAFIMAN 66
Como melhorar o desempenho da E/S
Reduzir trocas de contextos
Reduzir número de vezes que dados são copiados na MEM na transferência entre dispositivo e programa
Reduzir freqüência das interrupções usando grandes transferências
Aumentar concorrência usando DMA e canais específicos de E/S para reduzir o número de cópias feitas pela CPU