Четверг, 13.12.2018
VSSIT
Меню сайта
Мини-чат
К списку вопросов

Задания, задачи, процессы, потоки, волокна

 Задания
– требования пользователя на выполнение некоторого объёма
вычислительных работ. Каждое задание реализуется как определенная
совокупность программ, т.е. задач.

Задание – отклик системы на запрос пользователя

При управлении ресурсами (заданиями), ОС осуществляет
предварительное планирование потока заданий, статическое распределение
ресурсов между одновременно выполняемыми заданиями. К этим ресурсам
относятся:

  • Память (оперативная, внешняя, дисковая)
  • Устройства монопольного использования

Такие ресурсы закрепляются за заданием с момента его
инициализации до момента его завершения. Такое управление называется
мониторингом, а осуществляющие его выполнение – мониторами.

Управление динамическими ресурсами динамически распределяет
ресурсы между задачами решаемыми одновременно. Динамическое управление
выполняет супервизор.

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

Основные аппаратные ресурсы, подлежащие управлению

  • Время работы ЦП
  • Адресное пространство основной памяти
  • Оборудование вв/выв
  • Файлы во внешней памяти

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


  • Порождение – подготавливаются условия для первого выполнения на ЦП
  • Активное состояние – программа выполняется
  • Ожидание – программа не выполняется на ЦП по причине занятости ресурса
  • Готовность – программа не выполняется, но для неё представлены все ресурсы кроме времени процессора
  • Окончание – нормально или аварийное завершение выполнения программы

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

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

  • Крупные (процесс или задача)
  • Менее крупные (поток или нить) (процесс выполняется в виде одного или нескольких потоков)
  • Более крупные (задание или набор из одного или нескольких процессов, управляемых как единое целое)

С каждым заданием связаны квоты и лимиты ресурсов.

  • Максимальное количество процессов в задании
  • Суммарное время ЦП для каждого процесса и всего задания
  • Максимальное количество используемой памяти для каждого процесса и всего задания

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

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

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

Задание – набор процессов с общими квотами и лимитами.

Процесс – контейнер для ресурсов и потоков

Поток – исполнение кода в процессе

Волокно – облегченный поток, полностью управляемый в пространстве пользователя

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

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

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

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

Форма входа
Поиск
Друзья сайта
Статистика
Copyright MyCorp © 2018
Создать бесплатный сайт с uCoz