Камерон Хьюз - Параллельное и распределенное программирование на С++
- Название:Параллельное и распределенное программирование на С++
- Автор:
- Жанр:
- Издательство:Издательский дом «Вильямс»
- Год:2004
- Город:МоскваСанкт-ПетербургКиев
- ISBN:ISBN 5-8459-0686-5 (рус.)ISBN 0-13-101376-9 (англ.)
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Камерон Хьюз - Параллельное и распределенное программирование на С++ краткое содержание
Эта книга адресована программистам, проектировщикам и разработчикам программных продуктов, а также научным работникам, преподавателям и студентам, которых интересует введение в параллельное и распределенное программирование с использованием языка С++.
Параллельное и распределенное программирование на С++ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
При назначении приоритета пользовательскому процессу следует учитывать, на что именно этот процесс тратит большую часть времени. Одни процессы отличаются повышенной интенсивностью использования процессорного времени (они используют процессор в течение всего кванта процессорного времени). У других же большая часть времени уходит на ожидание выполнения операций ввода-вывода или наступления некоторых иных событий. Если такой процесс готов к использованию процессора, ему следует немедленно предоставить процессор, чтобы он мог сделать следующий запрос к устройствам ввода-вывода. Процессы, которые взаимодействуют между собой, могут требовать довольно высокий приоритет, чтобы рассчитывать на приличное время реакции. Системные процессы имеют более высокий приоритет, чем пользовательские.
Рис. 3.5. Многоуровневая приоритетная очередь (массив распределения), каждый элемент которой указывает на очередь готовых процессов с одинаковым уровнем приоритета
Стратегия планирования
Процессы размещаются в приоритетных очередях в соответствии со стратегией Планирования. В системах UNIX/Linux используются две стратегии планирования: FIFO (сокр. от First In First Out, т.е. первым прибыл, первым обслужен) и RR (сокр. От round-robin, т.е. циклическая). Схема действия стратегии FIFO показана на рис. 3.6, а. При использовании стратегии FIFO процессы назначаются процессору в соответствии со временем поступления в очередь. После истечения кванта времени процесс помещается в начало (головную часть) своей приоритетной очереди. Когда ждущий процесс становится работоспособным (готовым к выполнению), он помещается в конец своей приоритетной очереди. Процесс может вызвать системную функцию и отказаться от процессора в пользу другого процесса с таким же уровнем приоритета. Такой процесс также будет помещен в конец своей приоритетной очереди.
Рис.3.6. Схемы действия FIFO- и RR-стратегий планирования При использовании стратегии FIFO процессы назначаются процессору в соответствии со временем поступления в очередь. При использовании стратегии RR процессы назначаются процессору по правилам FIFO-стратегии, но с одним отличием: после истечения кванта времени процесс помещается не в начало, а в конец своей приоритетной очереди
В соответствии с циклической стратегией планирования (RR) все процессы счи таютсяравноправными (см. рис. 3.6, б) . RR-планирование совпадает с FIFO-планированием с одним исключением: после истечения кванта времени процесс помещает ся не в начало, а в конец своей приоритетной очереди, и процессору назначается след ующий (по очереди) процесс.
Использование утилиты ps
Утилита psгенерирует отчет, который содержит статистические данные о выполнении текущих процессов. Эту информацию можно использовать для контроля за их состоянием. В табл. 3.8 перечислены общие заголовки и описаны выходные данные, генерируемые утилитой ps для сред Solaris/Linux. В любой многопроцессорной среде утилита ps успешно применяется для мониторинга состояния процессов, степени использования ЦП и памяти, приоритетов и времени запуска текущих процессов. Ниже приведены командные опции, которые позволяют управлять информацией, содержащейся в отчете (с их помощью можно уточнить, что именно и какие процессы вас интересуют). В среде Solaris по умолчанию (без командных опций) отображается информация о процессах с тем же идентификатором эффективного пользователя и управляющим терминалом инициатора вызова. В среде Linux по умолчанию отображается информация о процессах, id пользователя которых совпадает с id инициатора запуска. В обеих средах в этом случае отображаемая информация, ограниченная следующими составляющими: PID, TTY, TIMEи COMMAND.Перечислим опции, которые позволяют получить информацию о нужных процессах.
-tterm Список процессов, связанных с терминалом, заданным значением term
-e Все текущие процессы
-a(Linux) Все процессы с терминалом tty за исключением лидеров сеанса
(Solaris) Большинство часто запрашиваемых процессов за исключением лидеров группы и процессов, не связанных с терминалом
-d Все текущие процессы за исключением лидеров сеанса
T(Linux) Все процессы, связанные с данным терминалом
a(Linux) Все процессы, включая процессы остальных пользователей
r(Linux) Только выполняющиеся процессы
Таблица3 .2.Общие заголовки, используемые для утилиты ps в средах Solaris/Linux
USER, UIDПользовательское имя владельца процесса
PIDID процесса
PPIDID родительского процесса
PGIDID лидирующего процесса в группе
SlDID лидера сеанса
%CPUКоэффициент использования времени ЦП (в процентах) процессом
в течение последней минуты
RSS Объем реального ОЗУ, занимаемый процессом в данный момент (в Кбайт)
%MEM Коэффициент использования реального ОЗУ процессом в течение последней минуты
SZРазмер виртуальной памяти, занимаемой данными и стеком процесса (в Кбайт или страницах)
WCHANАдрес события, в ожидании которого процесс пребывает в состоянии ожидания
COMMANDИмя команды и аргументы
CMD
TT, TTY Управляющий терминал процесса
S, STAT Текущее состояние процесса
TIMEОбщее время ЦП, используемое процессом (HH:MM:SS)
STIME, STARTВремя или дата старта процесса
NI Фактор уступчивости процесса
PRI Приоритет процесса
С, CP Коэффициент краткосрочного использования ЦП для вычисления планировщиком значения PRI
ADDRАдрес памяти, выделенной процессу
LWP ID потока
NLWPКоличество потоков
В следующий список включены командные опции, которые используются для управления отображаемой информацией о процессах:
– fполные распечатки
– -lв длинном формате
– - jв формате задания
Приведем пример использования утилиты psв средах Solaris/Linux:
ps -f
По этой команде будет отображена полная информация о процессах, которая выводится по умолчанию в каждой среде. На рис. 3.7 показан результат выполнения этой команды в среде Solaris. Командные опции можно использовать тандемом (одна за другой). На рис 3 7 также показан результат совместного использования опций -l и -f в среде Solaris:
ps -lf
Командная опция l позволяет отобразить дополнительные заголовки: F, S, С, PRI, NI, ADDRи WCHAN.При использовании командной опции Pотображается заголовок PSR,означающий номер процессора, которому назначается (или за которым закрепляется) процесс.
Читать дальшеИнтервал:
Закладка: