Содержание
- 2. Одной из основных подсистем мультипрограммной ОС является подсистема управления процессами и потоками, которая занимается их созданием
- 3. Хотя потоки возникают и выполняются асинхронно, у них может возникнуть необходимость во взаимодействии, например при обмене
- 4. Понятия «процесс» и «поток» Чтобы поддерживать мультипрограммирование, ОС должна определить и оформить для себя те внутренние
- 5. При использовании этих терминов часто возникают сложности в силу нескольких причин. Во-первых, — специфика различных ОС,
- 6. И с процессом, и с потоком связывается определенный программный код, который оформляется в виде исполняемого модуля.
- 7. Создание потоков требует от ОС меньших накладных расходов, чем процессов. В отличие от процессов, которые принадлежат
- 8. Создание процессов и потоков Создать процесс — это прежде всего означает создать описатель процесса, т. е.
- 9. Планирование и диспетчеризация потоков На протяжении существования процесса выполнение его потоков может быть многократно прервано и
- 10. Диспетчеризация заключается в реализации найденного в результате планирования решения, то есть в переключении процессора с одного
- 11. Состояния потока ОС выполняет планирование потоков, принимая во внимание их состояние. В мультипрограммной системе поток может
- 12. Рис. 4.3. Граф состояний потока в многозадачной среде Только что созданный поток находится в состоянии готовности,
- 13. Рис. 4.4. Очередь потоков В состоянии выполнения в однопроцессорной системе может находиться не более одного потока,
- 14. Вытесняющие и невытесняющие алгоритмы планирования С самых общих позиций все множество алгоритмов планирования можно разделить на
- 15. Рис. 4.5. Схема планирования потоков в NetWare
- 16. Алгоритмы планирования, основанные на квантовании В основе многих вытесняющих алгоритмов планирования лежит концепция квантования. В соответствии
- 17. Рис. 4.6. Граф состояний потока в системе с квантованием Поток, который исчерпал свой квант, переводится в
- 18. Рис. 4.7. Иллюстрация расчета времени ожидания в очереди Кванты, выделяемые потокам, могут быть одинаковыми для всех
- 19. Рис. 4.8. Квантование с предпочтением потоков, интенсивно обращающихся к вводу-выводу Потоки получают для выполнения квант времени,
- 20. Алгоритмы планирования, основанные на приоритетах Другой важной концепцией, лежащей в основе многих вытесняющих алгоритмов планирования, является
- 21. Рис. 4.9. Схема назначения приоритетов в Windows NT Рассмотрим схему назначения приоритетов потокам, принятую в операционной
- 22. Рис. 4.10. Графы состояний потоков в системах с относительными и абсолютными приоритетами В системах с относительными
- 23. Смешанные алгоритмы планирования Во многих операционных системах алгоритмы планирования построены с использованием как концепции квантования, так
- 24. Планирование в системах реального времени В системах реального времени, в которых главным критерием эффективности является обеспечение
- 25. Моменты перепланировки Для реализации алгоритма планирования ОС должна получать управление всякий раз, когда в системе происходит
- 26. Рис. 4.11. Моменты перепланировки потоков На рис. 4.11 показан фрагмент временной диаграммы работы планировщика в системе,
- 27. Кто Я? Существуют две альтернативы: Яи – Вечный закон Вечного творения; ял – временный результат Вечного
- 31. Скачать презентацию
Одной из основных подсистем мультипрограммной ОС является подсистема управления процессами
Одной из основных подсистем мультипрограммной ОС является подсистема управления процессами
Лекция №7
Планирование процессов и потоков
Хотя потоки возникают и выполняются асинхронно, у них может возникнуть
Хотя потоки возникают и выполняются асинхронно, у них может возникнуть
Понятия «процесс» и «поток»
Чтобы поддерживать мультипрограммирование, ОС должна определить и
Понятия «процесс» и «поток»
Чтобы поддерживать мультипрограммирование, ОС должна определить и
При использовании этих терминов часто возникают сложности в силу нескольких
При использовании этих терминов часто возникают сложности в силу нескольких
И с процессом, и с потоком связывается определенный программный код,
И с процессом, и с потоком связывается определенный программный код,
В операционных системах, где существуют и процессы, и потоки, процесс рассматривается операционной системой как заявка на потребление всех видов ресурсов, кроме одного — процессорного времени. Этот последний важнейший ресурс распределяется операционной системой между другими единицами работы — потоками, которые представляют собой последовательности (потоки выполнения) команд.
В простейшем случае процесс состоит из одного потока. В таких системах понятие «поток» полностью поглощается понятием «процесс». ОС обеспечивает каждый процесс отдельным виртуальным адресным пространством, так что ни один процесс не может получить прямого доступа к командам и данным другого процесса.
При необходимости взаимодействия процессы обращаются к операционной системе, которая, выполняя функции посредника, предоставляет им средства межпроцессной связи — конвейеры, почтовые ящики, разделяемые секции памяти и некоторые другие.
Однако в системах, в которых отсутствует понятие потока, возникают проблемы при организации параллельных вычислений в рамках процесса.
В чем отличия в понятиях «процесс» и «поток»?
Создание потоков требует от ОС меньших накладных расходов, чем процессов.
Создание потоков требует от ОС меньших накладных расходов, чем процессов.
Итак, мультипрограммирование более эффективно на уровне потоков, а не процессов.
Наибольший эффект от введения многопоточной обработки достигается в мультипроцессорных системах, в которых потоки, в том числе и принадлежащие одному процессу, могут выполняться на разных процессорах действительно параллельно (а не псевдопараллельно).
Создание процессов и потоков
Создать процесс — это прежде всего означает
Создание процессов и потоков
Создать процесс — это прежде всего означает
Создание процесса включает загрузку кодов и данных исполняемой программы данного процесса с диска в оперативную память. Затем необходимо считать программу в выделенные для нее участки памяти и, возможно, изменить параметры программы в зависимости от размещения в памяти. В системах с виртуальной памятью в начальный момент может загружаться только часть кодов и данных процесса, с тем чтобы «подкачивать» остальные по мере необходимости. Существуют системы, в которых на этапе создания процесса не требуется непременно загружать коды и данные в оперативную память, вместо этого исполняемый модуль копируется из того каталога файловой системы, в котором он изначально находился, в область подкачки — специальную область диска, отведенную для хранения кодов и данных процессов. При выполнении всех этих действий подсистема управления процессами тесно взаимодействует с подсистемой управления памятью и файловой системой.
В многопоточной системе при создании процесса ОС создает для каждого процесса как минимум один поток выполнения. При создании потока так же, как и при создании процесса, операционная система генерирует специальную информационную структуру — описатель потока, который содержит идентификатор потока, данные о правах доступа и приоритете, о состоянии потока и другую информацию.
Планирование и диспетчеризация потоков
На протяжении существования процесса выполнение его потоков
Планирование и диспетчеризация потоков
На протяжении существования процесса выполнение его потоков
Переход от выполнения одного потока к другому осуществляется в результате планирования и диспетчеризации. Работа по определению того, в какой момент необходимо прервать выполнение текущего активного потока и какому потоку предоставить возможность выполняться, называется планированием. ОС планирует выполнение потоков независимо от того, принадлежат ли они одному или разным процессам.
Планирование потоков, по существу, включает в себя решение двух задач:
● определение момента времени для смены текущего активного потока;
● выбор для выполнения потока из очереди готовых потоков.
Существует множество различных алгоритмов планирования потоков, по-своему решающих каждую из приведенных выше задач. Именно особенности реализации планирования потоков в наибольшей степени определяют специфику операционной системы, в частности, является ли она системой пакетной обработки, системой разделения времени или системой реального времени.
Диспетчеризация заключается в реализации найденного в результате планирования решения, то есть
Диспетчеризация заключается в реализации найденного в результате планирования решения, то есть
Диспетчеризация сводится к следующему:
● сохранение контекста текущего потока, который требуется сменить;
● загрузка контекста нового потока, выбранного в результате планирования;
● запуск нового потока на выполнение.
Состояния потока
ОС выполняет планирование потоков, принимая во внимание их состояние.
Состояния потока
ОС выполняет планирование потоков, принимая во внимание их состояние.
● выполнение — активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
● ожидание — пассивное состояние потока, находясь в котором, поток заблокирован по своим внутренним причинам (ждет осуществления некоторого события, например завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого-либо необходимого ему ресурса);
● готовность — также пассивное состояние потока, но в этом случае поток заблокирован в связи с внешним по отношению к нему обстоятельством (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).
Рис. 4.3. Граф состояний потока в многозадачной среде
Только что
Рис. 4.3. Граф состояний потока в многозадачной среде
Только что
Рис. 4.4. Очередь потоков
В состоянии выполнения в однопроцессорной системе может
Рис. 4.4. Очередь потоков
В состоянии выполнения в однопроцессорной системе может
Вытесняющие и невытесняющие алгоритмы планирования
С самых общих позиций все множество
Вытесняющие и невытесняющие алгоритмы планирования
С самых общих позиций все множество
● Невытесняющие (non-preemptive) алгоритмы основаны на том, что активному потоку позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению поток.
● Вытесняющие (preemptive) алгоритмы — это такие способы планирования потоков, в которых решение о переключении процессора с выполнения одного потока на выполнение другого потока принимается операционной системой, а не активной задачей.
Основным различием между вытесняющими и невытесняющими алгоритмами является степень централизации механизма планирования потоков. При вытесняющем мультипрограммировании функции планирования потоков целиком сосредоточены в операционной системе и программист пишет свое приложение, не заботясь о том, что оно будет выполняться одновременно с другими задачами. При этом операционная система выполняет следующие функции: определяет момент снятия с выполнения активного потока, запоминает его контекст, выбирает из очереди готовых потоков следующий, запускает новый поток на выполнение, загружая его контекст.
Рис. 4.5. Схема планирования потоков в NetWare
Рис. 4.5. Схема планирования потоков в NetWare
Алгоритмы планирования, основанные на квантовании
В основе многих вытесняющих алгоритмов планирования лежит
Алгоритмы планирования, основанные на квантовании
В основе многих вытесняющих алгоритмов планирования лежит
■ поток завершился и покинул систему;
■ произошла ошибка;
■ поток перешел в состояние ожидания;
■ исчерпан квант процессорного времени, отведенный данному потоку.
Рис. 4.6. Граф состояний потока в системе с квантованием
Поток,
Рис. 4.6. Граф состояний потока в системе с квантованием
Поток,
Рис. 4.7. Иллюстрация расчета времени ожидания в очереди
Кванты, выделяемые потокам,
Рис. 4.7. Иллюстрация расчета времени ожидания в очереди
Кванты, выделяемые потокам,
Рис. 4.8. Квантование с предпочтением потоков, интенсивно обращающихся к вводу-выводу
Потоки получают
Рис. 4.8. Квантование с предпочтением потоков, интенсивно обращающихся к вводу-выводу
Потоки получают
Алгоритмы планирования, основанные на приоритетах
Другой важной концепцией, лежащей в основе
Алгоритмы планирования, основанные на приоритетах
Другой важной концепцией, лежащей в основе
Приоритет может выражаться целым или дробным, положительным или отрицательным значением. В некоторых ОС принято, что приоритет потока тем выше, чем больше (в арифметическом смысле) число, обозначающее приоритет. В других системах, наоборот, чем меньше число, тем выше приоритет.
Рис. 4.9. Схема назначения приоритетов в Windows NT
Рассмотрим схему назначения
Рис. 4.9. Схема назначения приоритетов в Windows NT
Рассмотрим схему назначения
Рис. 4.10. Графы состояний потоков в системах с относительными и абсолютными
Рис. 4.10. Графы состояний потоков в системах с относительными и абсолютными
В системах с относительными приоритетами (рис. 4.10) активный поток выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ожидания (или же произойдет ошибка, или поток завершится).
В системах с абсолютными приоритетами выполнение активного потока прерывается кроме указанных выше причин, еще при одном условии: если в очереди готовых потоков появился поток, приоритет которого выше приоритета активного потока. В этом случае прерванный поток переходит в состояние готовности (рис. 4.10, б).
Смешанные алгоритмы планирования
Во многих операционных системах алгоритмы планирования построены с
Смешанные алгоритмы планирования
Во многих операционных системах алгоритмы планирования построены с
Планирование в системах реального времени
В системах реального времени, в которых главным
Планирование в системах реального времени
В системах реального времени, в которых главным
Моменты перепланировки
Для реализации алгоритма планирования ОС должна получать управление всякий
Моменты перепланировки
Для реализации алгоритма планирования ОС должна получать управление всякий
● Прерывание от таймера, сигнализирующее, что время, отведенное активной задаче на выполнение, закончилось. Планировщик переводит задачу в состояние готовности и выполняет перепланирование.
● Активная задача выполнила системный вызов, связанный с запросом на ввод-вывод или на доступ к ресурсу, который в настоящий момент занят (например, файл данных). Планировщик переводит задачу в состояние ожидания и выполняет перепланирование.
● Активная задача выполнила системный вызов, связанный с освобождением ресурса. Планировщик проверяет, не ожидает ли этот ресурс какая-либо задача. Если да, то эта задача переводится из состояния ожидания в состояние готовности. При этом, возможно, что задача, которая получила ресурс, имеет более высокий приоритет, чем текущая активная задача. После перепланирования более приоритетная задача получает доступ к процессору, вытесняя текущую задачу.
● Внешнее (аппаратное) прерывание1, которое сигнализирует о завершении периферийным устройством операции ввода-вывода, переводит соответствующую задачу в очередь готовых, и выполняется планирование.
● Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения активной задачи. Планировщик снимает задачу и выполняет перепланирование.
Рис. 4.11. Моменты перепланировки потоков
На рис. 4.11 показан фрагмент
Рис. 4.11. Моменты перепланировки потоков
На рис. 4.11 показан фрагмент
Первые четыре цикла работы планировщика, приведенные на рисунке, были инициированы прерываниями от таймера по истечении квантов времени (Т).
Следующая передача управления планировщику была осуществлена в результате выполнения потоком 3 системного запроса на ввод-вывод (событие I/O). Планировщик перевел этот поток в состояние ожидания, а затем переключил процессор на поток 2. Поток 2 полностью использовал свой квант, произошло прерывание от таймера, и планировщик активизировал поток 1. При выполнении потока 1 произошло событие R — системный вызов, в результате которого освободился некоторый ресурс (например, был закрыт файл).
Кто Я?
Существуют две альтернативы:
Яи – Вечный закон Вечного творения;
ял
Кто Я?
Существуют две альтернативы:
Яи – Вечный закон Вечного творения;
ял
творения.
Есть свобода выбора:
Что Человек выбирает тем и становится!
Важнее исследовать базовые принципы организации Операционных Систем чем конкретную её реализация