Найти в Дзене

Процессы в Windows. Что за зверь?

Итак вы наверное слышали о таком понятии как процессы и наверное наблюдали как они отображаются в диспетчере задач windows. Для вас это синоним программы которая выполняется - это задача. Это практически правильно, но давайте мы разберёмся вот с чем. Чем отличается программа которая не исполняется в данный момент на компьютере и та которая запущена? Для начала нам с вами понадобится узнать о таких вещах как ресурсы компьютера. Какие это ресурсы? В первую очередь это так называемое процессорное время. Это количество времени, которое даётся каждому процессу на выполнение. Есть такая системная программа - диспетчер операционной системы. Вот он по специальному алгоритму создаёт очередь процессов на выполнение и определяет для каждого время какое он будет выполнятся. Для тех кто не знает скажу, что вам только кажется что все программы работающие на компьютере работают одновременно. На самом деле они просто работают малое количество времени (до нескольких сотых миллисекунды) по очереди и по

Итак вы наверное слышали о таком понятии как процессы и наверное наблюдали как они отображаются в диспетчере задач windows. Для вас это синоним программы которая выполняется - это задача. Это практически правильно, но давайте мы разберёмся вот с чем. Чем отличается программа которая не исполняется в данный момент на компьютере и та которая запущена? Для начала нам с вами понадобится узнать о таких вещах как ресурсы компьютера. Какие это ресурсы? В первую очередь это так называемое процессорное время. Это количество времени, которое даётся каждому процессу на выполнение. Есть такая системная программа - диспетчер операционной системы. Вот он по специальному алгоритму создаёт очередь процессов на выполнение и определяет для каждого время какое он будет выполнятся. Для тех кто не знает скажу, что вам только кажется что все программы работающие на компьютере работают одновременно. На самом деле они просто работают малое количество времени (до нескольких сотых миллисекунды) по очереди и по этому возникает иллюзия параллелизма работы программ. Даже если процессор вашего компьютера многоядерный, то это всё равно так. Истинный параллелизм может быть только у многопроцессорных компьютеров.

Второй ресурс это память. Есть память постоянная, это жёсткий диск, диски (CD, DVD, blu-ray), Флешки. А есть кратковременная - это оперативная память. Сначала поговорим об оперативной памяти - если представить логически, то это набор ячеек в каждой из которых может храниться один бит информации. Можно представить этот набор в виде таблицы где у каждой ячейки есть свой адрес или координаты. Любая программа выполняемая в данный момент состоит из нескольких разделов, которые находятся в оперативной памяти. Первый раздел это команды которые выполняет процессор. Второй раздел это данные которые с помощью команд обрабатываются. Третий раздел это так называемый стек. Стек можно себе представить как стопку из книг (каждая из книг эта команда или данные) в которую можно положить книгу и взять её от туда только с верху. Не буду расписывать про стек долго, только скажу, что такой способ хранения команд и данных нужен для того, что бы запомнить команды и данные которые отложены для выполнения на потом. Это упрощенно но корректно.

Третий ресурс это постоянная память. А точнее это файлы на диске или флешке. Простой пример - это когда вы запускаете плеер для воспроизведения музыки. Вот плеер - это процесс (программа в момент выполнения), а mp3 файл с музыкой это его ресурс. Файлы на диске имеют свои адреса в специальной таблице с помощью которых их процесс и ищет на диске. Это упрощенно но корректно.

Четвёртый ресурс - это сокеты. Из Википедии -

"Со́кет (англ. socket — разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет — абстрактный объект, представляющий конечную точку соединения.

Следует различать клиентские и серверные сокеты. Клиентские сокеты грубо можно сравнить с конечными аппаратами телефонной сети, а серверные — с коммутаторами. Клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты.

Интерфейс сокетов впервые появился в BSD Unix. Программный интерфейс сокетов описан в стандарте POSIX.1 и в той или иной мере поддерживается всеми современными операционными системами."

Итак вы поняли что процесс - это программа для которой выделены в данный момент ресурсы. А вот программа которая не исполняется в данный момент - это просто файл на диске в котором записаны команды, данные, ссылки на другие ресурсы и другая служебная информация. Это упрощенно но я думаю, что корректно.

Спасибо за внимание, надеюсь статья вам пригодится.