Управление процессами windows. Управление задачами и процессами. Управление процессами и потоками в ОС Windows с помощью утилиты Process Explorer фирмы SysInternals

Для каждого приложения, запускаемого под управлением Microsoft Windows, операционная система создает собственную задачу, иными словами, отводит определенный объем оперативной памяти для выполнения этой программы и контролирует работу загруженного в память приложения с ресурсами компьютера. Помимо задач в Windows XP имеются также процессы - виртуальное адресное пространство памяти, отведенное для выполнения программой или самой операционной системой каких-либо процедур. Одна задача может активизировать в Windows несколько различных процессов: например, web-браузер может одновременно обращаться к порту модема для получения и отправки каких-либо данных и отображать на экране результат работы встроенного в web-страницу апплета Java. Каждому процессу автоматически назначается индивидуальный опознавательный номер, так называемый Process ID или PID, предназначенный для однозначной идентификации процесса в системе.
Если запущенная вами программа неожиданно вызвала «зависание» компьютера, в большинстве случаев нет необходимости прибегать к аварийной перезагрузке: вполне достаточно отыскать в памяти вызвавшую сбой задачу и снять ее, то есть принудительно прекратить ее дальнейшее выполнение. Возможна и другая ситуация: закрыв неожиданно «зависшую» программу путем снятия задачи, вы не сможете продолжить прерванную работу с каким-либо файлом или документом. Например, удалив из памяти компьютера Microsoft Word, вы не сможете снова загрузить в него текст, который только что редактировали, поскольку операционная система считает, что этот документ уже используется другой программой. Подобные явления происходят потому, что после снятия задачи в памяти все еще остался инициированный этой задачей процесс - в нашем случае это процесс обработки документа Word. Прекратив выполнение вызывающего сбои процесса, вы сможете продолжить работу с Windows XP в обычном режиме.

Для управления задачами и процессами в Microsoft Windows XP предусмотрена специальная системная утилита, называемая Диспетчер задач (Windows Task Manager), окно которой появляется на экране при нажатии сочетания клавиш Ctrl+Alt+Del

Окно утилиты Диспетчер задач Windows XP имеет пять функциональных вкладок.
Вкладка Приложения (Applications) содержит список всех запущенных в системе задач: в поле Задача (Task) отображается название задачи, в поле Состояние (Status) - ее текущее состояние. Нормальным статусом задачи является состояние Работает (Running). Если задача «зависла» и не отвечает на системные запросы, ее состояние будет определено как Не отвечает (Not responding).
Чтобы снять одну из задач, выделите ее щелчком мыши в меню Задача (Task) и нажмите на кнопку Снять задачу (End Task).
Чтобы переключиться к какой-либо задаче, то есть открыть на экране ее окно, выделите в списке нужную задачу и щелкните мышью на кнопке Переключиться (Switch To).
Вы можете инициировать новую задачу, нажав на кнопку Новая задача (New Task) и указав полное имя и путь к запускаемой программе в соответствующем поле открывшегося окна либо определив эту программу визуально при помощи кнопки Обзор (Browse).

Вкладка Процессы (Processes) дает возможность управлять запущенными в системе процессами.

В меню на данной вкладке отображаются названия процессов - Имя образа (Image Name), определители инициаторов процессов - Имя пользователя (User Name), характеристики аппаратной обработки процессов - ЦП (CPU) и занимаемый процессами объем оперативной памяти - Память (Memory Usage). Вы можете включить отображение других характеристик процессов (например, PID, диапазон ввода-вывода, объем используемого процессом кэша и т. д.), воспользовавшись функцией Выбрать столбцы (Select Columns) командного меню Вид (View). Чтобы прекратить выполнение процесса, выделите его заголовок щелчком мыши и нажмите на кнопку Завершить процесс (End Process).
Если вы хотите, чтобы в данном меню отображались процессы, инициированные всеми пользователями вашей системы, установите флажок рядом с пунктом Отображать процессы всех пользователей (Show processes from all users). Вы можете также установить приоритет процесса, если щелкните на его заголовке правой кнопкой мыши, выберите в появившемся меню пункт Приоритет (Set Priority) и укажете назначаемый для данного процесса режим выполнения:

Реального времени (Realtime)- режим реального времени (все инициируемые процессом запросы выполняются системой по мере поступления);
Высокий (High)- высочайший приоритет;
Выше среднего (AboveNormal)- высокий приоритет;
Средний (Normal)- стандартный приоритет;
Ниже среднего (BelowNormal)- низкий приоритет;
Низкий (Low)- наиболее низкий приоритет.

Чем выше приоритет процесса, тем быстрее выполняются инициированные им запросы. Процессам с высоким приоритетом система предоставляет аппаратные и программные ресурсы в первую очередь. При перераспределении приоритетов процессов следует помнить, что если вы установите высокий приоритет какому-либо второстепенному процессу, приоритет одного из жизненно важных для Windows системных процессов может автоматически стать низким, в результате чего скорость работы системы в целом заметно снизится или выполнение этого процесса будет полностью блокировано, что приведет к «зависанию» компьютера. Устанавливать высокий приоритет одному из процессов следует только в том случае, если его выполнение с «нормальным» приоритетом по каким-то причинам затруднено или невозможно.

Вкладка Быстродействие (Performance) окна Диспетчера задач Windows содержит информацию о загрузке процессора, оперативной памяти и об использовании других аппаратных ресурсов компьютера.

(CPU Usage) и Хронология загрузки ЦП (CPU Usage History) показывают нагрузку на процессор вашего компьютера, индикаторы Файл подкачки (PF Usage) и Хронология использования файла подкачки (PF Usage History) - использование файла подкачки при системном кэшировании данных, индикатор Физическая память (Physical Memory) - степень загрузки оперативной памяти в килобайтах.

Аналогичным образом вкладка Сеть (Networking) демонстрирует нагрузку на вашу локальную сеть.
И наконец, если вы хотите просмотреть список всех работающих в настоящее время с вашей системой пользователей, перейдите ко вкладке Пользователи (Users).


Если вы зарегистрированы в системе как администратор данного компьютера, то можете отключить одного из пользователей, выделив в меню название его сеанса работы с Windows щелчком мыши и нажав на кнопку Отключить (Disconnect). Помимо этого вы можете отправить ему сообщение нажатием на кнопку Отправить сообщение (Send Message). Чтобы завершить текущий сеанс работы с Windows, щелкните мышью на кнопке Выйти из системы (Logoff).

Управление процессами

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

Для каждого вновь создаваемого процесса ОС генерирует системные информа­ционные структуры, которые содержат данные о потребностях процесса в ресур­сах вычислительной системы, а также о фактически выделœенных ему ресурсах. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, процесс можно также определить как некоторую заявку на по­требление системных ресурсов.

Чтобы процесс мог быть выполнен , операционная система должна назначить ему область оперативной памяти , в которой будут размещены коды и данные процес­са, а также предоставить ему крайне важно е количество процессорного времени. Вместе с тем, процессу может понужнобиться доступ к таким ресурсам, как файлы и устройства ввода-вывода.

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

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

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

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

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

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

Таким образом , подсистема управления процессами (рис.4.) планирует выполнение про­цессов, то есть распределяет процессорное время между несколькими одновре­менно существующими в системе процессами, занимается созданием и уничто­жением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает синхронизацию процессов, а также обеспечивает взаимодействие между процессами

Управление памятью

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

Существует большое разнообразие алгоритмов распределœения памяти. Οʜᴎ мо­гут отличаться:

Количеством выделяемых процессу областей памяти (в одних случаях память выделяется процессу в виде одной непрерывной облас­ти, а в других - в виде нескольких несмежных областей),

Степенью свободы гра­ницы областей (она должна быть жестко зафиксирована на всœе время существова­ния процесса или же динамически перемещаться при выделœении процессу дополнительных объёмов памяти),

В некоторых системах распределœение памяти выполняется страницами фиксированного размера, а в других - сегментами пе­ременной длины

Одним из наиболее популярных способов управления памятью в современных операционных системах является так называемая виртуальная память .

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

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, функциями ОС по управлению памятью являются (рис.5) отслежива­ние свободной и занятой памяти; выделœение памяти процессам и освобождение памяти при завершении процессов; защита памяти; вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней всœех процессов, и возвращение их в оперативную память, ко­гда в ней освобождается место, а также настройка адресов программы на кон­кретную область физической памяти.

Управление файлами и внешними устройствами

Опе­рационная система виртуализирует отдельный набор данных, хранящихся на внешнем накопителœе в виде файла - простой неструктурированной последова­тельности байтов, имеющей символьное имя. Для удобства работы с данными файлы группируются в каталоги. Пользователь может с помощью ОС выполнять над файлами и каталогами такие действия, как поиск по имени, удаление, вывод содержимого на внешнее устройство (к примеру, на дисплей), изменение и сохра­нение содержимого.

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

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

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

Подсистема управления внешними устройствами, называемая также подсисте­мой ввода-вывода , исполняет роль интерфейса ко всœем устройствам, подключен­ным к компьютеру. Спектр этих устройств очень обширен. Номенклатура вы­пускаемых накопителœей на жестких, гибких и оптических дисках, принтеров, сканеров, мониторов, плоттеров, модемов, сетевых адаптеров и более специаль­ных устройств ввода-вывода, таких как, к примеру, аналого-цифровые преобразо­ватели, может насчитывать тысячи моделœей. Эти модели могут существенно отличаться набором и последовательностью команд, с помощью которых осуще­ствляется обмен информацией с процессором и памятью компьютера, скоростью работы, кодировкой передаваемых данных, возможностью совместного исполь­зования и множеством других деталей.

Программа, управляющая конкретной моделью внешнего устройства и учиты­вающая всœе его особенности, обычно принято называть драйвером этого устройства (от английского drive - управлять, вести). Созданием драйверов устройств занимаются как разработчики конкретной ОС, так и специалисты компаний, выпускающих внешние устройства.

Поддержание высокоуровневого унифицированного интерфейса прикладного программирования к разнородным устройствам ввода-вывода является одной из наиболее важных задач ОС.

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

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, функциями ОС по управлению файлами и внешними устройствами (рис.6) являются виртуализация отдельных наборов данных; преобразование символьных имен файлов в физические адреса данных на диске; передачу данных между внешними устройствами и оперативной памятью; управление конкретным типом периферийных внешних устройств; реализации концепции файлового доступа для обмена данными с внешними устройствами.

Управление процессами - понятие и виды. Классификация и особенности категории "Управление процессами" 2017, 2018.

Task Manager - это один из самых мощных и удобных инструментов в NT, предназначенных для управления процессами. Вызывается он либо Ctrl+Shift+Esc, либо выбором в меню, появляющимся после нажатия правой кнопкой на Taskbar-е. Task manager в Windows XP состоит из пяти закладок - Applications , Processes , Performance , Networking и Users. Начнём с Performance.

На этой закладке показывается информация о загрузке процессора(ов) в реальном времени (зелёным цветом процессы пользователя, красным системные процессы), показывается загрузка физической памяти, причём показано сколько занято/свободно оперативной памяти, и сколько занято системного Swap-а. Кроме этого даётся другая дополнительная информация, например Threads и Processes, - количество нитей и процессов, исполняемых сейчас на машине, Peak - пиковый размер Swap-а в течении сессии, Nonpaged - количество памяти, отведённое под ядро. Эта информация может использоваться, когда надо будет ответить на вопрос, какой фактор в системе является «бутылочным горлышком», замедляющим работу (хотя для этих целей лучше использовать Performance Monitor).

Вторая закладка, Processes , содержит список процессов, активных в данный момент.

Для каждого процесса можно узнать некоторую дополнительную информацию, как то: PID (Process ID), количество используемой оперативной памяти, количество нитей, сгенерированных процессом и многое другое. Из полезных дополнений, которые появились в XP, следует отметить появившейся столбик User Name. В нём можно узнать, какой пользователь, или системная служба запустила тот или иной процесс. Добавить/удалить показываемые параметры можно через View -> Select Columns.

Кроме этого, с любым из этих процессов можно произвести определённые действия. Для этого надо просто нажать на нём правой кнопкой мыши, появится контекстное меню, через которое можно закончить («убить») процесс (End Process); также можно убить как сам процесс, так и все остальные, которые он «породил» (End Process Tree). Можно выставить приоритет процессу, от высшего Real-Time до самого низкого, Low. Если на машине установлено два процессора и многопроцессорное ядро, то в этом меню появляется ещё один пункт, Set Affinity, который позволяет перевести процесс на другой процессор, Cpu 0, Cpu1, и так далее до Cpu31.

Закладка - Applications позволяет просмотреть список работающих приложений и «убить» любое из них. Task Manager позволяет не только «убивать» приложения, он может также запускать новые приложения. File -> New task (Run..). Иногда это бывает очень полезно. Например, если по какой либо причине зависнет интерфейс пользователя, то его можно с лёгкостью «убить» (процесс explorer.exe), а после стартовать заново. Причём, это не обязательно должен быть explorer.exe. Можно, к примеру, запустить progman.exe, и получить интерфейс подобный интерфейсу W3.1, или же любой из внешних интерфейсов, которые в изобилии можно найти на просторах Интернета.

Закладка

Закладка Users . На ней можно посмотреть пользователей, которые в данный момент работают на машине. Если у вас имеется достаточно прав, то вы можете отключить этого пользователя, или просто послать ему сообщение. Подобные вещи давно и широко используются в самом различном программном обеспечении, предназначенном для управления многопользовательскими системами, но именно в Task Manager эта возможность появилась впервые.

Цель работы : практическое знакомство с методикой управления процессами ОС MS Windows XP с помощью диспетчера задач

1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.1 Процессы и потоки

В отличие от MS DOS, процессы в Win32 инертны, т. е. В Win32 процесс ничего не выполняет.

Процесс владеет:

4 Гб адресным пространством (при выполнении на 32-х разрядном ЦП);

Файлами;

Модулями (например, загруженными в адресное пространство DLL);

Одним или несколькими потоками.

Процесс обладает:

Идентификатором процесса (PID);

Базовым классом приоритета;

Маркером доступа (access token);

Идентификатором родительского процесса;

Набором используемых описателей (Handles) системных объектов;

Рабочим множеством страниц оперативной памяти и т.д.

Процесс (Пр) может породить другой процесс- см. рис.1.

Рисунок 1 – порождение процессов.

Процесс Пр1 породил процесс Пр2, который породил процессы Пр3 и Пр4.

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

В каждой системе Windows выполняются следующие системные процессы:

Процесс Idle (включает по одному потоку на процессор для учета времени простоя процессора);

Процесс System (содержащий большинство системных потоков режима ядра);

Диспетчер сеансов (Smss.exe);

Подсистема Windows (Csrss.exe);

Процесс входа в систему (Winlogon.exe);

Диспетчер управления сервисами (Services.exe) и создаваемые им дочерние процессы сервисов (например, универсальный процесс для хостинга сервисов, Svchost.exe);

Серверный процесс локальной аутентификации (Lsass.exe).

Два из указанных процессов, Idle – бездействие системы и System, не являются процессами в строгом смысле этого слова, поскольку они не выполняют какой-либо код пользовательского режима.

Диспетчер сеансов (Session Manager) Smss.exe является первым процессом пользовательского режима, создаваемым в системе. Он порождается системным потоком режима ядра и запускает процессы подсистем Csrss.exe и Winlogon, который в свою очередь создает остальные системные процессы.

Процесс входа в Windows - Winlogon.exe обрабатывает интерактивный вход пользователя в систему и выход из нее. При нажатии комбинации клавиш Alt+Ctrl+Del Winlogon получает уведомление о запросе пользователя на вход в систему.

После ввода имя и пароль пользователя посылаются для проверки серверному процессу локальной аутентификации LSASS. После успешной аутентификации LSASS вызывает какую-либо функцию в мониторе состояния защиты, чтобы сгенерировать объект «маркер доступа» (access token object), содержащий профиль безопасности пользователя. Впоследствии Winlogon использует его для создания начального процесса оболочки. Информация о начальном процессе хранится в параметре Userinit в разделе реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

По умолчанию начальным процессом считается Userinit.exe, который выполняет некоторые действия по инициализации пользовательской среды, а затем ищет в реестре параметр Shell и создает процесс для запуска определенной системной оболочки – по умолчанию Explorer.exe. После этого процесс Userinit.exe завершается и не показывается в списке выполняющихся процессов. Процесс Explorer.exe является «внучатым» процессом Winlogon. Процесс Explorer.exe – предок всех запущенных прикладных (пользовательских) процессов.

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

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

Чтобы процесс что-нибудь выполнил, в нем нужно создать поток (Thread). В принципе, один процесс может содержать несколько потоков и они одновременно используют код в адресном пространстве процесса. Для этого каждый поток должен поток располагать собственным набором регистров процессора, а каждый процесс – как минимум – одним потоком. Чтобы все эти потоки работали, ОС отводит каждому из них определенное процессорное время (квант времени). Время выдается потокам квантами по кругу (см. рис. 2) в соответствии с их приоритетами:

Рисунок 2 - схема выделения квантов времени потокам (П)

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

Потоки также могут создаваться драйверами режима ядра.

В WinNT, 2000, XP Windows Server - за потоком может быть закреплен отдельный процессор (процессоров может быть до 32), тогда потоки действительно выполняются параллельно.

1.2 Инструменты управления процессами

В ОС Windows встроена программа Диспетчер задач (Task Manager), с помощью которой можно получить информацию о выполняющихся в системе системных и прикладных процессах, количестве используемых ими потоков и потребляемых ресурсах, управлять выполнением процессов, изменять приоритеты процессов. Для запуска диспетчера задач можно использовать комбинацию Alt+Ctrl+Del или нажатие правой кнопкой мыши на панель задач. Окно диспетчера задач показано на рис. 3.

Рисунок 3 - Окно диспетчера задач (закладка Процессы)

В окне Процессы можно видеть список всех выполняемых в системе процессов и их параметры – на рис.3 это идентификаторы процессов, загрузка ЦП каждым процессом и количество потоков. Заметьте, что количество потоков, равное 0 не говорит о том, что их действительно нет (это процесс такой).

С помощью меню Вид можно удалить из списка показанные на рис.3 параметры или добавить новые.

Закладка Быстродействие (см. рис.4) дает возможность вывести графики суммарной загрузки ЦП, использования файла подкачки, а также получить сведения о суммарном потреблении ресурсов ПК.

Диспетчер задач – очень простой инструмент, его возможностей недостаточно для решения даже несложных задач анализа и управления системой. ПРИМЕР – постройте дерево выполняемых в системе процессов на основе полученной с помощью диспетчера задач информации.

Фирмой Sysinternals разработана программа Process Explorer, обладающая значительно большими возможностями, чем диспетчер задач от Microsoft, а также ряд других программ для управления ПК и анализа информационной безопасности. Однако все эти программы бесплатны только для личного использования и на современном этапе без лицензии не могут использоваться в учебном процессе кафедры.

Рисунок 4 - Окно диспетчера задач (закладка Быстродействие)

2. МЕТОДИКА ВЫПОЛНЕНИЯ

1. Запустить диспетчер задач, ознакомиться с перечнем параметров процессов (меню вид закладки Процессы).

2. Ознакомиться с возможностями диспетчера задач по управлению процессами (создание процесса и завершение процесса). Изменение приоритета выбранного процесса с помощью контекстного меню.

3. Ознакомиться с возможностями диспетчера по управлению выводом информации на экран (упорядочивание списка по возрастанию и убыванию значений выбранного параметра).

4. Построить график изменения загрузки ЦП при перемещении мыши, изменении размеров окна диспетчера, запуске приложений Open Office.

5. Построить график изменения размера выделенной в файле подкачки памяти при запуске приложений (Open Office, Visual Studio).

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

Таблица 1 Индивидуальные задания

Таблица 2 - Параметры процессов

3. ОТЧЕТ О РАБОТЕ

Готовится в письменном виде с помощью Open Office один на бригаду.

1. Титульный лист с номером и названием работы, номером группы, бригады, фамилиями студентов и преподавателя

2. Перечень использованных при выполнении работы параметров процессов

3. Результаты, полученные при выполнении индивидуального задания.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Дать определение процесса, потока, системного и прикладного процесса

2. Какая информация необходима для построения перечня выполняющихся в системе процессов в виде дерева. Можно ли получить такую информацию в MS Windows, используя диспетчер задач?

В отличие от «полуторазадачной» MS-DOS, которая оставляет прикладному программисту всю работу (и весь риск) организации параллельного функционирования процессов, многозадачные ОС предоставляют программисту более или менее удобный и богатый набор системных функций, позволяющих запустить несколько параллельных процессов и организовать их взаимодействие (синхронизацию процессов, обмен данными, взаимное исключение и т.п.). При этом ОС обязана гарантировать корректную и эффективную организацию переключения процессов, разделения между ними процессорного времени, памяти и других ресурсов.

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

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

Все версии Windows от 1.0 до 3.11 представляли собой достаточно мощные многозадачные системы с невытесняющей диспетчеризацией. Версии, начиная с Windows NT и Windows 95, используют вытесняющую диспетчеризацию.

      1. Понятие объекта в Windows

В ОС Windows широко используется понятие системного объекта . По сути, любой объект представляет собой некоторую структуру данных, расположенную в адресном пространстве системы. Поскольку приложения не могут иметь доступа к этой памяти, то для работы с объектом приложение должно получить хэндл объекта – некоторое условное число, которое будет представлять данный объект при обращении к API-функциям. Процесс получает хэндл, как правило, при вызове функции CreateXxx (здесь Xxx – название объекта), которая может либо создать новый объект, либо открыть существующий объект, созданный другим процессом. Функции вида OpenXxx позволяют только открыть существующий объект.

Объекты Windows делятся на объекты ядра (KERNEL), позволяющие управлять процессами, объекты USER, описывающие работу с окнами, и объекты GDI, задающие графические ресурсы Windows. В данном курсе рассматриваются только объекты ядра. Процессы, нити и открытые файлы являются примерами объектов ядра.

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

Хэндл объекта может быть использован только тем процессом, который создал или открыл этот объект. Нельзя просто переслать значение хэндла другому процессу, оно не будет действовать в другом контексте. Имеется, однако, функция DuplicateHandle , которая создает корректную копию хэндла, требуя указать для этого, какой процесс создает копию, какого именно хэндла и для какого процесса предназначена копия.

Если хэндл объекта больше не нужен данному процессу, его следует закрыть с помощью функции CloseHandle , общей для разных типов объектов.

Объект существует до тех пор, пока не будут закрыты все хэндлы, указывающие на него.