Древовидная структура процессов в ОС Windows Объектная модель в ОС Windows. ЛР2. Лабораторная работа 1 Древовидная структура процессов в ос windows Объектная модель в ос windows по дисциплине Операционные системы
![]()
|
Санкт-Петербургский политехнический университет Петра Великого Институт компьютерных наук и технологий Кафедра «Компьютерные интеллектуальные технологии» Лабораторная работа №1 Древовидная структура процессов в ОС Windows Объектная модель в ОС Windows по дисциплине «Операционные системы» Выполнил студент гр.03506/0 Е.Н. Мазур <_________> Руководитель доцент, к.т.н. А.В. Сергеев <_________> «___» __________ 2019 г. Санкт-Петербург 2019 Цель работы: Изучить древовидную структуру процессов в ОС Windows. Исследовать зависимость дочернего процесса от родительского. Рассмотрение особенностей реализации объектной модели в ОС Windows. При помощи утилиты Process Explorer (procexp.exe) исследуйте дерево процессов и постройте соответствующий граф. Так как полный граф получается большой, то на каждом уровне достаточно изобразить 4 процесса. На графе должны быть указаны наименования процессов, идентификаторы процессов и количество потоков в каждом процессе. Всего процессов в графе должно быть не менее 20. ![]() ![]() ![]() ![]() System PID: 4 Threads: 242 System Idle Process PID: 0 Threads: 12 Memory Compression PID: 2116 Threads: 46 smss.exe PID: 500 Threads: 2 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Opera_crashreporter.exe PID: 2512 Threads: 7 opera.exe PID: 464 Threads: 26 Conhost.exe PID: 11920 Threads: 2 NVIDIA Web Helper.exe PID: 14752 Threads: 93 RAVCpl64.exe PID: 3772 Threads: 7 SecurityHelpSystray.exe PID: 9972 Threads: 1 explorer.exe PID: 9960 Threads: 83 dwm.exe PID: 18016 Threads: 22 fontdrvhost.exe PID: 14308 Threads: 5 winlogon.exe PID: 15624 Threads: 3 SefCharp.BrowserSubpprocess.exe PID: 4216 Threads: 37 SefCharp.BrowserSubpprocess.exe PID: 9064 Threads: 21 RazerCentral.exe PID: 16620 Threads: 36 RazerCentralService.exe PID: 3260 Threads: 22 dllchost.exe PID: 1952 Threads: 5 svchost.exe PID: 568 Threads: 12 services.exe PID: 876 Threads: 8 wininit.exe PID: 804 Threads: 1 Запустите программу procexp.exe. Появится окно, разделённое на две части. В верхней части представлен список процессов. В нижней части находится список описателей объектов (handle) для процесса или список используемых dll в зависимости от настройки. Все процессы надо упорядочить в виде дерева для этого надо выбрать пункт меню View-Show Process Three. Если этот пункт меню не активный, то процессы уже представлены в виде дерева. Для определения потоков процесса надо выделить требуемый процесс и нажать правую кнопку мыши. В контекстном меню надо выбрать Properties и закладку Threads. На этой вкладке показаны стартовые адреса всех потоков процесса, а также их ID. В отчёте приведите описание любой системной службы, представленной на графе. Объясните для чего она нужна и особенности работы. Процесс explorer.exe является основной частью операционной системы Windows и служит для улучшения графической оболочки проводника для переключения различных папок и файлов. C помощью этого процесса пользователь может открывать папки, копировать и удалять файлы. Определение имён системных служб, использующих те или иные процессы. Требуется заполнить следующую таблицу.
Процессы системных служб в программе Process Explorer выделены розовым цветом. Сопоставление процесса со службой можно выполнить, используя диспетчер задач. Запустите диспетчер задач и выберите вкладку Службы. На вкладке представлен список служб и их описание. Используя PID, можно сопоставить процесс и службу, выполняющуюся в процессе. В таблицу требуется занести информацию о 10 системных службах. Как видно запущено несколько процессов svchost.exe. Каждый процесс svchost.exe содержит несколько системных служб. Объясните, что из себя представляет процесс svchost.exe, зачем он нужен? Почему один процесс содержит несколько системных служб? svchost.exe это процесс, потоки которого оформлены в виде служб, загружаемых из dll библиотек. Сам процесс служит для запуска этих библиотек, соответственно, чем больше этих служб, тем больше копий этого процесса. Исследование связи родительских и дочерних процессов. Запустите окно командной строки cmd.exe. Измените заголовок окна на Parent, набрав команду title Parent. ![]() Из запущенного окна командной строки запустим ещё одно окно командной строки. Для этого наберите команду start cmd. Переименуйте новое окно, набрав команду title Child. ![]() Перейдите в «Диспетчер задач». Откройте вкладку «Процессы», если используется ОС Windows 10, или «Приложения», если используется Windows 7. Щёлкните правой кнопкой мыши на задаче Parent и выберите пункт «Подробно» ("Перейти к процессу"). Диспетчер задач Windows 3 10 не показывает имя окна в отличие от Windows 7. В этом случае следует учитывать, что процесс Parent располагается ниже Child в списке приложений. Щёлкните правой кнопкой мыши на процессе cmd.exe и выберите пункт "Завершить дерево процессов". Почему завершились оба процесса? Оба процесса находятся в одно дереве процессов, поэтому закрытие процесса Parent привело к закрытию процесса Child. Запустим опять окно командной строки: Пуск – Выполнить – cmd. Повторите пункты 3.2 – 3.4. В окне Child запустите программу Paint, набрав mspaint. После запуска программы Microsoft Paint завершите работу окна Child. Для этого в окне Child надо набрать команду exit. Окно Child закрылось, а программа Paint продолжает работать. Почему? Мы завершили сам процесс Child, а не дерево процессов, как было в предыдущем вопросе, поэтому закрылось только окно Child. Перейдите в «Диспетчер задач». Откройте вкладку «Процессы» («Приложения»). Щёлкните правой кнопкой мыши на задаче Parent и выберите пункт «Подробно» ("Перейти к процессу"). Щёлкните правой кнопкой мыши на процессе cmd.exe и выберите пункт "Завершить дерево процессов". Почему программа Paint продолжила работу? После закрытия процесса Child процесс Paint стал работать самостоятельно, отдельно от дерева процессов Parent. Поэтому завершения дерева процессов не привело к закрытию Paint. Исследование динамического приоритета дочерних процессов. Запустите окно командной строки cmd.exe. Измените приоритет процесса cmd.exe на Below Normal. Командой start cmd создайте дочерний процесс. Определите динамический приоритет дочернего процесса. Объясните получившийся результат. Приоритеты не поменялись, т.к. дочерний процесс наследует приоритет родительского и меняется в том случае, когда приоритет родительского процесса выше среднего. Закройте дочерний процесс, а приоритет родительского процесса измените на Above Normal. Командой start cmd создайте дочерний процесс. Определите динамический приоритет дочернего процесса. Объясните получившийся результат. Приоритет дочернего процесса установился на Normal т.к. приоритет родительского процесса был Above Normal, а в таком случае приоритет не наследуется. Исследование объектов, принадлежащих процессу. Объекты, принадлежащие процессу, описываются дескрипторами или описателями (handles). Описатели каждого процесса представлены в нижнем окне утилиты Process Explorer. Запустите программу Microsoft Word. Найдите в Process Explorer процесс WINWORD.EXE. Определите общее количество объектов, принадлежащих данному процессу. Для этого надо выделить требуемый процесс и нажать правую кнопку мыши. В контекстном меню надо выбрать Properties и закладку Performans. Параметр Handles показывает число описателей. Каждый описатель определяет объект. Процессу WINWORD.EXE принадлежит 1209 объектов. ![]() Определите количество разных типов объектов, принадлежащих процессу WINWORD.EXE. В WINWORD.exe 11 различных типов объектов: -WindowStation -Thread -Semaphore -Section -Mutant -Key -File -Event -Directory -Desktop -ALPC Port Откройте документ в запущенной программе WINWORD.EXE. Как изменилось количество объектов, принадлежащих данному процессу? Какие новые объекты типа File, связанные с открытым файлом, появились? Количество объектов увеличилось, появились новые типы объектов: -Job -Process -Token Появился объект типа File с именем открытого документа. Запустите программу Блокнот (Notepad.exe). Откройте текстовый файл. Определите, какие появились объекты типа File, связанные с открытым файлом. Почему отсутствует объект, связанный с открытым файлом? Количество объектов типа File увеличилось. Объект с именем открытого текстового файла не обнаружен. Возможно это связанно с тем, что процесс обращается к открытому файлу не напрямую. |