Мы рады приветствовать Вас на нашем форуме! Здесь Вы сможете задать волнующий Вас вопрос, поделиться своими мыслями и чувствами, высказать пожелания и предложения.
Мы постараемся быть полезными для Вас!

Карты дорог России

 | Форум | Фото | Регистрация | Вход
  • Страница 1 из 1
  • 1
Форум » Техника, Гаджеты, Устройства » Компьютеры (Hardware) » Процессы в Windows
Процессы в Windows
Tion# 1 | 09.12.2010, 11:48
Генералиссимус
Группа: Vip
Сообщений: 7294
Репутация: 0
Статус: Offline
Процессы
Процессом обычно называют экземпляр выполняемой программы.
Хотя на первый взгляд кажется что программа и процесс понятия практически одинаковые, они фундаментально отличаются друг от друга.
Программа представляет собой статический набор команд, а процесс это набор ресурсов и данных, использующихся при выполнении
программы. Процесс в Windows состоит из следующих компонентов:
- Структура данных, содержащая всю информацию о процессе, в том числе список открытых дескрипторов различных системных ресурсов,
уникальный идентификатор процесса, различную статистическую информацию и т.д.;
- Адресное пространство – диапазон адресов виртуальной памяти, которым может пользоваться процесс;
- Исполняемая программа и данные, проецируемые на виртуальное адресное пространство процесса.
Потоки
Процессы инертны. Отвечают же за исполнение кода, содержащегося в адресном пространстве процесса, потоки. Поток (thread) – некая
сущность внутри процесса, получающая процессорное время для выполнения. В каждом процессе есть минимум один поток. Этот первичный
поток создается системой автоматически при создании процесса. Далее этот поток может породить другие потоки, те в свою очередь новые
и т.д. Таким образом, один процесс может владеть несколькими потоками, и тогда они одновременно исполняют код в адресном
пространстве процесса. Каждый поток имеет:
- Уникальный идентификатор потока;
- Содержимое набора регистров процессора, отражающих состояние процессора;
- Два стека, один из которых используется потоком при выполнении в режиме ядра, а другой – в пользовательском режиме;
- Закрытую область памяти, называемую локальной памятью потока (thread local storage, TLS) и используемую подсистемами, run-time
библиотеками и DLL.
Планирование потоков
Чтобы все потоки работали, операционная система отводит каждому из них определенное процессорное время. Тем самым создается иллюзия одновременного выполнения потоков (разумеется, для многопроцессорных компьютеров возможен истинный параллелизм). В Windows реализована система вытесняющего планирования на основе приоритетов, в которой всегда выполняется поток с наибольшим приоритетом, готовый к выполнению. Выбранный для выполнения поток работает в течение некоторого периода, называемого квантом.
Квант определяет, сколько времени будет выполняться поток, пока операционная система не прервет его. По окончании кванта
операционная система проверяет, готов ли к выполнению другой поток с таким же (или большим) уровнем приоритета. Если таких потоков не
оказалось, текущему потоку выделяется еще один квант. Однако поток может не полностью использовать свой квант. Как только другой
поток с более высоким приоритетом готов к выполнению, текущий поток вытесняется, даже если его квант еще не истек.
Квант не измеряется в каких бы то ни было единицах времени, а выражается целым числом. Для каждого потока хранится текущее значение его кванта. Когда потоку выделяется квант процессорного времени, это значит, что его квант устанавливается в начальное значение. Оно зависит от операционной системы. Например, для Win2000 Professional начальное значение кванта равно 6, а для Win2000 Server – 36.
Это значение можно изменить вызвав Control Panel -> System -> Advanced -> Performance options. Значение «Applications» – как для Win2000

Professional; «Background Services» – как для Win2000 Server. Или напрямую в ключе реестра HKLM\\System\\CurrentControlset\\Control\\PriorityControl\\ Win32PrioritySeparation.Всякий раз, когда возникает прерывание от таймера, из кванта потока вычитается 3, и так до тех пор, пока он не достигнет нуля. Частота срабатывания таймера зависит от аппаратной платформы. Например, для большинства однопроцессорных x86 систем он составляет 10мс, а на большинстве многопроцессорных x86 систем – 15мс.В любом случае операционная система должна определить, какой поток выполнять следующим. Выбрав новый поток, операционная система переключает контекст. Эта операция заключается в сохранении параметров выполняемого потока (регистры процессора, указатели на стек ядра и пользовательский стек, указатель на адресное пространство, в котором выполняется поток и др.), и загрузке аналогичных параметров для другого потока, после чего начинается выполнение нового потока.

Планирование в Windows осуществляется на уровне потоков, а не процессов. Это кажется понятным, так как сами процессы не
выполняются, а лишь предоставляют ресурсы и контекст для выполнения потоков. Поэтому при планировании потоков, система не обращает

внимания на то, какому процессу они принадлежат. Например, если процесс А имеет 10 готовых к выполнению потоков, а процесс Б – два, и все 12 потоков имеют одинаковый приоритет, каждый из потоков получит 1/12 процессорного времени.

Приоритеты
В Windows существует 32 уровня приоритета, от 0 до 31. Они группируются так: 31 – 16 уровни реального времени; 15 – 1 динамические
уровни; 0 – системный уровень, зарезервированный для потока обнуления страниц (zero-page thread).
При создании процесса, ему назначается один из шести классов приоритетов:
Real time class,
High class,
Above normal class,
Normal class,
Below normal class,
и Idle class.
В Windows NT/2000/XP можно посмотреть приоритет процесса в Task Manager.

 
Форум » Техника, Гаджеты, Устройства » Компьютеры (Hardware) » Процессы в Windows
  • Страница 1 из 1
  • 1
Поиск:
Карты России | Карта сайта | Контакты
Рейтинг@Mail.ru
Все материалы, которые Вы найдете у нас, представлены исключительно в ознакомительных целях. Желаем вам приятного просмотра! Надеемся что вы к нам еще вернетесь!

При использовании материалов, прямая активная гиперссылка на сайт russia.at.ua обязательна.
Copyright Russia.at.ua © 2009 - 2024