- •Оссо (операционные среды, системы и оболочки)
- •12.02.13
- •Тема 1: Введение. Назначение, функции и архитектура операционных систем. Основные определения.
- •14.02.13
- •19.02.13
- •4 Уровень
- •5 Уровень
- •21.02.13
- •26.02.13
- •28.02.13
- •05.03.13.
- •07.03.13
- •Тема 2: Организация вычислительного процесса
- •12.03.13
- •14.03.13
- •19.03.13
- •21.03.13
- •26.03.13
- •28.03.13
26.03.13
Потоки и их модели
При создании потоков ОС создает специальную информационную структуру – описатель потока, в котором находятся блок управления потоком и его контекст.
Способы реализации пакетов потока:
1. в пространстве пользователя (ULT).
В программе, состоящей из ULT потоков, все действия по управлению потоков выполняет само приложение. Ядро о потоках ничего не знает и управляет решением на уровне процесса. Для этого в каждом процессе имеет собственная управляющая структура, включающая библиотеки подпрограмм для работы с потоками (их создание, уничтожение, блокировка…) и таблицу потоков, содержащий счетчик команд, идентификатор потока, регистры состояния и другое. Когда поток переходит в состояние готовности или блокировки, вся информация для повторного запуска хранится в таблице потока.
Достоинства схемы:
- повышение производительности за счет отсутствия потерь времени на переключение в режим ядра и обратно
- упрощенная система управления процессами за счет снижения уровня детальности – ядро о потоках ничего не знает
- использование потоков на уровне пользователя применимо для любой ОС, в том числе и не поддерживающей управление потока
Недостатки:
- системный вызов блокирует не только работающий поток, но и все потоки этого процесса
- невозможно обрабатывать потоки на разных процессорах – система закрепляет весь процесс за одним процессором
- новый поток не может быть запущен, пока работающий поток добровольно не освободит процессор
- внутри одного потока не существует прерываний по таймеру
2. на уровне ядра (KLT)
В этом случае создается единый центр управления в ядре, содержащий таблицу процессов и потоков, отслеживающую все потоки в системе. Завершение или создание потока осуществляется системным вызовом, что приводит к некоторому замедлению работы из-за необходимости переключения в режим ядра и обратно. Однако гибкость управления повышается за счет организации работы на уровне потоков.
Достоинства:
- возможность обработки одновременно нескольких потоков одного процесса на разных процессорах
- возможно мультипрограммирование в рамках одного процесса
- при блокировке одного из потоков процесса ядро может выбрать другой поток этого процесса.
Недостаток:
- потеря времени при переключении в режим ядра и обратно.
Планирование заданий, процессов и потоков.
Целью планирования вычислительного процесса является рациональное распределение времени центрального процессора между выполняющимися заданиями пользователя в соответствии с принятыми критериями эффективности.
28.03.13
Планирование осуществляется динамически – решения принимается во время работы системы на основе анализа текущей ситуации, не используя никаких предположений по возможной перспективе загрузки программных приложений.
Существует статистический метод планирования – применяется в специализированных системах с заданным набором заранее определенных задач. В этом случае статистический планировщик может принимать решение не вовремя решения работы системы, а заранее ознакомилась с реальным перечнем загружаемых задач. Результатом работы – расписание - таблица, в которой указано к какому процессу, когда и на какое время будет предоставлен ЦП.
Независимо от типа планирования основными участниками планирования являются:
- краткосрочный планировщик (диспетчер) – реализует найденное решение, переключая процессор с одного процесса на другой. Он вызывается при наступлении события, которое может приостановить текущий процесс и передать управление другому (прерывание таймера, прерывание ввода-вывода, команды компа и тд)
- среднесрочное планирование - применяется в случаях необходимости принятия решения об переносе из оперативной памяти на диск заблокированных процессов и возвращение их в оперативную память после разблокировки.
- долгосрочное планирование – осуществляется в период принятия решения о добавлении процесса в множество выполняемых системой процессов.
Алгоритмы планирования потоков.
В мультипрограммной системе поток (процесс для систем не умеющих работать с потоками) может находиться в трех возможных состояниях:
1. выполнение – активное состояние потока, во время которого он обладает всеми необходимыми ресурсами и обрабатывается ЦП.
2. ожидание – пассивное состояние потока, находясь в котором поток заблокирован по своим внутренним причинам. (ждет наступления некоторого события, освобождения необходимого ресурса, сообщение от другого потока…)
3. готовность - пассивное состояние потока, находясь в котором поток заблокирован по внешним причинам. (имеет все требуемые ресурсы, готов выполняться, но ЦП занят обслуживанием другого потока)
В состоянии выполнения в однопроцессорной системе может находиться не более одного потока.
Все множество алгоритмов планирования принято делить на два основных класса:
1. не вытесняющие алгоритмы планирование – основаны на том, что активном потоку позволяется выполняться, пока он сам по своей инициативе не отдаст управление ОС для того, чтобы она выбрала из очереди готовый к выполнению поток.
Базовые особенности:
- планирование распределяется между ОС и прикладными программами
- необходимость частой передачи управления между ОС и задачи
- зависания приложений могут привести к краху системы
2. вытесняющие алгоритмы – способы планирования потоков, в которых решение о переключении процессора с выполнения одного потока на выполнения другого потока принимается ОС принудительно без участия активной задачи.
Особенности:
- функции планирования сосредоточены в ОС
- планирование осуществляется на основе квантования процессорного времени
- планирование на основе учета приоритета потоков
