
- •Введение
- •1. Основные понятия в операционных системах
- •1.1. Классификация и функции операционных систем
- •1.2. Ос общего назначения и реального времени
- •1.3. Выполнение команд в вычислительной системе
- •1.4. Прерывания
- •1.5 Архитектуры операционных систем
- •1.6. Управление оперативной памятью вычислительной системы
- •1.7. Общие сведения о процессах и потоках
- •2. Операционная система windows
- •2.1. Версии операционной системы Windows
- •2.2. Архитектура операционной системы windows
- •2.3. Процессы и потоки в Windows
- •2.4. Взаимодействие процессов
- •2.5. Управление потоками в Windows
- •2.6. Файловые системы Windows
- •2.7. Установка и последовательность загрузки Windows
- •Последовательность загрузки Windows xp
- •2.8. Интерпретатор команд и пакетные файлы
- •2.9. Конфигурирование Windows
- •3. Операционная система qnx neutrino
- •3.1. Версии операционной системы qnx Neutrino
- •3.2. Архитектура операционной системы qnx Neutrino
- •3.3. Процессы в qnx6
- •Завершение процесса
- •3.4. Потоки в qnx6
- •Завершение потока
- •3.5. Управление потоками и процессами в qnx6
- •Механизмы ipc
- •Средства синхронизации в qnx
- •3.6. Файловые системы qnx
- •Типы файлов
- •3.7. Инсталляция и последовательность загрузки qnx
- •3.8. Интерпретаторы команд и пакетные файлы в qnx
- •3.9. Конфигурирование qnx
- •4. Виртуальные машины
- •4.1. Общие сведения о виртуальных машинах
- •4.2. Работа с виртуальной машиной VmWare
- •5. Защита от сбоев и несанкционированного доступа
- •5.1. Принципы построения систем безопасности
- •5.2. Безопасность операционной системы windows
- •6. Сетевые возможности операционных систем
- •6.1. Аппратаное обеспечение локальных сетей
- •6.2. Сети Windows
- •6.3. Локальная сеть на основе qnet
- •6.4. Глобальные сети
- •7. Многопроцессорные системы
- •7.1. Архитектуры многопроцессорных операционных систем
- •7.2. Принципы функционирования smp
- •7.3. Принципы функционирования кластеров
- •Список использованной литературы
- •Компилятор
2.5. Управление потоками в Windows
Система управления виртуальной памятью контролирует распределение памяти и работу страничной организации. Диспетчер памяти может использовать страницы размером от 4 до 64 кб. Каждый пользовательский процесс получает отдельное 32-битное адресное пространство, предоставляющее процессу 4 Гб памяти (диапазон адресов 232). Часть памяти зарезервирована под ОС так, что каждому пользователю доступны только 2 Гб виртуального адресного пространства.
В страничной организации каждая страница может находится в следующих состояниях:
доступна, т.е. страница используется процессом;
зарезервирована – множество страниц, которые диспетчер отвел под процессы, но которые не учитываются в квоте памяти процесса до их использования;
размещена – страница, для которой диспетчер выделяет память в файле подкачки страниц на диске, в котором располагаются страницы при удалении их из основной памяти.
Диспетчер памяти управляет резидентным множеством страниц каждого процесса, загруженного в основную память. При первой активации процессу передается несколько кадров основной памяти, не весь новый процесс загружается в основную память. Когда процесс обращается к странице, отсутствующей в основной памяти, одна из страниц этого процесса выгружается в файл подкачки страниц, а на ее место загружается в зависимости от приоритета, другая информация (страница).
При выполнении процесса (потока) ОС должна принимать 3 типа решений, связанных с планированием: долгосрочное, среднее и краткосрочное (рис.24). Долгосрочное определяет, когда новый процесс должен поступить в систему. Среднесрочное является частью свопинга и определяет, какой из готовых к выполнению процессов будет выполняться процессором следующим.
При краткосрочном планировании планировщик использует ряд критериев. Основные: время отклика системы (для пользователя) и степень использования процессора (для системы) [3]. Они противоречивы. Имеется ряд альтернативных критериев для выбора среди готовых к выполнению потоков.
Первым поступил – первым обслужен. Выбирается поток, ожидающий обслуживания дольше других.
Круговое планирование. Использует кванты времени для ограничения времени непрерывного выполнения потока (они выполняются циклически).
Выбор самого короткого потока. Выбирается поток с минимальным времени работы. Вытеснение потоков не применяется.
Наименьшее остающееся время. Выбирается поток с минимальным ожидаемым временем оставшейся работы. Поток может быть вытеснен.
Рис.24. Уровни планирования загрузки процессора
Наивысшее отношению отклика. Принимаемое решение опирается на оценку нормализованного времени оборота потока по состояниям.
Снижение приоритета. Определяет множество очередей и распределяет в них потоки, основываясь на истории выполнения и других критериях.
Выбор алгоритмов или их комбинации зависит от ожидаемой производительности и сложности реализации.
В Windows NT реализован планировщик с вытеснением и гибкой системой уровней приоритетов, включая круговое планирование на каждом уровне, а для уровней «переменных приоритетов» – динамическое изменение приоритета на основе текущей активности потоков. В Windows NT две группы (класса) приоритетов: реального времени и переменные, по 16 уровней в каждом (рис. 25). При появлении потока (в состоянии готов) с большим приоритетом, чем у выполняющегося потока, выполняющийся поток вытесняется и начинает выполняться поток с большим приоритетом.
Рис. 25 Приоритеты потоков в Windows
В классе РВ все потоки имеют ориентированные приоритеты от 16 до 31, которые никогда не изменяется. Все активные потоки с определенным уровнем приоритета располагаются в круговой очереди данного уровня. Приоритеты потоков в период исполнения остаются постоянными [3].
В классе переменных приоритетов поток начинает работу с некоторым изначально заданным приоритетом, который затем может измениться в большую или меньшую сторону в зависимости от деятельности потоков. Таким образом, на каждом уровне приоритета имеется своя очередь, но потоки могут переходить из одной очереди в другую в пределах класса переменных приоритетов.
Начальный приоритет потока в классе переменных приоритетов определяется двумя величинами: базовым приоритетом процесса и базовым приоритетом потока (рис.26).
Одним из атрибутов процесса является его базовый приоритет, который может принимать значения от 0 до 15. Каждый объект потока, связанный с объектом процесса, имеет собственный базовый приоритет, который указывает базовый приоритет потока по отношению к приоритету процесса. Он может отличаться от базового приоритета процесса не более чем на 2 уровня в большую или меньшую сторону. Так, например, если базовый приоритет процесса равен 4, а базовый приоритет одного из его потоков равен -1, то начальный приоритет (при создании потока) этого потока равен 3.
15 |
|
|
|
|
|
14 |
|
|
|
|
|
13 |
|
|
|
|
|
12 |
|
|
|
|
|
11 |
|
|
|
|
|
10 |
|
|
|
|
|
9 |
|
|
|
|
|
8 |
|
|
|
|
|
7 |
|
|
|
|
|
6 |
|
|
|
Наивысший |
|
5 |
|
|
|
Повышенный |
|
4 |
|
|
Базовый приоритет |
Обычный |
|
3 |
|
|
|
Пониженный |
Начальный |
2 |
|
|
|
Наинизший |
|
1 |
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
Приоритет процесса |
Базовый приоритет потока |
Динамический приоритет |
Рис. 26 Пример отношения приоритетов в Windows NT
После активизации потока из класса переменных приоритетов его действительный приоритет (именуемый динамическим приоритетом потока) может колебаться в определенных пределах. Он не может упасть ниже наименьшего базового приоритета потока и не может подняться выше максимально возможного значения приоритета для данного класса, т.е. 15. В приведенном выше примере (рис.26) это диапазон приоритетов от 2 до 15.