Скачать презентацию Процессы и потоки Многозадачность ОС Многозадачность Скачать презентацию Процессы и потоки Многозадачность ОС Многозадачность

Процессы и потоки_1.pptx

  • Количество слайдов: 44

Процессы и потоки Процессы и потоки

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

Многозадачность ОС • Организация вычислительного процесса характеризуется несколькими критериями эффективности: – Пропускная способность – Многозадачность ОС • Организация вычислительного процесса характеризуется несколькими критериями эффективности: – Пропускная способность – количество выполняемых задач в единицу времени; – Удобство работы пользователя – Реактивность системы – способность системы выдерживать промежутки времени между запуском программы и получением результата.

Классификация многозадачных операционных систем • Операционные системы по типу организации многозадачности делятся на: – Классификация многозадачных операционных систем • Операционные системы по типу организации многозадачности делятся на: – Системы пакетной обработки – Системы разделения времени (интерактивные системы) – Системы реального времени.

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

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

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

Системы разделения времени • Всем приложениям попеременно выделяется некоторый квант процессорного времени. • Пользователь Системы разделения времени • Всем приложениям попеременно выделяется некоторый квант процессорного времени. • Пользователь получает возможность поддерживать диалог с запущенным приложением. • Достоинство данных систем – удобство работы пользователя. Каждый пользователь получает терминал для управления работой приложений. • Недостаток – меньшая пропускная способность операционных систем.

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

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

Мультипроцессорная обработка • Мультипроцессорная обработка – способ организации вычислительного процесса в системах с несколькими Мультипроцессорная обработка • Мультипроцессорная обработка – способ организации вычислительного процесса в системах с несколькими процессорами (разделение процедуры обработки на разных процессорах). • Современные серверные ОС включают поддержку мультипроцессорной обработки – Sun Solaris, IBM OS/2, Novell Net. Ware, Microsoft Windows.

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

Способы мультипроцессорной обработки • Симметричная архитектура мультипроцессорной системы – система включает набор однородных процессоров Способы мультипроцессорной обработки • Симметричная архитектура мультипроцессорной системы – система включает набор однородных процессоров (как правило, 2 -4 -8 -16 и т. д. ), единообразно включенных в общую схему. • Симметричные мультипроцессорные системы разделяют общую оперативную память между всеми процессорами. • Масштабирование в симметричных системах ограничено.

Способы мультипроцессорной обработки • Асимметричная архитектура – система включающая разные типы процессоров (как по Способы мультипроцессорной обработки • Асимметричная архитектура – система включающая разные типы процессоров (как по характеристикам, так и функциональной роли). • Функциональная неоднородность асимметричных систем приводит к структурным отличиям во фрагментах системы. • Масштабирование ассиметричных систем выполняется по горизонтали. • Каждое устройство называется кластером, а система – кластерной.

ПОТОКИ И ПРОЦЕССЫ ПОТОКИ И ПРОЦЕССЫ

ПРОЦЕССЫ ПРОЦЕССЫ

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

Понятие процесса • С каждым процессом связывается: – его адресное пространство, из которого он Понятие процесса • С каждым процессом связывается: – его адресное пространство, из которого он может читать и в которое он может писать данные. – набор регистров • Адресное пространство содержит: – саму программу – данные к программе – стек программы • Набор регистров: – счетчика команд (в процессоре). – указатель стека – и д. р.

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

Состояния процесса Рождение Ожидание Событие произошло Допуск к планированию Готовность Прерывание Ожидание события Исполнение Состояния процесса Рождение Ожидание Событие произошло Допуск к планированию Готовность Прерывание Ожидание события Исполнение Выбран для исполнения Завершение работы Закончил исполнение

Набор операций над процессами • Операции можно объединить в три пары: – одноразовые операции Набор операций над процессами • Операции можно объединить в три пары: – одноразовые операции одноразовые 1. создание процесса – завершение процесса; – многоразовые операции: ногоразовые 2. приостановка процесса (перевод из состояния исполнение в состояние готовность) – запуск процесса (перевод из состояния готовность в состояние исполнение); 3. блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность).

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

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

Контекст процесса • В любой момент времени процесс полностью характеризуется своим контекстом. • Контекст Контекст процесса • В любой момент времени процесс полностью характеризуется своим контекстом. • Контекст процесса можно подразделить на три части: – Регистровый контекст процесса (содержимое всех регистров процессора) – Пользовательский контекст (код и данные, находящиеся в адресном пространстве процесса) – Системный контекст процесса (вся остальная информация по процессу)

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

Одноразовые операции. Рождение процессов • Процесс, инициировавший создание нового процесса, принято называть процессомродителем (parent Одноразовые операции. Рождение процессов • Процесс, инициировавший создание нового процесса, принято называть процессомродителем (parent process), а вновь созданный процесс – процессом-ребенком (child process). • Процессы-дети могут в свою очередь порождать новых детей и т. д. , образуя иерархию. • В UNIX-системах заложена жесткая иерархия процессов, прародителем всех процессов является процесс init. • В Windows понятия иерархии процессов не существует.

Одноразовые операции. Завершение процессов • После того как процесс завершил свою работу, ОС переводит Одноразовые операции. Завершение процессов • После того как процесс завершил свою работу, ОС переводит его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы, делая соответствующие записи в блоке управления процессом. • При этом сам блок управления процессом не уничтожается, а остается в системе еще некоторое время. • В ряде ОС (например, в VAX/VMS) гибель процессародителя приводит к завершению работы всех его «детей» . • В других ОС процессы-дети продолжают свое существование и после окончания работы процессародителя.

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

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

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

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

Переключение контекста • Время, затраченное на переключение контекста представляет собой накладные расходы, снижающие производительность Переключение контекста • Время, затраченное на переключение контекста представляет собой накладные расходы, снижающие производительность системы (обычно колеблется от 1 до 1000 мкс). • Существенно сократить накладные расходы в современных ОС позволяет расширенная модель процессов, включающая в себя понятие threads of execution (нити исполнения или просто нити).

ПОТОКИ ПОТОКИ

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

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

Потоки Потоки

Модель потока С каждым потоком связывается: – Счетчик выполнения команд – Регистры для текущих Модель потока С каждым потоком связывается: – Счетчик выполнения команд – Регистры для текущих переменных – Стек – Состояние Потоки делят между собой элементы своего процесса: § Адресное пространство § Глобальные переменные § Открытые файлы § Таймеры § Семафоры § Статистическую информацию

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

Реализация потоков Реализация потоков

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

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

Реализация потоков в пространстве ядра Преимущества: • Управление потоками в ядре не требует новых Реализация потоков в пространстве ядра Преимущества: • Управление потоками в ядре не требует новых неблокирующих системных запросов. • При блокировке потока, ядро запускает другой поток в состоянии готовности из этого же процесса. Основной недостаток - существенная цена системных запросов

Смешанная реализация Смешанная реализация