Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lectures_OS.doc
Скачиваний:
17
Добавлен:
23.09.2019
Размер:
826.88 Кб
Скачать

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

Рассмотрим следующий пример. Два студента запускают программу извлечения квадратного корня. Один хочет вычислить квадратный корень из 4, а второй – из 1. С точки зрения студентов, запущена одна и та же программа; с точки зрения компьютерной системы, ей приходится заниматься двумя различными вычислительными процессами, так как разные исходные данные приводят к разному набору вычислений. Следовательно, на уровне происходящего внутри вычислительной системы мы не можем использовать термин "программа" в пользовательском смысле слова.

"Задание" - совокупность программы, набора команд языка управления заданиями, необходимых для ее выполнения, и входных данных. С точки зрения студентов, они, подставив разные исходные данные, сформировали два различных задания.

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

Это происходит потому, что термины "программа" и "задание" предназначены для описания статических, неактивных объектов. Программа же в процессе исполнения является динамическим, активным объектом. По ходу ее работы компьютер обрабатывает различные команды и преобразует значения переменных. Для выполнения программы ОС должна выделить определенное количество оперативной памяти, закрепить за ней определенные устройства ввода-вывода или файлы (откуда должны поступать входные данные и куда нужно доставить полученные результаты), то есть зарезервировать определенные ресурсы из общего числа ресурсов всей вычислительной системы. Их количество и конфигурация с течением времени могут изменяться. Для описания таких активных объектов внутри компьютерной системы вместо терминов "программа" и "задание" мы будем использовать новый термин – "процесс".

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

Процесс (задача или задание) – базовое понятие большинства современных ОС. Часто он определяется как программа в стадии выполнения. Программа – статический объект, представляющий собой файл с кодами и данными. Процесс – динамический объект. Так называемая единица вычислительной работы. Управление процессом - управление распределением ресурсов процессора между различными конкурирующими процессами путем передачи им управления согласно некоторой стратегии планирования.

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

выполнение - активное состояние, во время которого он имеет все необходимые ресурсы и непосредственно выполняется процессором;

  • ожидание – пассивное состояние, находясь в котором поток заблокирован по своим внутренним причинам (ожидает осуществление события), например: завершение ввода/вывода.

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

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

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

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

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

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

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

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

Управление ресурсами включает в себя следующие общие (независящие от типа ресурса) задачи:

  1. Планирование ресурсов (то есть определение того, какому процессу, когда и в каком количестве следует выделять данный ресурс).

  2. Удовлетворение запросов на ресурсы.

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

  4. Разрешение конфликта между процессами.

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

  • системы пакетной обработки (например, OC EC),

  • системы разделения времени (UNIX, VMS, Windows),

  • системы реального времени (QNX, RT/11).

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

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

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

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

Сложность задачи управления ресурсами объясняется в основном, случайным характером возникновения запросов на потребление ресурсов.

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

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

Однопрограммная ОС – вычисления носят последовательный характер, ресурсы не разделяются.

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

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

ФУНКЦИОНАЛЬНЫЕ КОМПОНЕНТЫ ОС АВТОНОМНОГО КОМПЬЮТЕРА.

Управление процессами.

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

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

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

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

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

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