Могут ли два разных процесса на компьютере с двумя процессорами одновременно обращаться к одному и тому же адресу ОЗУ - PullRequest
1 голос
/ 19 сентября 2011

Если у меня есть компьютер с двумя процессорами, каждый из которых запускает процесс, они оба хотят работать с одним и тем же виртуальным адресом «x».Может ли это случиться так, что они получат одно и то же место в физическом адресном пространстве?(Потому что они одновременны и не знают, что другой тоже попросил место и мог случайно получить тот же физический адрес)

Ответы [ 3 ]

4 голосов
/ 19 сентября 2011

Нет, существуют примитивы памяти, которые позволяют атомарный доступ к памяти.Это позволяет нескольким процессорам координировать.Без такого рода примитивов два процессора не смогли бы координировать свои усилия.

2 голосов
/ 19 сентября 2011

Распределение адресных пространств скоординировано так, что два процесса не разделяют часть своего адресного пространства случайно. ОС может разделять между процессами только для чтения части своих адресных пространств, типичным примером является сама программа.

1 голос
/ 19 сентября 2011

Ответ «Нет». Есть механизмы, которые этому препятствуют.

http://www.ece.cmu.edu/~ece548/handouts/19coher.pdf имеет несколько хороших слайдов, которые затрагивают тему на относительно высоком уровне, но сопровождающий текст, вероятно, будет более проницательным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...