К списку вопросов Задания, задачи, процессы, потоки, волокна Задания – требования пользователя на выполнение некоторого объёма вычислительных работ. Каждое задание реализуется как определенная совокупность программ, т.е. задач. Задание – отклик системы на запрос пользователя При управлении ресурсами (заданиями), ОС осуществляет предварительное планирование потока заданий, статическое распределение ресурсов между одновременно выполняемыми заданиями. К этим ресурсам относятся: - Память (оперативная, внешняя, дисковая)
- Устройства монопольного использования
Такие ресурсы закрепляются за заданием с момента его инициализации до момента его завершения. Такое управление называется мониторингом, а осуществляющие его выполнение – мониторами. Управление динамическими ресурсами динамически распределяет ресурсы между задачами решаемыми одновременно. Динамическое управление выполняет супервизор. Управление данными обеспечивает все операции вв/выв, организацию необходимых информационных структур с таблиц, управление файловой системой, управление прямым доступом к памяти, обработка ошибок вв/выв. Управления восстановлением обеспечивает регистрацию машинных сбоев и отказов и восстановление работоспособности системы. Основные аппаратные ресурсы, подлежащие управлению - Время работы ЦП
- Адресное пространство основной памяти
- Оборудование вв/выв
- Файлы во внешней памяти
Процесс – это целенаправленный акт обработки данных (выполняемая программа или программа в стадии выполнения). При выполнении программ различают следующие характерные состояния процессов: - Порождение – подготавливаются условия для первого выполнения на ЦП
- Активное состояние – программа выполняется
- Ожидание – программа не выполняется на ЦП по причине занятости ресурса
- Готовность – программа не выполняется, но для неё представлены все ресурсы кроме времени процессора
- Окончание – нормально или аварийное завершение выполнения программы
С каждым процессом связывается его адресное пространство. Всё функционирующее на компьютере ПО, включая ОС можно представить набором процессов. Наибольшие сложности в управлении ресурсами компьютера возникают в мультипрограммных ОС. Мультипрограммирование или многозадачность – такой способ организации вычислительного процесса, при котором на одном ЦП попеременно выполняются несколько программ. Для того чтобы поддерживать мультипрограммирование ОС должна определить внутренние единицы работы, которыми будет распределяться ЦП и другие ресурсы компьютера. В настоящее время в большинстве ОС существует 3 типа единиц работы: - Крупные (процесс или задача)
- Менее крупные (поток или нить) (процесс выполняется в виде одного или нескольких потоков)
- Более крупные (задание или набор из одного или нескольких процессов, управляемых как единое целое)
С каждым заданием связаны квоты и лимиты ресурсов. - Максимальное количество процессов в задании
- Суммарное время ЦП для каждого процесса и всего задания
- Максимальное количество используемой памяти для каждого процесса и всего задания
Процессорное время наиболее часто распределяется между потоками. Потоки представляют собой последовательности выполнения команд. Каждый процесс начинается с одного потока, но новые потоки могут выполняться процессором динамически. В простейшем случае процесс состоит из одного потока. Процесс завершится, когда прекратит своё существование последний поток. На переключение потоков в ОС затрачивается достаточно много времени (из режима пользователя в режим ядра и обратно). Используется облегченный параллелизм, чтобы это избежать (применяется без переключения с использованием так называемых волокон). Волокна подобны потокам, но планируются в пространстве пользователя, создавшей их программой. У каждого потока может быть несколько волокон, с той разницей, что когда волокно блокируется, оно помещается в очередь блокированных волокон. После чего для работы выбирается другие волокна в составе этого же потока. При этом ОС не знает ничего о смене волокон, так как все тот же поток выполняет работу. Задание – набор процессов с общими квотами и лимитами. Процесс – контейнер для ресурсов и потоков Поток – исполнение кода в процессе Волокно – облегченный поток, полностью управляемый в пространстве пользователя Работа вычислительной системы заключена в выполнении некоторой программы, поэтому и с процессом и с поток связывается некий программный код, оформляемый в виде исполнительного модуля. Процессы общаются между собой через ОС. Это долго и трудно. Необходимо распараллеливать работу в рамках одного приложения (одной задачи). Тогда для одного приложения придётся создавать несколько процессов, однако в этом случае при использовании стандартных средств ОС не учитывается то что: - Процессы решают общую задачу
- Процессы работают с одними и теме же данными
- Процессы используют одно и то же право доступа к ресурсам
- ОС рассматривает такие связанные процессы, как обыкновенные и
изолирует их друг от друга. Это затрудняет обмен. На создание каждого процесса ОС тратит системные ресурсы, которые неоправданно дублируются. Вывод: необходимо применять многопоточную обработку. Это другой другой механизм по сравнению с многопрограммным. Этот механизм учитывает тесные связи между отдельными ветвями вычислений одного и того же приложения
|