Ответы на экзаменационные билеты (2014) (1124173), страница 2
Текст из файла (страница 2)
2.2. Программные средства наблюдения. Примеры. Средства измерения времени в ОС.
(лекция 2)
Программный наблюдатель – это специализированная программа (или комплекс программ), встроенная в измеряемую систему. Наблюдатель выступает посредником между теми компонентами системы, за которыми он наблюдает. Программный наблюдатель всегда изменяет измеряемую систему.
Уровень операционной системы: Трассировка системных вызовов
% strace /bin/cat
strace используется для мониторинга взаимодействий между процессами и ядра Linux, которые включают в себя системные вызовы, доставку сигналов и изменения в состоянии процесса.
Трассировка библиотечных функций
-
% ltrace /bin/cat 2> ltrace.out
ltrace - регистрирует вызовы динамических библиотек с целью отладки.
Программа ltrace предназначена для отладки динамически собранных программ. Отлаживаемый код запускается под управлением ltrace, при этом вызовы динамических библиотек, а также получаемые процессом сигналы перехватываются и регистрируются. Возможна также регистрация системных вызовов со стороны отлаживаемой программы.
Для отладки программы её не нужно перекомпилировать, поэтому возможно использование ltrace с программами, исходный текст которых не доступен.
Время в операционной системе:
-
#include <time.h>
struct timespec {
time_t tv_sec;
int tv_usec; // нано
};
struct tm {}
time()
sleep()
-
/usr/bin/time myfile
-
real
-
user
-
sys
-
Команда rdtsc в x86 – (англ. Read Time Stamp Counter) — ассемблерная инструкция для платформы x86, читающая счётчик TSC (Time Stamp Counter) и возвращающая в регистрах EDX:EAX 64-битное количество тактов с момента последнего сброса процессора
Профилирование — сбор характеристик работы программы, таких как время выполнения отдельных фрагментов (обычно подпрограмм), число верно предсказанных условных переходов, число кэш-промахов и т. д.
Профилирование gprof
% gcc –pg a.c
% a.out (создаётся gmon.out)
% gprof
Выборка 100 раз в секунду
-
Число вызовов функций
-
Время, проведённое в каждой функции
-
Граф вызовов
Valgrind
Valgrind — инструментальное программное обеспечение, предназначенное для отладки использования памяти, обнаружения утечек памяти, а также профилирования.
-
% valgrind myfile
-
% valgrind -- tool=cachegrind myfile
-
Проверка некоторых условий корректности работы с указателями и malloc/free
-
Анализ работы гипотетической кэш-памяти
-
Построение графа вызовов функций
-
Возможность добавления инструментов
-
www.valgrind.org
2.3. Основные возможности средств отображения и анализа трасс (как с аппаратных, так и с программных наблюдателей).
Основные возможности средств отображения и анализа трасс
2.4. Понятие производительности ИС. Роль наблюдения в анализе производительности и отладке программы.
Производительность ИС характеризуют следующие параметры:
-
Загруженность ИС (BusBusy, Busldle, DataPhase, WaitState)
-
Пропуская способность — метрическая характеристика, показывающая соотношение предельного количества проходящих единиц (информации, предметов, объёма) в единицу времени через канал, систему, узел
-
Анализироваться могут все обмены или в зависимости от приоритета
-
По диапозонам адресов
-
Запаздывание. Могут анализироваться следующие временные интервалы (для шины):
-
Master от выставления адреса до первого слова данных
-
Target от запроса первого слова данных до выставления
-
Arbitration от запроса до разрешения
(Master - инициатор)
(Target - подчиненное устройство)
Отладка программы (или управляющей системы) может осуществляться посредством
-
Наблюдения за поведением программы
-
Проверки соблюдения заданных свойств поведения
-
Воздействием на систему
3. Основы имитационного моделирования
3.1. Понятие модели. Основные виды моделей. Примеры. Основные варианты применения моделей.
(лекция 3)
Модель – это объект, заменяющий исходный объект в ходе достижения заданных целей и при заданных предположениях.
Важные примеры цели моделирования:
-
понимание;
-
исследование (проектирование);
-
замещение исходного объекта в составе системы;
Любая модель обладает следующими свойствами:
-
конечностью: модель отображает оригинал лишь в конечном числе его отношений;
-
упрощенностью: модель отображает только существенные стороны объекта;
-
приблизительностью: действительность отображается моделью грубо или приблизительно;
-
адекватностью: модель успешно описывает моделируемую систему;
-
информативностью: модель должна содержать достаточную информацию о системе в рамках гипотез, принятых при построении модели.
Виды моделей:
По степени абстрагирования от оригинала модели могут быть разделены на материальные (физические) и идеальные.
-
Физические
-
Натурные – это реальные исследуемые системы, которые являются макетами и опытными образцами. (эксперименты с реальным объектом или его частью);
-
полунатурные – это совокупность натурных и математических моделей (часть объекта заменена моделью);
-
масштабные – это системы той же физической природы, что и оригинал, но отличающиеся от него размерами (глобус, макеты зданий, макеты в аэро(гидро)динамической трубе)
-
аналоговые – основано на аналогии процессов и явлений, имеющих различную физическую природу, но одинаково описываемых формально (одними и теми же математическими уравнениями, логическими схемами и т. п.), использование иных физических явлений с теми же законами (Аналоговые выч машины: http://habrahabr.ru/company/intel/blog/85645/)
-
Идеальное моделирование носит теоретический характер.
Различают два типа идеального моделирования: интуитивное и знаковое.
-
Под интуитивным будем понимать моделирование, основанное на интуитивном представлении об объекте исследования, не поддающемся формализации либо не нуждающемся в ней. В этом смысле, например, жизненный опыт каждого человека может считаться его интуитивной моделью окружающего мира.
-
Знаковым называется моделирование, использующее в качестве моделей знаковые преобразования различного вида: схемы, графики, чертежи, формулы, наборы символов и т. д., включающие совокупность законов, по которым можно оперировать с выбранными знаковыми элементами.
-
лингвистические – если представлены некоторым лингвистическим объектом, формализованной языковой системой или структурой. (правила, кодексы …)
-
графические – если представимы геометрическими образами и объектами (схемы, чертежи)
-
математические
-
Математические - по свойствам объекта
-
структурные – если представимы структурой данных или структурами данных и отношениями между ними
-
функциональные – если представимы в виде системы функциональных соотношений.
Математические функциональные:
-
Аналитические математические модели представляют собой явные математические выражения выходных параметров как функций от параметров входных и внутренних и имеют единственные решения при любых начальных условиях.
-
Модель будет численной, если она имеет решения при конкретных начальных условиях (дифференциальные, интегральные уравнения).
-
Модель алгоритмическая, – если она описана некоторым алгоритмом или комплексом алгоритмов, определяющим ее функционирование и развитие.
-
Модель имитационная, – если она предназначена для испытания или изучения возможных путей развития и поведения объекта путем варьирования некоторых или всех параметров модели.
3.2. Понятие имитационной модели. Сравнение по возможностям с другими видами моделей. Способы продвижения времени в имитационных моделях.
(лекция 3)
-
Алгоритмические ММ выражают связи выходных параметров с параметрами внутренними и внешними в форме алгоритма
-
Имитационная ММ - это алгоритмическая модель, отражающая поведение исследуемого объекта во времени при задании внешних воздействий на объект.
(методические рекомендации Минобрнауки РФ; [Замятина 2005])
Имитационная модель воспроизводит процесс функционирования системы во времени, причём имитируются элементарные явления, составляющие процесс, с сохранением их логической структуры и последовательности протекания во времени [Советов, Яковлев, с.34]
Простейшая имитационная модель:
-
N шариков; k ящиков;
-
кладём шарики по одному в ящики с номерами 1..k последовательно, затем возвращаемся к ящику 1
-
Сколько шариков будет в каждом ящике?
int box[k]; // вектор состояния;
// начальное состояние
for( int i=0; i<k; i++ )box[i]=0;
int time=0; // время
int curr_box=0;
// цикл моделирования
while( time < N )
{ box[curr_box]++; // кладём
curr_box++;
if( curr_box >= k )curr_box=0; // след. ящик
time++; // след. момент времени
}
ИМ по способам продвижения времени:
-
С постоянным шагом
-
Непрерывные модели
-
Потактовые модели
-
При продвижении времени с постоянным шагом t часы модельного времени продвигаются точно на t единиц времени для какого-либо соответствующего выбора значения t. После каждого обновления часов выполняется проверка, чтобы определить, произошли какие-либо события в течение предыдущего интервала времени t или нет. Если на этот интервал запланированы одно или несколько событий, считается, что данные события происходят в конце интервала, после чего состояние системы и статистические счетчики соответствующим образом обновляются.
-
От события к событию
-
Дискретно-событийные модели
-
При использовании продвижения времени от события к событию часы модельного времени в исходном состоянии устанавливаются в 0, и определяется время возникновения будущих событий. После этого часы модельного времени переходят на время возникновения ближайшего события, и в этот момент обновляются состояние системы, с учетом произошедшего события, а также сведения о времени возникновения будущих событий. Затем часы модельного времени продвигаются ко времени возникновения следующего нового ближайшего события, обновляется состояние системы и определяется время будущих событий и т. д. Процесс продвижения модельного времени от времени возникновения одного события ко времени возникновения другого продолжается до тех пор, пока не будет выполнено какое-либо условие останова, указанное заранее.
-
Гибридные модели
-
Совместная работа компонентов разного рода
-
Переключение режимов «непрерывного» компонента
-
Особенности ИМ:
-
По сравнению с аналитическими моделями:
-
универсальность применения (+);
-
результат для конкретного набора входных данных (-);
-
По сравнению с «программами общего назначения»:
-
«ТЗ формируется по ходу дела…»
-
Поддержка понятий предметной области
3.3. Основные этапы создания имитационной модели. Сравнение с этапами создания программы «общего назначения»
(лекция 3)
I. Анализ требований и проектирование.
1. Постановка и анализ задачи и цели моделирования.
2. Сбор и анализ исходной информации об объекте
моделирования.
3. Построение концептуальной модели.
4. Проверка достоверности концептуальной модели.
II. Разработка модели.
1. Выбор среды моделирования.
2. Составление логической модели.
3. Назначение свойств модулям модели.
4. Задание модельного времени.
5. Верификация модели.
III. Проведение эксперимента.