Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мет_лаб__ОС_Засов_Тарабардин

.pdf
Скачиваний:
16
Добавлен:
09.04.2015
Размер:
623.82 Кб
Скачать

6)Удалите все счётчики и добавьте новые: загруженность процессора процессами CPUSTRESS и базовые приоритеты CPUSTRESS.

7)Просмотрите различие в загруженности процессами процессора.

8)Теперь поменяйте приоритеты для процессов: т.е. для первого поставьте значение « Реального времени», а для второго – « Низкий». Это можно сделать с помощью любой из запущенных в п. 3 утилит.

9)Посмотрите, как изменились графики.

10)Теперь наоборот - для второго процесса поставьте значение « Реального времени», а для первого – « Низкий».

11)Снова пронаблюдайте за графиками (рис. 3).

Рис. 3. Графики загруженности процессора различными процессами

12)Посмотрите так же, как меняются параметры обработки процессов в окнах диспетчера задач (рис. 4) и Process Explorer (например, время, затраченное процессором на выполнение процесса).

13)Сделайте выводы.

Рис. 4. Отображение приоритетов процессов в окне диспетчера задач

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

1)Запустите программу CPUSTRESS.

2)Активируйте три потока.

3)Задайте различным потокам разные приоритеты – низкий, средний и высокий.

4)Активность каждого потока установите в «Busy».

5)Запустите Process Explorer и Process Viewer. Просмотрите параметры потоков для процесса CPUSTRESS.

6)Запустите оснастку Performance. Включите счётчики загруженности процессора каждым из потоков. Сюда же можно включить счётчики текущих приоритетов. Не используйте поток CPUSTRESS/0, т.к. этот поток отвечает за графический интерфейс программы.

7)Изменяя приоритеты потоков, пронаблюдайте графики (рис. 5).

8)Проследите за потоками через утилиты Process Explorer и Process Viewer.

9)В системном мониторе Performance удалите все счётчики и добавьте новые – « Состояние потока» для каждого из трёх потоков.

10)Установите верхнее значение шкалы равным 10 (в свойствах графика).

Рис. 5. Графики загруженности процессора различными потоками

11)Посмотрите, в каких состояниях бывают потоки, с какой периодичностью (рис. 6). Почему?

12)Сделайте выводы.

Рис. 6. Графики состояния различных потоков

Содержание отчета

1.Титульный лист работы.

2.Формулировка цели и задач работы.

3.Список используемых средств Windows.

4.Список выбираемых счётчиков и их назначение.

5.Графики загруженности операционной системы.

6.Краткие выводы по проделанной работе.

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

1.Что такое приоритет процесса и потока?

2.Какие уровни приоритетов Вы знаете?

3.Сколько уровней приоритета существует?

4.Как назначить приоритет процессу?

5.Какие состояния потока Вы знаете?

6.Какие уровни приоритета являются статическими, а какие могут быть динамическими?

7.Что такое квантование? Для чего оно нужно?

8.В каких случаях поток освобождает процессор?

ЛАБОРАТОРНАЯ РАБОТА №5 УПРАВЛЕНИЕ ПАМЯТЬЮ

Цель работы: изучение средств операционной системы Windows для управления ресурсами памяти.

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

1. Виртуальная память. В Windows реализована система виртуальной памяти [3], основанная на плоском (линейном) адресном пространстве. Она создает каждому процессу иллюзию того, что у него есть собственное большое и

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

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

Размер виртуального адресного пространства зависит от конкретной аппаратной платформы. На 32-разрядных х8б-системах теоретический максимум для общего виртуального адресного пространства составляет 4 Гб.

2.Диспетчер памяти. Диспетчером памяти [3] выполняются следующие задачи:

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

(working set);

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

- предоставление базового набора сервисов; - поддержка файлов проецируемых в память;

- поддержка приложений использующих большие разреженные адресные пространства;

- использование больше памяти, чем можно спроецировать на виртуальное адресное пространство процесса (AWE).

По умолчанию виртуальный размер процесса в 32-разрядной Windows — 2 Гб. Если образ помечен как поддерживающий большое адресное пространство и система загружается со специальным ключом, 32-разрядный процесс может занимать до 3 Гб в 32-разрядной Windows и до 4 Гб в 64-разрядной. Размер виртуального адресного пространства процесса в 64-разрядной Windows составляет 7152 Гб на платформе IA64 и 8192 Гб на платформе хб4. (Это значение может увеличиться в следующих выпусках 64-разрядной Windows.)

3.Компоненты диспетчера памяти. В диспетчер памяти входят следующие компоненты:

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

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

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

-подсистема записи спроецированных страниц с приоритетом 17. Записывает измененные страницы спроецированных файлов на диск. Пробуждается, когда нужно уменьшить размер списка модифицированных страниц или когда страницы модифицированных файлов находятся в этом списке более 5 минут. Этот второй поток записи модифицированных страниц требуется потому, что он может генерировать ошибки страниц, в результате которых выдаются запросы на свободные страницы. Если бы в системе был лишь один поток записи модифицированных страниц, она могла бы перейти в бесконечное ожидание свободных страниц;

-поток сегмента разыменования с приоритетом 18. Отвечает за уменьшение размеров системного кэша и изменение размеров страничного файла;

-поток обнуления страниц (zero page thread) с приоритетом 0. Заполняет нулями страницы, зарегистрированные в списке свободных страниц.

Диспетчер памяти предоставляет набор системных сервисов для выделения

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

Диспетчер памяти поддерживает такие сервисы, как выделение и освобождение физической памяти, блокировка страниц в физической памяти для передачи данных другим компонентам исполнительной системы режима ядра и драйверам устройств через DMA [4].

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

— наименьшая единица защиты на аппаратном уровне. Страницы бывают двух размеров: малого и большого (табл. 1). Реальный размер зависит от аппаратной платформы.

Преимущество больших страниц — скорость трансляции адресов для ссылок на другие данные в большой странице.

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

чтения и данные для записи/чтения, она должна быть помечена как доступная для чтения и записи, т. е. код станет открытым для записи.

 

 

 

 

Таблица 1

 

Большие и малые страницы

 

 

 

 

 

 

 

 

Архитектура

 

Размер малой

 

Размер большой

 

 

 

страницы

 

страницы

 

х86

 

4 КБ

 

4 МБ

 

х64

 

4 КБ

 

2 МБ

 

IA86

 

8 КБ

 

16 МБ

 

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

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

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

Для реализации разделяемой памяти используются примитивы диспетчера памяти, объекты « раздел», которые в Windows API называются объектами

«проекция файла» (file mapping objects). Этот фундаментальный примитив диспетчера памяти применяется для проецирования виртуальных адресов в основной памяти, страничном файле или любых других файлах, к которым приложение хочет обращаться так, будто они находятся в памяти. Раздел может быть открыт как одним процессом, так и несколькими; иначе говоря, объекты

«раздел» вовсе не обязательно представляют разделяемую память.

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

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

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

Во-вторых, у каждого процесса имеется индивидуальное закрытое адресное пространство, защищенное от доступа потоков других процессов.

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

для чтения и записи, только для чтения и т. д.); конкретные механизмы такой защиты зависят от архитектуры процессора.

Наконец, совместно используемые объекты « раздел» имеют стандартные для Windows списки контроля доступа, проверяемые при попытках процессов открыть эти объекты.

Оборудование для выполнения работы

Работа выполняется на персональных компьютерах с операционной системой Windows NT/2000\XP.

Порядок выполнения работы

1. Выбор параметров виртуальной памяти. Страницы виртуальной памяти частично хранятся в физической памяти, а частично на жёстком диске в специальном файле pagefile.sys, называемом файлом подкачки. Размер данного файла ограничен операционной системой. В данной работе необходимо изменить этот размер.

1)Щёлкните правой кнопкой мыши по значку « Мой компьютер» и выберете пункт « Свойства».

2)В открывшемся окне выберете закладку дополнительно. Там найдёте кнопку « Параметры» в области « Быстродействие».

3)В открывшемся окне (рис. 1) на вкладке дополнительно нужно нажать кнопку « Изменить» в области « Параметры виртуальной памяти».

4)Далее войдёте в конфигуратор виртуальной памяти. Здесь можно выбрать раздел жёсткого диска, используемый для хранения страниц виртуальной памяти, объём файла подкачки, а так же параметры задания объема: вручную или автоматически. Рекомендуется выбрать пункт « По выбору системы». В некоторых случаях можно вообще обойтись без файла подкачки.

Рис. 1. Параметры виртуальной памяти

5) Не следует назначать слишком маленький объём файла подкачки, т.к. это может привести к отказу работы операционной системы.

2. Использование диспетчера задач для просмотра состояния памяти. Чтобы просмотреть информацию об использовании памяти, можно использовать диспетчер задач.

1)Запустите диспетчер задач.

2)Выберете закладку « Быстродействие».

3)Здесь (рис. 2) отображается информация о занятой памяти, о доступной памяти, о размере файла подкачки и др. информация.

Рис. 2. Отображение загруженности памяти в диспетчере задач Windows

4)Измените объём виртуальной памяти, перезагрузите компьютер и проследите за изменениями в информации, выдаваемой диспетчером задач.

5)Запустите ещё несколько приложений и проследите за изменениями в информации, выдаваемой диспетчером задач.

3. Использование системного монитора для просмотра состояния памяти. Для отображения состояния памяти существует множество различных счётчиков

воснастке « Производительность».

1)Запустите оснастку « Производительность» и включите « Системный монитор».

2)Добавьте счётчики для памяти: % использования выделенной памяти; доступно МБ; обмен страниц в сек.

3)Загрузите несколько приложений и проследите за изменениями показателей.

4)Обратите внимание на показатель « Доступно МБ». При запуске новой программы память заполняется, доступный МБ становится меньше. При дальнейшей загрузке график устремляется к нулю, а потом показания снова увеличиваются. Почему?

5)Используя системный монитор, просмотрите параметры использования

памяти конкретным

процессом.

Среди

них обратите внимание на такие, как

« Байт виртуальной

памяти» и

« Байт

файла подкачки». Загрузите процесс

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

Рис. 3. Отображение загруженности памяти в окне оснастки « Производительность»

Содержание отчёта

1.Титульный лист работы.

2.Формулировка цели и задач работы.

3.Список используемых средств Windows.

4.Графики загруженности памяти в операционной системе.

5.Краткие выводы по проделанной работе.

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

1.Что такое виртуальная память? Для чего она нужна? Каков её объём?

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

3.Из каких компонентов состоит диспетчер памяти?

4.Что такое страницы памяти? Какие бывают страницы памяти? Каков их объём?

5.Каково назначение механизма разделения памяти?

6.Какие способы защиты памяти Вы знаете?

7.Что такое файл подкачки? Каково его назначение? Назовите его имя и месторасположение. Каков его объём? Какими средствами можно управлять параметрами файла подкачки?

8.Многие считают, что файл подкачки – это виртуальная память. Это не так.

Вчём различие между файлом подкачки и виртуальной памятью?

9.Какие средства просмотра параметров используемой памяти Вы знаете?

10.Почему при загрузке памяти значение показателя « Доступно МБ» сначала падает, а потом резко возрастает?

11.Какие счётчики для отображения информации об использовании памяти Вы знаете? Каков их физический смысл?

ЛАБОРАТОРНАЯ РАБОТА №6 РАБОТА С СИСТЕМНЫМ РЕЕСТРОМ

Цель работы: изучение структуры, назначения и средств обработки данных системного реестра Windows.

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

1. Конструкция реестра Windows и методы доступа. Реестр, или системный реестр, – это база данных для хранения сведений о конфигурации компьютера и настроек операционной системы [6]. Реестр содержит данные, к которым Windows постоянно обращается во время загрузки, работы и её завершения, а именно:

-профили всех пользователей, то есть их настройки;

-конфигурация оборудования, установленного в операционной системе;

-данные об установленных программах и типах документов, создаваемых каждой программой;

-свойства папок и значков программ;

-данные об используемых портах.

Реестр имеет иерархическую древовидную структуру, состоящую из разделов, подразделов и ключей (параметров). Для работы с реестром используется простая и понятная утилита Regedit, команда reg, программа regedt32, а так же reg-файлы.

Разделы и подразделы - это, грубо говоря, папки в левом окне regedit'а. Ключ реестра или параметр - это некая переменная, которой присвоено

определённое значение, проще говоря - это то, что мы видим в правом окне regedit'а.

Куст (основной раздел, стандартный раздел, в английской документации - улей, от англ. "hive") - это раздел реестра, отображаемый как файл на жестком диске. Куст является набором разделов, подчиненных разделов и параметров и имеет корни на верхнем уровне иерархии реестра. По умолчанию большинство файлов кустов (Default, SAM, Security и System) сохраняются в папке

%SystemRoot%\System32\Config.

Папка %SystemRoot%\Profiles содержит профили (настройки) для каждого пользователя компьютера. Поскольку куст представляет собой файл, его можно перемещать из одной системы в другую. Для редактирования этого файла необходимо использовать редактор реестра. Важное замечание: Windows XP в отличие от своих предшественниц не имеет ограничения по размеру реестра.

Реестр Windows XP состоит из нижеперечисленных основных разделов. HKEY_CLASSES_ROOT. Это ссылка на раздел HKEY_LOCAL_MACHINE\

Software\Classes. Хранящиеся здесь сведения обеспечивают запуск необходимой программы при открытии файла с помощью проводника. Этот раздел содержит связи между приложениями и типами файлов.

HKEY_CURRENT_USER. Это ссылка на определённый подраздел HKEY_USERS. Настройки соответствуют текущему, активному пользователю, выполнившему вход в систему.

HKEY_LOCAL_MACHINE. Раздел содержит настройки, относящиеся к вашему компьютеру и действительны для всех пользователей. Раздел содержит