Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 03.docx
Скачиваний:
10
Добавлен:
26.09.2019
Размер:
977.5 Кб
Скачать

3 пара. Управление процессами и задачами (слайд №36)

Процессы и потоки (нити). Взаимодействие процессов.

5.1 Процессы (слайд №37)

5.1.1 Понятие процесса

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

Работающий процесс – в данный момент код этого процесса выполняется.

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

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

С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные.

Адресное пространство содержит:

  • саму программу

  • данные к программе

  • стек программы

Процесс при его создании и управлении им операционной системой включает следующую основную информацию:

  • Счетчик команд (program counter - PC) – адрес текущей выполняемой команды процесса; обычно хранится в специальном системном регистре аппаратуры;

  • Стек (stack) – резидентная область основной памяти, выделяемая операционной системой при создании процесса, в которой хранятся локальные данные процедур процесса, их параметры (аргументы) и связующая информация между ними, необходимая для организации вычислений. При запуске очередной процедуры в стеке отводится запись активации (activation record), называемая также стековым фреймом (stack frame) и областью локальных данных (local data area) для хранения локальных данных текущего поколения (запуска) процедуры. По окончании ее выполнения запись активации удаляется из стека;

Секция данных (data section) – статическая (постоянно выделенная, неизменного размера) область основной памяти, выделяемая операционной системой процессу, в которой хранятся его глобальные переменные, массивы, структуры, объекты.

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

Рассмотрим классификацию процессов по ряду признаков (рис. 2).

Рис.2. Схема классификации процессов

  1. Процессы, которые необходимо завершить до наступления конкретного момента времени, называются процессами реального времени.

  2. Процессы, время существования которых не превышает времени допустимой реакции на запросы пользователя, называются интерактивными.

  3. Остальные процессы называются пакетными.

Процессы, развивающиеся на ЦП, называется внутренними, или программными. Процессы, развивающиеся на других процессорах, отличных от ЦП, называются внешними (процессы ввода-вывода).

Программные процессы, в свою очередь, делятся на системные (исполняется программа из состава ОС) и пользовательские (исполняется прикладная программа).

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

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

Если между процессами возникают связи всевозможных типов (функциональные, пространственно-временные, управляющие, информационные и т.д.), то процессы являются взаимосвязанными.

Процесс, по требованию которого образуется другой процесс, называется порождающим. Образованный процесс называется порожденным. Управляющий тип связи определяется отношением порождающего к порождаемому.

Если два процесса совместно используют некоторые ресурсы, но не обмениваются информацией, они называются информационно-независимыми. При наличии информационной связи, они являются взаимодействующими.

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

Допустимые отношения между взаимосвязанными процессами определяются тремя синхронизирующими правилами:

  1. Отношение предшествования. Первый из двух процессов должен переходить в активное состояние всегда раньше второго.

  2. Отношение приоритетности. Процесс, имеющий приоритет P, активизируется при соблюдении двух условий:

  • в состоянии готовности нет процессов с большим приоритетом;

  • процессор либо свободен, либо используется менее приоритетным, чем Р процессом.

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

Каждому процессу в системе назначаются числовые идентификаторы (личные номера) в диапазоне от 1 до 65535 (2^16=65536) (PID – Process Identifier) и идентификаторы родительского процесса (PPID – Parent Process Identifier). PID является именем процесса, по которому мы можем адресовать процесс в операционной системе при использовании различных средств просмотра и управления процессами. PPID определяет родственные отношения между процессами, которые в значительной степени определяют его свойства и возможности. Родителем всех процессов в системе является процесс init (linux) или system (windows). Его PID всегда 1-linux или 4-windows, PPID – 0.

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

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

Понятие ресурса

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

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

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

Рассмотрим классификацию ресурсов по ряду признаков (рис. 3).

Рис. 3. Схема классификации ресурсов

Реальность существования

В соответствии с этим классификационным признаком все ресурсы вычислительной системы можно разделить на физические и виртуальные.

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

Возможность расширения свойств

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

Форма реализации

В соответствии с этим признаком ресурсы разделяются на аппаратные (твёрдые) и мягкие (остальные). К мягким ресурсам относятся, прежде всего, программные ресурсы. К аппаратным ресурсам относятся процессор, оперативная память, магнитные диски и другие устройства ввода/вывода, а к программным – библиотечные модули, драйверы, компиляторы и т. д.

Степень важности

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

Структура

ресурсы разделяются на простые и составные. Ресурс является простым, если он, с точки зрения управляющей программы, не содержит составных элементов и должен быть выделен процессу как единое целое. Составной ресурс характеризуется некоторой структурой, и при каждом акте распределения процесс может получить один или несколько составных частей такого ресурса. Простой и составной ресурсы различаются количеством своих состояний. Простой ресурс может находиться в одном из двух состояний - “занят” и “свободен”. Составной ресурс имеет более двух состояний: “свободен” - все элементы ресурса свободны; “занят” - все элементы ресурса распределены процессом; “частично занят” - часть элементов ресурса распределена процессом, остальные свободны. Иногда говорят о доле занятости составного ресурса (“занято 20%”, “свободно 50%” и т.п.).

Восстанавливаемость

Если при распределении системой некоторого ресурса допускается многократное выполнение действий последовательности ЗАПРОС-ВЫДЕЛЕНИЕ-ИСПОЛЬЗОВАНИЕ-ОСВОБОЖДЕНИЕ (З-В-И-О), то такой ресурс называют воспроизводимым. Иногда такого вида ресурсы называют также постоянными, т.к. они всегда находятся в составе ресурсов ВС. В отношении определенной категории ресурсов многократное применение последовательности З-В-И-О невозможно, поскольку на каком-либо цикле работы с ними может наступить ситуация исчерпания ресурса, т.е. обрыв последовательности на шаге ИСПОЛЬЗОВАНИЕ, после чего такой ресурс изымается из использования. Ресурсы с таким свойством называются потребляемыми. К потребляемым ресурсам, прежде всего, относятся сигналы и сообщения.

Характер использования

Ресурс называется последовательно-используемым, если он может использоваться одновременно только одним процессом. Если ресурс одновременно может быть выделен и использован несколькими параллельно работающими процессами, то он называется параллельно-используемым ресурсом. Для обозначения последовательно-используемого ресурса употребляют также термины “монопольно-используемый ресурс” и “критический ресурс”. Параллельно-используемые ресурсы называют разделяемыми ресурсами Заметим, что один и тот же ресурс может выступать как последовательно-используемый, так и параллельно-используемый.

Степень активности

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

Время существования

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

Функциональная избыточность (Стоимость)

на дорогие и дешевые связано с реализацией принципа функциональной избыточности при распределении ресурсов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]