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

Управление задачами и памятью в ОС

Jan 09, 2016

Download

Documents

seamus

Управление задачами и памятью в ОС. Способы распределения времени центрального процессора сильно влияют и на скорость выполнения отдельных вычислений, и на общую эффективность вычислительной системы. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

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

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

Page 2: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Здесь не будем стараться разделять понятия Здесь не будем стараться разделять понятия процесс (процесс (processprocess) и поток () и поток (threadthread), вместо ), вместо этого используя обобщающий термин этого используя обобщающий термин task task (задача).(задача).

Операционная система выполняет Операционная система выполняет следующие основные функции, связан ные с следующие основные функции, связан ные с управлением задачами:управлением задачами: создание и удаление задач;создание и удаление задач; планирование процессов и диспетчеризация планирование процессов и диспетчеризация

задач;задач; синхронизация задач, обеспечение их средствами синхронизация задач, обеспечение их средствами

коммуникации.коммуникации.

Page 3: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Создание и удаление задач осуществляется Создание и удаление задач осуществляется по соответствующим запросам от по соответствующим запросам от пользователей или от самих задач. пользователей или от самих задач.

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

Page 4: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Задача может породить новую задачу. Задача может породить новую задачу. При этом между процессами При этом между процессами появляются «родственные» отношения. появляются «родственные» отношения. Порождающая задача называется Порождающая задача называется «предком», «родителем», а «предком», «родителем», а порожденная — «потомком», «сыном» порожденная — «потомком», «сыном» или «дочерней задачей». «Предок» или «дочерней задачей». «Предок» может приостановить или удалить свою может приостановить или удалить свою дочер нюю задачу, тогда как «потомок» дочер нюю задачу, тогда как «потомок» не может управлять «предком». не может управлять «предком».

Page 5: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Если подобрать набор таких процессов, которые Если подобрать набор таких процессов, которые не будут конкурировать между собой за не будут конкурировать между собой за неразделяемые ресурсы при параллельном неразделяемые ресурсы при параллельном выполнении, то, скорее всего, процессы смогут выполнении, то, скорее всего, процессы смогут выполниться быстрее (из-за отсутствия выполниться быстрее (из-за отсутствия дополнительных ожиданий), да и имеющиеся в дополнительных ожиданий), да и имеющиеся в системе ресурсы будут использоваться более системе ресурсы будут использоваться более эффективно. эффективно.

Задача подбора такого множества процессов, что Задача подбора такого множества процессов, что при выполнении они будут как можно реже при выполнении они будут как можно реже конфликтовать из-за имеющихся в системе конфликтовать из-за имеющихся в системе ресурсов, называется ресурсов, называется планированием планированием вычислительных процессов.вычислительных процессов.

Page 6: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Задача планирования процессов возникла очень Задача планирования процессов возникла очень давно — в первых пакетных ОС. В настоящее давно — в первых пакетных ОС. В настоящее время актуальность этой задачи не так велика. время актуальность этой задачи не так велика.

На первый план вышли задачи динамического На первый план вышли задачи динамического (или краткосрочного) планирования, то есть (или краткосрочного) планирования, то есть текущего наиболее эффективного текущего наиболее эффективного распределения ресурсов, возникающего распределения ресурсов, возникающего практически при каждом событии. Задачи практически при каждом событии. Задачи динамического планирования стали называть динамического планирования стали называть диспетчеризацией.диспетчеризацией.

ИногдаИногда диспетчеризацию называютдиспетчеризацию называют краткосрочным планированием.краткосрочным планированием.

Page 7: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Долгосрочный планировщик решает, какой из Долгосрочный планировщик решает, какой из процессов, находящихся во входной очереди, процессов, находящихся во входной очереди, должен быть переведен в очередь готовых должен быть переведен в очередь готовых процессов в случае освобождения ресурсов. процессов в случае освобождения ресурсов.

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

При рассмотрении стратегий планирования, При рассмотрении стратегий планирования, как правило, идет речь о краткосрочном как правило, идет речь о краткосрочном планировании, то есть о диспетчеризации. планировании, то есть о диспетчеризации.

Page 8: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

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

процессы) в том же самом порядке, в котором они были процессы) в том же самом порядке, в котором они были начаты;начаты;

отдавать предпочтение более коротким процессам;отдавать предпочтение более коротким процессам; предоставлять всем пользователям (процессам предоставлять всем пользователям (процессам

пользователей) одинаковые услуги, в том числе и пользователей) одинаковые услуги, в том числе и одинаковое время ожидания.одинаковое время ожидания.

Page 9: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Известно большое количество правил (дисциплин Известно большое количество правил (дисциплин диспетчеризации), в соответствии с которыми диспетчеризации), в соответствии с которыми формируется список (очередь) готовых к формируется список (очередь) готовых к выполнению задач, различают два больших класса выполнению задач, различают два больших класса дисциплин обслуживания — дисциплин обслуживания — бесприоритетные и бесприоритетные и приоритетные. приоритетные.

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

При реализации При реализации приоритетныхприоритетных дисциплин дисциплин обслуживания отдельным задачам обслуживания отдельным задачам предоставляется преимущественное право предоставляется преимущественное право попасть в состояние исполнения. попасть в состояние исполнения.

Page 10: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Page 11: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Рассмотрим кратко некоторые основные (наиболее Рассмотрим кратко некоторые основные (наиболее часто используемые) дисциплины диспетчеризации.часто используемые) дисциплины диспетчеризации.

Самой простой в реализации является Самой простой в реализации является дисциплина дисциплина FCFSFCFS ((first comefirst come — — first servedfirst served), согласно которой ), согласно которой задачи обслуживаются «в порядке очереди», то есть в задачи обслуживаются «в порядке очереди», то есть в порядке их появления. Те задачи, которые были порядке их появления. Те задачи, которые были заблокированы в процессе работы (попали в какое-заблокированы в процессе работы (попали в какое-либо из состояний ожидания, например, из-за либо из состояний ожидания, например, из-за операций ввода/вывода), после перехода в состояние операций ввода/вывода), после перехода в состояние готовности ставятся в эту очередь готовности перед готовности ставятся в эту очередь готовности перед теми задачами, которые еще не выполнялись. теми задачами, которые еще не выполнялись.

Другими словами, образуются две очереди (см. рис.): Другими словами, образуются две очереди (см. рис.): одна очередь образуется из новых задач, а вторая одна очередь образуется из новых задач, а вторая очередь - из ранее выполнявшихся, но попавших в очередь - из ранее выполнявшихся, но попавших в состояние ожидание. состояние ожидание.

Page 12: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Page 13: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

К достоинствам этой дисциплины, прежде всего, К достоинствам этой дисциплины, прежде всего, можно отнести простоту реализации и малые можно отнести простоту реализации и малые расходы системных ресурсов на формирование расходы системных ресурсов на формирование очереди задач.очереди задач.

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

Page 14: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Дисциплина обслуживания Дисциплина обслуживания SJNSJN ((shortest job nextshortest job next: : следующим будет выполняться кратчайшее задание) следующим будет выполняться кратчайшее задание) требует, чтобы для каждого задания была известна требует, чтобы для каждого задания была известна оценка в потребностях машинного времени. оценка в потребностях машинного времени. Необходимость сообщать ОС характеристики задач, в Необходимость сообщать ОС характеристики задач, в которых описывались бы потребности в ресурсах которых описывались бы потребности в ресурсах вычислительной системы, привела к тому, что были вычислительной системы, привела к тому, что были разработаны соответствующие языковые средства. разработаны соответствующие языковые средства.

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

Page 15: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Дисциплина обслуживания Дисциплина обслуживания SJN SJN предполагает, что предполагает, что имеется только одна очередь заданий, готовых к имеется только одна очередь заданий, готовых к выполнению. И задания, которые в процессе своего выполнению. И задания, которые в процессе своего исполнения были временно заблокированы (например, исполнения были временно заблокированы (например, ожидали завершения операций ввода/вывода), вновь ожидали завершения операций ввода/вывода), вновь попадают в конец очереди готовых к выполнению попадают в конец очереди готовых к выполнению наравне с вновь поступающими. наравне с вновь поступающими.

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

Для устранения этого недостатка и была предложена Для устранения этого недостатка и была предложена дисциплина дисциплина SRTSRT ((shortest remaining timeshortest remaining time, следующее , следующее задание требует меньше всего времени для своего задание требует меньше всего времени для своего завершения).завершения).

Page 16: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Все эти три дисциплины обслуживания могут Все эти три дисциплины обслуживания могут использоваться для пакетных режимов обработки.использоваться для пакетных режимов обработки.

Для интерактивных же вычислений желательно Для интерактивных же вычислений желательно прежде всего обеспечить приемлемое время реакции прежде всего обеспечить приемлемое время реакции системы и равенство в обслуживании, если система системы и равенство в обслуживании, если система является мультитерминальной. является мультитерминальной.

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

Для решения подобных проблем используется Для решения подобных проблем используется дисциплина обслуживания, называемая RR (round дисциплина обслуживания, называемая RR (round robin, круговая, карусельная), и приоритетные robin, круговая, карусельная), и приоритетные методы обслуживания.методы обслуживания.

Page 17: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Дисциплина обслуживания RRДисциплина обслуживания RR предполагает, что каждая задача предполагает, что каждая задача получает процессорное время порциями (говорят: квантами получает процессорное время порциями (говорят: квантами времени, времени, Time sliceTime slice, , qq). После окончания кванта времени ). После окончания кванта времени qq задача задача снимается с процессора и он передается следующей задаче. снимается с процессора и он передается следующей задаче. Снятая задача ставится в конец очереди задач, готовых к Снятая задача ставится в конец очереди задач, готовых к выполнению. выполнению.

Для оптимальной работы системы необходимо правильно Для оптимальной работы системы необходимо правильно выбрать закон, по которому кванты времени выделяются задачам. выбрать закон, по которому кванты времени выделяются задачам.

Page 18: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Диспетчеризация без перераспределения Диспетчеризация без перераспределения процессорного времени, то есть процессорного времени, то есть не не вытесняющая многозадачность вытесняющая многозадачность ((nonnon--preemptive multitaskingpreemptive multitasking) — это такой способ ) — это такой способ диспетчеризации процессов, при котором диспетчеризации процессов, при котором активный процесс выполняется до тех пор, активный процесс выполняется до тех пор, пока он сам, «по собственной инициативе», пока он сам, «по собственной инициативе», не отдаст управление диспетчеру задач для не отдаст управление диспетчеру задач для выбора из очереди другого, готового к выбора из очереди другого, готового к выполнению процесса или треда.выполнению процесса или треда.

Дисциплины обслуживания Дисциплины обслуживания FCFSFCFS, , SJNSJN, , SRT SRT относятся к не вытесняющим.относятся к не вытесняющим.

Page 19: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Диспетчеризация с перераспределением процессорного Диспетчеризация с перераспределением процессорного времени между задачами, то есть времени между задачами, то есть вытесняющая вытесняющая многозадачность многозадачность ((preemptive multitaskingpreemptive multitasking) — это такой ) — это такой способ, при котором решение о переключении процессора с способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого выполнения одного процесса на выполнение другого процесса принимается диспетчером задач, а не самой процесса принимается диспетчером задач, а не самой активной задачей. активной задачей.

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

на выполнение, предварительно загрузив ее контекст. на выполнение, предварительно загрузив ее контекст. Дисциплина RR и многие другие, построенные на ее основе, Дисциплина RR и многие другие, построенные на ее основе,

относятся к вытесняющим.относятся к вытесняющим.

Page 20: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Качество диспетчеризации и гарантии Качество диспетчеризации и гарантии обслуживанияобслуживания

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

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

Page 21: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Более жестким требованием к системе, Более жестким требованием к системе, чем просто гарантированное чем просто гарантированное завершение процесса, является его завершение процесса, является его гарантированное завершение гарантированное завершение к к указанному моменту времени или за указанному моменту времени или за указанный интервал времени.указанный интервал времени.

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

Page 22: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Гарантировать обслуживание можно следующими Гарантировать обслуживание можно следующими тремя способами:тремя способами:

выделять минимальную долю процессорного выделять минимальную долю процессорного времени некоторому классу процессов, если по времени некоторому классу процессов, если по крайней мере один из них готов к исполнению. крайней мере один из них готов к исполнению. Например, можно отводить 20 % от каждых 10 мс Например, можно отводить 20 % от каждых 10 мс процессам реального времени, 40 % От каждых 2с — процессам реального времени, 40 % От каждых 2с — интерактивным процессам и 10 % от каждых 5 мин — интерактивным процессам и 10 % от каждых 5 мин — пакетным (фоновым) процессам;пакетным (фоновым) процессам;

выделять минимальную долю процессорного выделять минимальную долю процессорного времени некоторому конкретному процессу, если он времени некоторому конкретному процессу, если он готов к выполнению;готов к выполнению;

выделять столько процессорного времени выделять столько процессорного времени некоторому процессу, чтобы он мог выполнить свои некоторому процессу, чтобы он мог выполнить свои вычисления к сроку.вычисления к сроку.

Page 23: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Для сравнения алгоритмов диспетчеризации обычно Для сравнения алгоритмов диспетчеризации обычно используются следующие критерии:используются следующие критерии:

Использование (загрузка) центрального процессора Использование (загрузка) центрального процессора ((CPU utilizationCPU utilization). В большинстве персональных ). В большинстве персональных систем средняя загрузка процессора не превышает систем средняя загрузка процессора не превышает 2-3 %, доходя в моменты выполнения сложных 2-3 %, доходя в моменты выполнения сложных вычислений и до 100 %. В серверах, загрузка вычислений и до 100 %. В серверах, загрузка процессора колеблется в пределах 15-40 % для процессора колеблется в пределах 15-40 % для легко загруженного процессора и до 90-100 % — для легко загруженного процессора и до 90-100 % — для сильно загруженного процессора.сильно загруженного процессора.

Пропускная способность (Пропускная способность (CPU throughputCPU throughput). Может ). Может измеряться количеством процессов, которые измеряться количеством процессов, которые выполняются в единицу времени.выполняются в единицу времени.

Page 24: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Время оборота (Время оборота (turnaround timeturnaround time). Интервал от момента ). Интервал от момента появления процесса во входной очереди до момента его появления процесса во входной очереди до момента его завершения. Включает время ожидания во входной очереди, завершения. Включает время ожидания во входной очереди, время ожидания в очереди готовых процессов, время ожидания время ожидания в очереди готовых процессов, время ожидания в очередях к оборудованию, время выполнения в процессоре и в очередях к оборудованию, время выполнения в процессоре и время ввода/вывода.время ввода/вывода.

Время ожидания (Время ожидания (waiting timewaiting time). Под временем ожидания ). Под временем ожидания понимается суммарное время нахождения процесса в очереди понимается суммарное время нахождения процесса в очереди готовых процессов.готовых процессов.

Время отклика (Время отклика (response timeresponse time). Для интерактивных программ ). Для интерактивных программ важным пока зателем является время отклика или время, важным пока зателем является время отклика или время, прошедшее от момента попадания процесса во входную прошедшее от момента попадания процесса во входную очередь до момента первого обращения к терминалу. очередь до момента первого обращения к терминалу.

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

Page 25: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

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

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

Переключение на другой процесс в тот момент, когда Переключение на другой процесс в тот момент, когда текущий. процесс выполняет критическую секцию, а текущий. процесс выполняет критическую секцию, а другие процессы активно ожидают входа в свою другие процессы активно ожидают входа в свою критическую секцию. критическую секцию.

Page 26: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

В случае использования мультипроцессорных систем В случае использования мультипроцессорных систем применяются следующие методы повышения применяются следующие методы повышения производительности системы:производительности системы: совместное планирование, при котором все потоки совместное планирование, при котором все потоки

одного приложения (не блокированные) одного приложения (не блокированные) одновременно выбираются для выполнения одновременно выбираются для выполнения процессорами и одновременно снимаются с них процессорами и одновременно снимаются с них (для сокращения переключений контекста);(для сокращения переключений контекста);

планирование, при котором находящиеся в планирование, при котором находящиеся в критической секции задачи не прерываются, а критической секции задачи не прерываются, а активно ожидающие входа в критическую секцию активно ожидающие входа в критическую секцию задачи не выбираются до тех пор, пока вход в задачи не выбираются до тех пор, пока вход в секцию не освободится;секцию не освободится;

планирование с учетом так называемых «советов» планирование с учетом так называемых «советов» программы (во время ее выполнения). программы (во время ее выполнения).

Page 27: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Диспетчеризация задач с использованием динамических Диспетчеризация задач с использованием динамических приоритетовприоритетов

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

Потери, связанные с невыполнением таких задач, могут Потери, связанные с невыполнением таких задач, могут оказаться больше, чем потери от невыполнения программ с оказаться больше, чем потери от невыполнения программ с более высоким приоритетом. При этом оказывается более высоким приоритетом. При этом оказывается целесообразным временно изменить приоритет «аварийных» целесообразным временно изменить приоритет «аварийных» задач (для которых истекает отпущенное для них время задач (для которых истекает отпущенное для них время обработки). После выполнения этих задач их приоритет обработки). После выполнения этих задач их приоритет восстанавливается. восстанавливается.

Поэтому почти в любой ОС реального времени имеются Поэтому почти в любой ОС реального времени имеются средства для изменения приоритета программ (средства для изменения приоритета программ (Dynamic priority Dynamic priority variationvariation.) .)

Page 28: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Рассмотрим, например, как реализован Рассмотрим, например, как реализован механизм динамических приоритетов в ОС механизм динамических приоритетов в ОС UNIXUNIX..

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

происходит планирование, и происходит планирование, и заказанный заказанный относительный приоритет.относительный приоритет.

Page 29: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Текущий приоритет процесса варьируется в Текущий приоритет процесса варьируется в диапазоне от 0 (низкий приоритет) до 127 диапазоне от 0 (низкий приоритет) до 127 (наивысший приоритет). (наивысший приоритет).

Процессы, выполняющиеся в режиме задачи, Процессы, выполняющиеся в режиме задачи, имеют более низкий приоритет, чем в режиме имеют более низкий приоритет, чем в режиме ядра. Для режима задачи приоритет ядра. Для режима задачи приоритет меняется в диапазоне 0-65, для режима ядра меняется в диапазоне 0-65, для режима ядра — 66-95 (системный диапазон). — 66-95 (системный диапазон).

Процессы, приоритеты которых лежат в Процессы, приоритеты которых лежат в диапазоне 96-127, являются процессами с диапазоне 96-127, являются процессами с фиксированным приоритетом, не фиксированным приоритетом, не изменяемым операционной системой.изменяемым операционной системой.

Page 30: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

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

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

После завершения системного вызова перед возвращением в После завершения системного вызова перед возвращением в режим задачи ядро восстанавливает приоритет режима задачи, режим задачи ядро восстанавливает приоритет режима задачи, сохраненный перед выполнением системного вызова. Это сохраненный перед выполнением системного вызова. Это может привести к понижению приоритета, что, в свою очередь, может привести к понижению приоритета, что, в свою очередь, вызовет переключение контекста.вызовет переключение контекста.

Page 31: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

В В Windows NT Windows NT каждый поток (тред) имеет базовый каждый поток (тред) имеет базовый уровень приоритета, который лежит в диапазоне от уровень приоритета, который лежит в диапазоне от двух уровней ниже базового приоритета процесса, двух уровней ниже базового приоритета процесса, его породившего, до двух уровней выше этого его породившего, до двух уровней выше этого приоритета, как показано на рис. приоритета, как показано на рис.

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

Page 32: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

На рис. показан динамический приоритет потока, нижней На рис. показан динамический приоритет потока, нижней границей которого является базовый приоритет потока, а границей которого является базовый приоритет потока, а верхняя — зависит от вида работ, исполняемых потоком.верхняя — зависит от вида работ, исполняемых потоком.

Снижая приоритет одного процесса и поднимая приоритет Снижая приоритет одного процесса и поднимая приоритет другого, подсистемы могут управлять относительной другого, подсистемы могут управлять относительной приоритетностью потоков внутри процесса. приоритетностью потоков внутри процесса.

Page 33: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Windows NT Windows NT поддерживает 32 уровня приоритетов; поддерживает 32 уровня приоритетов; потоки делятся на два класса: реального времени и потоки делятся на два класса: реального времени и переменного приоритета. Потоки реального времени, переменного приоритета. Потоки реального времени, имеющие приоритеты от 16 до 31 — имеющие приоритеты от 16 до 31 — высокоприоритетные, используемыми программами с высокоприоритетные, используемыми программами с критическим временем выполнения, то есть критическим временем выполнения, то есть требующие немедленного внимания системы.требующие немедленного внимания системы.

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

Page 34: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

Большинство потоков в системе относятся к классу Большинство потоков в системе относятся к классу переменного приоритета с уровнями приоритета переменного приоритета с уровнями приоритета (номером очереди) от 1 до 15. Эти очереди (номером очереди) от 1 до 15. Эти очереди используются потоками с переменным приоритетом используются потоками с переменным приоритетом ((variable priorityvariable priority), так как диспетчер задач ), так как диспетчер задач корректирует их приоритеты по мере выполнения корректирует их приоритеты по мере выполнения задач для оптимизации отклика системы. задач для оптимизации отклика системы.

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

Page 35: Управление задачами и памятью в ОС

Управление задачами и Управление задачами и памятью в ОСпамятью в ОС

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

Так, например, поток, ожидавший ввода очередного Так, например, поток, ожидавший ввода очередного байта с клавиатуры, получает большую добавку к байта с клавиатуры, получает большую добавку к значению своего приоритета, чем процесс значению своего приоритета, чем процесс ввода/вывода, работавший с дисковым накопителем. ввода/вывода, работавший с дисковым накопителем. Однако в любом случае значение приоритета не Однако в любом случае значение приоритета не может достигнуть 16. может достигнуть 16.