6.7 – Operações com as Memórias: Já sabemos, conforme

Propaganda
ARQUITETURA DE COMPUTADORES - 1866
6.7 – Operações com as Memórias:
Já sabemos, conforme anteriormente citado, que é possível realizar duas
operações em uma memória:
•
Escrita (write) – armazenar informações na memória;
•
Leitura (read) – recuperar uma informação armazenada na memória.
A operação de leitura não destrói o conteúdo da memória, ela apenas
providencia a transferência de uma cópia do que está armazenado, enquanto a
informação desejada continua armazenada. Somente a operação de escrita é
destrutiva.
6.8 – Memória Virtual:
Antes de poder explicar o que é a memória virtual, é importante ao menos
voltarmos a falar um pouco a respeito da memória principal (MP) = RAM. A memória
RAM é o local que o processador utiliza para armazenar tudo que estiver aberto em
seu computador, como arquivos, jogos e todo tipo de programas. Assim, conforme
vamos abrindo mais aplicativos, a RAM vai sendo consumida.
A memória principal (RAM) disponível em um computador é em geral bem
menor do que o tamanho máximo de memória permitido pelo processador (por
exemplo, em uma arquitetura de 32 bits podemos endereçar até 4 GB de memória
principal).
O problema é que temos um espaço limitado de memória RAM e, cada vez
mais, os aplicativos consomem partes maiores dela. E o que o processador faz
quando a memória RAM acaba? Muito simples: utiliza a Memória Virtual.
O mecanismo de memória virtual foi criado para permitir a execução de
programas que necessitem de mais memória principal (RAM) do que a quantidade
instalada no sistema.
A memória virtual é uma espécie de arquivo que é criado no computador e o
processador utiliza para armazenar dados que ele costuma deixar na memória RAM.
É como se ele simulasse a memória RAM dentro do seu HD, por isso que se chama
memória virtual.
E por que será que a memória RAM é mais cara? Não seria mais fácil
simplesmente utilizar o HD para armazenar os dados? Não exatamente, porque a
- 48 -
ARQUITETURA DE COMPUTADORES - 1866
memória virtual é extremamente mais devagar do que a memória RAM. Dessa forma,
se o seu computador estiver com pouca memória RAM e precisar usar a memória
virtual para armazenar dados dos programas, com certeza o desempenho vai
despencar.
Existe uma separação da memória lógica do usuário, da memória física:
•
somente uma parte do programa precisa estar na memória para execução;
•
o espaço de endereçamento lógico pode ser muito maior que espaço de
endereçamento físico;
•
permite o compartilhamento de espaços de endereços por vários
processos.
Em um sistema de memória virtual, o endereço de memória gerado pelo
programa é um endereço virtual, sendo diferente do endereço real usado para o
acesso à memória principal.
Os possíveis endereços virtuais que podem ser gerados pelo programa
formam o espaço de endereçamento virtual, enquanto a faixa de endereços na
memória principal constitui o espaço de endereçamento real.
Embora sob o ponto de vista do programa as instruções e dados estejam
armazenados no espaço de endereçamento virtual, na realidade eles continuam
armazenados na memória principal, representada pelo espaço de endereçamento
real.
Esta diferença entre endereçamento virtual e real utiliza um mecanismo que
faz a correspondência entre o endereço virtual gerado pelo programa e o endereço
real que será usado para acessar a memória principal, o gerenciador de memória
virtual, ou DAT (Dynamic Address Translator).
- 49 -
ARQUITETURA DE COMPUTADORES - 1866
Como a memória virtual pode ser muito maior do que a memória principal
presente, pode acontecer que o bloco de dados referenciado pelo programa não
esteja presente na memória principal no momento que é referenciado.
Os blocos de dados e instruções de um programa em execução ficam
armazenados na memória secundária, que é uma unidade de disco do sistema.
Na ausência do bloco referenciado pelo programa no momento que o DAT
realiza o mapeamento, este é carregado da memória secundária para a memória
principal.
6.8.1 – Memória Virtual - Segmentação e Paginação:
Blocos de memória podem ser organizados de duas formas: em segmentos ou
páginas.
O segmento pode ser formado por um bloco de informações logicamente
relacionadas; os segmentos podem ter tamanho variável.
Uma página é um bloco de dados de tamanho fixo e não segue nenhuma
coesão lógica, isto é, os dados podem não ter relação entre si.
O DAT possui uma pequena memória interna chamada TLB (Translation
Lookaside Buffer), que armazena os pares de endereços virtual/principal acessados
recentemente, como uma memória cache.
No acesso a uma posição de memória virtual, se o dado requerido não possui
um registro relacionando com a memória principal, o bloco de dados também não se
encontra na memória principal. Essa ausência de bloco é denominada falha de
página ou falha de segmento.
6.8.2 – Controle de Memória Virtual:
Ao ocorrer uma falha o DAT gera uma interrupção, transferindo o controle do
processador para o sistema operacional, para que este transfira o bloco de dados
referenciado da memória secundária para a memória principal.
Após a transferência do bloco de dados ser concluída, o controle do
processador retorna ao programa em execução, exatamente para o ponto onde foi
interrompido, agora com os dados referenciados presentes na memória principal.
- 50 -
ARQUITETURA DE COMPUTADORES - 1866
Com a utilização da memória virtual, não é necessário que todas as instruções
e dados de um programa permaneçam na memória principal durante a execução do
programa, blocos são transferidos da memória secundária para a principal à medida
que forem referenciados.
É importante ressaltarmos que todo o mecanismo de memória virtual funciona
de forma totalmente transparente para o programa, e mais importante, para o
programador que o desenvolveu.
6.9 – Memória Cache:
A memória cache é uma pequena porção de memória inserida entre o
processador e a memória principal, cuja função é acelerar a velocidade de
transferência das informações entre a CPU e a memória principal e, com isso,
aumentar o desempenho dos sistemas de computação.
Para tanto, este tipo de memória é fabricado com tecnologia semelhante à da
CPU e, em conseqüência, possui tempos de acesso compatíveis com a mesma,
resultando numa considerável redução da espera da CPU para receber dados e
instruções da cache, ao contrário do que acontecem em sistemas sem cache.
Devido ao custo, a capacidade de armazenamento costuma ser da ordem de
Kbytes. Nos sistemas mais modernos já encontramos caches com 1 Mbyte ou mais.
As memórias cache podem ser inseridas em dois ou mais níveis. O primeiro
nível é o L1 (Level 1 – Nível 1), uma memória cache inserida internamente no
processador, isto é, é encapsulada na mesma pastilha. Nas placas-mãe mais antigas
a cache L2 vinha soldada na própria placa, sendo que os processadores mais novos
já possuem esta memória em seu próprio interior, a exemplo da L1. Quando
processadores que possuem cache L1 e L2 em seu próprio interior são instalados em
- 51 -
ARQUITETURA DE COMPUTADORES - 1866
uma placa mãe que possua memória cache, esta passa a ser utilizada como cache de
nível 3, ou L3. Já existem processadores que possuem esta memória (L3) também
em seu próprio interior. Como exemplo podemos citar o processador Core i7 da Intel,
que possue 8MB de cache L3. Neste caso, se existir memória cache presente na
placa mãe, esta será considerada como L4.
A CPU procura por dados primeiro em L1, depois em L2 (e/ou L3 e L4) e
finalmente requisita os dados da memória principal.
6.10
–
Organização
para
transferência
de
Informações
entre
CPU/Cache/MP:
Sempre que a CPU vai buscar uma nova informação (instrução ou dado), ela
acessa a memória cache.
Se a informação estiver na cache, chama-se de acerto (ou hit), ela é
transferida em alta velocidade, compatível com a da CPU.
Se a informação não estiver na cache, chama-se de falta (ou fault), então o
sistema está programado para interromper a execução do programa e transferir a
informação desejada da MP para a cache. Só que essa transferência não é somente
da instrução desejada, mas dela e de um grupo subsequente, na pressuposição de
que as instruções do grupo serão requeridas pela CPU em seguida e, portanto, já
estarão na cache quando necessário (acertos).
Para haver realmente algum aumento de desempenho de um sistema de
computação, com a inclusão da memória cache, é necessário que haja mais hits do
que faults.
- 52 -
ARQUITETURA DE COMPUTADORES - 1866
6.11 – Memória Secundária (ou Auxiliar):
Na base da pirâmide que representa a hierarquia de memória em um sistema
de computação encontra-se um tipo de memória com maior capacidade de
armazenamento do que os outros tipos já descritos, menor custo por byte
armazenado e com tempos de acesso também superiores aos outros tipos. Esta
memória denominada memória secundária ou memória auxiliar tem por objetivo
garantir um armazenamento mais permanente aos dados e programas do usuário,
razão por que deve naturalmente possuir maior capacidade que a memória principal.
Este tipo de memória pode ser constituído por diferentes tipos de dispositivos,
alguns diretamente ligados ao sistema para acesso imediato (discos rígidos, por
exemplo) e outros que podem ser conectados quando desejado (como pen drive, CD,
DVD, etc), cuja informação armazenada se torna disponível para o usuário quando o
específico pen drive ou CD estiver inserido no elemento de leitura (porta USB ou
drive de CD-ROM, respectivamente).
Dispositivos de memória secundária são necessários a qualquer sistema de
computação, pois nenhum computador fica ininterruptamente ligado, ou seja, os
dados e instruções não podem ficar armazenados indefinidamente na memória
principal.
Vejamos abaixo algumas características deste tipo de memória:
Tempo de acesso: os dispositivos que representam este tipo de
memória são eletromecânicos e não circuitos puramente eletrônicos
(como é o caso dos registradores, memória cache e memória principal),
por isso este tipo de memória possui os maiores tempos de acesso
dentre todos os tipos de memória.
Capacidade de armazenamento: uma das principais características da
memória secundária é sua grande capacidade de armazenamento, a
qual também varia consideravelmente dependendo do tipo de
dispositivo utilizado.
Volatilidade: uma das principais características dos dispositivos que
constituem a memória secundária é sua não volatilidade: as
informações não se perdem quando não há alimentação elétrica. Trata-
- 53 -
ARQUITETURA DE COMPUTADORES - 1866
se, pois, de dispositivos úteis para guardar os programas e dados de
forma permanente.
6.11.1 – Geometria dos Discos Rígidos (HD):
O disco rígido ou HD (Hard Disk) é um dispositivo de armazenamento de
grande volume de dados (Memória Secundária), não volátil. No HD são armazenados
os programas instalados no computador (Sistema Operacional: Windows, Linux, Mac
OS / Aplicativos: Word, Excel, Outlook, Nero, IE, Firefox, Photoshop, etc) e os
arquivos gerados pelos mesmos (Fotos, Textos, Músicas, Planilhas, Apresentações,
etc).
Um disco consiste de pratos, cada qual com duas superfícies. Cada
superfície consiste de anéis concêntricos denominados trilhas. Cada trilha consiste
de setores separados por espaços.
O número de trilhas em um disco e a capacidade que cada trilha pode
armazenar depende do tipo de disco. Numeradas da borda para o centro, isto é, a
trilha que fica mais próxima da extremidade do disco é denominada trilha 0, a trilha
que vem em seguida é chamada trilha 1, e assim por diante, até chegar à trilha mais
próxima do centro.
Os HDs com grande capacidade contam com mais de um prato, sobrepostos
um sobre o outro.
- 54 -
ARQUITETURA DE COMPUTADORES - 1866
Trilhas de mesmo número em faces diferentes formam um cilindro. Exemplo:
Todas as trilhas de número Zero de todos os discos formam o cilindro Zero. Os
cilindros são numerados a partir de zero, na borda mais externa dos discos. As faces
também são numeradas, começando de zero na superfície mais alta.
6.11.2 – Capacidade do Disco:
Capacidade: é número máximo de bits que podem ser armazenados
expresso em terabytes (1 TB).
Fatores que determinam a capacidade:
Densidade de gravação: número de bits que podem ser gravados em 1
polegada de uma trilha.
Densidade de trilha: número de trilhas que podem existir em um segmento
radial.
Densidade de armazenamento: produto da densidade de gravação com
densidade de trilha.
Calculando a capacidade de disco:
Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície)
x (# superfícies/prato) x (# pratos/disco)
- 55 -
ARQUITETURA DE COMPUTADORES - 1866
Exemplo 01:
– 512 bytes/setor
– 300 setores/trilha (em média)
– 20.000 trilhas/superfície
– 2 superfícies/prato
– 5 pratos/disco
Capacidade = 512 x 300 x 20000 x 2 x 5
= 30.720.000.000
≅ 30,72 GB
Exemplo 02:
– 512 bytes/setor
– 500 setores/trilha (em média)
– 100.000 trilhas/superfície
– 2 superfícies/prato
– 5 pratos/disco
Qual será a capacidade deste disco?
- 56 -
ARQUITETURA DE COMPUTADORES - 1866
6.11.3 – Operação do Disco:
Operação de disco com múltiplos discos
6.11.4 – Organização do Disco – Setor de Boot:
Nem toda a área disponível no disco pode ser utilizada para a gravação de
arquivos de dados. É necessário reservar certas porções para operações necessárias
a qualquer sistema, como o setor de boot e tabelas de alocação de arquivos.
A BIOS (Basic Input/Output System) lê um setor específico do disco rígido,
chamado se setor de boot mestre MBR (Master Boot Record) ou trilha zero. O setor
de boot do HD armazena informações sobre o Sistema Operacional instalado, quais
arquivos devem ser carregados para inicializar o sistema, etc. O setor de boot
funciona como um ponto de partida. Assim que o computador é ligado, a BIOS lê o
setor de boot e segue as instruções que estiverem gravadas nela, que iniciarão o
carregamento do Sistema Operacional. Geralmente o boot é feito através do HD, mas
- 57 -
ARQUITETURA DE COMPUTADORES - 1866
de acordo com o que for configurado na opção "Boot Sequence" no Setup, a BIOS
pode procurar o boot também no disquete (atualmente em desuso), no CD-ROM,
num disco Zip ou até mesmo tentar dar boot através da rede.
6.11.5 – Organização do Disco – Endereçamento:
Para que o sistema operacional seja capaz de recuperar dados rapidamente de
um sistema de memória de armazenamento secundário, é necessária a utilização de
um sistema de endereçamento, denominado genericamente de formatação.
A formatação organiza trilhas e setores do disco em regiões onde os dados
são, de fato, gravados. O tamanho destas regiões varia segundo o processo de
formatação utilizado.
6.11.5.1 – File Allocation Table - FAT
FAT é a sigla para File Allocation Table (Tabela de Alocação de Arquivos). A
primeira versão do FAT surgiu em 1977, para trabalhar com o sistema operacional
MS-DOS, mas foi padrão até o Windows 95.
Trata-se de um sistema de arquivos que funciona com base em uma tabela
que indica onde estão os dados de cada arquivo. Esse esquema é necessário porque
o espaço destinado ao armazenamento é dividido em blocos, e cada arquivo gravado
pode ocupar vários destes, mas não necessariamente de maneira sequencial: os
blocos podem estar em várias posições diferentes. Assim, a tabela acaba atuando
como um "guia" para localizá-los.
Entendendo os sistemas de arquivos FAT:
Em um disco rígido, a área de armazenamento é dividida em trilhas. Cada
trilha é subdividida em setores. Desse modo, é de se presumir que os sistemas de
arquivos FAT trabalhem diretamente com esses setores. Mas não é bem assim.
Na verdade, o FAT trabalha com grupos de setores, onde cada um recebe a
denominação cluster (ou unidade de alocação). No caso do FAT16, cada cluster pode
ter, comumente, um dos seguintes tamanhos: 2 KB, 4 KB, 8 KB, 16 KB e, por fim, 32
KB. A definição desse tamanho é uniforme, ou seja, não pode haver tamanhos
variados de clusters em uma mesma unidade de armazenamento.
- 58 -
ARQUITETURA DE COMPUTADORES - 1866
Cada arquivo gravado utiliza tantos clusters quanto forem necessários para
cobrir o seu tamanho. Se, por exemplo, tivermos um arquivo com 50 KB, é possível
guardá-lo em dois clusters de 32 KB cada. Você deve ter percebido então que, neste
caso, um cluster ficou com espaço sobrando. Esta área pode ser destinada a outro
arquivo, correto? Errado! Acontece que cada cluster só pode ser utilizado por um
único arquivo. Se sobrar espaço, este permanecerá vazio. Esse é um dos problemas
do sistema FAT: desperdício.
Normalmente, o tamanho dos clusters é definido no procedimento de
instalação do sistema operacional, na etapa de formatação da unidade de
armazenamento.
Diferenças entre FAT16 e FAT32
O FAT16 utiliza 16 bits para endereçamento dos dados (daí o número 16 na
sigla), o que, na prática, significa que o sistema de arquivos pode trabalhar com até
65536 clusters, no máximo. Para chegar a este número, basta fazer 216 = 65536.
O sistema de arquivos FAT32 consegue solucionar esse problema por utilizar
32 bits no endereçamento de dados (novamente, aqui você pode perceber o porquê
do número na sigla). No FAT16, quanto maior o espaço em disco, maior o tamanho
do cluster. Com o FAT32, é possível usar clusters menores - geralmente de 4 KB mesmo com a unidade oferecendo maior capacidade de armazenamento. Desta
forma, o desperdício acaba sendo menor.
6.11.5.2 – NTFS
Para discos de maior capacidade, procuramos reduzir o tamanho do cluster,
para evitar a fragmentação interna (a fragmentação interna ocorre quando a área
mínima de gravação que definimos para arquivos não é totalmente utilizada), e a
conseqüente perda de espaço de armazenamento.
O NTFS (New Technology File System) foi desenvolvido pela Microsoft para
ser utilizado pelo Windows NT e seus derivados (2000, XP, Vista, Server 2003, Server
2008 e Seven) para ser um sistema de arquivos mais flexível, confiável, adaptável,
seguro e veloz.
- 59 -
ARQUITETURA DE COMPUTADORES - 1866
O acesso é direto ao setor físico, de 512 bytes, independente do tamanho do
disco. Com partições NTFS é ainda possível armazenar um maior volume de dados e
suporte a nomes longos de arquivos.
Obs: O Windows 8 utiliza uma nova versão de sistemas de arquivos
desenvolvido pela Microsoft: o ReFS (Resilient File System). Trata-se de um novo
sistema de arquivos que fez sua estréia em 2012 e baseia-se no NTFS. Esse sistema
de arquivos traz suporte aprimorado para grandes volumes e maior confiabilidade
para estruturas de discos.
6.11.6 – Partições
Discos rígidos (HDs) podem ser divididos logicamente em espaços que
chamamos de partições, com o objetivo de realizar um melhor gerenciamento de
uma grande quantidade de dados.
Cada partição contém seu próprio setor de boot, o que quer dizer que cada
uma pode ter seu próprio sistema operacional.
No primeiro setor físico do disco rígido fica armazenado o MBR (Master Boot
Record), que é uma tabela de partição, onde ficam armazenadas as informações
sobre as partições.
Junto ao MBR fica armazenado um programa de pré-boot, que manipula a
tabela de partição, determinando de qual partição será realizada a inicialização
(boot) do computador. Somente uma partição pode ser considerada ativa por vez.
- 60 -
Download