1. INTRODUÇÃO
1.1. MEMORIA SECUNDÁRIA - MS (SSD/ HD/ DISCO RIGIDO)
1.1.1. - armazenamento permanente - não vólatil - mais barato (R$)
1.2. MEMORIA PRINCIPAL - MP (RAM/ CACHE L2 / CACHE L1)
1.2.1. - são armazenados temporariamente - são vólatil - programas que estão em execução, depois voltam para a memoria secundaria
1.3. GERENCIA DA MEMORIA - GM
1.3.1. - multiprogramação permite vários programas na memória simultaneamente (necessita de organização, por isso o GM) - gerencia partes da memoria que estão em uso e não - aloca e libera memoria para processos - permuta de processos entre a MP e MS, quando a MP não é capaz de alocar todos os processos (metodo chamado de swapping)
2. UNIDADE DE GERENCIA DE MEMORIA - MMU
2.1. O QUE É?
2.1.1. - tradutor entre endereços lógicos e físicos - CPU manipula end. lógicos e utiliza o MMU para acessar dados na memoria RAM (end. fisico)
3. ALOCAÇAÕ DE MEMÓRIA
3.1. ESTÁTICA
3.1.1. O QUE É?
3.1.1.1. - divisão da memoria RAM em partições FIXAS de tamanhos VARIADOS, organizados SEQUENCIALMENTE na memória
3.1.2. FRAGMENTAÇÃO INTERNA
3.1.2.1. - jobs (tarefas) são alocados na menor partição que possa armazena-lo - perda de espaço dentro de uma área de tamanho fixo
3.1.3. FRAGMENTAÇÃO EXTERNA
3.1.3.1. - seções de blocos de memoria NÃO UTILIZADOS entre porções de memoria alocada - pedaços disponiveis mas estão "quebrados" (sobra de jobs) em partes pequenas demais, para serem uteis
3.2. DINÂMICA
3.2.1. 3 TIPOS DE ALGORITMOS PARA PERCORRER A LISTA DE LACUNAS
3.2.1.1. 1º BEST-FIT: usa a lacuna que possui MENOR sobra 2º WORST-FIT: usa a lacuna que possui MAIOR sobre 3º FIRT-FIT: usa a primeira lacuna com tamanho SUFICIENTE
3.2.2. O QUE É?
3.2.2.1. - tamanho de partições são AJUSTADOS de acordo com a necessidade do processo - ZERO desperdicio de partições!!
3.2.3. LISTAS DE LACUNAS
3.2.3.1. - quando um processo é criado, a lista é percorrida em busca de uma lacuna que tenha um tamanho maior ou igual do novo processo - a lacuna possuindo um tamanho maior, será criada uma nova lacuna com porção extra, assim o novo processo recebe o tamanho EXATO que necessita
3.2.4. REALOCAÇÃO DINAMICA DE ENDEREÇOS
3.2.4.1. - realoca (move) TODAS as partições ocupadas eliminando espaços entre elas, criado uma ÚNICA partição livre contígua (seguindo uma ordem/ organização) - consome recursos do sistemas ( processador, memoria, disco...) para realizar a reorganização - essa técnica permite o uso do swapping
4. SWAPPING
4.1. O QUE É?
4.1.1. - processos que NÃO estão em uso, são alocados TEMPORARIAMENTE da MP para MS (como um disco, por exemplo) - tempo de transferencia = quantidade de memória trocada - possuem uma FILA DE PRONTOS (processos prontos) para execução - inicia DESABILITADO e só é usado quando a MP está quase no seu limite - quando a MP fica vazia, ele volta ao estado DESABILITADO
4.2. SWAP-OUT
4.2.1. - processo movido da MP para MS - processos bloqueados/ aguardando eventos fiquem fora da MP
4.3. SWAP-IN
4.3.1. - processos movido da MS para MP - ele não percebe que foi movido (causa a realocaçaõ dinamica, que ajusta os endereços de memória) - o end. fisico é recalculado durante a execução, somando o end. base e o end. referenciado, assim permitindo que o processo funcione NORMALMENTE, mesmo retornando em um local diferente
4.4. PROBLEMAS
4.4.1. - geram problemas de REALOCAÇÃO, pois os processos são constatemente retirados e trazidos de volta, o tempo gasto + realocação, aumenta o overhead do sistema
4.5. SOLUÇÃO
4.5.1. - REALOCAÇÃO DINAMICA - endereços dos processos são recalculados em tempo de execução, permitindo que este seja carregado em locais diferentes
5. GESTÃO DE MEMÓRIA
5.1. MEMORIA RAM
5.1.1. - recurso escasso - precisa ser usada de forma eficiente - no gerenciador de tarefas, podemos ver várias instâncias do mesmo programa em execução, por exemplo, instâncias/ abas do navegador Google Chrome
5.2. SEGMENTAÇÃO
5.2.1. - permite que diferentes seguimentos de código compartilhem o mesmo espaço de memória fisica - facilita o reaproveitamento do armazenamento, já que o código é o mesmo, apenas os DADOS mudam/ variam - usa a fragmentação externa
5.2.2. EXEMPLO: - CPU executando várias instâncias do Google Chorme com diferentes dados
5.3. PAGINAÇÃO
5.3.1. - permite que um programa seja armazenado em diferentes partes da memória - divide o espaço de endereçamento de um processo em PÁGINAS LÓGICAS de tamanho FIXO
5.3.2. - alocação de operações na memoria RAM, usando tabelas de pág's - organizaçõ das págnias por ordem numérica, formando uma tabela que relaciona a memoria logica e fisica EXEMPLO: - tabela de referencia JOB | ML | MF (RAM) ----------------------------- J1 | 01 | 13 J2 | 02 | 05 J3 | 03 | 08 J4 | 04 | 02 - tabela de páginas | 01 | J1 | 01 | J1 PAG001 | 02 | J2 RAM003 | 02 | J2 | 03 | J3 | 03 | J3 | 04 | J4 | 04 | J4 PL | PF J3 -> end. logico 001 | 03 ------------- |--> end. fisico 003 | 03 001 | 003
5.4. MEMÓRIA VIRTUAL
5.4.1. - solução para armazenamento eficiente - páginas que não estão em uso são TRANSFERIDAS para o disco rigido (MS), evitando desperdicio de espaço e melhora no desempenho
5.4.2. EXEMPLO: - processos: P1 e P2 - tem suas operações organizadas em páginas - pág's ativas PERMANECEM na RAM, enquanto em desuso são alocadas para o disco