Лекция 2 (1124163)
Текст из файла
Имитационное моделирование в исследовании иразработке информационных системЛекция 2Наблюдение за работойсистемы• Аппаратные наблюдатели• Программные наблюдатели• Анализ результатовнаблюдения•Отладка программы (или управляющейсистемы)••Наблюдение за поведением системыПроверка соблюдения заданных свойствповедения•Воздействие на систему•Программные и аппаратные наблюдателиАппаратные наблюдатели•••Встроенные в аппаратуру выч. сист.–Отладочные регистры процессора–JTAGУниверсальные внешние–Электронный (цифровой) осциллограф–Логический анализаторСпециализированныеОтладочные регистры на x86•6 регистров: DR0-DR3,DR6,DR7•Точки останова (4 шт.):•–по чтению;–по записи и чтению;–по выполнению;–по обращению к порту ввода-вывода.Нельзя задать условие по диапазонуадресовВстроенные отладочные средства (JTAG – Joint••••Test Action Group)Набор специальных блоков в составе ИС(существенно зависит от типа ИС)Управление этими блоками по интерфейсуJTAGВозможность разрывать связи междублоками ИС, устанавливать заданныезначения на разорванных связяхУправление микропроцессором в целяхотладки: точки останова, просмотр и записьрегистровУниверсальные наблюдателиИндикаторыЭлектронный осциллографНепрерывные и дискретные сигналыОбычно 1-4 каналаНепрерывная и ждущая разверткаЗадержка запуска разверткиЛогический анализаторЦифровой сигналДесятки-сотни каналовЗадание условий запуска и окончания регистрацииШинный интерфейс••Объединяет несколько устройств (абонентов)(десятки-сотни)Один набор сигнальных линий для обменовмежду всеми абонентами (есть исключения дляслужебных линий)•••В каждый момент времени возможнапередача только одним абонентомПроцедура арбитража для избежанияконфликтовСтандартизованы: протоколы, электрические имеханические характеристикиАнализаторы шиныEthernet,USB, LPTVME,PCI,и т.д.x86-windowsДоп.входыПОотображения иуправленияГранит-ВТSilicon Control IncCurtiss-Wright Electronics systems (быв VMETRO)LeCroy IncTektronix IncНастройки анализатора шины•Условия начала и окончания регистрации•Что регистрировать (фильтр)•Как отображатьВид 1: таблица обменовВид 2: временная диаграммаВыбор событий для регистрации•Регистрация обменов•Регистрация сигналов–Выбор отдельных сигналов•Условие начала регистрации•Условие записи сигнала (фильтр)Выбор событий для регистрации (2)Выбор событий (3)•Элементарное событие––Условие на состояние групп сигналов шины(=, <, >, от ..
до)Ограниченное число событий (8, 32)•Выражение над событиями (И, ИЛИ, НЕ)•Конечный автомат (8 состояний)–Условие перехода в новое состояние–Что записывать, находясь в данном состоянии–Возбуждать ли триггерАнализатор: интерфейс пользователя•Прокрутка•Измерение интервалов времени•Фильтр по группам сигналов шины•Поиск по группам сигналов шины•Сохранение трассы•Сравнение трасс•Программное управление (API)Анализ производительности•Загруженность–••BusBusy, BusIdle, DataPhase, WaitStateПропускная способность–Все обмены, или по приоритетам–По диапазонам адресовЗапаздывание–Master от выставления адреса до первого словаданныхИмитация абонента шины••Инициатор (master)–Адрес, длина–Режим (пословный, пакетный)–Запись, чтение, запись с проверкойПодчиненное устройство (target)–Диапазон адресов–Число тактов ожидания–Ответ (OK, retry, fail)Имитация протокола шиныПрограммные наблюдатели:уровень операционнойТрассировка системныхсистемывызовов% strace /bin/cat// Динамическая загрузкаopen("/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\226\1\0004\0\0\0"...,512) = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=1734120, ...}) = 0mmap2(NULL, 1743580, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,0) = 0xb75a0000mmap2(0xb7744000, 12288, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a4) = 0xb7744000mmap2(0xb7747000, 10972, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7747000close(3)=0Вывод strace(2)•read(0, "fkjdfkjfd\n", 32768)= 10write(1, "fkjdfkjfd\n", 10)= 10read(0, "sdcdscdsv\n", 32768)= 10write(1, "sdcdscdsv\n", 10)= 10read(0, "fbfb\n", 32768)= 5write(1, "fbfb\n", 5)•Трассировка библиотечных% ltrace /bin/catфункций2> ltrace.out__libc_start_main(0x8049280, 1, 0xbfb66534, 0x80500d0, 0x8050140<unfinished ...>getpagesize()= 4096strrchr("/bin/cat", '/')= "/cat"setlocale(6, "")="en_US.UTF-8"bindtextdomain("coreutils", "/usr/share/locale")="/usr/share/locale"textdomain("coreutils")="coreutils"__cxa_atexit(0x804a2f0, 0, 0, 0xb7769ff4, 0)= 0getopt_long(1, 0xbfb66534, "benstuvAET", 0x08050840, NULL) = -1__fxstat64(3, 1, 0xbfb6641c)= 0__fxstat64(3, 0, 0xbfb6641c)= 0Трассировка библиотечныхфункций (2)posix_fadvise64(0, 0, 0, 0, 0)malloc(36863)read(0, "qwerty\n", 32768)write(1, "qwerty\n", 7)read(0, "", 32768)free(0x097e0890)close(0)exit(0 <unfinished ...>======= 00x097e0890770<void>0Время в операционной системе#include <time.h>struct timespec {time_t tv_sec;int tv_usec; // нано};struct tm {}time()sleep()Измерение времени в ОС (2)••/usr/bin/time myfile–real–user–sysКоманда rdtsc в x86 – число тактов ЦП смомента запускаПрофилирование программ:gprof% gcc –pg a.c% a.out(создаётся gmon.out)% gprofВыборка 100 раз в секунду•Число вызовов функций•Время, проведённое в каждой функции•Граф вызововvalgrind•% valgrind myfile•% valgrind -- tool=cachegrind myfile•Проверка некоторых условий корректностиработы с указателями и malloc/free•Анализ работы гипотетической кэш-памяти•Построение графа вызовов функцийЛабораторная работа 1••Измерение времени выполнения программы (файлb.c)Используйте•команду time•rdtsc (как вставлять asm в Си?)•Повторите замер несколько раз•Как уменьшить разброс?•Поменяйте порядок обхода массива.
Почемуизменилось время?Программа для замера времени выполнения#include <stdio.h>#define SIZE 10000float a[SIZE][SIZE];void main( int argc, char **argv ){float b; int i,k;b=0;for( i = 0; i < SIZE; i++ )for( k = 0; k < SIZE; k++ )b = b + a[i][k];}Варианты задания••••Замер любых других временныххарактеристик вычислительной системы:Объяснение, как проводилось измерение;меры по снижению погрешности;Результаты;Изменение настроек, что получилось ипочему?.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.