Программа исполняется на процессоре это

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

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

Процесс может находиться в следующих состояниях:

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

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

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

объем оперативной памяти, время счета на процессоре, дисковое пространство и т. д.

Основные черты мультипрограммного режима:

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

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

При этом скорость работы самого процессора и номинальная производительность ЭВМ не зависят от использования мультипрограммирования.

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

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

КАК работает ПРОЦЕССОР? ОБЪЯСНЯЕМ

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

Важное значение при анализе работы ЭВМ имеет определение степени использования ее ресурсов. Для этого широко применяются следующие показатели (рис. 6.1):

коэффициент загрузки устройства:

где — время занятости устройства за общее время работы ЭВМ;

средняя длина очереди запросов к устройству :

где — длина очереди к устройству на интервале времени и

Рис. 6.1. Оценка показателей работы мультипрограммной ЭВМ

Для представленного на рис. 6.1 случая:

Помимо средней длины очереди важна также и динамика изменения ее длины.

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

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

Рассмотрим пример выполнения четырех программ в мультипрограммном режиме при коэффициенте мультипрограммирования равном 2.

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

Полагаем, что ЭВМ имеет 3 устройства, которые могут работать параллельно: центральный процессор (CPU), устройство ввода (IN) и устройство вывода (OUT), а программы проходят следующий цикл работы:

счет1 — ввод — счет2 — вывод. Времена выполнения соответствующих блоков программ заданы в табл. 6.1.

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

Таблица 6.1. Характеристики программ
Программа CPU1 IN CPU2 OUT

Более приоритетной считаем программу с меньшим номером.

Очередь программ к процессору обозначим Ready, а общую очередь к внешним устройствам — Wait. Полученная диаграмма выполнения программ представлена на рис. 6.2.

Рис. 6.2. Диаграмма выполнения программ в ЭВМ при Км = 2

Построив аналогичную диаграмму работы ЭВМ для Км = 3, получим результаты, представленные в табл. 6.2 (Км = 1 соответствует однопрограммной работе ЭВМ, и результаты для этого случая могут быть получены расчетными методами).

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

Читайте также:
Как загрузить удаленную программу
Таблица 6.2. Характеристики работы ЭВМ при различных коэффициентах мультипрограммирования
Характеристика Км = 1 Км = 2 Км = 3
Время выполнения программы Т1
-«- Т2
-«- T3
-«- T4
Время выполнения всех программ
Пропускная способность (П) 0.11 0.17 0.18
kcpu 0.56 0.83 0.91
kin 0.22 0.33 0.36
kout 0.22 0.33 0.36

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

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

Для поддержки работы с сегментом состояния задачи служит 16-разрядный регистр задачи TR, в который заносится селектор дескриптора TSS, и связанный с TR программно недоступный 64-разрядный «теневой» регистр, в который загружается дескриптор TSS. Дескрипторы сегментов состояния задач хранятся только в глобальной таблице дескрипторов GDT. Для переключения задач используется шлюз задачи.

Сегмент состояния задачи состоит из двух частей (рис. 6.3). Обязательная часть TSS объемом 104 байта содержит информацию, необходимую для рестарта данной задачи после ее вызова на исполнение, а также некоторую другую информацию. Дополнительная часть может содержатькакуюибо информацию о задаче, используемую операционной системой (имя задачи, комментарии и т. д.), и битовую карту ввода/вывода (БКВВ), определяющую устройства ввода/вывода, к которым разрешено обращение данной задачи при определенных ситуациях.

Рис. 6.3. Структура сегмента состояния задачи

Содержимое ряда полей TSS не изменяется при решении задачи (на рис. 6.3 они помечены звездочкой): селектор LDT данной задачи (то есть регистр LDTR), регистр управления CR3 (базовый адрес каталога таблиц страниц), поля SSi и ESPi, которые определяют начальные адреса стеков при переключении к задачам с более высоким уровнем привилегий, что обеспечивает их более надежную защиту.

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

Поле селектора возврата обеспечивает связь данной задачи с вызвавшей ее программой. Селектор возврата — это селектор TSS предыдущей задачи, при выполнении которой произошел вызов данной задачи (TR предыдущей задачи, если предполагается возврат к ней).

Бит ловушки T используется при отладке программного обеспечения аналогично биту TF в регистре флагов: если T = 1, то при переключении на данную задачу возникает прерывание.

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

Объем дополнительной части TSS зависит от количества служебной информации ОС, определяемой характером решаемой задачи, и размеров применяемой битовой карты ввода/вывода. Дополнительная часть TSS может вообще отсутствовать.

Относительный адрес БКВВ определяет положение битовой карты в TSS. Каждый бит БКВВ соответствует однобайтовому порту ввода/вывода. Так как микропроцессор может обращаться к 216 портов, полная битовая карта ввода/вывода, определяющая возможность их обслуживания, —

это строка длиной до 64 Кбит. Когда для задачи определена БКВВ, ей предоставляется дополнительная возможность выполнения команд ввода/вывода.

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

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

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

Байт доступа дескриптора TSS имеет следующий вид (рис. 6.4):

Рис. 6.4. Байт доступа дескриптора сегмента состояния задачи

У него есть ряд особенностей по сравнению с дескрипторами обычных сегментов.

Бит занятости B устанавливается в 1 при переключении на данную задачу. Используется для обнаружения попытки вызова задачи, выполнение которой прервано. Переключение задач производится, только если B = 0.

При B = 1 возникает прерывание. Установка B = 1 в дескрипторе TSS производится командами JMP и CALL, переключающими микропроцессор на выполнение данной задачи. При этом другие обращения в мультипрограммной системе к этой задаче будут запрещены.

Читайте также:
Блокировка рекламы рейтинг программ

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

Значение M = 0 обеспечивает совместимость с микропроцессором i286, в котором впервые появился мультипрограммный режим работы.

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

Состояние существования процесса.

Процесс—это некоторая деятельность, связанная с исполнением программы на процессоре.

При исполнении программ на центральном процессоре чаще всего различают следующие характерные отдельные состояния:

· порождение — подготавливаются условия для первого исполнения на процессоре

· активное состояние, или состояние “Счет” — программа исполняется на процессоре

· ожидание — программа не исполняется на процессоре по причине занятости какого-либо требуемого ресурса

· готовность — программа не исполняется, но для исполнения предоставлены все необходимые в текущий момент ресурсы, кроме центрального процессора

· окончание — нормальное или аварийное окончание исполнения программы, после которого процессор и другие ресурсы ей не предоставляются

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

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

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

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

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

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

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

Диспетчеризация процесса.

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

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

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

ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССА.

Диспетчеризация сводится к следующему:

· сохранение контекста текущего потока, который требуется сменить;

· загрузка контекста нового потока, выбранного в результате планирования;

· запуск нового потока на выполнение.

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

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

В мультипрограммной системе поток может находиться в одном из трех основных состояний:

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

Лекция № 2. Процессы и ресурсы

Понятие вычислительного процесса, или просто процесса, является основным при рассмотрении операционных систем.

Процесс, иногда называемый задачей (task), – это отдельная программа с ее данными, выполняющаяся на последовательном процессоре.

Концепция процесса предполагает два аспекта: во-первых, он является носителем данных и, во-вторых, он собственно и выполняет операции, связанные с обработкой этих данных.

Читайте также:
Как создать программу арм

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

При исполнении программ на процессоре чаще всего различают следующие характерные отдельные состояния:

  • порождение — подготовка для первого исполнения на процессоре
  • активное состояние, или состояние “Счет” — программа исполняется на процессоре
  • ожидание — программа не исполняется на процессоре по причине занятости какого-либо требуемого ресурса
  • готовность — программа не исполняется, но для исполнения предоставлены все необходимые в текущий момент ресурсы, кроме центрального процессора
  • окончание — нормальное или аварийное окончание исполнения программы, после которого процессор и другие ресурсы ей не предоставляются

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

2.2. Классификация процессов

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник: studfile.net

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