Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 1/22
CAPITULO 1
MÓDULO FÍSICO DA MEMÓRIA RAM
CONCEITO
É sabido que a memória de qualquer computador é uma memória chamada de RAM
(Randon Access Memory – Memória de acesso aleatório), e já sabemos que a memória
RAM tem dois tipos básicos que são as RAMS estáticas e as dinâmicas, é sabido que a
SRAM é usada como memória auxiliar que recebe o nome de CACHE, e a memória que
realmente o computador usa para suas tarefas de boot, carga do sistema e todas as
demais funções é sim a DRAM, que no caso é o objeto do nosso estudo, sendo assim
vamos entender melhor a estrutura e como funciona uma DRAM convencional.
ENCAPSULAMENTO DAS MEMÓRIAS DRAM
DIP (Dual In Line Package) - é um tipo de encapsulamento de circuitos suas
principais características são o invólucro plástico ou metálico e duas fileiras de pinos
em lados opostos do CI, normalmente em seu lado maior, foi utilizados em
computadores XT e 80286, principalmente como módulos EPROM (que eram soldados
na placa). Também foi muito utilizado em dispositivos com circuitos menos
sotisticados;
Fig 1.0 – Encapsulamento DIP ( Dual Inline Package)
SIPP (Single In Line Pin Package) - esse tipo encapsulamento é uma espécie de
evolução do DIP. A principal diferença é que esse tipo de memória possui, na verdade,
um conjunto de chips DIP que formavam uma placa de memória (mais conhecida como
pente de memória ou módulo de memória). Um módulo nada mais era que uma pequena
placa de circuito com vários chips de memória já instalados. Os módulos SIPP tinham
terminais (“perninhas”) para encaixe no seu soquete. Ao instalar um módulo SIPP,
estávamos na verdade encaixando simultaneamente, 8 ou 9 chips de memória, o padrão
SIPP foi aplicado em placas-mãe de processadores 286 e 386
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 2/22
Fig. 1.1 – Encapsulamento SIPP.
SIMM (Single In Line Memory Module) - o encapsulamento SIMM é uma evolução
do padrão SIPP. Foi o primeiro tipo a usar um slot (um tipo de conector de encaixe)
para sua conexão à placa-mãe. Existiram pentes no padrão SIMM com capacidade de
armazenamento de 1 MB a 16 MB. Este tipo foi muito usado nas plataformas 386 e 486
(primeiros modelos).
Na verdade, houve dois tipos de padrão SIMM: o SIMM-30 e o SIMM-72. O primeiro
usava 30 pinos para sua conexão. O segundo é um pouco mais evoluído, pois usava 72
pinos na conexão e armazenava mais dados (já que o módulo de memória é maior),
variando sua capacidade de 4 MB a 64 MB. O SIMM-72 foi muito utilizado em placas-
mãe de processadores 486, Pentium.
Fig. 1.2 – Encapsulamento SIMM.
DIMM (Double In Line Memory Module) - esse é o padrão de encapsulamento que
surgiu após o tipo SIMM. Muito utilizado em placas-mãe de processadores Pentium II,
Pentium III e em alguns modelos de Pentium 4 (e processadores equivalentes de
empresas concorrentes), o padrão DIMM é composto por módulos de 168 pinos. Os
módulos de memória DIMM empregam um recurso chamado ECC (Error Checking and
Correction - detecção e correção de erros) e tem capacidades mais altas que o padrão
anterior: de 16 a 512 MB. As memórias do tipo SDRAM utilizam o encapsulamento
DIMM.
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 3/22
Fig. 1.3 – Encapsulamento DIMM
TECNOLOGIA DE ACESSO A DADOS
FPM (Fast Page Mode)-Ou “modo acesso rápido.” A idéia é que, ao ler um arquivo
qualquer gravado na memória, os dados estão na maioria das vezes gravados
seqüencialmente. Não seria preciso então enviar o endereço RAS e CAS para cada bit a
ser lido, mas simplesmente enviar o endereço RAS (linha) uma vez e em seguida enviar
vários endereços CAS (coluna).
Devido ao novo método de acesso, as memórias FPM conseguem ser cerca de 30% mais
rápidas que as memórias regulares.
Apesar de já não serem fabricadas há bastante tempo, foram utilizadas em PCs 386,
486 e nos primeiros Pentiums. Você encontrará memórias FPM na forma de módulos
SIMM de 30 ou 72 vias e com tempos de acesso de 80, 70 e 60 nanos, sendo as de 70
nanos as mais comuns.
EDO (Extended Data Output)-As memórias EDO foram criadas em 94, e trouxeram
mais uma melhoria significativa no modo de acesso a dados. Além de ser mantido o
“modo de acesso rápido” das memórias FPM, foram feitas algumas modificações para
permitir mais um pequeno truque, através do qual um acesso à dados pode ser iniciado
antes que o anterior termine, permitindo aumentar perceptivelmente a velocidade dos
acessos. O novo modo de acesso permite que as memórias EDO trabalhem com tempos
de acesso de apenas 5-2-2-2 em uma placa mãe com Bus de 66 MHz, um ganho de
25%.
Apesar de já ultrapassado, este tipo de memória ainda é muito usado atualmente, foi
fabricado em velocidades de 70, 60 e 50 nanos, com predominância dos módulos de 60
nanos. As memórias EDO são encontradas em módulos de 72 vias, existindo também
alguns casos raros de memórias EDO na forma de módulos DIMM.
SDRAM (Synchronous Dynamic RAM)-Tanto as memórias FPM quanto as memórias
EDO são assíncronas, isto significa que elas trabalham em seu próprio ritmo,
independentemente dos ciclos da placa mãe. Isso explica por que memórias FPM que
foram projetadas para funcionar em placas para processadores 386 ou 486 (que
trabalham com Bus de 25, 30, 33 ou 40 MHz), funcionam sem problemas em placas
para processadores Pentium, que funcionam a 66 MHz. Na verdade, as memórias
continuam trabalhando na mesma velocidade, o que muda são os tempos de espera que
passam a ser mais altos. Assim, ao invés de responder a cada 2 ciclos da placa mãe, por
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 4/22
exemplo, elas podem passar a responder a cada 3 ou 4 ciclos, funcionando
normalmente.
As memórias SDRAM por sua vez, são capazes de trabalhar sincronizadas com os
ciclos da placa mãe, sem tempos de espera. Isto significa, que a temporização das
memórias SDRAM é sempre de uma leitura por ciclo. Independentemente da velocidade
de barramento utilizada, os tempos de acesso poderão ser de 5-1-1-1. Como é preciso
que a memória SDRAM a ser usada seja rápida o suficiente para acompanhar a placa
mãe, é possível encontrar versões com tempos de acesso entre 15 e 6 nanossegundos.
DDR (Double Data Rate)-As memórias DDR implementam um novo truque, que as
torna capazes de realizarem duas transferências por ciclo e serem quase duas vezes mais
rápidas que as memórias SDRAM, mesmo mantendo a mesma freqüência de operação e
a mesma tecnologia básica. Com o lançamento das memórias DDR, as SDRAM
passaram a ser chamadas de "SDR", ou (Single Data Rate).
Os chips de memória DDR incluem circuitos adicionais, que permitem gerar comandos
de acesso e receber os dados referentes às leituras duas vezes por ciclo de clock,
executando uma operação no início do ciclo e outra no final. Como são utilizadas as
mesmas trilhas para realizar ambas as transferências, não foi necessário fazer grandes
modificações nem nos módulos, nem nas placas mãe.
TEMPO DE ACESSO
Os tempos de acesso representam em quanto tempo a memória pode disponibilizar um
dado requisitado. Quanto mais baixos forem os tempos de espera, mais rápidas serão as
memórias.
Instaladas em uma placa mãe que trabalhe com Bus de 66 MHz, os intervalos de espera
de memórias FPM podem ser de até 5-3-3-3, o que significa que o processador terá de
esperar cinco ciclos da placa mãe para a memória efetuar a primeira leitura de dados e
somente mais 3 ciclos para cada leitura subsequente. O primeiro acesso demora mais
tempo, pois nele é preciso enviar os dois endereços, enquanto nos subsequentes é
necessário enviar apenas os endereços de coluna.
Os tempos de espera das memórias podem ser configurados no Setup, através da opção
“Memory Timing”. Em placas para 486, era comum existirem opções como 4-3-3-3 ou
3-2-2-2, que representavam o tempo de acesso à memória.
BANCO DE MEMÓRIA
Um processador x86 pode trabalhar com qualquer quantidade de memória, a partir de
um mínimo de 64 KB. Porém, é preciso que exista um barramento de dados suficiente.
Uma quantidade qualquer de memória, que atenda às exigências do processador quanto
à largura de barramento é chamada de banco de memória.
No Pentium, cada banco de memória deve ser capaz de permitir o acesso de 64 bits de
dados por vez, enquanto nos processadores 386 e 486 é necessário um barramento de 32
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 5/22
bits. Caso o módulo de memória possua um barramento de dados mais estreito que o
necessário, é preciso combinar dois ou mais módulos para formar cada banco.
Como os módulos SIMM de 30 vias possuem um barramento de apenas 8 bits, são
necessários 4 módulos para formar um banco de memória em um micro 386 ou 486. Se
estes módulos antigos chegassem a ser utilizados em micros Pentium, seriam
necessários 8 módulos para formar cada banco.
Os módulos SIMM de 72 vias já possuem um barramento de 32 bits, sendo um único
módulo suficiente para completar um banco de memória em um 486, e 2 módulos
necessários para completar os 64 bits exigidos pelo Pentium.
Finalmente, os módulos DIMM possuem um barramento de 64 bits, sendo necessário
apenas um módulo para formar um banco em micros equipados com processadores
Pentium ou superiores.
Dentro de um banco, todos os módulos são acessados ao mesmo tempo, como se fossem
um só. Por isso, é necessário que todos os módulos sejam capazes de responder aos
chamados do controlador de memória sincronizadamente, como uma orquestra. A
mínima falta de sincronia entre os módulos irá causar instabilidade no sistema, que
poderá levar a travamentos. Por isso, é altamente recomendável que sejam utilizados
sempre módulos idênticos dentro de um mesmo banco (mesma marca, mesma
capacidade, mesmo tempo de acesso, etc.), de preferência comprados juntos.
CAPITULO 2
ESTRUTURA DA MEMÓRIA RAM
ESTRUTURA BASICA
Como visto anteriormente um modulo de memória RAM, seja do tipo SIMM EDO,
DIMM DDR, ou qualquer modulo de memória, é formado de uma placa de circuito
impresso com suas devidas trilhas, e é claro com os chips de memória, soldados sobre
esta placa, a todo o C.I. que se solde sobre uma placa de circuito impresso (PCB) é
chamado de chip SMD(Surface Mountage Device – Dispositivo de Montagem em
Superfície), conforme mostra a figura logo abaixo.
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 6/22
Fig 1.0 – Detalhes de um modulo de memória DIMM SDRAM SDR de 168 pinos
DETALHANDO UM POUCO MAIS
PCB(Printed Circuit Board – Placa de circuito impresso) – As melhores
placas de circuito impresso são aquelas que tem muitas camadas, são mais leves
por serem feitas de fibra de vidro e não mais de fenolite, quanto às camadas as
melhores placas são compostas por pelo menos 6 e 8 camadas prensadas, quanto
mais camadas melhor será a distribuição da trilhas e assim evitando o
aparecimento das interferências, ruídos e capacitâncias transientes.
CHIP DRAM(Dynamic Randon Access Memory – Memória de acesso
aleatório dinâmico) – É onde propriamente são armazenados os dados, a forma
de como é feito o emcapsulamento do chip da ram, tem influencia direta na
qualidade do trafego dos dados, veremos mais a frente alguns modelos mais
comuns de encapsulamento do chip ram. A forma na qual o chip de DRAM é
empacotado é chamado de encapsulamento, veja alguns modelos.
DIP(Dual In line pin Packge – Pacote com duas linhas de pinos) –
Este foi o primeiro formato de memória tanto RAM, quanto ROM, para
uso especifico como memória principal praticamente já caiu em desuso,
ainda é muito usada em dispositivos moveis.
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 7/22
SOJ(Small Outline J – Pacote pequeno com terminal J) – Tem esse
nome porque seus terminais têm quase uma forma que se parece com um
J, e são soldados na superfície da PCB.
TSOP(Thin Small Outline Package – Pacote de perfil pequeno e
fino) – Também soldado em superfície, muito usado na fabricação de
memórias para portáteis.
CSP(Chip Scale Package – Empacotamento escalar de chip) – É um
formato completamente diferente, o mesmo usado em chipsets nas
placas-mae, o nome especifico deste encapsulamento no que tange aos
pinos é chamado de BGA (Ball Grid Array – Grade de pinos em forma
de bola), onde os pinos estão em forma de bola
e ficam na parte inferior do chip.
A MEMORIA COM MAIS DETALHES
CELULA DE MEMORIA
O chip de memória DRAM, também é conhecido como célula de memória ou célula
capacitiva, isto porque a sua construção é muito simples ao contrario da memória
SRAM que é feita de um conjunto completo de circuitos chamados de FLIP-FLOP, é
composto de apenas um capacitor e um transistor, ou seja, o capacitor serve para
armazenar os bits (0 ou 1) e o transistor serve para chavear o capacitor para ler ou
escrever, simples não acha, vamos ver com mais detalhes.
De uma forma bem simples o capacitor carregado indica 1 e o descarregado indica 0,
por sua fabricação ser tão simples é possível ter muitos capacitores e transistores em um
pequeno espaço, sendo assim tem a capacidade de armazenar muito mais dados que uma
memória SRAM do mesmo tamanho físico.
Em compensação pelo seu curto tamanho tem-se um problema, a sua carga de
capacitância é muito baixa e varia de mais ou menos de 20 a 50 fF ou menos ( fF =
femtonFarad = 10-3
pF(picoFarad)), e sua corrente residual varia na faixa de 20pA
(picoAmpere), sendo assim o capacitor pode perder com muita facilidade a sua carga ou
seja perder os dados nele armazenados, por isso existe um circuito externo responsável
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 8/22
que de tempo em tempo faz uma nova recarga no capacitor, este procedimento é
chamado de REFRESH, onde um circuito de refresh faz uma restauração da carga do
capacitor, é por este detalhe que as DRAM são chamadas de dinâmicas por estarem
sendo feito acessos constantes à memória. Sendo assim podemos afirmar que a memória
dinâmica é muito lenta tanto nas operações de leitura e escrita, em função do
procedimento de refresh.
Fig 1.1 – Estrutura básica, um transistor Q1 e um capacitor C1.
COMPOSIÇÃO BASICA
Externamente o chip da DRAM se parece com qualquer tipo de C.I (Circuito Integrado),
porem por dentro do chip, tem uma estrutura formada de alguns circuitos lógicos, e uma
matriz de célula de memória, pode ser observado uma estrutura básica de forma didática
para apresentar sua estrutura interna.
Fig 1.2 – Estrutura básica de uma memória DRAM.
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 9/22
Esta matriz de célula de memória (CM) que é composta de um microcapacitor e um
micro transistor do tipo nMOS, armazena apenas um único bit, no esta 1 o capacitor esta
carregado e no estado 0 o capacitor esta descarregado, o conjunto destas células de
memória (CM), armazenando um único bit formam os dados.
As linhas são denominadas de linhas de palavras (WORD LINES), esta linha é
selecionada por um circuito que impõe um valor lógico 1 para selecionar esta linha
depois da linha selecionada a coluna é selecionada, é claro que este diagrama é muito
simples em relação a um circuito real, um circuito real tem muito mais componentes e
mais circuitos complexos, mas serve para termos uma idéia de uma circuito de uma
memória DRAM.
LEITURA E ESCRITA NA DRAM
O processo de leitura e escrita na DRAM é muito complexa, mas será explicado de uma
forma mais simples para prover um maior entendimento sobre esse assunto.
Na estrutura da memória existe um circuito que faz a seleção da linha e da coluna, este
circuito é chamado de MUX/DEMUX (Multiplexador e Demultiplexador – ou
simplesmente um codificador dos sinais da linha e da coluna), onde este circuito
simplesmente chamado de MUX faz a decodificação dos sinais da linha e coluna.
Um sinal STROBE DO ENDEREÇO, RAS (Row Address Strobe), comanda o
armazenamento dos bits do endereço da linha no registrador interno no chip para este
fim.
Um sinal STROBE DO ENDEREÇO DA COLUNA, CAS (Collum Address Strobe),
comanda o armazenamento dos bits da coluna, no circuito respectivo.
Na operação de leitura, uma linha inteira é selecionada (Sinal de RAS), é alimentado ao
MUX das colunas, que envia um único bit para saída. Na escrita um único bit a ser
escrito e distribuído pelo DEMUX para a coluna alvo (CAS), enquanto o MUX das
linhas seleciona a linha correta a ser escrita.
Na pratica, se realmente tivéssemos uma linha física para cada bit armazenado na
memória, teríamos um chip muito grande, para solucionar este problema foi
desenvolvido uma técnica chamada de MULTIPLEXAÇÃO DE ENDEREÇOS, onde
cada pino tem dupla função, sendo assim temos uma economia de pinos e no fim temos
uma memória muito mais enxuta.
Depois de reduzir a quantidade de pinos, existem somente m/2 pinos de endereço do
chip, e os endereços de linha e coluna são multiplexados no tempo. Nestas linhas os m/2
endereços da linha são enviados junto com o sinal de linha RAS, e um endereço de linha
é armazenado e decodificado pelo chip, então os m/2 bits são enviados junto com o
sinal de CAS, indo todos pelo mesmo pino físico, e assim podem existir outros pinos
adicionais, para controle, leitura, escrita, reset, refresh e outras.
SIMPLIFICANDO
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 10/22
Fig 1.3 – Diagrama eletrônico simples do funcionamento da DRAM.
Este diagrama simples serve para entendermos como funciona o processo de leitura e
escrita na memória, as chaves representada por S1 a S4 são na verdade MOSFETs (são
transistores feitos de semicondutores de oxido metálico chamado de MOS, e trabalha
usando um campo magnético taí o nome FET transistor de efeito de campo.),
controlados pelas diversas saídas do MUX (sinais RAS e CAS) e do sinal de R,W. O
capacitor é o dispositivo usado para armazenar os bits sempre um por vez, o micro
capacitor neste caso é formado de duas placas condutoras e um dielétrico no meio das
placas.
ESCRITA – Neste caso as chaves S1 e S2 são fechadas, as demais ficam abertas, um
nível lógico 1 nas chaves S1 e S2 carregam o capacitor C com 1, quando o
determinado capacitor esta em uma seqüência ele pode ou não ser
carregado, exemplo: se a seqüência for 1011(valor hipotético) teríamos 4
capacitores, e sendo assim somente o capacitor de numero 2 não será
carregado, e sim o capacitor 1, 3 e 4. mantendo o nível lógico do capacitor
2 no estado 0. No fim todas as chaves são abertas.
LEITURA – As chaves S2,S3, S4 devem ser fechadas, e a chave S1 deve ser mantida
aberta, sua tensão é enviada ao SENSOR DE AMPLIFICADOR que
verifica a carga, se estiver com uma tensão próxima de 5v, será
considerado nível lógico 1, caso contrario o valor será 0, e todo o momento
de leitura também é um momento de refresh.
CONCLUSAO
Vimos o comportamento da memória dinâmica, e termos mais técnico do conceito de
leitura e escrita, e vimos o conceito de célula de memória, discubrimos porque a
memória dinâmica é lenta, em função do REFRESH, onde em algum momento nos
enquanto usuário vemos alguns congelamentos ou mesmo paradas do sistema, pode ser
o REFRESH, ou simplesmente um dado que não foi carregado com precisão para o
processador, enfim, a memória dinâmica terá a sua continuidade como memória
principal apesar do tempo de resposta ser muito lento, ainda sim armazena mais e é
muito mais barata. No próximo capitulo será estudado o gerenciamento da memória,
valeu ate a próxima.
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 11/22
CAPITULO 3
Gerenciamento e Organização da memória principal
Introdução
É sabido que a memória principal é um dos recursos mais importantes em um
computador, introduzido por Von Newman, a memória principal é responsável por
armazenar os dados, instruções e é claro os programas, mesmo quando um programa é
chamado pelo usuário, esses dados do programa são carregados e armazenados em
alguma parte da memória.
Esse sempre foi um dos grandes problemas dos projetistas de sistemas operacionais,
pois o hardware se desenvolveu com uma velocidade muito grande, e agora a corrida é
das grandes empresas de desenvolvimento de softwares, o desafio é criar programas que
usem com mais eficiência os recursos da mp(memória principal).
Na década de 60 houve uma melhora muito grande com relação ao aumento da mp e
outras técnicas de armazenamento como a memória auxiliar chamada de cache e ate
mesmo armazenamento em disco.
Desta forma hoje temos uma hierarquia de memória que vem da menor capacidade e
mais veloz ate a de maior capacidade e menor velocidade.
Sendo assim vamos tentar mostrar sinteticamente como funciona a mp tanto do ponto de
vista organizacional,gerencial,físico e técnico.
COMO FUNCIONAVA
Em sistemas mais antigos ou chamados de monoprogramaveis, existia um formato
chamado de ALOCAÇÃO CONTÍGUA, ou seja um formato em que a memória é
dividida somente em duas partes, uma separada para o sistema operacional e o que
sobrava ficava reservado aos programas do usuário. (fig. 1.0)
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 12/22
Nesse formato é possível acessar qualquer posição de memória, podendo acessar,
escrever, sobrescrever qualquer tipo de dado ou instrução, isto era muito interessante do
ponto de vista dos programadores que teriam um código reduzido e o sistema
operacional era bem mais leve para carregar, porem algumas vezes o usuário chamava
algum programa ou seja clicava em algum atalho que lincasse ao programa e este era
carregado para memória, e derrepente na tela do usuário aparecia a seguinte tela com a
esta mensagem “ACCESS VIOLATION” ou simplesmente um erro de violação de
acesso.
Mas o que significa isto, é somente quando um programa tenta acessar uma área
reservada ao sistema operacional, isto ocorre porque no sistema operacional tem
algumas rotinas de verificação ao acesso a memória que verifica se determinado
programa esta querendo ser executado no espaço delimitado ao sistema operacional,
quando as rotinas de verificação confirmam que o programa esta realmente acessando
uma área reservada ao S.O. logo este programa é finalizado ou seja eliminado por
completo da memória.
O grande problema desse formato é que com a ALOCAÇÃO CONTÍGUA, não permite
a usabilidade do total dos recursos do processador e inclusive da própria memória, os
programas dessa época estavam limitados ao espaço disponível da mp.
Para tentar resolver esse problema, a idéia foi dividir o problema em módulos, e
executar somente quando for necessários, essa técnica é chamada de OVERLAY
(sobreposição), ou seja quando um programa esta carregado em memória, ele esta
carregado somente o programa principal, quando é necessário por exemplo cadastrar um
cliente, então é chamado o cadastro de cliente neste ponto o modulo de cadastro de
cliente é carregado na memória, usando a técnica de OVERLAY.
DIVISÃO DA MEMÓRIA
Com uma melhoria da organização da memória, foi feito uma técnica em que a memória
foi dividida em pequenas partições, o tamanho das partições era determinado pelos
programadores, os programas só podiam ser executado em partições definidas, sendo
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 13/22
assim se tiver outra partição disponível outro programa não poderia acessar essa
partição, essa técnica ficou conhecida como ALOCAÇÃO PARTICIONADA
ESTÁTICA ABSOLUTA, isto porque tinha uma limitação dos compiladores e
montadores que geravam o código absoluto.
Como a evolução dos compiladores, lincadores e carregadores(loaders), a geração do
código retocável foi possível, e com isso ser possível carregar os programas em
qualquer partição, essa técnica foi chamada de ALOCACAO PARTICIONADA
ESTÁTICA RELOCÁVEL, isso só foi possível porque quando um programa é
carregado ele verifica uma tabela de partição da memória e verifica qual partição esta
disponível para o armazenamento do programa e mais não tem mais o perigo de um
programa acessar alguma partição reservada ao S.O. isto porque agora existe dois
registradores que indicam o inicio e o fim do endereço da partição.(fig 2.0)
PROGRAMA SENDO
EXECUTADO
SISTEMA OPERACIONAL
MEMÓRIA PRINCIPAL
Fig. 2.0 - Delimitação da partição
ÁREA DE PROGRAMAS
DO USUÁRIO
Endereço Inicial
Endereço Final
UM NOVO PROBLEMA, UMA NOVA SOLUÇÃO
Conforme foi analisado anteriormente, foi criado uma forma de armazenar os programas
com registradores de inicio e fim de cada partição, mas o que acontecia quando este
programa terminava a sua execução, outro assumiria o seu lugar, só que ai criava um
outro problema talvez o segundo programa fosse menor que o primeiro então sobrava
uma parte daquela partição usada, ou seja esse espaço desperdiçado pelo seu tamanho
era chamado de FRAGMENTAÇÃO.
Veremos isto com mais detalhes, isso ocorre porque a partição onde os programas são
executados tem um tamanho predefinido, por exemplo um programa de 3KB ocupa uma
partição inteira de 3KB, quando esse programa termina essa área fica livre, então outro
programa com 2KB por exemplo assume essa partição, há de convir que sobrou 1KB
dessa partição, outro programa de 2KB em uma partição de 5KB sobra mais 3KB livres,
no mesmo momento outro programa de 2KB também assume uma partição de 5KB,
vejam que estes espaços livres às vezes não são suficiente para armazenar um programa,
sendo assim estes espaços são chamados de FRAGMENTAÇÃO.(fig. 3.0)
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 14/22
Programa A (2KB)SISTEMA OPERACIONAL
MEMÓRIA PRINCIPAL
Fig. 3.0 - Fragmentação da memória principal.
3KB
5KB
5KB
Programa B (2KB)
Programa C (2KB)
Livre 1KB
Livre 3KB
Livre 3KB
uma solução para esse problema foi à junção dos programas relocando os espaços para
ficar espaços livres contíguos.(fig 3.1)
Programa A (2KB)SISTEMA OPERACIONAL
MEMÓRIA PRINCIPAL
Fig. 3.1 - Desfragmentação da memória principal.
6KBPrograma B (2KB)
Programa C (2KB)
Livre 7KB
essa técnica ficou conhecido como ALOCAÇÃO DINÂMICA COM RELOCACAO.
Com tudo isso foram criados algumas estratégias de organização da memória, estas
técnicas servem para o melhor aproveitamento das partições e diminuir as
fragmentações.
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 15/22
Programa A
SISTEMA OPERACIONAL
MEMÓRIA PRINCIPAL
Programa B
Programa C
Livre 1KB
(A) Best-Fit
BEST-FIT(A): Escolhe a melhor partição para poder deixar a menor quantidade
de espaço livre.
WORST-FIT(B): Escolhe as piores partições com os piores espaços deixando
os espaços vazios maiores, sendo assim outros programas podem ocupar esses
espaços livres, deixando muito menor a fragmentação.
Programa A
SISTEMA OPERACIONAL
MEMÓRIA PRINCIPAL
Programa B
Programa C
Livre 3KB
(B) Worst-Fit
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 16/22
FIRST-FIT(C): Escolhe a primeira partição livre, de tamanho suficiente para
carregar o programa, o problema é que o algoritimo fica mais pesado com mais
rotinas de verificação de áreas livres, nesta técnica a escrita é mais rápida e usa
menos recursos do sistema.
O VAI E VEM DA MEMÓRIA
Como visto no capitulo anterior, um problema encontrado nos esquemas de
gerenciamento era a fragmentação da memória, e dentro deste âmbito temos outro
problema com relação ao tempo de espera, ou enquanto um programa esta ocupando
uma determinada partição esse programa permanece ate o fim de sua execução, e fica
por muitas vezes ocioso esperando um evento de leitura ou escrita, então outro
programa que precise ser carregado na memória simplesmente não pode por não ter
mais espaço disponível, nesse momento pode surgir na tela uma mensagem dizendo que
“MEMÓRIA INDISPONÍVEL, FECHE ALGUM PROGRAMA E TENTE
NOVAMENTE, SE O PROBLEMA PERSISTIR PROCURE O SEU
REVENDEDOR.”.
Foi desenvolvido uma técnica para levar o programa que esta carregado em memória
com tempo ocioso para um outro meio de armazenamento de dados, nesse caso o disco
rígido foi escolhido pois esta sempre disponível, voltando ao problema levando esse
programa para o HD e liberando espaço para outro programa ser carregado em
memória, quando houver a necessidade do programa retornar, outro programa vai para o
HD e este se insere em seu espaço,e fica assim ate que não mais seja necessário e volta
ao disco para que outro programa assuma seu espaço e assim por diante, esta técnica é
chamada de SWAPPING (TROCA).(Figs. 4.0 e 4.1)
Programa A
SISTEMA OPERACIONAL
MEMÓRIA PRINCIPAL
Programa B
Programa C
Livre 2KB
( C )First-Fit
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 17/22
Fig. 4.0 - Processo de saida do programa B para o HD chamado de Swap Out.
Programa A
SISTEMA OPERACIONAL
MEMÓRIA PRINCIPAL
Programa B
Programa C
Programa D
Programa E
Swap Out
MEMÓRIA SECUNDÁRIA
Conforme visto na figura 4.1, o processo de Swap é dividido em dois momentos que
podem ser executados ambos ao mesmo tempo, o processo de enviar os dados do
programa ao HD é chamado de Swap Out e o processo inverso de devolver o programa
do HD para a memória principal é chamado de Swap In, neste processo o programa não
deve sentir nenhuma diferença ou seja o para o usuário este procedimento deve ser
transparente.
Fig. 4.1 - Processo de Swap Out do programa D e o Swap In do programa B.
Programa A
SISTEMA OPERACIONAL
MEMÓRIA PRINCIPAL
Programa E
Programa C
Programa DSwap In
MEMÓRIA SECUNDÁRIAMEMÓRIA SECUNDÁRIA
Swap OutPrograma B
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 18/22
Fig. 5.0 - Processo de mapeamento.
MEMÓRIA VIRTUAL MEMÓRIA PRINCIPAL
MAPEAMENTO
OUTROS TIPOS DE MEMÓRIA
Já vimos em capítulos anteriores algumas técnicas de armazenamento, melhor
performance e a própria hierarquia da memória, mas tudo isso serve para que afinal de
contas, vale ressaltar que essa memória que é usada pelo computador é chamada de
memória RAM, lembrando também que essa memória é uma memória com pouca
capacidade principalmente para os programas que temos hoje, imagine na década de 70
e 80, bem para a solução deste problema de pouca memória foi criado uma outra técnica
para aumentar a capacidade de memória do microcomputador, esta técnica é chamada
de MOMORIA VIRTUAL, técnica que desvincula o endereço físico (indicado nos
programas) e assumir endereços virtuais, e ainda todas as estruturas de dados deixam de
esta limitado pelo tamanho da memória física.
Veremos como funcionam.
ENDEREÇAMENTO VIRTUAL
A técnica da memória virtual, não é nova essa técnica foi baseada nos ARRAYS(vetor)
que existe na maioria das linguagens de programação, a idéia é que quando um
programa é carregado em memória logo é jogado para a memória virtual assim o
programa acessa somente endereços virtuais, no momento da execução de uma
instrução o endereço virtual é traduzido para o endereço real (endereçamento físico),
pois o processador só pode acessar endereços físicos, o nome desse processo de
tradução dos endereços virtuais para os endereços físicos é chamado de
MAPEAMENTO.(Fig. 5.0)
Na atualidade esse processo de mapeamento é feito por um sistema composto de
HARDWARE e SOFTWARE, ou seja existe um circuito que faz o processo de tradução
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 19/22
do endereço virtual para o real, esse circuito fica entre o processador e a memória
principal, no mesmo barramento de endereço, esse circuito chama-se DAT – Dinamyc
Address Translator.
Quando o DAT entra em ação e faz a tradução ele armazena os endereços em uma
tabela de mapeamento, e esta tabela fica armazenada em uma porção da memória
principal durante todo processo.
Como a memória principal é dividida a memória virtual também é dividida, essa divisão
é chamada de blocos, e existem dois tipos de blocos, os de tamanho variado chamados
de SEGMENTADOS e os de tamanho fixo são chamados de PAGINAS.
Temos um problema a cada referencia a memória física, são dois acessos isso
compromete o desempenho do computador, a solução foi uma memória associativa que
as vezes se comporta como uma memória cache, armazena os pares de endereço
virtual/real, que foram usados nos acessos mais recentes e com isso reduz o tempo de
mapeamento. A isto foi chamado de TLB( Translation Lookside Buffer).
Isto implica que cada processo tem os seu próprio mapeamento como se cada processo
tivesse a sua própria memória virtual, a TLB se encarrega de manter os processos, as
tabelas de mapeamento e memórias virtuais sempre atualizados para o S.O.
PAGINAÇAO
Técnica desenvolvida para gerenciar os espaços das memórias virtuais e físicas, esses
espaços da memória virtual é chamada de PAGINA e os espaços da memória física é
chamado de FRAMES.
Fig. 5.1 - Diagrama em blocos do subsistema da memória.
MEMÓRIA
PRINCIPAL
CPU
DAT
ENDEREÇO
DADOS
CONTROLE
Endereço virtual
Endereço Real
Subsistema de memoria
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 20/22
Na execução de algum programa, as paginas são transferidas da memória secundaria
para a memória principal, e alocadas em flames, sempre quando houver a necessidade
de se referenciar a um endereço virtual é feito um mapeamento e localizando este
endereço na ETP(ENTRADA NA TABELA DE PAGINAS).
Neste contexto para a CPU saber se o endereço requisitado já esta na memória principal
ou não, existe mais uma informação no cabeçalho do endereço, chamado de VALID
BIT (BIT DE VALIDADE), que quando este bit de validade for igual a zero indica que
o endereço requisitado não esta na memória principal e quando for 1 sim ele já esta na
memória principal. Toda vez que for requisitado um endereço é feito a verificação do
bit de validade, se caso o bit de validade for igual a zero, o sistema quem transferir a
pagina da memória secundaria (DISCO RÍGIDO) para a memória física, e
posteriormente para a memória virtual, quando isto acontece o sistema manda um alerta
indicando que a pagina não foi encontrada, isso se chama de PAGE FAULT (FALHA
DE PAGINA).
WORKING SET
Conjunto de páginas constantemente referenciadas pelos processos que permanecem na
memória principal para que execute de forma eficiente.
Este conceito surgiu com base em analises das taxas de paginação dos processos, um
problema com esta estratégia não é quais paginas carregar para a memória e sim quais
remover dela. Algumas estratégias foram criadas para tentar resolver este problema, são
técnicas que primeiramente verificam se as paginas já foram modificadas então podem
ser movidas, para a inserção de novos frames, para as ações de PAGE IN (processo de
saída das paginas da memória secundária para a memória principal), e antes do sistema
remover alguma pagina, ela é armazenada na memória secundaria, esse processo é
chamado de PAGE OUT.
Algumas estratégias foram criadas para melhorar a relocação de paginas,
Aleatória
Não se utiliza qualquer tipo de critério para a escolha da pagina, qualquer pagina pode
ser escolhida dentro do working set.
Fifo – First In/First Out
É o sistema mais simples, pois usa uma simples fila, onde a primeira pagina que entra é
a primeira que sai.
Lru – Least recently used
É a escolha da pagina que menos foi referenciada no sistema, uma boa escolha mas
causa sempre um grande overhead.
Nru – not recently used
Nesta estratégia se vale de um recurso que é um flag de referencia, onde quando a
pagina não foi iniciada o valor do flag é igual a zero e quando a pagina for modificada o
flag recebe 1, assim fica fácil fazer a relocação de paginas.
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 21/22
Lfu – least frequently used
A pagina menos freqüentemente usada, a pagina cujo contador tiver um numero menor
do que a pagina mais referenciada, será a escolhida.
Sendo assim o algoritimo mantém na memória somente as paginas que mais são usadas
pelo sistema operacional.
SEGMENTAÇÃO
A diferença básica entre a paginação e a segmentação é que, enquanto a paginação
divide o programa em vários pedaços chamadas de paginas ou blocos, de tamanho fixo,
e cada divisão não tem qualquer ligação com a lógica do programa. Já a segmentação
divide o programa em vários pedaços chamados de segmento, cada segmento tem um
tamanho variado de acordo com a lógica do programa.
PROTECAO
Recurso necessário a qualquer sistema operacional, que deseja segurança e proteção dos
programas e principalmente do próprio sistema operacional, a proteção nada mais é que
um conjunto de 2 bits para informar qual pagina ou segmento da memória esta
acessando uma área protegida, para isto cada pagina tem um 2 bits um para leitura
(READ) e um outro para escrita (WRITE), quando um programa tenta entrar em alguma
área destinada somente ao sistema operacional será verificado qual permissão este
programa tem, se de leitura (READ) o flag é RW = 10, ou de escrita ( WRITE ) o flag
será RW = 01, mas quando usados os dois flags isto gera uma proteção de acesso do
tipo RW = 00 onde o acesso será negado pois é uma proteção da área da memória onde
esta reservada somente ao sistema operacional.
CONCLUSAO
Podemos observar que houve uma evolução no uso e gerenciamento da memória do
microcomputador, ao dos tempos foi entendido que sempre existiu uma necessidade de
gerenciar a memória principal do PC, com mais eficiência, e a cada conquista um
problema então podemos observar que os problemas foram surgindo e junto com elas as
soluções também surgiram, desde sistemas mais arcaicos como a memória dos
primeiros processadores que só tinham duas áreas de trabalho, e hoje se tem proteção da
memória, e estratégias para o melhor gerenciamento da memória e melhor acesso a
leitura e gravação e muito mais.
Sendo assim a evolução continua mais e mais.
Aluno: José Cicero Gomes Maia – Fatene – Curso de ADS - Noite
Estudo Técnico e Gerencial da Memória Principal 22/22
BIBLIOGRAFIA
Pesquisado em diversas fontes, livros e Internet.
Livro: Arquitetura de sistemas operacionais
Autores: Francis B. Machado
Luis Paulo Maia
Livro: Introdução à arquitetura de computadores
Autores: Miles J. Murdocca
Vincent P. Heuring
Sites de Engenharia eletrônica, Hardware e variados dentro da computação.
Site da Kingston
Site da Motorola
Site da Texas instrument
Site do Laecio Vasconcelos
Site do Carlos Eduardo morimoto
Top Related