A gestão da memória é um difícil compromisso entre os desempenhos (tempo de acesso) e a quantidade (espaço disponível). Deseja-se, com efeito, ter o máximo de memória disponível, mas deseja-se raramente que isto se faça em detrimento dos desempenhos.
A gestão da memória deve desempenhar as seguintes funções:
- permitir a partilha da memória (para um sistema multi-tarefas);
- permitir atribuir blocos de memória às diferentes tarefas;
- proteger os espaços memória utilizados (impedir, por exemplo, um utilizador de alterar uma tarefa executada por um outro utilizador);
- optimizar a quantidade de memória disponível, nomeadamente por mecanismos de extensão da memória.
Gestão de memória é um complexo campo da ciência da computação e são constantemente desenvolvidas várias técnicas para torná-la mais eficiente a sua forma mais simples, está relacionada em duas tarefas essenciais:
Alocação: Quando o programa requisita um bloco de memória, o gerenciador o disponibiliza para a alocação;
Reciclagem: Quando um bloco de memória foi alocado, mas os dados não foram requisitados por um determinado número de ciclos ou não há nenhum tipo de referência a este bloco pelo programa, esse bloco é liberado e pode ser reutilizado para outra requisição.
DMA(Direct memory access)
O DMA permite que certos dispositivos de hardware num computador acedam a memória do sistema para leitura e escrita independentemente do CPU. Muitos sistemas utilizam DMA, incluindo controladores de disco, placas gráficas, de rede ou de som.O acesso direto da memória é utilizado igualmente para transferência de dados de núcleos em processadores multi-core, em especial nos sistema-em-microplaquetas do processador, onde seu elemento de processamento é equipado com uma memória local ,e o acesso direto da memória é usado para transferir dados entre a memória local e a memória principal. Os computadores que têm os canais de acesso direto a memória podem transferir dados aos dispositivos com muito menos perdas gerais de processamento do que computadores sem uma via de acesso direto à memória. Similarmente um elemento de processamento dentro de um processador multi-core pode transferir dados para e da sua memória local sem ocupar seu tempo de processamento e permitir a simultaneamente a transferência de dados. Sem acesso direto da memória, usando a modalidade programada de entrada/saída (E/S) para uma comunicação com os dispositivos periféricos, ou as instruções da troca no caso dos núcleos multi-core, o processador central é ocupado inteiramente para a leitura ou escrita da operação, e assim não se torna possível executar o outro afazer. Com acesso direto da memória, o processador central executa transferências, faz outras operações enquanto alguma transferência estiver em andamento, recebe uma interrupção do controlador de acesso direto da memória uma vez que a operação foi feita.
Bus mastering
Nenhum comentário:
Postar um comentário