Программисты должны быть знакомы с такими терминами, как процесс и потоки, но даже те, кто не знаком с ними, также могут извлечь выгоду из их понимания. Linux может помочь вам определить, какие приложения создают трудности на вашем компьютере и нужно ли вам добавлять дополнительную оперативную память для повышения производительности, управляя процессами и потоками. Давайте погрузимся в сферу компьютерных систем и разберемся, что означают эти термины. Некоторые концепции будут упрощены и обобщены, но общие принципы, которые мы обсуждаем, должны помочь проиллюстрировать различия между этими терминами.
Как этот процесс работает в Linux
Недостаточно предоставить компьютеру двоичный код, который сообщает ему, что выполнять программу. Для запуска программы требуется много памяти и других ресурсов операционной системы. Итак, » Процесс » — это программа, загруженная в память со всеми необходимыми ресурсами. Управление ресурсами вашей программы — это работа операционной системы.
Счетчик программ, регистры и стек — все это критически важные ресурсы для каждого процесса. ЦП содержит набор регистров для хранения данных. Регистры могут содержать информацию, необходимую процессу, такую как инструкции или адреса хранения. Компьютеры отслеживают, где они находятся в своих программах, используя «счетчик программ», также известный как «указатель команд». Стеки данных используются в компьютерных программах как временное пространство, поскольку они содержат информацию об активных подпрограммах. Динамически выделяемая память отличается от «кучи» — процесса, который является автономным и неограниченным.
Отдельная программа может выполняться более чем в одном экземпляре, и каждый из них называется » Процессом «. Адресное пространство памяти для каждого процесса является отдельным, поэтому он может работать независимо и быть изолированным от других процессов. Приложение не может напрямую обращаться к данным, которые используются другими процессами. При переключении одного процесса на другой сохраняются и загружаются регистры, карты памяти и другие ресурсы, загрузка которых займет некоторое время.
Операционные системы пытаются разделить процессы по отдельности, чтобы отказ одного процесса не повлиял на другие процессы. Например, вы, вероятно, столкнулись с ситуацией, когда одно из ваших компьютерных приложений зависает или дает сбой, и все же вы смогли остановить его, не затрагивая другие приложения. Каждый процесс имеет собственное адресное пространство, поэтому у каждого свой набор данных.
Как поток работает в Linux
» Поток » — это набор инструкций, выполняемых в процессе, который может варьироваться от одного потока до нескольких. Процесс — это процесс, который выделяет память и ресурсы, которые позже используются потоком. Иногда это называют легковесным процессом, потому что они могут получить доступ к общим данным, имея собственный стек. Поскольку оно работает параллельно, производительность приложения также будет улучшена. Наличие одного и того же адресного пространства потоков и процессов означает, что обмен данными между потоками не требует больших затрат. Недостатком является то, что отказ одного потока определенно повлияет на другие потоки и сделает процесс менее жизнеспособным. В графическом представлении ниже вы можете увидеть, как работает процесс и потоки.
Разница между процессом и потоками Linux
Заметные различия отмечены на следующем изображении:
Заключение
Термины «процесс» и «поток» могут сбивать с толку новичков. Итак, эта статья написана с учетом этого момента, и вы должны иметь основную идею после прочтения статьи. После этого он объяснил основные различия между ними. Поток — это часть процесса, которая распределяет свои ресурсы по другим потокам. Это улучшит производительность приложения, поскольку теперь ресурсы разделены.