Главная страница
Навигация по странице:

  • 1.12.4 Подавление вывода

  • 1.12.5 Преобразование данных в формат html, сохранение в файле

  • 1.12.6 Инвентаризация и диагностика Windows-компьютеров

  • ЛАБОРАТОРНАЯ РАБОТА №4 СИММЕТРИЧНАЯ МУЛЬТИПРОЦЕССОРНАЯ ОБРАБОТКА Цель работы

  • 1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ 1.1 Мультипроцессорная и симметричная мультипроцессорная обработка (SMP)

  • 1.2 Оценка достигаемого выигрыша в производительности – закон Амдала

  • 1.3 Оценка трудоемкости алгоритма

  • ЛАБОРАТОРНЫЕ РАБОТЫ ОС (Для допуска необходимо сделать 1 или 6 л. Практикум по дисциплине Операционные системы (ОС). Цели лабораторных занятий это формирование у будущих бакалавров направлений подготовки 09. 03. 01


    Скачать 2.71 Mb.
    НазваниеПрактикум по дисциплине Операционные системы (ОС). Цели лабораторных занятий это формирование у будущих бакалавров направлений подготовки 09. 03. 01
    Дата15.10.2022
    Размер2.71 Mb.
    Формат файлаpdf
    Имя файлаЛАБОРАТОРНЫЕ РАБОТЫ ОС (Для допуска необходимо сделать 1 или 6 л.pdf
    ТипПрактикум
    #735270
    страница9 из 21
    1   ...   5   6   7   8   9   10   11   12   ...   21
    1.12.3 Сохранение данных в файл
    Командлет
    Out-File позволяет направить выводимые данные вместо окна консоли в текстовый файл. Аналогичную задачу решает оператор перенаправления (>), однако командлет
    Out-File имеет несколько дополнительных параметров, с помощью которых можно более гибко управлять выводом: задавать тип кодировки файла (параметр
    Encoding
    ), задавать длину выводимых строк в знаках (параметр
    Width
    ), выбирать режим перезаписи файла (параметр
    Append
    ). Например, следующая команда направит информацию о выполняющихся на компьютере процессах в файл C:\Process.txt, причем данный файл будет записан в формате ASCII:
    Get-Process | Out-File -FilePath C:\Process.txt -Encoding ASCII
    1.12.4 Подавление вывода
    Командлет
    Out-Null служит для поглощения любых своих входных данных. Это может пригодиться для подавления вывода на экран ненужных сведений, полученных в качестве побочного эффекта выполнения какой-либо команды. Например, при создании каталога командой mkdir на экран выводится его содержимое: (рис.13)
    PS C:\> mkdir spo

    88
    Каталог: Microsoft.PowerShell.Core\FileSystem::C:\
    Рис.13-Создании каталога командой mkdir на экран выводится его содержимое
    Если эта информация не нужна, то результат выполнения команды mkdir необходимо передать по конвейеру командлету
    Out-Null
    : mkdir spo | Out-Null
    1.12.5 Преобразование данных в формат html, сохранение в файле
    и просмотр результатов
    Для преобразования данных в формат html служит командлет
    Convertto-html. Параметр Property определяет свойства объектов, включаемые в выходной документ. Например, для получения списка выполняемых процессов в формате html, включающего имя процесса и затраченное время CPU и записи результата в файл processes.html можно использовать команду
    Get-Process | Convertto-html -Property Name, CPU > Processes.htm
    Для просмотра содержимого файла можно использовать командлет
    Invoke-Item “имя документа”
    Например Invoke-Item “processes.htm”
    1.12.6 Инвентаризация и диагностика Windows-компьютеров
    Для вывода сведений о процессоре ПК служит командлет Get- wmiobject
    Get-wmiobject -Class Win32_Processor | Format-list *
    1.12.7 Командлеты для измерения свойств объектов
    Для иэмерения времени выполнения командлетов PS служит командлет Measure-Command
    В качестве примера рассмотрим получение времени выполнение командлета dir
    (Measure-Command {dir}).TotalSeconds
    Для получения статистических данных служит командлет Measure-
    Object. Для числовых массивов с его помощью можно получить максимальное, минимальное, среднее значение элементов массива и их сумму. Если имеется инициализированный массив ms, для указанной цели используется командлет
    $ms | measure-object –maximum –minimum –average -sum

    89
    2 МЕТОДИКА ВЫПОЛНЕНИЯ
    1. Ознакомиться с теоретическими сведениями.
    2. Запустить оболочку PowerShell.
    3. Увеличить ширину окна оболочки до максимальной, увеличить высоту окна и задать цвет фона и цвет шрифта (рекомендуется синий фон и белый шрифт).
    4. Вывести содержимое каталога Windows (для бригад 5 и 10 – и подкаталогов) по указанному в табл. 5 формату на экран и в текстовый файл.
    Таблица 5.
    Варианты заданий для бригад
    Номера бригад
    Что выводить
    (имена, размер, дата создания, атрибуты)
    Сортировать по
    Условие отбора
    1, 6
    Только файлы
    По размеру
    Размер
    >
    10000 2, 7
    Файлы и подкаталоги
    По дате
    Первые буквы имени SY
    3, 8
    Только подкаталоги
    Именам
    Последняя буква имени S или T
    4, 9
    Только файлы bmp По размеру
    Размер >50000 5, 10
    Только файлы jpg
    Именам
    Любые
    Рекомендуется использовать фильтр по Extension или Attributes (в зависимости от варианта задания)
    5. Вывести в текстовый файл список свойств процесса, возвращаемый командлетом Get-process и на экран – их общее количество.
    6. Cоздать текстовый файл, содержащий список выполняемых процессов, упорядоченный по возрастанию указанного в табл.6 параметра. Имена параметров процессов указаны в (табл. 6).
    Таблица 6.
    Варианты заданий для бригад
    Номера бригад
    Список выводимых параметров процессов
    Сортировать по значению параметра
    Вывести процессы, у которых
    1, 4
    Имя процесса,
    BasePriority, Company
    Имя процесса
    BasePriority > 7 2, 6
    Id,
    Имя процесса, Время старта
    Id > 40

    90
    Номера бригад
    Список выводимых параметров процессов
    Сортировать по значению параметра
    Вывести процессы, у которых время старта, Handles
    3, 5
    Имя процесса, Id ,
    PriorityClass,
    UserprocessorTime,
    TotalProcessorTime
    TotalProcessorTime Id > 100 7, 8
    Имя процесса,
    PriorityClass,
    ProductVersion, Id
    Имя процесса
    Id > 100 9, 10
    Id,
    Имя процесса,
    WorkingSet, CPU
    Id
    CPU > 5 7. Cоздать HTML-файл, содержащий список выполняемых процессов, упорядоченный по возрастанию указанного в табл.5 параметра.
    Имена параметров процессов указаны в табл. 5.
    8. Найти суммарный объем всех графических файлов (bmp, jpg), находящихся в каталоге Windows и всех его подкаталогах.
    9. Вывести на экран сведения о ЦП компьютера.
    10. Найти максимальное, минимальное и среднее значение времени выполнение командлетов dir и ps
    11. Выполнить индивидуальные задания для студентов бригад согласно
    (табл. 7).
    Таблица 7.
    Варианты заданий для студентов бригад
    №№ Содержание задания – разработать командлет для:
    1 1. вычисления факториала от целочисленной переменной с именем numb
    2. нахождения минимального и максимального значений чисел, хранящихся в файле nn.txt
    2 нахождения количества различных чисел, хранящихся в файле nn.txt нахождения количества наибольших чисел, хранящихся в файле nn.txt
    3 нахождения количества положительных чисел, хранящихся в файле nn.txt нахождения количества четных чисел, хранящихся в файле nn.txt
    4 нахождения в заданном каталоге файла наибольшего размера нахождения в заданном каталоге трех файлов наименьшего размера
    5 1. нахождения среди выполняющихся процессов имен процессов, выполняющихся в двух или более экземплярах
    2. нахождения среди выполняющихся процессов имени процесса,

    91
    №№ Содержание задания – разработать командлет для: запущенного последним
    6 нахождения среди выполняющихся процессов имен трех процессов, использовавших более всего процессорного времени нахождения среди выполняющихся процессов имени процесса с наибольшим размером рабочего множества страниц
    7 1. нахождения среди выполняющихся процессов имен процессов с наименьшим значением BasePriority
    2. нахождения среди выполняющихся процессов имен процессов, у которых значения параметра WorkingSet одинаковы
    8 1. проверки наличия в текущем каталоге файлов одинакового размера. Если такие файлы есть – вывести их имена
    2. нахождения среди выполняющихся процессов имен процессов с наибольшим значением приоритета
    9 1.нахождения в каталоге windows\system32 имен трех dll наибольшего и наименьшего размеров
    2. нахождения в каталоге windows\system32 имен трех dll с самой ранней датой создания
    10 1. нахождения среди выполняющихся процессов имен трех процессов, работающих в системе дольше всего
    2. нахождения среди выполняющихся процессов имен процессов, имеющих одинаковые ProductVersion
    11 разбиения текстового файла, содержащего четное количество строк, на два текстовых файла, в каждый из которых записать одинаковое количество строк нахождения в каталоге windows и его подкаталогах имен библиотек dll из шести символов, начинающихся на mfc и заканчивающихся буквой u
    12 1. нахождения в каталоге windows и его подкаталогах имен файлов, записанных русскими буквами и имеющих расширение jpg.
    2. нахождения в текстовом файле, содержащем слова английского и русского языков (одно слово в строке), слов русского языка и вывода их на экран
    13 1. нахождения в текстовом файле, содержащем слова английского и русского языков и числа (одно слово или число в строке), чисел и вывода их на экран
    14 1. нахождения в текстовом файле, содержащем слова английского и русского языков (одно слово в строке), слов, написанных с заглавной буквы и вывода их на экран

    92
    3 ОТЧЕТ О РАБОТЕ
    1. Готовится в письменном виде один на бригаду. Содержание отчета:
    2. Тексты командлетов, использованных при выполнении заданий 4 -
    11.
    3. Результаты, полученные при выполнении заданий 5, 6, 8, 9, 10, 11.
    4. Письменный ответ на контрольный вопрос (номер вопроса определяется номером бригады).
    4 КОНТРОЛЬНЫЕ ВОПРОСЫ
    1. Типы команд PowerShell (PS).
    2. Имена и структура командлетов.
    3. Псевдонимы команд.
    4. Просмотр структуры объектов.
    5. Фильтрация объектов в конвейере. Блок сценария.
    6. Какую информацию выводит команда Get-Help * ?
    7. Командлеты для форматирования выводимой информации.
    8. Перенаправление выводимой информации.
    9. Управляющие инструкции PS.
    10. Назначение регулярных выражений.
    11. Сохранение данных в текстовом файле и html-файле.
    12. Получение справочной информации в PS.
    13. Как создать массив в PS?
    14. Как объединить два массива?
    15. Как увеличить размер созданного в PS массива?
    16. Как ввести данные в массив?
    17. Использование командлета Out-Null.
    18. Оператор PowerShell –match.
    19. Использование символа ^ в командлетах.
    20. Использование символа $ в командлетах.
    21. Количественные модификаторы (квантификаторы).
    22. Использование групп захвата.
    23. Командлеты для измерения свойств объектов.

    93
    ЛАБОРАТОРНАЯ РАБОТА №4 СИММЕТРИЧНАЯ
    МУЛЬТИПРОЦЕССОРНАЯ ОБРАБОТКА
    Цель работы – знакомство с особенностями многопоточной обработки информации на многоядерных процессорах под управлением
    ОС MS Windows и методом оценки трудоемкости алгоритмов
    1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
    1.1 Мультипроцессорная и симметричная мультипроцессорная
    обработка (SMP)
    Мультипроцессорная обработка
    - способ организации вычислительного процесса в системах с несколькими процессорами
    (ядрами процессора), при котором несколько потоков могут одновременно выполняться на разных процессорах (ядрах) системы.
    Мультипроцессорные системы часто характеризуют либо как симметричные, либо как несимметричные. При этом нужно определять, к какому аспекту мультипроцессорной системы относится эта характеристика - к типу архитектуры или к способу организации вычислительного процесса.
    Симметричная
    архитектура мультипроцессорной системы предполагает однородность всех процессоров и единообразие включения процессоров в общую схему мультипроцессорной системы. Традиционные симметричные мультипроцессорные конфигурации разделяют общую оперативную память между всеми процессорами (ядрами процессоров).
    Масштабируемость (возможность наращивания числа процессоров) в симметричных системах ограничена вследствие того, что все они пользуются одной оперативной памятью и должны располагаться в одном корпусе. Такая конструкция, называемая масштабируемой по вертикали.
    В симметричных архитектурах обеспечивается достаточно высокая производительность для тех приложений, в которых несколько задач должны активно взаимодействовать между собой.
    В
    асимметричной
    архитектуре разные процессоры могут отличаться как своими характеристиками, так и функциональной ролью, которая поручается им в системе. Функциональная неоднородность в асимметричных архитектурах влечет за собой структурные отличия во фрагментах системы, содержащих разные процессоры системы.
    Масштабирование в асимметричной архитектуре реализуется иначе, чем в симметричной. Так как требование единого корпуса отсутствует, система может состоять из нескольких устройств, каждое из которых содержит один или несколько процессоров. Это масштабирование по горизонтали.
    Каждое такое устройство называется
    кластером, а вся

    94 мультипроцессорная система - кластерной.
    Асимметричное мультипроцессирование является наиболее простым способом организации вычислительного процесса в системах с несколькими процессорами. Этот способ часто называют также «ведущий- ведомый». Асимметричная организация вычислительного процесса может быть реализована как для симметричной мультипроцессорной архитектуры, так и для несимметричной.
    Симметричное мультипроцессирование как способ организации вычислительного процесса может быть реализовано в системах только с симметричной мультипроцессорной архитектурой.
    Симметричное мультипроцессирование реализуется общей для всех процессоров операционной системой. При симметричной организации все процессоры равноправно участвуют и в управлении вычислительным процессом, и в выполнении прикладных задач.
    Наиболее распространенной целью объединения процессоров является симметричная мультипроцессорная обработка (SMP). В системе
    SMP каждый процессор решает свою задачу, порученную ему операционной системой. В документации Intel симметрия рассматривается в двух аспектах:
    - симметрия памяти — все процессоры пользуются общей памятью и одной копией ОС;
    - симметрия ввода-вывода — все процессоры разделяют общие устройства ввода-вывода и общие контроллеры прерываний.
    Система может быть симметричной по памяти, но асимметричной по прерываниям от ввода-вывода, если для обслуживания этих прерываний выделяется собственный процессор. В х86 симметрию по прерываниям обеспечивают контроллеры APIC. Аппаратная (физическая) реализация
    SMP может быть различной:
    - объединение нескольких физических процессоров на одной локальной шине — процессоры Pentium, Р6, Pentium 4;
    - размещение на одном кристалле нескольких логических процессоров с разделяемыми операционными блоками

    «гиперпотоковые»
    (hyperthreading) модели Pentium 4;
    - размещение на одном кристалле нескольких независимых процессорных ядер с разделяемым вторичным кэшем — мультиядерные модели Pentium 4.
    Применение SMP требует поддержки со стороны BIOS, ОС и приложений
    (чтобы работать быстрее, они должны быть многопоточными). Поддержку SMP имеют такие ОС, как Microsoft
    Windows и различные диалекты Unix и Linux.
    Несколько лет назад цена мультипроцессорных версий ОС, как правило, была значительно выше цены соответствующих однопроцессорных версий, что становилось препятствием к применению

    95 гиперпотоковых и мультиядерных процессоров в системных платах рабочих станций. Теперь число процессоров, на которое лицензируется
    ОС, соответствует числу физических процессоров. Это открывает возможности широкого распараллеливания на уровне процессоров.
    1.2 Оценка достигаемого выигрыша в производительности –
    закон Амдала
    Для количественной оценки выигрыша в производительности ПК при параллельной работе нескольких ядер обычно используется закон Дж.
    Амдала (1967 г).
    Закон Амдала описывает максимальный теоретический выигрыш в производительности параллельного решения по отношению к лучшему последовательному решению [1]
    n
    S
    S
    V
    /
    )
    1
    (
    1



    В данном уравнении V – выигрыш в производительности при использовании n ядер центрального процессора, S – время, потраченное на выполнение последовательной части параллельной версии.
    При n=1 (одно ядро) ускорения нет. Если используется два ядра, которые половину всей работы выполняют параллельно, S=0,5 и V= 2 / 1,5 = 1,33. В случае выполнения всей работы двумя ядрами параллельно максимально возможный теоретический выигрыш равен 2.
    1.3 Оценка трудоемкости алгоритма
    Цель анализа трудоёмкости алгоритма - нахождение оптимального алгоритма для решения задачи. В качестве критерия оптимальности алгоритма выбирается трудоемкость алгоритма, определяемая как количество операций, которые необходимо выполнить для решения задачи с помощью данного алгоритма. Функцией трудоемкости называется соотношение, связывающее размер данные алгоритма с количеством элементарных операций, необходимых для получения решения задачи с помощью данного алгоритма.
    Трудоёмкость алгоритмов по-разному зависит от входных данных.
    Для некоторых алгоритмов трудоемкость зависит только от объёма данных, для других алгоритмов — от значений данных. Трудоёмкость многих алгоритмов может в той или иной мере зависеть от всех перечисленных выше факторов. Одним из упрощенных методов анализа, используемых на практике, является асимптотический анализ
    трудоемкости алгоритмов. Целью анализа является сравнение затрат времени различными алгоритмами, предназначенными для решения одной и той же задачи, при больших объёмах входных данных. Используемая в

    96 асимптотическом анализе оценка функции трудоёмкости, называемая
    сложностью алгоритма, позволяет определить, как быстро растет трудоёмкость алгоритма с увеличением объёма данных.
    Например, трудоемкость алгоритма сложения векторов A(n) и B(n) равна O(n), потому что количество операций сложения равно количеству элементов векторов. Трудоемкость алгоритма умножения квадратных матриц равна O(n
    3
    ). Реализующая алгоритм программа умножения матриц содержит 3 вложенных арифметических цикла.
    2 МЕТОДИКА ВЫПОЛНЕНИЯ
    1. В работе оценивается трудоемкость простейших алгоритмов и эффективность их параллельного выполнения на многоядерных процессорах под управлением ОС MS Windows 7, поддерживающей
    SMP. Для оценки трудоемкости применяется оценка времени выполнения реализующей алгоритм программы на одном или нескольких ядрах ЦП.
    2. Для управления количеством используемых процессорных ядер используется диспетчер задач (контекстное меню, пункт задать
    соответствие). Каждая программа должна быть многократно запущена на одном, двух, трех, четырех и более (сколько есть у ЦП) ядрах.
    3. Так как время выполнения программы в многозадачной ОС MS
    Windows зависит от нескольких факторов, для оценки времени следует выполнить программу 5-7 раз с неизменными начальными условиями и в качестве оценки времени выполнения выбрать наименьшее значение.
    4. Размер обрабатываемого массива следует задавать в пределах 100-
    500, при этом время выполнения приложения не должно быть менее
    500 мсек. Количество различных значений должно лежать в пределах от 4 до 10.
    5. Наименование программы, количество используемых ядер ЦП, количество потоков программы (по данным диспетчера задач), размер обрабатываемого массива и время выполнения при каждом запуске записать в таблицу (форма таблицы произвольная).
    6. Полученные результаты обработать: вычислить реальное значение выигрыша по производительности и сравнить со значением выигрыша, найденного по закону Амдала. Сравнить характер изменения оценок реального времени выполнения программы (при различных размерах обрабатываемого массива) и асимптотической оценки трудоемкости алгоритма, который реализует исследуемая программа. Для нахождения оценок параметров модели, описывающей зависимость времени выполнения программы от

    97 размера обрабатываемых данных, рекомендуется использовать метод наименьших квадратов.
    7. Каждая бригада должна выполнить исследование алгоритма
    УМНОЖЕНИЯ
    МАТРИЦ и алгоритма, указанного в индивидуальном задании – таблица 1. Исследование алгоритма состоит в последовательном выполнении пунктов 1-6.
    Текст программы умножения матриц (на языке PascalABC.Net) приведен ниже. Распараллеливание циклов For реализуется с помощью директив OpenMP.
    1   ...   5   6   7   8   9   10   11   12   ...   21


    написать администратору сайта