Мордовский государственный университет им. Н.П.Огарева
Светотехнический университет
Кафедра светотехники
Отчет по лабораторной работе №2
по курсу "ОФОС"
Выполнил: студент 3205 гр
Завырылин Д.О.
Проверил: Ивлиев С.Н.
Саранск 2010
Теоретическая часть
Необходимо отличать понятия программы и процесса. Программа представляет собой статический набор команд, а процесс — это контейнер для набора ресурсов, используемых при выполнении экземпляра программы. На самом высоком уровне абстракции процесс в Windows включает следующее:
закрытое виртуальное адресное пространство — диапазон адресов виртуальной памяти, которым может пользоваться процесс;
исполняемую программу — начальный код и данные, проецируемые на виртуальное адресное пространство процесса;
список открытых описателей (handles) различных системных ресурсов — семафоров, коммуникационных портов, файлов и других объектов, доступных всем потокам в данном процессе;
контекст защиты (security context), называемый маркером доступа (access token) и идентифицирующий пользователя, группы безопасности и привилегии, сопоставленные с процессом;
уникальный идентификатор процесса (во внутрисистемной терминологии называемый идентификатором клиента);
минимум один поток.
Каждый процесс также указывает на свой родительский процесс (процесс-создатель). Однако, если родитель существует, эта информация не обновляется. Поэтому есть вероятность, что некий процесс указывает на уже несуществующего родителя. Это не создает никакой проблемы, поскольку никто не полагается на наличие такой информации. Поток (thread) — некая сущность внутри процесса, получающая процессорное время для выполнения. Без потока программа процесса не может выполняться.
Поток включает следующие наиболее важные элементы:
содержимое набора регистров процессора, отражающих состояние процессора;
два стека, один из которых используется потоком при выполнении в режиме ядра, а другой — в пользовательском режиме;
закрытую область памяти, называемую локальной памятью потока (thread-local storage, TLS) и используемую подсистемами, библиотеками исполняющих систем (runtime libraries) и DLL;
уникальный идентификатор потока (во внутрисистемной терминологии также называемый идентификатором клиента: идентификаторы процессов и потоков генерируются из одного пространства имен и никогда не перекрываются);
иногда потоки обладают своим контекстом защиты, который обычно используется многопоточными серверными приложениями, подменяющими контекст защиты обслуживаемых клиентов.
Переменные регистры, стеки и локальные области памяти называются контекстом потока. Поскольку эта информация различна на каждой аппаратной платформе, на которой может работать Windows, соответствующая.
Практические задания
Задание 1. Просмотр состояния процессов через диспетчер задач.
Просмотр и анализ взаимосвязей процессов и потоков.
Согласно первому заданию, я запустил диспетчер задач. Переключился на закладку Процессы. В меню Вид выбрал пункт Выбрать столбцы… и указал столбцы согласно (См.Рисунок 1).
Рисунок 1. Выбор столбцов диспетчера задач
Потом определил сколько процессов запущено системой. Для этого я перешел на закладку Быстродействие и в меню Вид выбрал пункт Загрузка ЦП. (см. рис.2) Из рисунка мы видим что системой запущено 53 процесса, загрузка ЦП колеблется от 3-5%, файл подкачки загружен на 931 МБ.
Рисунок 2. Диспетчер задач. Вкладка "Быстродействие"
Теперь запускаю приложение Paint. Загрузка ЦП колеблется в пределах 1-4%, файл подкачки загрузился на 942 МБ. Если сравнить объёмы используемого файла подкачки и доступной физической памяти, то можно сделать вывод что в сумме они дают общий объем физической памяти. (см. рис.3).
Рисунок 3. Результат после запуска приложения Paint
Просмотр времени работы системы в пользовательском режиме и режиме ядра
Согласно следующему заданию я переключился на закладку Быстродействие и в меню Вид выбрал пункт Вывод времени ядра (см. Рисунок 4).
Быстро прокручивал страницы просмотра настоящего описания. На индикаторе Загрузка ЦП процент работы процессора в пользовательском режиме отражается зеленым цветом, в режиме ядра красным. Из рисунка четко видны изменения работы процессора при прокрутке страниц.
Рисунок 4. Состояние системы при прокрутке страниц
Задание 2. Просмотр сведений о поддержке многопроцессорных систем.
Согласно следующему заданию я открыл диспетчер устройств. В списке устройств раскрыл узел Компьютер. В окне свойств перешел на закладку Драйвер и с помощью кнопки Сведения просмотрел сведения о файлах драйверов (см. Рисунок 5).
Рисунок 5. Сведения о файлах поддержки многопроцессорных систем
Задание 3. Просмотр дерева процессов с помощью средства Tlist из набора Debugging Tools for Windows (x86).
В диалоговом окне Выполнить я набрал команду cmd (См. Рисунок 6), после чего у меня запустилось окно командной строки.
Рисунок 6. Запуск окна командной строки
1. В командной строке я ввел команду для поиска средств отладки:
Path c:\program files\Debugging Tools for Windows (x86).
2. Далее введите команду tlist –t получите листинг процессов.
Задание 5. Изучение отношения процессов родитель-потомок.
1. Согласно заданию я открыл окно командной строки.
2. Потом набрал start cmd для запуска второго окна командной строки.
Рисунок 7. Запуск окон командной строки
3. Далее я открыл диспетчер задач.
4. Переключился на второе окно командной строки.
5. Ввел mspaint для запуска Microsoft Paint.
Рисунок 8. Запуск приложения Paint
6. Потом я выбрал второе окно командной строки.
7. Ввел команду exit. тем самым завершив работу второго окна.
8. Потом переключился в диспетчер задач. Открыл его вкладку Приложения. Щелкнул правой кнопкой мыши задачу Командная строка (cmd.exe) и выбрал Перейти к процессам.
Рисунок 9. Диспетчер задач. Переход к процессу cmd.exe
11. Щелкните процесс Cmd.exe, выделенный серым цветом.
12. Щелкнув правой кнопкой мыши, выберите команду Завершить дерево процессов.
13. В окне Предупреждение диспетчера задач щелкните кнопку Да.
Рисунок 10. Диспетчер задач. Переход к процессу cmd.exe
Первое окно командной строки исчезнет, но окно Paint по прежнему работает.
Задание 4. Определение взаимосвязей системного потока и драйвера устройств.
Для просмотра процессов внутри системы и связанных с ними потоков воспользуемся утилитой Process Explorer. После загрузки утилиты в окне я выбрал системный процесс System (См. Рисунок 11) и открыл свойства процесса, дважды щелкнув по строке System.
Рисунок 11. Основное окно Process Explorer
Потом перешел на закладку Threads (потоки). (См.Рисунок 12)
Рисунок 12. Просмотр потоков процесса
В данной вкладке можно просмотреть параметры потоков, нажав кнопку Module. Информация о выбранном драйвере отражается на закладках Общие (См. Рисунок 13.)
Рисунок 13. Свойства драйвера ntdll.dll
Таким образом можно описать назначение каждого процесса, вызываемого системным процессом System. А также можно изучить свойства всех системных host-процессов и сделать выводы в интересах каких сервисов запущен каждый host-процесс.