В чем отличие процесса от программы

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

Процесс состоит из кода, т.е. инструкций программы – области кода, области данных, в которой хранятся переменные и константы, свободной динамически распределяемой рабочей области памяти – кучи (heap) и стека (stack) (рис. 10.2). Два последних механизма зависят от конкретной реализации. Область стека примыкает к куче и расширяется за ее счет.

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

Разница между проектом и процессом | Naked BPM

Каждый процесс в любой момент времени находится в точно определенном состоянии, однозначно описываемом содержимым регистров процессора, расположением областей кода, данных и стека и счетчиком команд, указывающим следующую исполняемую инструкцию в области кода. Эта базовая информация об исполняющемся процессе называется его контекстом (context). Существование контекста – это общее свойство процессов, а то, какие регистры, структуры и указатели реально являются частью контекста, зависит от используемого процессора и операционной системы.

Частным типом процессов являются потоки (threads). Они представляют собой часть программы, которая может независимо исполняться на том же самом или другом процессоре. Потоки порождаются процессом и выполняются параллельно, т.е. поток – это дочерний процесс (child process). В отличие от процессов, потоки используют общую область данных, т.е. переменные породившего их процесса.

Однако каждый поток имеет собственный контекст, включающий отдельные область кода и стек. Потоки играют важную роль в операционных системах UNIX и Windows NT.

Последовательность преобразования программы в процесс состоит из сохранения исходного текста на компьютерном носителе (магнитная лента или диск), компиляции (compilation), связывания (linking), загрузки (loading) и исполнения (execution). Эти шаги детально описываются в учебниках по программированию и операционным системам и здесь рассматриваться не будут.

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

Чем отличается МИКРОКОНТРОЛЛЕР и МИКРОПРОЦЕССОР

Итак, в Windows выполняются не процессы, а потоки. При создании процесса автоматически создается его основной поток. Этот поток в процессе выполнения может создавать новые потоки, которые, в свою очередь, тоже могут создавать потоки и т.д. Процессорное время распределяется именно между потоками, и получается, что каждый поток работает независимо.

Читайте также:
Как повысить производительность компьютера программы

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

Вспомним, что в Windows реализована вытесняющая многозадачность — это значит, что в любой момент система может прервать выполнение одного потока и передать управление другому. (Раньше использовался способ организации, называемый кооперативной многозадачностью. Система ждала, пока поток сам не соизволит передать ей управление.

Именно поэтому в случае глухого зависания одного приложения приходилось перезагружать компьютер. Так была организована, например, Windows 3.1). Что произойдет, если один поток еще не закончил работать с каким-либо общим ресурсом, а система переключилась на другой поток, использующий тот же ресурс?

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

Именно поэтому необходим механизм, позволяющий потокам согласовывать свою работу с общими ресурсами. Этот механизм получил название механизма синхронизации потоков (thread synchronization).

КАКУЮ РЕАКТИВНОСТЬ (латентность) СИСТЕМЫ ОБЕСПЕЧАТ ВАМ РАЗЛИЧНЫЕ ОС

Время реакции Операционная система
Менее 10 мкс Только ОСРВ. Но даже и они могут оказаться бессильны – это граница выбора между схемным и программным решением
10 — 100 мкс Операционные системы реального времени
100 мкс — 1 мс ОСРВ, RTAI, RT LINUX, расширения реального времени для Windows NT, Windows CE
1 мс Можно пытаться что-то делать с Linux и Windows NT, но не для систем, где запаздывание отклика может привести к тяжелым последствиям

Источник: studopedia.su

Разница между программой и процессом

Разница между проектом и процессом | Naked BPM

Программа и процесс — это взаимосвязанные термины. Основное различие между программой и процессом состоит в том, что программа — это группа инструкций для выполнения определенной задачи, тогда как процесс — это выполняемая программа. Пока процесс является активным объектом, программа считается пассивной.

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

Сравнительная таблица

Основа для сравненияПрограмма
Процесс
Базовый Программа — это набор инструкций. Когда программа выполняется, она называется процессом.
Природа Пассивный Активный
Срок жизни Дольше Ограниченное
Необходимые ресурсы Программа хранится на диске в каком-то файле и не требует других ресурсов. Процесс содержит такие ресурсы, как ЦП, адрес памяти, диск, ввод-вывод и т. Д.

Определение программы

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

Читайте также:
Программа для такси инструкция

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

Адресное пространство программы состоит из инструкции, данных и стека. Предположим, P — это программа, которую мы пишем, чтобы реализовать выполнение P, операционная система выделяет память для размещения адресного пространства P. Он планирует выполнение P, а также устанавливает механизм, посредством которого p может получать доступ к информации о файле. ЦП показан в пунктирной рамке, потому что он не всегда выполняет инструкции P; фактически, ОС разделяет ЦП между выполнением P и выполнением других программ.

Определение процесса

А Процесс это выполнение программы. Считается активная сущность и реализует действия, указанные в программе. Несколько процессов могут быть связаны с одной программой. Он обрабатывает действия операционной системы через PCB (Блок управления процессом) который включает в себя счетчик программ, стек, состояние и т. д. Счетчик программ хранит следующую последовательность команд, которая должна быть выполнена позже.

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

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

Вывод

Программа и процесс уместны, но не похожи. Программа — это просто сценарий, хранящийся на диске или кажущийся предыдущим этапом процесса. Напротив, процесс — это событие выполняемой программы.

Источник: ru1.surveillancepackages.com

В чем отличие процесса от программы

Евдокимов А.А., Майстренко Н.В., Майстренко А.В.

3.1.1. Модель процесса

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

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

Читайте также:
Задачи программы эффективная школа

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

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

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

Для примера возьмем аудиопроцесс, проигрывающий музыку в качестве сопровождения видео, запущенного на другом устройстве. Поскольку запуск аудиопроцесса может быть произведен после старта проигрывания видео, аудиопроцесс сообщает видеосерверу о своем запуске, а затем перед проигрыванием аудио стартует холостой цикл 10000 раз. Если цикл будет надежным таймером, то синхронизация выполнится успешно, но если же при выполнении холостого цикла процессор переключится на другой процесс, аудиопроцесс может возобновить свою работу, когда необходимые кадры уже будут показаны, и, таким образом, синхронизация видео и аудио будет нарушена. Когда у процесса есть критичные для его работы требования к реальному масштабу времени, то через определенный временной интервал должны происходить конкретные события, для чего должны быть предприняты специальные меры. Но на большинство процессов не оказывают влияния ни установленный режим многозадачности, ни относительные скорости выполнения процессов.

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

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

Источник: tstu.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru