- •Мультипрограммирование.
- •Одним из методов планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей ресурсов.
- •При прохождении через ос процесс мигрирует между различными очередями под управлением программы, которая называется планировщик (scheduler).
- •Планирование процессов.
- •Диспетчеризация процессов при мультипрограммировании
- •Первым пришел – первым обслужен (fcfs, first come-first served)
- •Циклические дисциплины для вытесняющей многозадачности.
- •Классификация дисциплин диспетчеризации процессов
Операционные системы. Лекция 7. (Мультипрограммирование и мультипроцессирование)
Мультипрограммирование.
Характеристики состояний процесса:
Планирование (scheduling)
Владение ресурсами (resource ownership)
Выполнение (execution)
Единица планирования и владения ресурсами – процесс (process) или задание (task)
Единица диспетчеризации (выполнения) – поток (thread) или облегченный процесс (lightweight process) или нити
Варианты многопоточности:
Один процесс, один поток (MS DOS)
Несколько процессов, по одному потоку в процессе (разновидности UNIX)
Один процесс, несколько потоков (среда выполнения JAVA)
Несколько процессов, несколько потоков в процессе (W2000, Linux, Solaris)
Мультипрограммная система – система может выполнять несколько процессов одновременно.
Многопоточная система - включает в себя понятие мультипрограммирования, но расширяет эту концепцию и предполагает возможность одновременного выполнения отдельных потоков одного и того же процесса
Потоки могут выполняться:
синхронно (для выполнения потока 2 могут понадобиться результаты потока 1)
асинхронно (потоки независимы).
М.б. и смешанные ситуации.
Мультипрограммная ОС реализует сложные методы управления процессами и ресурсами. Они должны распределять ресурсы, такие как циклы CPU и память, назначать приоритеты таким образом, чтобы каждый процесс получал адекватное обслуживание.
Особенности мультипрограммирования:
Обеспечивает разделение памяти и взаимную защиту программ друг от друга.
Требует специальных механизмов для перемещения программ и защиты памяти.
Позволяет равномерно загружать ресурсы (ЦП, ОП, ВУ)
МП уменьшает время обработки коротких заданий, снижает время ожидания ответа при организации работы в интерактивном режиме (разделение времени)
Планирование и диспетчеризация.
Распределение процессов между процессами имеющихся ресурсов носит название планирование процессов.
Одним из методов планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей ресурсов.
Новые процессы находятся во входной очереди, часто называемой очередью заданий (job queue). Входная очередь располагается во внешней памяти, во входной очереди процессы ожидают освобождения ресурса - адресного пространства основной памяти.
Готовые к выполнению процессы располагаются в основной памяти и связаны очередью готовых процессов или ready queue. Процессы в этой очереди ожидают освобождения ресурса «процессорное время».
Процесс в состоянии ожидания завершения операции ввода - вывода находится в одной из очередей к оборудованию ввода - вывода, которая носит название devices queue.
При прохождении через ос процесс мигрирует между различными очередями под управлением программы, которая называется планировщик (scheduler).
Операционная система, обеспечивающая режим мультипрограммирования, обычно включает два планировщика:
долгосрочный (long term scheduler)
краткосрочный (short term scheduler/CPU scheduler).
Долгосрочный планировщик решает, какой из процессов, находящихся во входной очереди, должен быть переведен в очередь готовых процессов в случае освобождения ресурсов памяти.
Долгосрочный планировщик выбирает процесс из входной очереди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очереди готовых процессов должны находиться в разной пропорции как процессы, ориентированные на ввод-вывод, так и процессы, ориентированные на преимущественную работу с CPU.
Краткосрочный планировщик решает, какой из процессов, находящихся в очереди готовых процессов, должен быть передан на выполнение в CPU. В некоторых операционных системах долгосрочный планировщик может отсутствовать. Например, в системах разделения времени (time sharing system), каждый новый процесс сразу же помещается в основную память.
Иногда используют термины:
Планировщик верхнего уровня – для программы выделения виртуального процессора.
Планировщик нижнего уровня – для программы выделения фактического процессора.
Основное различие между планированием и диспетчеризацией состоит в том, что планирование выполняется только один раз, а процессор может выделяться процессу многократно.
Планировщик и диспетчер управляют очередями процессов, следовательно, производительность различных алгоритмов управления можно качественно анализировать, использую теорию очередей.