Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 6004.doc
Скачиваний:
21
Добавлен:
30.04.2022
Размер:
1.29 Mб
Скачать

3.2.Мультизадачность

3.2.1.Виды мультизадачности:

Переключательная мультизадачность. Этот вид характеризуется тем, что передача центрального процессора от одной задачи другой выполняется при наступлении некоторого внешнего события (внешнего по отношению к ОС). Такой вид мультизадачности был реализован в MS DOS.

Невытесняющая мультизадачность. Ее особенностью является то, что ресурсы вычислительной системы распределяются между несколькими приложениями, которые получают ЦП в соответствии со своим приоритетом (ЦП не может быть принудительно отобран у какого-либо приложения).

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

3.2.2.Процессы и задачи

Процесс создается, когда приложение загружается в память, при этом процессу выделяется собственное адресное пространство. Сразу после запуска процесса создается одна задача - главная задача процесса. Выполнение процесса может параллельно двигаться по нескольким путям. Каждый путь оформляется в виде самостоятельной задачи. Именно поэтому задачи еще называют потоками - THread. Задачи (в том числе и главная) создаются в пределах адресного пространства процесса. Это значит, что несколько задач, созданных процессом, либо другие задачи этого же процесса могут взаимодействовать с помощью глобальных переменных. Запущенные задачи выполняются параллельно, реализуя так называемую потоковую мультизадачность, а процессы образуют процессовую мультизадачность.

3.2.3.Распределение времени между задачами

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

Рассмотрим принципы планирования на примере Windows NT. Приоритеты устанавливаются в диапазоне от 1 до 31. Используется двухступенчатая схема назначения приоритетов:

1) для процесса устанавливается класс приоритета;

2) для задачи определяется относительный приоритет в пределах данного класса.

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

HIGН_PRIORITY_CLASS - для высокоприоритетных процессов, которые должны немедленно реагировать на действия пользователя. На этом уровне работают такие процессы, как Task Manager.

NORMAL_PRIORITY_CLASS устанавливается процессам по умолчанию. Если процесс с классом NORMAL_PRIORITY_CLASS выполняется в фоновом режиме, то ему устанавливается уровень приоритета 7. При выводе окна приложения на передний план его приоритет повышается до 9.

IDLE_PRIORITY_CLASS - процессы, которые не должны мешать выполнению других задач или процессов (например, в MS Word - задачи проверки орфографии). Обычно, это приложения, предназначенные для выполнения фоновой работы или выполняющие большой объем вычислений.

Относительные приоритеты задач

Приоритет задачи устанавливается относительно приоритета процесса. Возможно 7 уровней приоритета:

THREAD__PRIORITY_TIME_CRITICAL 15 или 31(если класс приоритета - REALTIME_PRIORITY_CLASS, то тогда задача получает приоритет 31, во всех остальных случаях - 15)

TНREAD__PRIORITY_НIGНEST +2

TНREAD__PRIORITY_ABOVE_NORMAL +1

TНREAD__PRIORITY_NORMAL 0

TНREAD__PRIORITY_BELOW_NORMAL -1

TНREAD__PRIORITY_LOWEST -2

TНREAD__PRIORITY_IDLE 1 или 16(если класс приоритета - REALTIME_PRIORITY_CLASS, то тогда задача получает приоритет 16, во всех остальных случаях - 1)