Это правильная аналогия для процесса и потоков? - PullRequest
0 голосов
/ 27 мая 2011

Я пытаюсь освоить Process, Threads, MultiCore и т.д. ... Итак, вот моя аналогия из того, что я узнал ...

Общество похоже на компьютер.

Здание похоже на чип.

Этаж в конкретном здании - это ядро ​​этого чипа.

Таким образом, здание может быть одноэтажным (одноядерный на одном кристалле),

Одноэтажное многоэтажное здание (многоядерное на одном чипе),

Многоэтажное здание, многоэтажноекаждый (многопроцессорный с многоядерным)

Квартира на определенном этаже - это процесс.

Человек, живущий в комнате в определенной квартире, - это нить.

Люди, живущиев той же квартире, разделите одно и то же место.т.е. каждый поток в процессе совместно использует одно и то же адресное пространство.

Каждый человек имеет несколько общих вещей в комнате, таких как кухня, душевая и т. д., т.е. каждый поток в коде общего доступа к процессу, данным, файлам

Душевая комната в конкретной квартире нуждается в синхронизации между людьми (нитями), живущими в этой квартире.Как только один может использовать одновременно.

Каждый человек имеет свой собственный набор вещей, которыми он не делится с другими, например, своим нижним бельем;) (у нити есть свой стек, регистры)

Человек может вызвать новых друзей в свою квартиру.т. е. нить может породить новые нити в соответствии со своими желаниями (может, нить скучает, смеется)

Владелец здания может закрыть любую комнату, создать новые комнаты, назначить новых арендаторов или выбросить их.Ядро может назначать новый процесс, а также создавать разрушающие потоки.

......

Ребята, дайте мне знать, если я правильно понял аналогию.Если что-нибудь еще я могу добавить, чтобы сделать это более ясным или сделать это правильным.

Единственная проблема, которую я вижу, это когда процесс, имеющий множество потоков, работает на разных ядрах ... Есть идеи, как включить это в аналогию? ..

Дайте мне знать.Большое спасибо.:)

Ссылка - https://www.his.se/PageFiles/4854/2010/threads_6slides.pdf?epslanguage=sv

1 Ответ

2 голосов
/ 27 мая 2011

В вашем примере, Shower будет ограниченным ресурсом, возможно, ресурсом памяти или устройством, поэтому его необходимо использовать совместно.Вы не дали эквивалентную вещь.

Поток не имеет своих собственных регистров, если только вы не имеете в виду что-то кроме регистров в одном из ядер одного из процессоров.Потоки имеют общие ядра, поэтому они работают в режиме временных интервалов.Я бы сравнил это с квартирой, в которой пассажиры въезжают и уходят, но тогда ваша идея с душем развалится.В этот момент я бы сказал, что они должны совместно использовать запирающие устройства хранения, но только один арендатор может использовать конкретный запирающий модуль одновременно.

Процесс выполняется в пределах границ ядра, но это не так.физически существуют на ядре, но я думаю, что для этого случая метафора достаточно ясна.

Если вы беспокоитесь о потоках, работающих на разных ядрах, вы можете сравнить их с тюремной душевой комнатой.Где парни (потоки) входят и выходят из разных душей (ядер), даже если они принадлежат разным бандам (процессам), и им приходится делиться набором шкафчиков, как раньше.

Независимо от того, что вы проводите,трудно объяснить временные сплайсы и быстрый вход и выход различных процессов / потоков в ядре.

И, реальная проблема, с которой я сталкиваюсь, потокам не скучно:)

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