Учебный курс Операционные среды, системы и оболочки Лекция 5 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович
Мультипрограммирование в системах разделения времени 123…n Центральный процессор T КВ = 0,02 мс Мультипрограммирование в системах реального времени 1.Управление техническими объектами, технологическими процессами, системами обслуживания и т. п. 2.Фиксированный набор заранее разработанных задач. 3.Жесткие ограничения на время обслуживания. 4.Режим типа запрос – ответ Мультипроцессорная обработка 1.Операционные системы : Windows NT/2000/2003, Sun Solaris 2/x, Santa Cruz Operations Open Server 3.x, OS/2 и др. 2.Симметричная архитектура и асимметричная архитектура.
Роль процессов, потоков и волокон в мультипрограммировании 1.Отдельный процесс не может быть выполнен быстрее, чем в однопрограммном режиме. 2.Сложно создать программу, реализующую параллелизм в рамках одного процесса. 3.Стандартные средства современных ОС не позволяют создать для одного приложения несколько процессов для параллельных работ. 4.Многопоточная обработка позволяет распараллелить вычисления в рамках одного процесса. 5.Многопоточная (multithreading) обработка эффективна в многопроцессорных вычислительных системах. 6.Использование аппарата волокон (Windows 2000) повышает эффективность мультипрограммирования за счет сокращения переключения процессов, но увеличивает трудоемкость разработки приложений.
Управление процессами и потоками Основные функции управления процессами и потоками 1.Создание процессов и потоков. 2.Обеспечение процессов и потоков необходимыми ресурсами. 3.Изоляция процессов. 4.Планирование выполнения процессов и потоков. 5.Диспетчеризация потоков. 6.Синхронизация процессов и потоков. 7.Завершение и уничтожение процессов и потоков. События, приводящие к созданию процессов: 1.Инициализация (загрузка) ОС. 2.Запрос процесса на создание дочернего процесса. 3.Запрос пользователя на создание процесса (например, при входе в систему в интерактивном режиме). 4.Инициирование пакетного задания. 5.Создание операционной системой процесса какой-либо службы.
Создание процессов и потоков. Модели процессов и потоков Процессы и их модели Образ процесса: программа, данные, стек и атрибуты процесса Информация Описание Данные пользователя Изменяемая часть пользовательского адресного пространства (данные программы, пользовательский стек и модифицируемый код) Пользовательская программа Программа, которую нужно выполнить Системный стек Один или несколько системных стеков для хранения параметров и адресов вызова процедур и системных служб Управляющий блок процесса Данные, необходимые ОС для управления процессом: 1) дескриптор процесса, 2) контекст процесса
6 Дескриптор процесса содержит: 1. Информацию по идентификации процесса ( идентификатор процесса, идентификатор пользователя, идентификаторы родительского и дочерних процессов). 2. Информацию по состоянию процесса 3. Информацию, используемую для управления процессом
7 Информация по состоянию и управлению процессом Состояние процесса, определяющее его готовность к выполнению (выполняющийся, готовый к выполнению, ожидающий события, приостановленный); Данные о приоритете (текущий, по умолчанию, максимально возможный); Информация о событиях – идентификация события, наступление которого позволит продолжить выполнение процесса; Указатели, позволяющие определить расположение образа процесса в оперативной памяти и на диске; Указатели на другие процессы (находящиеся в очереди на выполнение); Флаги,сигналы и сообщения, имеющие отношение к обмену информацией между двумя независимыми процессами; Данные о привилегиях, определяющие прав доступа к определенной области памяти или возможности выполнять определенные виды команд, использовать системные утилиты и службы; Указатели на ресурсы, которыми управляет процесс; Сведения по использованию ресурсов и процессора; Информация, связанная с планированием.
8 КОНТЕКСТ ПРОЦЕССА Содержимое регистров процессора, доступных пользователю (обычно 8 – 32 регистра и до 100 регистров в RISC – процессорах); Содержимое счетчика команд; Состояние управляющих регистров и регистров состояния; Коды условия, отражающие результат выполнения последней арифметической или логической операции (например, равенство нулю,переполнение); Указатели вершин стеков,хранящие параметры и адреса вызова процедур и системных служб. Значительная часть этой информации фиксируется в виде слова состояния программы PSW (program status word – EFLAGS в процессоре Pentium).
9 Простейшая модель процесса Диспетчеризация Пауза Не выполняется Выполняется ВходВыход CPU Вход Выход Очередь Пауза Диспетчеризация CPU Граф состояний и переходов t кв
10 Новый Готовый к выполнению Выполняю- щийся Вход в систему Ожидание Завершаю- щийся Освобо- ждение события Блокирова- нный CPU Поступление процесса Очередь готовых процессов Тайм – аут ( t КВ ) Ожидание события
Потоки и их модели Описатель потока : блок управления потоком и контекст потока (в многопоточной системе процессы контекстов не имеют). Способы реализации пакета потоков: в пространстве пользователя (user – level threads – ULT); в ядре (kernel – level threads – KLT).
12 Поток на уровне пользователя (в пользовательском пространстве) Процессы Пространство пользователя Потоки Ядро Таблица процессов Таблица потоков Библиотека подпрограмм для работы с потоками: thread_criate, thread_exit, thread_wait, thread_yield
13 Поток на уровне пользователя можно реализовать в ОС, не поддерживающей потоки без каких- либо изменений в ОС; можно реализовать в ОС, не поддерживающей потоки без каких- либо изменений в ОС; высокая производительность, поскольку процессу не нужно переключаться в режим ядра и обратно; высокая производительность, поскольку процессу не нужно переключаться в режим ядра и обратно; ядро о потоках ничего не знает и управляет однопоточными процессами; ядро о потоках ничего не знает и управляет однопоточными процессами; имеется возможность использования любых алгоритмов планирования потоков с учетом их специфики; имеется возможность использования любых алгоритмов планирования потоков с учетом их специфики; управление потоками возлагается на программу пользователя. управление потоками возлагается на программу пользователя. ДОСТОИНСТВА:
14 Поток на уровне пользователя Поток на уровне пользователя НЕДОСТАТКИ: НЕДОСТАТКИ: системный вызов блокирует не только работающий поток, но и все потоки того процесса, к которому он относится; системный вызов блокирует не только работающий поток, но и все потоки того процесса, к которому он относится; приложение не может работать в многопроцессорном режиме, так как ядро закрепляет за каждым процессом только один процессор; приложение не может работать в многопроцессорном режиме, так как ядро закрепляет за каждым процессом только один процессор; при запуске одного потока ни один другой поток а рамках одного процесса не будет запущен пока первый добровольно не отдаст процессор; при запуске одного потока ни один другой поток а рамках одного процесса не будет запущен пока первый добровольно не отдаст процессор; внутри одного потока нет прерываний по таймеру, в результате чего невозможно создать планировщик по таймеру для поочередного выполнения потоков. внутри одного потока нет прерываний по таймеру, в результате чего невозможно создать планировщик по таймеру для поочередного выполнения потоков.
15 Поток на уровне ядра Процессы Потоки Ядро Пространство пользователя Таблица процессов Таблица потоков
16 Поток на уровне ядра Поток на уровне ядра ДОСТОИНСТВА: ДОСТОИНСТВА: возможно планирование работы нескольких потоков одного и того же процесса на нескольких процессорах; возможно планирование работы нескольких потоков одного и того же процесса на нескольких процессорах; реализуется мультипрограммирование в рамках всех процессов (в том числе одного); реализуется мультипрограммирование в рамках всех процессов (в том числе одного); при блокировании одного из потоков процесса ядро может выбрать другой поток этого же (или другого процесса); при блокировании одного из потоков процесса ядро может выбрать другой поток этого же (или другого процесса); процедуры ядра могут быть многопоточными. процедуры ядра могут быть многопоточными. НЕДОСТАТКИ: НЕДОСТАТКИ: Необходимость двукратного переключения режима пользователь – ядро, ядро – пользователь для передачи управления от одного потока к другому в рамках одного и того же процесса. Необходимость двукратного переключения режима пользователь – ядро, ядро – пользователь для передачи управления от одного потока к другому в рамках одного и того же процесса.
Планирование заданий, процессов и потоков 1.Виды планирования Вид планированияВыполняемые функции Долгосрочное Решение о добавлении задания (процесса) в пул выполняемых в системе Среднесрочное Решение о добавлении процесса к числу процессов полностью или частично размещенных в основной памяти Краткосрочное Решение о том, какой из доступных процессов (потоков) будет выполняться процессором Планирование ввода-вывода Решение о том, какой из запросов процессов (потоков) на операцию ввода-вывода будет выполняться свободным устройством ввода- вывода