Автор работы: Пользователь скрыл имя, 03 Мая 2013 в 20:33, реферат
Понятие «вычислительный процесс» является одним из основных при рассмотрении операционных систем. Последовательный процесс (иногда называемый «задачей») - это выполнение отдельной программы с её данными на последовательном процессоре. Концептуально процессор рассматривается в двух аспектах: во-первых, он является носителем данных и, во-вторых, он одновременно выполняет операции, связанные с их обработкой.
В качестве примеров можно назвать следующие процессы или задачи: прикладные программы пользователей, утилиты и другие системные обрабатывающие программы.
Министерство образования и
Российской Федерации
Пензенский Государственный
Кафедра «Автоматика и телемеханика»
Реферат на тему
«Вычислительный процесс и обслуживание прерываний»
Выполнил ст.гр.07ПА1 Гаврик П.В.
Проверил к.т.н. Берестень М.П.
Пенза, 2011
Содержание
В данном реферате рассматриваются такие
понятия как вычислительный процесс и
обработка прерываний. Они играют немаловажную
роль в управлении. Ознакомившись с данной
работой, можно узнать о возникновении
и развитии прерываний и вычислительного
процесса.
1.Вычислительный
процесс
Понятие «вычислительный процесс» является одним из основных при рассмотрении операционных систем. Последовательный процесс (иногда называемый «задачей») - это выполнение отдельной программы с её данными на последовательном процессоре. Концептуально процессор рассматривается в двух аспектах: во-первых, он является носителем данных и, во-вторых, он одновременно выполняет операции, связанные с их обработкой.
В качестве примеров можно назвать следующие процессы или задачи: прикладные программы пользователей, утилиты и другие системные обрабатывающие программы. Процессами могут быть редактирование какого-либо текста, трансляция исходной программы, её компоновка, исполнение. Причем трансляция какой-нибудь исходной программы является одним процессом, а трансляция следующей исходной программы - другим процессом, поскольку, хотя транслятор как объединение программных модулей здесь выступает как одна и та же программа, но данные, которые он обрабатывает, являются разными.
Теперь рассмотрим понятие процесса более подробно. Допустим, что на жестком диске находится подготовленная к исполнению программа вычисления квадратного корня из натуральных чисел, и что два человека одновременно используют ее для обработки результатов. С точки зрения людей, они работают с одним и тем же объектом, запуская на выполнение одну и ту же программу. С точки же зрения компьютерной системы, она имеет дело с двумя различными вычислительными процессами. Разные исходные данные обуславливают разные последовательности вычислений и приводят к разным результатам, которые должны быть доставлены различным пользователям, возможно, на различные устройства ввода-вывода. Программа в процессе исполнения является динамическим, активным объектом. По ходу ее работы компьютер обрабатывает различные команды и преобразует значения переменных. Для ее выполнения операционная система должна выделить определенное количество оперативной памяти, закрепить за ней определенные устройства ввода-вывода или файлы то есть зарезервировать определенные ресурсы из общего числа ресурсов всей вычислительной системы. Их количество и конфигурация могут изменяться с течением времени. Для описания таких активных объектов внутри компьютерной системы будем использовать новый термин “процесс”.
Понятие процесса характеризует некоторую совокупность набора исполняющихся команд, ассоциированных с ним ресурсов (выделенная для исполнения память или адресное пространство, стеки, используемые файлы и устройства ввода-вывода и т. д.) и текущего момента его выполнения (значения регистров, программного счетчика, состояние стека и значения переменных), находящуюся под управлением операционной системы. Не существует взаимно однозначного соответствия между процессами и программами, обрабатываемыми вычислительными системами. В некоторых операционных системах для работы определенных программ может организовываться более одного процесса или один и тот же процесс может исполнять последовательно несколько различных программ. Более того, даже в случае обработки только одной программы в рамках одного процесса, нельзя считать, что процесс представляет собой просто динамическое описание кода исполняемого файла, данных и выделенных для них ресурсов. Процесс находится под управлением операционной системы и поэтому в нем может выполняться часть кода ее ядра, как в случаях, специально запланированных, например при использовании системных вызовов, так и в непредусмотренных ситуациях, например при обработке внешних прерываний.
Все, что выполняется в вычислительных системах, организовано как набор процессов. На однопроцессорной компьютерной системе в каждый момент времени может исполняться только один процесс. Для мультипрограммных вычислительных систем псевдопараллельная обработка нескольких процессов достигается с помощью переключения процессора с одного процесса на другой. Пока один процесс выполняется, остальные ждут своей очереди на получение процессора. Каждый процесс может находиться как минимум в двух состояниях: процесс исполняется и процесс не исполняется. Диаграмма состояний процесса в такой модели изображена на рисунке 1. Это простейшая диаграмма состояний процесса.
Рисунок 1
Все управляющие процессы подразделяются на три вида:
1) управляющие процессы супервизора ОС
2) системные обрабатывающие процессы.
3) процессы пользователя.
Управление супервизора ОС организуется на основе запросов задач, т.е. задача является инициатором ресурса. Для системных процессов ресурсы назначаются изначально и вполне определенно. Эти процессы управляют ресурсами системы, за использование которых идёт конкуренция между всеми остальными процессами. Пользовательские процессы ассоциируются с таким понятием, как задача. Процесс может находиться в активном и пассивном состояниях. В активном состоянии процесс участвует в конкуренции за ресурсы. Кроме того, он может находиться в следующих подсостояниях изображенных на рисунке 2.
Рисунок 2
Состояние процесса:
1) Выполнение – это обладание всеми необходимыми ресурсами и их использование для решения задачи.
2) Готовность к выполнению – это наличие всех ресурсов кроме процессорного времени. После получения процессорного времени процесс переходит в подсостояние выполнения.
3) Ожидание (блокирования) – в этом подсостоянии ресурсы процессу не могут быть предоставлены из-за их занятости другими процессами.
4) В пассивном состоянии процесс известен системе, но не участвует в конкуренции. Процесс, находящийся в подсостоянии готовности, обладает всеми ресурсами и ждет только освобождения процессора.
Переход процесса из пассивного
состояния в состояние
1) по команде оператора;
2) при выборе ее планировщиком из очереди;
3) по вызову другой
задачей посредством
4) по прерыванию от внешнего устройства;
5) по наступлению
Из подсостояния выполнения процесс может выйти по причинам:
1) завершения (при этом
супервизор переводит процесс
в пассивное состояние до
2) перевода супервизором в состояние готовности, в связи с появлением более приоритетной заявки на обслуживание либо окончанием выделенного кванта времени;
3) блокировки (перевод
в состояние ожидания) из-за невозможности
предоставления ресурса, либо
необходимости ввода-вывода
Операции создания и завершения процесса являются одноразовыми, так как применяются к процессу не более одного раза. Все остальные операции, связанные с изменением состояния процессов, будь то запуск или блокировка, как правило, являются многоразовыми. Рассмотрим подробнее, как операционная система выполняет операции над процессами. Для эффективного управления процессами ОС должна располагать необходимой для этого информацией. Данная информация находится в специальной информационной структуре – дескрипторе процесса, который состоит из нескольких полей:
1) идентификация процесса
2) тип процесса, определяющий
правила предоставления
3) приоритет процесса;
4) переменную состояния;
5) защищенная область
памяти с контекстом задач
(это текущее значения
6) информация о ресурсах (указатели
на открытые файлы, информация
о незавершенных операциях
7) область памяти общения с другими процессами;
8) параметры времени запуска
(момент времени активации,
Дескрипторы располагаются в ОП, супервизор из них формирует списки или очереди и отображает изменение состояния процесса перемещением его дескриптора из одной очереди в другую. В некоторых ОС количество дескрипторов определено жестко (OS/2), в других – может меняться (Windows NT). Для аппаратной поддержки работы ОС с дескрипторами задач в процессорах реализуются соответствующие механизмы.
Как мы говорили ранее для того чтобы операционная система могла выполнять операции над процессами, каждый процесс представляется в ней некоторой структурой данных. Эта структура содержит информацию, специфическую для данного процесса, а именно: состояние, в котором находится процесс; содержимое регистров процессора; данные, необходимые для планирования использования процессора и управления памятью и т.д. Конкретный состав и строение зависят, конечно, от конкретной операционной системы. Во многих операционных системах информация, характеризующая процесс, хранится не в одной, а в нескольких связанных структурах данных, называемой PCB (Process Control Block) или блоком управления процессом. Блок управления процессом является моделью процесса для операционной системы. Любая операция, производимая операционной системой над процессом, вызывает определенные изменения в PCB. В рамках принятой модели состояний процессов содержимое PCB между операциями остается постоянным.
Информацию, для хранения которой предназначен блок управления процессом делят на две части. Содержимое всех регистров процессора (включая значение программного счетчика) называют регистровым контекстом процесса, а все остальное – системным контекстом процесса. Знания регистрового и системного контекстов процесса достаточно для того, чтобы управлять его поведением в операционной системе, совершая над ним операции. Однако этого недостаточно, чтобы полностью характеризовать процесс. Операционную систему не интересует, какими именно вычислениями занимается процесс, т. е. какой код и какие данные находятся в его адресном пространстве. С точки зрения пользователя, наоборот, наибольший интерес представляет содержимое адресного пространства процесса, возможно наряду с регистровым контекстом, определяющее последовательность преобразования данных и полученные результаты. Код и данные, находящиеся в адресном пространстве процесса, будем называть его пользовательским контекстом. Совокупность регистрового, системного и пользовательского контекстов процесса для краткости принято называть контекстом процесса. В любой момент времени процесс полностью характеризуется своим контекстом.
3.Рождение процесса
Любая операционная система, поддерживающая концепцию процессов, должна обладать средствами для их создания. В очень простых системах (например, в системах, спроектированных для работы только одного конкретного приложения) все процессы могут быть порождены на этапе старта системы. Более сложные операционные системы создают процессы динамически, по мере необходимости. Инициатором рождения нового процесса после старта операционной системы может выступить либо процесс пользователя, совершивший специальный системный вызов, либо сама операционная система, то есть, в конечном итоге, тоже некоторый процесс. Процесс, инициировавший создание нового процесса, принято называть процессом-родителем (parent process), а вновь созданный процесс - процессом-ребенком (child process). Процессы-дети могут, в свою очередь, порождать новых детей и т. д.
При рождении процесса система заводит новый PCB и начинает его заполнение. Новый процесс получает свой собственный уникальный идентификационный номер. Поскольку для хранения идентификационного номера процесса в операционной системе отводится ограниченное количество бит, то для соблюдения уникальности номеров количество одновременно присутствующих в ней процессов должно быть ограничено. После завершения какого-либо процесса его освободившийся идентификационный номер может быть повторно использован для другого процесса.
Обычно для выполнения своих функций процесс-ребенок требует определенных ресурсов: памяти, файлов, устройств ввода-вывода и т. д. Существует два подхода к их выделению. Новый процесс может получить в свое пользование некоторую часть родительских ресурсов, возможно, разделяя с процессом-родителем и другими процессами-детьми права на них, подобно распределению ресурсов в нормальной человеческой семье, или может получить свои ресурсы непосредственно от операционной системы, став, так сказать, на государственное обеспечение в детдоме. Информация о выделенных ресурсах заносится в PCB.
После наделения процесса-ребенка ресурсами необходимо занести в его адресное пространство программный код, значения данных, установить программный счетчик. Здесь также возможны два решения. В первом случае процесс-ребенок становится дубликатом процесса-родителя по регистровому и пользовательскому контекстам, при этом должен существовать способ определения кто для кого из процессов-двойников является родителем. Во втором случае процесс-ребенок загружается новой программой из какого-либо файла. Операционная система UNIX разрешает порождение процесса только первым способом; для запуска новой программы необходимо сначала создать копию процесса-родителя, а затем процесс-ребенок должен заменить свой пользовательский контекст с помощью специального системного вызова. Операционные системы VAX/VMS и WINDOWS NT допускают только второе решение.
Информация о работе Вычислительный процесс и обслуживание прерываний