Fund sistemas
Sistemas Operacionais
Aula 5_6 - Complementação
Coerência e coesão
Em uma estrutura de armazenamento hierárquica, valores que representam uma mesma informação podem aparecer em diferentes níveis do sistema de armazenamento. Por exemplo, considere uma variável A que armazena um valor inteiro, residente originalmente em um arquivo B, por sua vez armazenado em um disco magnético. Considere que o valor contido em A vai ser incrementado de 1. A operação de incrementar inicia primeiramente uma operação de E/S para copiar para a memória principal o bloco do disco no qual A reside. Essa operação é seguida por uma possível cópia do valor de A para a memória cachê e por outra cópia desse valor para um registrador interno. Portanto, uma cópia do valor de A aparece em diversos lugares. Como a operação de incrementar acontece no registrador interno, logo após esse incremento o valor de A não é o mesmo nos vários sistemas de armazenamento. O valor de A tornase o mesmo em todos os sistemas somente após o novo valor de A ter sido gravado de volta no disco magnético.
Coerência e coesão
Em um ambiente multitarefa, no qual o controle da CPU passa de um processo a outro, deve ser tomado um cuidado extremo para assegurar que, se vários processos desejam acessar o valor contido em A, cada um deles obterá o valor que corresponde à modificação mais recente. A situação fica mais complicada em um ambiente multiprocessador no qual, além de manter registradores internos, a CPU tem uma memória cache local. Nesse ambiente, uma cópia de A pode existir simultaneamente em diversas memórias cachê. Como as várias CPUs podem todas estar sendo executadas simultaneamente, devemos ter certeza de que uma modificação do valor de A em uma memória cachê é refletida imediatamente em todas as outras memórias cachê em que existe uma cópia do valor de A. Esse problema, chamado de coerência de memórias cachê, é normalmente uma função do hardware.