Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы Лекция 07(Мультипрограммир...doc
Скачиваний:
7
Добавлен:
16.09.2019
Размер:
146.43 Кб
Скачать

5

Операционные системы. Лекция 7. (Мультипрограммирование и мультипроцессирование)

Мультипрограммирование.

Характеристики состояний процесса:

  • Планирование (scheduling)

  • Владение ресурсами (resource ownership)

  • Выполнение (execution)

Единица планирования и владения ресурсами – процесс (process) или задание (task)

Единица диспетчеризации (выполнения) – поток (thread) или облегченный процесс (lightweight process) или нити

Варианты многопоточности:

  1. Один процесс, один поток (MS DOS)

  2. Несколько процессов, по одному потоку в процессе (разновидности UNIX)

  3. Один процесс, несколько потоков (среда выполнения JAVA)

  4. Несколько процессов, несколько потоков в процессе (W2000, Linux, Solaris)

Мультипрограммная система – система может выполнять несколько процессов одновременно.

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

Потоки могут выполняться:

синхронно (для выполнения потока 2 могут понадобиться результаты потока 1)

асинхронно (потоки независимы).

М.б. и смешанные ситуации.

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

Особенности мультипрограммирования:

  1. Обеспечивает разделение памяти и взаимную защиту программ друг от друга.

  2. Требует специальных механизмов для перемещения программ и защиты памяти.

  3. Позволяет равномерно загружать ресурсы (ЦП, ОП, ВУ)

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

Планирование и диспетчеризация.

Распределение процессов между процессами имеющихся ресурсов носит название планирование процессов.

Одним из методов планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей ресурсов.

  • Новые процессы находятся во входной очереди, часто называемой очередью заданий (job queue). Входная очередь располагается во внешней памяти, во входной очереди процессы ожидают освобождения ресурса - адресного пространства основной памяти.

  • Готовые к выполнению процессы располагаются в основной памяти и связаны очередью готовых процессов или ready queue. Процессы в этой очереди ожидают освобождения ресурса «процессорное время».

  • Процесс в состоянии ожидания завершения операции ввода - вывода находится в одной из очередей к оборудованию ввода - вывода, которая носит название devices queue.

При прохождении через ос процесс мигрирует между различными очередями под управлением программы, которая называется планировщик (scheduler).

Операционная система, обеспечивающая режим мультипрограммирования, обычно включает два планировщика:

  • долгосрочный (long term scheduler)

  • краткосрочный (short term scheduler/CPU scheduler).

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

Долгосрочный планировщик выбирает процесс из входной очереди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очереди готовых процессов должны находиться в разной пропорции как процессы, ориентированные на ввод-вывод, так и процессы, ориентированные на преимущественную работу с CPU.

Краткосрочный планировщик решает, какой из процессов, находящихся в очереди готовых процессов, должен быть передан на выполнение в CPU. В некоторых операционных системах долгосрочный планировщик может отсутствовать. Например, в системах разделения времени (time sharing system), каждый новый процесс сразу же помещается в основную память.

Иногда используют термины:

Планировщик верхнего уровня – для программы выделения виртуального процессора.

Планировщик нижнего уровня – для программы выделения фактического процессора.

Основное различие между планированием и диспетчеризацией состоит в том, что планирование выполняется только один раз, а процессор может выделяться процессу многократно.

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