@foonfyrick

Процесс, поток, отличия?

На техностриме майл ру была сказана такая фраза:
Процесс работает с изолированной памятью, то есть области памяти процессов не пересекаются.
Поток использует shared память и может изменять память доступную для всех потоков в рамках одного процесса.

Из сказанного я не понял:
Что такое изолированная память? Это свободная память, которая выделяется на приложение?
Что такое shared память, как поток изменяет доступную память? Я вообще не понял что это значит.
  • Вопрос задан
  • 283 просмотра
Решения вопроса 1
gbg
@gbg
Любые ответы на любые вопросы
В современных ОС процесссы используют виртуальную память - они не видят память других процессов. То есть, если у процесса A по адресу 0x100 находится байт 0x08, а у процессе B по адресу 0x100 находится байт 0x42, процесс A будет всегда читать 0x8, а процесс B - 0x42.
Каждый процесс сидит в своем адресном пространстве.

Потоки сидят внутри процесса и видят одну память - адресное пространство этого процесса. Это и называется шеринг - раз адресное пространство общее, то и память общая. Если поток a в процессе A запишет по адресу 0x100 девятку, все другие потоки тоже считают оттуда девятку. Процесс B же по этому адресу продолжит читать 0x42

Почитайте по ключевым словам "Защищенный режим, "Виртуальная память", MMU, "Процесс", "Поток"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы