Макс Поминов
Знаток
(437)
2 дня назад
это как в государстве - один государь не сможет справиться с судом, издачей законов, армией и тд. он для этого нанимает министров и помощников
KredwiМудрец (11808)
2 дня назад
Во, во!
Тут так же, ты убил один процесс, на этот процесс пришла замена, и так пока не убьешь главный процесс!
dev11.sys
Просветленный
(25361)
2 дня назад
Для стабильной работы в том числе, многозадачность.
Когда скрипт на одной вкладке не отвечает - зависает, то "вкладка-процесс" может быть заверешена, а на остальных вкладках эта проблема практически не отразится. Распараллеливание такое.
Почитай про IPC - межпроцессное взаимодействие.
В.А,
Мастер
(1637)
2 дня назад
Процесс разделяет себя на другие процессы и подпроцессы по нескольким ключевым причинам, связанным с производительностью, стабильностью и безопасностью. Рассмотрим эти моменты подробнее:
1. Изоляция и безопасность
Каждый процесс в операционной системе работает в своём собственном изолированном пространстве памяти. Это предотвращает утечку данных и сбои. Например, в браузере Chromium разделяет каждый вкладку или веб-приложение на отдельный процесс. Это означает, что если один веб-сайт вызывает сбой или содержит вредоносный код, он не повлияет на остальные вкладки или сам браузер. Каждое приложение или часть системы изолируется в своём процессе, и операционная система обеспечивает, чтобы они не вмешивались в память других процессов.
2. Производительность
В современных многозадачных операционных системах лучше использовать несколько процессов, чем один процесс, потому что это позволяет эффективнее распределять нагрузку по многим ядрам процессора. Процессы могут работать параллельно на разных ядрах, что значительно повышает общую производительность системы.
Когда отдельные процессы разделяются для разных частей приложения, они могут работать одновременно, например, в случае с браузером, где каждый процесс занимается рендерингом одной страницы, обработкой одного скрипта и т. п. Это позволяет выполнять несколько задач одновременно без блокировки.
3. Управление памятью и стабильность
Если один процесс выходит из строя, операционная система может изолировать его и не допустить разрушения всей системы. При этом другие процессы продолжат работать нормально. Это особенно важно для приложений, которые требуют высокой доступности, таких как браузеры, серверы и базы данных.
4. Обновления и масштабируемость
В некоторых случаях, когда приложение требует масштабируемости или обновления компонентов, процессы могут быть перераспределены или перезапущены, не затрагивая всю систему. Это также улучшает модульность и упрощает обновления — например, в случае обновлений браузера, когда для каждой вкладки или сервиса может быть свой процесс.
Чем отличается от многозадачности в рамках одного процесса (потоки)?
Многозадачность с использованием потоков работает немного иначе:
Потоки — это "легкие" единицы исполнения внутри одного процесса. Все потоки в рамках одного процесса имеют общий адресный пространство, то есть могут совместно использовать данные и ресурсы. Это позволяет уменьшить накладные расходы на создание новых потоков, но также увеличивает риск ошибок, например, гонок данных (data races), из-за того, что несколько потоков могут одновременно изменять одни и те же данные.
Преимущество потоков в том, что они имеют меньше накладных расходов на создание и переключение между ними, чем процессы. Потоки могут быть использованы для выполнения задач в рамках одного процесса, например, для параллельной обработки данных или выполнения фона операций.
Преимущество процессов в том, что они изолированы друг от друга и могут безопасно работать на разных ядрах или процессорах без риска вмешательства. Они более устойчивы к сбоям — если один процесс упал, другие процессы остаются целыми. А вот если поток в рамках одного процесса выходит из строя, это может повлиять на весь процесс.
Пример: Chromium
Chromium использует процессы для обеспечения изоляции безопасности (каждая вкладка — отдельный процесс), а также для улучшения производительности. Если одна вкладка или процесс зависает, это не влияет на другие вкладки. Потоки в рамках одного процесса Chromium могут использоваться для параллельной обработки данных, но критические части системы (например, рендеринг или обработка пользовательского ввода) изолируются в отдельные процессы.
Семён Куликов
Мыслитель
(6051)
11 часов назад
Чтобы независло основное приложение. Как бы нагрузка распределяется на процессы, балансировка приложения. В вебраузерах допустим нужно для ассинхронной работы (ajax, async и await), или декодирования музыки и видео (mp3, ogg, ogv, mp4, webm). Если бы веб браузер не делился на процессы, вы бы не могли переключаться между вкладками, и веб браузер был страшно тормозил.
Chromium постоянно так делает, да и не только он....
Для чего? Зачем?
И чем это отличается от перекладывание задач на другие потоки?