? Memória compartilhada é uma maneira para os diferentes elementos de um sistema de computador para se comunicar uns com os outros através da leitura e escrita para o mesmo bloco de memória RAM. Os elementos podem ser diferentes threads de execução dentro do mesmo programa , diferentes programas ou programas e dispositivos de hardware. Memória compartilhada Systemwide era a norma nos primórdios da computação . Os sistemas operacionais modernos protegidas modo como o Linux normalmente não permitem que diferentes programas para acessar uma memória de outra , por razões de segurança e estabilidade , a menos que sejam seguidos os procedimentos específicos para permitir explicitamente. História
Toda a memória sempre foi compartilhada por todos os programas no início , " modo real " sistemas operacionais como o DOS. Qualquer programa pode ler ou escrever na memória de qualquer outro programa a qualquer momento , sem restrições. Autores de DOS TSR - chamada programas " terminar e permanecer residentes" usado esse recurso em muitas maneiras inteligentes para simular multitarefa e expandem as funcionalidades de outros programas , sem acesso ao código- fonte original. Este recurso também permitiu vírus se propagar de forma muito fácil , ofereceu programas de nenhuma segurança contra a inspeção dos seus dados por outros programas , e tornou fácil para travar todo o sistema por meio de um pequeno erro de programação que acidentalmente substituiu a memória de alguns outros processos. < Br modo
engenheiros da Intel>
protegidas reconheceu os problemas de segurança e estabilidade criados por memória compartilhada em todo o sistema , de modo que eles desenvolveram " modo protegido ", que apareceu pela primeira vez em 80.286 fichas. O modo protegido introduz o conceito de "anéis ", ou níveis de privilégio . 0 processos Ring, destinados ao kernel do sistema operacional , pode ler e escrever qualquer memória . 3 processos de anel, destinados a programas comuns , são impedidos de leitura e escrita de memória do outro pelo hardware . Tentar fazer isso resulta em um erro " falha de segmentação " e, geralmente, termina o programa ofensivo.
Modern Memória Compartilhada
modo protegido impediu muitos dos problemas causado por memória compartilhada em todo o sistema em modo real , mas ainda assim às vezes é desejável para um programa para ser capaz de ler e escrever de memória que é compartilhado com algum outro programa ou dispositivo. Sistemas operacionais como Linux, portanto, adicionou suporte para memória explicitamente compartilhada. Programas e dispositivos podem optar por compartilhar a memória com o outro, sujeito a certas restrições . Threads de execução dentro de uma ação do programa a sua memória por padrão.
Computação Paralela
Muitos computadores contêm mais de um núcleo da CPU. Os programas podem dividir -se em várias "threads" de execução , cada um dos quais pode ser executado , ao mesmo tempo , para acelerar as operações globais requeridas em alguns dados . Eles muitas vezes precisam operar nos mesmos dados simultaneamente ou comunicar seu estado ao outro, e de memória compartilhada é uma maneira popular de fazer isso .
Dinâmicos Bibliotecas
Comumente bibliotecas dinâmicas utilizadas como libc normalmente são carregados por muitos programas diferentes. Desde que o código objeto nessas bibliotecas é normalmente usado de uma forma só de leitura por programas , a poupança de memória significativos podem ser alcançados com memória compartilhada. A biblioteca dinâmica pode ser carregado apenas uma vez pelo sistema operacional e compartilhado entre qualquer número de programas , diminuindo o uso de memória global .