Процесс (вычисления)

редактировать
Список процессов, отображаемый htop

В вычисления, процесс - это экземпляр компьютерной программы, которая выполняется одним или несколькими потоками. Он содержит программный код и его действия. В зависимости от операционной системы (ОС) процесс может состоять из нескольких потоков выполнения, которые выполняют инструкции одновременно.

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

Многозадачность - это метод, позволяющий нескольким процессам совместно использовать процессоры (ЦП) и другие системные ресурсы. Каждый ЦП (ядро) выполняет одну задачу за раз. Однако многозадачность позволяет каждому процессору переключать между выполняемыми задачами, не дожидаясь завершения каждой задачи (вытеснение ). В зависимости от реализации операционной системы переключение может выполняться, когда задачи инициируются и ожидают завершения операций ввода / вывода, когда задача добровольно уступает ЦП, на аппаратных прерываниях и когда планировщик операционной системы решает, что для процесса истек срок его справедливой доли процессорного времени (например, с помощью Completely Fair Scheduler ядра Linux ).

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

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

Содержание
  • 1 Представление
  • 2 Многозадачность и управление процессами
    • 2.1 Состояния процесса
  • 3 Межпроцессное взаимодействие
  • 4 История
  • 5 См. Также
  • 6 Примечания
  • 7 Ссылки
  • 8 Дополнительная литература
  • 9 Внешние ссылки
Представление
Таблица процессов, отображаемая KDE System Guard Таблица процессов, отображаемая KDE System Guard

В общем, процесс компьютерной системы состоит из (или, как говорят, владеть) следующие ресурсы:

  • Образ исполняемого машинного кода, связанный с программой.
  • Память (обычно некоторая область виртуальной памяти ); который включает в себя исполняемый код, данные для конкретного процесса (вход и выход), стек вызовов (для отслеживания активных подпрограмм и / или других событий) и куча для хранения промежуточных данных вычислений, сгенерированных во время выполнения.
  • Дескрипторы ресурсов операционной системы, выделенные процессу, такие как дескрипторы файлов (Unix терминология) или обрабатывает (Windows ), а также источники и приемники данных.
  • Атрибуты безопасности, такие как владелец процесса и набор разрешений процесса (допустимые операции
  • Состояние процессора (контекст ), такое как содержимое регистров и адресация физической памяти. Состояние обычно сохраняется в регистрах компьютера, когда процесс выполняется, и в памяти в противном случае.

Операционная система хранит большую часть этой информации об активных процессах в структурах данных, называемых блоками управления процессом. Любое подмножество ресурсов, обычно по крайней мере состояние процессора, может быть связано с каждым из процессов «потоков в операционных системах, которые поддерживают потоки или дочерние процессы.

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

Многозадачность и управление процессами

A Многозадачность операционная система может просто переключаться между процессами, чтобы создать впечатление, что многие процессы выполняют одновременно (т. Е. параллельный ), хотя на самом деле только один процесс может выполняться одновременно на одном ЦП (если ЦП не имеет нескольких ядер, тогда многопоточность или другое могут использоваться аналогичные технологии).

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

В встроенных операционных системах процессы часто называют «задачами». Смысл «процесса» (или задачи) - «что-то, что требует времени», в отличие от «памяти», которая является «чем-то, что занимает место».

Приведенное выше описание применимо к обоим управляемым процессам операционной системой и процессами, как определено в вычислении процессов.

. Если процесс запрашивает что-то, чего он должен ждать, он будет заблокирован. Когда процесс находится в заблокированном состоянии, он имеет право на подкачку на диск, но это прозрачно в системе виртуальной памяти, где области памяти процесса могут действительно находиться на диске а не в основной памяти в любое время. Обратите внимание, что даже части активных процессов / задач (выполнение программ) могут быть перенесены на диск, если эти части не использовались в последнее время. Не все части исполняемой программы и ее данные должны находиться в физической памяти, чтобы связанный процесс был активен.

Состояния процесса

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

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

  • Во-первых, процесс «создается» путем загрузки с устройства вторичного хранилища (жесткий диск, CD-ROM и т. Д.) В основную память. После этого планировщик процессов назначает ему состояние «ожидания».
  • Пока процесс «ожидает», он ждет, пока планировщик выполнит так называемое переключатель контекста. Переключатель контекста загружает процесс в процессор и меняет его состояние на «выполняется», в то время как ранее «запущенный» процесс сохраняется в «ожидающем» состоянии.
  • Если процессу в «рабочем» состоянии необходимо ждать ресурс (например, ждать ввода пользователя или открытия файла), ему назначается состояние «заблокировано». Состояние процесса изменяется обратно на "ожидание", когда процессу больше не нужно ждать (в заблокированном состоянии).
  • Когда процесс завершает выполнение или завершается операционной системой, он больше не нужен. Процесс удаляется мгновенно или переводится в состояние «завершено». После удаления он просто ожидает удаления из основной памяти.
Межпроцессное взаимодействие

Когда процессам необходимо взаимодействовать друг с другом, они должны совместно использовать части своих адресных пространств или использовать другие формы межпроцессного взаимодействия (IPC). Например, в конвейере оболочки выходные данные первого процесса необходимо передать второму и так далее; другим примером является задача, которую можно разложить на взаимодействующие, но частично независимые процессы, которые могут выполняться одновременно (т. е. с использованием параллелизма или истинного параллелизма - последняя модель является частным случаем одновременного выполнения и возможна, когда достаточно ядер ЦП доступно для все процессы, которые готовы к запуску).

Два или более процесса могут работать на разных машинах, которые могут работать с разными операционными системами (ОС), поэтому некоторые механизмы для связи и синхронизации (называемые протоколами связи для распределенных вычисления) (например, интерфейс передачи сообщений, часто называемый просто MPI ).

История

К началу 1960-х программное обеспечение для компьютерного управления превратилось, например, из IBSYS в. Со временем компьютеры стали быстрее, в то время как компьютерное время по-прежнему не использовалось ни дешево, ни полностью; такая среда сделала мультипрограммирование возможным и необходимым. Мультипрограммирование означает, что несколько программ работают одновременно. Сначала несколько программ выполнялись на одном процессоре из-за базовой однопроцессорной компьютерной архитектуры, и они совместно использовали скудные и ограниченные аппаратные ресурсы; следовательно, параллелизм носил последовательный характер. В более поздних системах с несколькими процессорами несколько программ могут выполняться одновременно в параллельном.

. Программы состоят из последовательностей инструкций для процессоров. Один процессор может выполнять только одну инструкцию за раз: невозможно запускать несколько программ одновременно. Программе может потребоваться некоторый ресурс , например устройство ввода с большой задержкой, или программа может начать некоторую медленную операцию, такую ​​как отправка вывода на принтер. Это приведет к тому, что процессор будет "простаивать" (не используется). Чтобы процессор был постоянно занят, выполнение такой программы останавливается, и операционная система переключает процессор на выполнение другой программы. Пользователю будет казаться, что программы выполняются одновременно (отсюда и термин «параллельный»).

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

См. также
Примечания
Ссылки
Дополнительная литература
Внешние ссылки
Викиверситет содержит обучающие ресурсы по процессам и потокам в Операционные системы / процессы и потоки
Последняя правка сделана 2021-06-02 07:26:39
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте