Читайте также:
|
|
При использовании этих терминов и при их определении часто возникают сложности. В различных источниках они трактуются по-разному, более того в определении их взаимосвязи так же нет единого мнения. Это происходит в силу нескольких причин. Во-первых, – это специфика различных ОС, когда совпадающие по сути понятия получают разные названия. Во-вторых, по мере развития теории системного программирования и методов организации вычислений некоторые из этих терминов постоянно получают новое осмысление. В-третьих, терминологические сложности порождаются в силу существования различных вариантов перевода.
Определение понятий задача, процесс, поток данные ниже, даются в контексте с теорией операционных систем реального времени.
ОС Windows способна делать больше, чем одну вещь одновременно. Но каждый программист знает, что центральный процессор в данный конкретный момент времени может выполнять одну команду. Многозадачность – это способность ОС выполнять более одной задачи одновременно.
Противоположный подход – однозадачность, когда одна программа (задача) должна быть завершена, прежде, чем начнет выполняться другая. DOS – пример однозадачной ОС.
Чтобы поддерживать многозадачность, ОС должна определить и оформить для себя те внутренние единицы работы, между которыми будет разделяться процессор и другие ресурсы компьютера. Здесь под единицами работы и понимаются задачи, процессы и потоки.
Задачи. Существуют различные определения термина «задача» для многозадачной ОС. Для ОСРВ чаще дается определение: задача – набор операций (машинных инструкций), предназначенный для выполнения логически законченной функции системы. При этом задача конкурирует с другими задачами за получение контроля над ресурсами вычислительной системы.
Понятие «задача» тесно связано с термином «приложение». Приложение становится задачей после его запуска. Можно сказать, что задача – это приложение, работающее в текущем сеансе и потребляющее ресурсы компьютера (или ожидающее очереди на них): оперативную память, процессорное время, доступ к внешним устройствам и т.д.
Основные свойства задач. Как правило, вся важная для ОС информация о задачах хранится в унифицированной структуре данных – управляющем блоке (Task Control Block, TCB). В блоке хранятся такие параметры, как имя и номер задачи, верхняя и нижняя границы стека, статус задачи, приоритет и т.п.
Стек – это специальная область оперативной памяти, выделяемая для размещения данных программы, необходимых каждой вызываемой функции. Она называется стеком потому, что представляет собой очередь типа «последним пришел – первым вышел» и напоминает стопку монет – элемент, добавленный в стек последним, будет извлечен из него первым.
Приоритет – это некое целое число, присваиваемое задаче и характеризующее ее важность по сравнению с другими задачами, выполняемыми в системе.
Приоритет используется в основном планировщиком задач для определения того, какая из готовых к работе задач должна получить управление. Различают системы с динамической и статической приоритетностью. В первом случае приоритет задач может меняться в процессе исполнения, в то время как во втором приоритет задач жестко задается на этапе разработки.
Состояние (статус) задачи. С точки зрения операционной системы, задача может находиться в нескольких состояниях. Число и название этих состояний различаются от одной ОС к другой. Тем не менее, практически в любой ОСРВ загруженная на выполнение задача может находиться, по крайней мере, в следующих состояниях:
Состояние задачи | Состояние программы | Состояние процессора |
Порождение | Подготовка условий для первого исполнения программы на процессоре | Дешифрация команд и определение дальнейших действий процессора |
Активное состояние | Исполнение программы на процессоре | Выполнение последовательности команд, инициированных программой |
Блокировка | Программа не исполняется | Готов к выполнению программы |
Готовность | Программа не исполняется | Не предоставлен как ресурс в текущий момент времени |
· порождение — подготавливаются условия для первого выполнения задачи на процессоре. В этот момент процессор читает заголовок программы (расширение файла) и в зависимости от прочитанного определяет свои дальнейшие действия в строгом соответствии со своей системой команд. Фактически происходит дешифрация команд.
· активное состояние – задача, выполняется системой в текущей момент времени;
· блокировка – выполнение задачи приостановлено до наступления определенных событий. Такими событиями могут быть ожидание освобождения необходимого задаче ресурса.
Попытка увеличить масштаб графического изображения не имеет успеха до момента полного освобождения видеопамяти от предыдущего графического объекта, отображаемого в этот момент на экране, хотя ЦП, выполняющий эту команду – свободен.
· готовая задача – это задача, готовая к выполнению и ожидающая у планировщика своей «очереди». Для исполнения предоставлены все ресурсы кроме ЦП.
Процессы и потоки.
Принято различать две разновидности задач: процессы и потоки.
Выполнение задачи реализуется в вычислительной системе запуском не менее одного процесса. Связь понятий задача и процесс: можно говорить, что задача - это один или несколько процессов, обеспечивающих достижение поставленных пользователем целей.
Ниже приведено несколько определений понятия процесс, отражающих различные стороны этого понятия.
¨ Процесс – отдельный загружаемый программный модуль (файл) который, как правило, во время исполнения имеет в памяти свои независимые области для команд и данных.
¨ С точки зрения ОС, процесс – единица работы, заявка на потребление системных ресурсов.
¨ Процесс – объект, которому выделяется процессорное время.
Исходя из этого, процесс определяют как выполняемую программу. Процесс - это программа во время ее выполнения. Всякая программа становится процессом, когда начинает выполняться в ЭВМ.
Процессу принадлежат адресное пространство и выделенные ресурсы, а так же один или более потоков, выполняющихся в его контексте.
Дата добавления: 2015-08-02; просмотров: 141 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ресурсы автоматизированных систем, классификация. Роль операционной системы в распределении ресурсов. | | | Итак, процесс состоит из виртуальной памяти, исполняемого кода, потоков и данных. Процесс может содержать много потоков, но обязательно содержит, по крайней мере, один. |