Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 300085.doc
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
319.49 Кб
Скачать

Министерство образования и науки РФ

Государственное образовательное учреждение

высшего профессионального образования

Воронежский государственный

архитектурно-строительный университет

Кафедра прикладной информатики и информационных систем

Операционные системы, среды и оболочки

Методические указания

к выполнению лабораторных работ по курсу «Операционные системы,

среды и оболочки» для студентов 2-го курса специальности

080801 «Прикладная информатика (в экономике)»

Воронеж 2011

УДК 681.3.06.(075)

ББК 32.973-018я7

Составители

Д.К. Проскурин, К.А. Маковий

Операционные системы: метод. указания к выполнению лабораторных работ для студ. 2-го курса 080801/ Воронеж. гос. арх.-строит. ун-т; сост.: Д.К. Проскурин, К.А. Маковий – Воронеж, 2011. - 32 с.

Содержат описание выполнения лабораторных работ по курсу «Операционные системы». Приведен в достаточном объеме теоретический материал, а так же подробные рекомендации к выполнению лабораторных работ.

Предназначены для студентов второго курса специальности 080801 «Прикладная информатика (в экономике)».

Ил.1. Табл.5. Библиогр. 5 назв.

УДК 681.3.06.(075)

ББК 32.973-018я7

Печатается по решению редакционно-издательского совета

Воронежского государственного

архитектурно-строительного университета

Рецензент – Баркалов С.А., проф.,

зав. кафедрой управления строительством

ГОУВПО ВГАСУ

1.Введение

Целью лабораторного практикума по курсу «Операционные системы, среды и оболочки» является получение практических навыков администрирования операционной системы (ОС) Windows XP, глубокое понимание механизмов работы ОС и освоение методов мониторинга ресурсов ОС.

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

Особое внимания уделено возможностям и средствам администрирования и управления операционной системой, а также тонкой настройки параметров ОС. В качестве источника дополнительных утилит используются пакеты Windows Support Tools, Windows Resource Kit, позволяющие расширить возможности стандартных встроенных в ОС инструментов.

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

Лабораторная работа №1 Наблюдение и управление распределением процессорного времени в oc Windows xp Professional

Цель работы: изучить основные средства управления процессами и нитями в ОС Windows XP Professional. Oзнакомиться с механизмом распределения процессорного времени.

Краткие теоретические сведения

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

В общем случае ресурсом называется всякий объект, который может распределяться внутри системы.

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

Программа представляет собой статический набор команд.

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

Каждый процесс в Windows XP включает следующее:

  • Закрытое виртуальное адресное пространство – диапазон адресов виртуальной памяти, которым может пользоваться процесс;

  • Исполняемую программу – начальный код и данные, размещаемые в виртуальном адресном пространстве процесса;

  • Уникальный идентификатор процесса

  • Список описателей системных ресурсов, доступных всем нитям данного процесса (например, файлов)

  • Маркер доступа (access token), содержащий права на доступ к этому объекту

  • Минимум одну нить.

Нить – часть процесса, получающая процессорное время для выполнения. Содержит следующие наиболее важные элементы:

  • Содержимое набора регистров процессора, отражающих состояние процессора

  • Два стека, один из которых используется в режиме ядра, другой – в режиме пользователя.

  • Т.н. локальную память нити, т.е. область памяти, доступной только этой нити

  • Уникальный идентификатор нити. ID нитей и процессов генерируются из единого пространства имен и никогда не перекрываются.

Контекстом нити называют переменные регистры, стеки и локальные области памяти.

Одним из ресурсов ОС является процессорное время – время, в течение которого процессор занимается выполнением кода данной нити. Концепция вытесняющей многозадачности, реализованная в Windows XP, предусматривает назначение процессам и нитям приоритетов для распределения процессорного времени. Приоритеты нитей определяют порядок, в котором они планируются для выполнения процессором. Приоритет нити устанавливается исходя из класса приоритета его родительского процесса. Существует четыре класса приоритета процесса:

  • Idle (Низкий) – обычно используется заставками и прочими процессами, периодически обновляющими экранное изображение;

  • Normal (Средний) – устанавливается для процесса по умолчанию;

  • High (Высокий) – процессам, имеющим приоритет класса High (Высокий), выделяется наибольшее количество времени процессора;

  • Real Time (Реального времени) – используется многими системными процессами режима ядра, такими, как процессы управления вводом с клавиатуры и мыши и другими операциями устройств.

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

  • Time_critical– критический.

  • Highest – высший,

  • Above_normal – выше среднего,

  • Normal – средний,

  • Below_normal – ниже среднего,

  • Lowest – низший,

  • Idle – приоритет простоя.

Класс приоритета каждого процесса определяет некий диапазон значений приоритета (от 1 до 31, где 1 – самый низкий приоритет, а 31 – самый высокий), и из этого диапазона назначаются приоритеты нитям данного процесса. (Приоритет 0 резервируется для нужд системы). Если используется класс Real Time (приоритеты 16 – 31), приоритет нити нельзя изменить во время его выполнения. Если выполняется хотя бы одна нить с приоритетом 31, другие нити выполняться не могут.

Нити, использующие другие классы приоритетов, допускают корректировку, т. е. приоритет такой нити можно изменять во время выполнения. Для нити класса Normal или High (приоритеты 1–15), приоритет можно повышать или понижать на 1 или 2, но он не может стать меньше исходного, базового приоритета, определенного программным способом. Если базовый приоритет корректируется с целью оптимизации планирования, итоговое значение называется динамическим приоритетом нити.

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

В данной работе программа cpustres.exe используется для изучения механизма приоритетов в ОС Windows XP. Ее интерфейс позволяет изменять количество и приоритет нитей, порождаемых запуском этой программы.

Практические задания

Задание 1. Изучение работы с нитями на примере программы CPU Stress.

  1. Нажать Пуск| Выполнить| Обзор. Указать путь к программе cpustres.exe.

  2. Нажать Пуск| Выполнить| Обзор. Указать путь к программе procexp.exe.

  3. Выберите в окне Process окна программы Process Explorer процесс под названием cpustres.exe. Нажмите правую кнопку мыши и в выпадающем меню выберите Properties, затем, вкладку Threads. В окне приложения CPU Stress последовательно изменяйте количество нитей от 0 до 4, ставя галочки в поле Active соответствующей нити и нажимая после каждого изменения кнопку Refresh в левой части окна Process Viewer. Наблюдайте изменение количества нитей в окне Threads.

  4. В нижнем правом углу вкладки Threads найдите значение параметра Dynamic Priority (Динамический приоритет). Для того, чтобы определить динамический приоритет конкретной нити, щелкните мышкой по данной нити.

  5. В окне программы CPU Stress запустите нить 1 (Thread 1), установив галочку в поле Active; задайте в поле Thread Priority (Приоритет нити) значение Normal. Установите класс приоритета процесса (Process Priority Class) в значение Normal. Запишите значение Dynamic Priority (Динамический приоритет).

  6. Изменяйте класс приоритета процесса (Process Priority Class) от Low до High и приоритет нити 1 (Thread 1) от Lowest до Highest и записывайте значения динамического приоритета (Dynamic Priority). По результатам заполните табл. 1:

Таблица 1

Process Priority Low

Process Priority Normal

Process Priority High

Thread Priority Lowest

Thread Priority Normal

Thread Priority Highest

  • Какое максимальное количество нитей может создавать приложение CPU Stress?

  • Равнозначны ли понятия: приоритет процесса и приоритет нити?

  • Как изменяется динамический приоритет нити при изменении приоритета процесса?

Задание 2. Знакомство с работой диспетчера задач

Диспетчер задач – это утилита Windows XP, позволяющая получить информацию об исполняемых процессах Windows XP. Он позволяет:

  • Отображать перечень работающих приложений и процессов.

  • Отображать базовые параметры процессов: занимаемое процессорное время, используемая память, базовый приоритет и количество нитей.

  • Отображать графики и текущие значения загрузки памяти и процессора.

Диспетчер задач можно запустить тремя способами:

  • Нажав клавиши Ctrl+Shift+Esc

  • Щелкнув панель задач правой кнопкой мыши, выбрать в меню Диспетчер задач

  • Нажав клавиши Ctrl+Alt+Delete, щелкнуть кнопку Диспетчер задач

  1. Запустите Диспетчер задач. На вкладке Процессы найдите процесс cpustres.exe. В окне приложения CPU Stress изменяйте количество активных нитей от 0 до 4. Как при этом изменяется загрузка процессора этим процессом?

  2. Изменяя степень активности отдельных нитей, выясните, как это влияет на загрузку процессора?

Задание 3. Наблюдение за активностью процессов с помощью утилиты Performance Monitor (Системный монитор).

  1. Запустите программу CPU Stress с двумя активными нитями.

  2. Нажмите Пуск| Программы| Администрирование| Системный монитор.

  3. Добавьте счетчики:

Объект Процессор| счетчик: % загруженности процессора

Объект Поток| счетчик: % загруженности процессора| Вхождения: cpustress/1

Объект Поток| счетчик: % загруженности процессора| Вхождения: cpustress/2

  1. Установите для обеих нитей Activity Low. Установите для первой нити приоритет Highest, для второй Below_normal. Отличается ли % загрузки процессора для этих двух нитей?

  2. Измените у обеих нитей Activity на Busy. Установите для первой нити приоритет Highest, для второй Below_Normal. Отличается ли % загрузки процессора для этих двух нитей?

    • Изменилось ли распределение процессорного времени между нитями? Опишите, каким образом.

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

Контрольные вопросы

  1. Какие средства для контроля процессов и нитей Вы знаете? Опишите особенности каждого из перечисленных средств.

  2. Перечислите базовые классы приоритета процесса. Какие процессы имеют базовый класс приоритета, соответствующий каждому из этих классов? Каков базовый класс приоритета процесса по умолчанию в Windows XP?

  3. Как вы понимаете понятие динамического приоритета нити? Как изменяется приоритет нити относительно приоритета процесса?

  4. В чем принципиальное отличие планирования процессов и нитей в ОС Windows XP и Windows 2003 Server? Как влияет настройка Windows XP на планирование процессов и нитей? Какие стратегии используются для оптимизации распределения приоритетов?

  5. Изобразите схематично ситуацию: у процесса А приоритет Normal, а приоритет нити C – High, а у процесса B приоритет процесса High, а приоритет нити D – Normal. У какой из нитей C или D динамический приоритет будет выше и почему?

  6. Почему в 3 задании при изменении активности нитей появляется различие процента загруженности процессора выполнением кода каждой из нитей.

  7. Как степень общей загрузки процессора влияет на распределение процессорного времени между нитями с разным динамическим приоритетом?

  8. Каким образом можно изменять приоритет нити в ОС Windows XP у уже запущенного процесса и при запуске процесса?

  9. Какие факторы влияют на распределение процессорного времени?