Лекция3Процессы и потоки.ppt
- Количество слайдов: 26
Операционные системы Процессы и потоки
Понятие процесса
Мультипрограммирование - реализация многозадачного режима на базе одного микропроцессора. Выделяют следующие системы мультипрограммирования: üсистемы пакетной обработки; üсистемы разделения времени; üсистемы реального времени; üсистемы мультипроцессорной обработки.
Мультипрограммирование. Системы пакетной обработки Канал Центральный процессор Канальная программа Ввод - вывод Команда запуска канала t Сигнал завершения операции ввода-вывода Вычисления Операции ввода–вывода t Контроллеры t Центральный процессор Вычисления t
Ta+Tb=11 Ta=6 A 2 Tb=5 2 A A 2 B 3 В ы ч и с л е н и я B 1 2 Ввод–вывод Ta+Tb= 8 Ta = 7 A 2 B A t t Tb = 6 3 A В ы ч и с л е н и я 2 B 1 Ввод–вывод B 1 2 A 1 B 1 Готовность (ожидание процессора) t t t
Мультипрограммирование. Системы распределения времени 1 2 3 … Центральный процессор n TКВ = 0, 02 мс
Мультипрограммирование. Системы реального времени 1. Управление техническими объектами, технологическими процессами, системами обслуживания и т. п. 2. Фиксированный набор заранее разработанных задач. 3. Жесткие ограничения на время обслуживания. 4. Режим типа запрос – ответ. В системах мягкого реального времени ответ системы должен укладываться в диапазон ограничений (система продажи билетов). В системах жесткого реального времени ответ не должен превышать заданный порог (системы управления тех. процессами) Задача полной загрузки процессора не ставится. Необходим резерв вычислительной мощности. Планирование загрузки процессора не более 50 -70%.
Мультипрограммирование. Системы мультипроцессорной обработки В наличии имеется несколько процессоров. Выделяют 2 вида архитектуры: симметричная (все процессоры не специализированны и каждый может выполнять любые действия) – работоспособность сохраняется пока имеется хотя бы один процессор; асимметричная (процессоры специализируются на обработке соответствующих типов действий). В любом типе архитектуры на каждом процессоре реализуется мультипрограммирование. ОС семейства Windows способны поддерживать до 32 процессоров.
Выводы Даже если выполняется только одна задача в ней можно выделить относительно независимые и самостоятельные подзадачи. Например, фоновое сохранение или печать документа. Не смотря на то, что каждая такая подзадача в режиме мультипрограммирования будет выполняться медленнее, чем при монопольном использовании ресурсов, но общее время выполнения программы станет короче. Следовательно, нужны механизмы разделяющие работу процессора между несколькими программами или частями одной программы. Процесс – программа во время ее выполнения. Поток – структурная единица процесса (единое адресное пространство). Волокно – единица работы, используемая для представления потока. Если одна и та же программа запущена ДВАЖДЫ, то для ОС это будут ДВА РАЗЛИЧНЫХ процесса.
Структурная взаимосвязь между заданиями, процессами и потоками Задание (JOB) Процесс 1 Процесс 2 Процесс N Объекты Название Задание Поток 1 Thread 1 Поток 2 Thread 2 Описание Набор процессов с общими квотами и лимитами Контейнер для ресурсов и потоков Поток k Thread k Процесс Поток Волокно Волокна (Fibers) Исполнение кода в процессе Облегченный поток, полностью управляемый в
Функциональная взаимосвязь между заданиями, процессами и потоками Задание Процессы Потоки Стек в режиме пользователя Стеки потоков в режиме ядра Таблица процесса P T T T Маркеры доступа T P Таблица процесса
Общая схема реализации мультипрограммирования Реальный процессор переключается между процессами. В момент переключения на конкретный процесс значения регистров виртуального процессора записываются в реальный процессор. Затем в течении некоторого интервала времени процессор обрабатывает команды текущего процесса. После чего, значения регистров реального процессора пересохраняются в виртуальный процессор.
1. Отдельный процесс не может быть выполнен быстрее, чем в однопрограммном режиме. 2. Сложно создать программу, реализующую параллелизм в рамках одного процесса. 3. Стандартные средства современных ОС не позволяют создать для одного приложения несколько процессов для параллельных работ. 4. Многопоточная обработка позволяет распараллелить вычисления в рамках одного процесса. 5. Многопоточная (multithreading) обработка эффективна в многопроцессорных вычислительных системах. 6. Использование аппарата волокон (Windows 2000) повышает эффективность мультипрограммирования за счет сокращения переключения процессов, но увеличивает трудоемкость разработки приложений.
Работа с процессами
Основные функции управления процессами и потоками 1. 2. 3. 4. 5. 6. 7. Создание процессов и потоков. Обеспечение процессов и потоков необходимыми ресурсами. Изоляция процессов. Планирование выполнения процессов и потоков. Диспетчеризация потоков. Синхронизация процессов и потоков. Завершение и уничтожение процессов и потоков.
События, приводящие к созданию процессов: 1. Инициализация (загрузка) ОС. инициализируются ключевые процессы, в том числе и фоновые службы – демоны. 2. Запрос процесса на создание дочернего процесса. порождение дерева процессов 3. Запрос пользователя на создание процесса (например, при входе в систему в интерактивном режиме, запуск программы и т. д. ). 4. Инициирование пакетного задания.
События, приводящие к завершению процессов: 1. обычный выход (добровольный) – плановое завершение процесса 2. выход при возникновении ошибки (добровольно) например, если данные для обработки некорректны, то просят повторить ввод и повторно запускают процесс 3. возникновение фатальной ошибки (принудительно) выполнение процессом недопустимого действия (деление на 0, обращение к несуществующим ресурсам и т. д. 4. уничтожение другим процессом (принудительно)
Состояния процессов
Реализация процессов
Взаимодействие процессов 1. Передача информации между процессами (для потоков проще, т. к. они имеют общее адресное пространство). 2. Обеспечение совместной работы процессов без создания взаимных помех (битва за последнее место на поезд). 3. Определение правильной последовательности выполнения процессов на основе существующих взаимозависимостей (если для А нужны результаты В, то сначала выполнить В, а затем А).
Состязательная ситуация Часть программы, в которой происходит обращение к общей памяти называется критической областью или критической секцией.
Состязательная ситуация Для избегания состязательных ситуаций необходимо выполнение 4 условий: 1. Два процесса не могут одновременно находиться в своих критических областях 2. Не должны выстраиваться никакие предположения по поводу скорости или количества центральных процессоров 3. Никакие процессы, выполняемые за пределами своих критических областей, не могут блокироваться другими процессами. 4. Процессы не должны находиться в вечном ожидании входа в свои критические области.
Состязательная ситуация
Состязательная ситуация Взаимное исключение с активным ожиданием 1. Запрещение прерываний. (т. к. нет прерываний, то и нет переключений на другой процесс). Недостатки: в многопроцессорных системах запрет устанавливается только на один процессор, а процесс на другом процессоре может создать состязательную ситуацию. в однопроцессорных системах забывание включить прерывания убивает систему. Может эффективно использоваться только в рамках процессов самой ОС, но не пользовательских процессов. 2. Блокирующие переменные. Не решают проблемы
Состязательная ситуация Взаимное исключение с активным ожиданием 3. Строгое чередование. Подход эффективен только если оба процесса выполняются примерно с одинаковой скоростью, что маловероятно.
Состязательная ситуация Взаимное исключение с активным ожиданием 4. Алгоритм Петерсона. Недостаток – активное ожидание, т. е. пустая трата процессорного времени