rtsDDr (1158447), страница 3

Файл №1158447 rtsDDr (Раздаточные материалы) 3 страницаrtsDDr (1158447) страница 32019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

MesPtr

указатель на передаваемое сообщение или указатель области памяти, в которую необходимо принять сообщение.

Count

число элементов, содержащихся в сообщении.

Size

длина в байтах одного элемента сообщения.

SenderProcNum

внутренний номер посылающего процессора.

*PSRefPtr

ссылка на процессорную систему, процессорам которой осуществляется передача.

Функция осуществляет передачу, если внутренний номер текущего процессора равен SenderProcNum, и приём  в противном случае.

Все процессоры системы, заданной параметром PSRefPtr, должны принадлежать текущей процессорной системе. Равное NULL значение указателя PSRefPtr или нулевое значение ссылки *PSRefPtr задают текущую процессорную систему.

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

6Синхронизация программ, выполняющихся на разных процессорах

long bsynch_(void);

Выполнение функции заключается в том, что центральный процессор (см.п.4) принимает синхросообщения от всех остальных процессоров, а затем рассылает им синхросообщения-ответы. Любой другой процессор передает синхросообщение центральному процессору, после чего принимает от него синхросообщение-ответ. Синхросообщение  это слово (integer), содержимое которого несущественно.

Функция возвращает нулевое значение.

long tsynch_(void);

Функция tsynch_, как и функция bsynch_, выполняет барьерную синхронизацию процессоров текущей процессорной системы, но дополнительно производит выравнивание времен процессоров. Под выравниванием времен понимаются такие действия системы поддержки, в результате которых функция dvm_time (см.п.3) в один и тот же момент астрономического времени будет возвращать на всех процессорах одно и то же время  время, возвращаемое функцией dvm_time на центральном процессоре задачи до выполнения функции tsynch_ .

Выравнивание времен осуществляется следующим образом. Пусть центральный процессор в момент времени t1 (по своему датчику времени) посылает сообщение процессору P, находящемуся в состоянии приёма этого сообщения. Процессор P, получив сообщение от центрального, посылает ему время приёма этого сообщения T (по своему датчику времени). Центральный процессор, отослав сообщение процессору P, переходит к приёму от него сообщения со временем T и принимает его в момент времени t2 по своему датчику времени. После этого центральный процессор отсылает процессору P время (t1+t2)/2 T , которое при выполнении им функции dvm_time всегда будет добавляться к показанию его датчика времени.

Такая операция осуществляется центральным процессором со всеми остальными процессорами. Чтобы избежать случайных помех, операция выравнивания времен повторяется несколько раз, и для каждого процессора в качестве результата принимается та величина (t1+t2)/2 T, для которой время передачи сообщения, равное (t1-t2)/2, минимально.

Функция возвращает нулевое значение.

7Трассировка программы пользователя и системы поддержки

7.1Общие сведения о накоплении информации трассировки

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

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

Полный список событий трассировки содержится в файле events.def исходных текстов системы поддержки, в котором имени каждого события сопоставлен его номер. Событие обращения к функции имеет имя call_<имя функции>, а событие возврата из неё  имя ret_<имя функции>.

Трассировка каждого события может быть включена и выключена по его номеру.

Накапливаемая при трассировке информация содержит также все информационные сообщения системы поддержки и все сообщения об обнаруженных ею ошибках (см. п.8).

Накопление трассировочной информации система поддержки осуществляет с помощью функций, рассмотренных в п.7.3. Информация, выводимая этими функциями в текстовом виде, может поступать в три независимо включаемых (открываемых) и выключаемых (закрываемых) потока трассировки:

  • поток информационных сообщений системы поддержки (трассировка на "видеомонитор", стандартно  это поток stdout);

  • буфер оперативной памяти;

  • файл.

Трассировка в поток информационных сообщений осуществляется согласно общим правилам управления выводом информационных сообщений (см.п.8). Информация, поступающая в этот поток, не содержит информационных сообщений и сообщений об ошибках системы поддержки.

При трассировке в буфер оперативной памяти информация накапливается в буфере каждого процессора до завершения выполнения программы, а затем выгружается в файл (свой для каждого процессора). Инициализация буферов трассировки производится при инициализации системы поддержки.

Трассировка в буфер предусматривает два варианта. В первом исчерпание размера буфера влечет останов трассировки (вариант сохранения начала трассировки). Второй вариант обеспечивает сохранение последней информации за счет уничтожения наиболее старой (вариант трассировки "по кольцу").

Трассировка в файл осуществляется выводом информации непосредственно в свой для каждого процессора файл по мере ее поступления. Файлы для непосредственного вывода трассировки открываются при инициализации системы поддержки и закрываются при завершении выполнения программы.

Все файлы с накопленной трассировкой система поддержки помещает в одну директорию (как при трассировке в буфер, так и при трассировке непосредственно в файлы). Имя этой директории, а также расширения файлов для каждого потока задаются в файле параметров systrace.* (см. п.7.2.2). Имена файлов с трассировкой имет вид <внутренний номер процессора>_<внешний номер процессора>.

Состав накапливаемой при трассировке информации определяется режимом трассировки. При кратком режиме выводится:

  • имя события;

  • время, прошедшее с предыдущего события;

  • имя файла пользовательской программы и номер строки в нём, определяющие точку произошедшего события в программе.

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

ЗАМЕЧАНИЕ. Системная трассировка функционирует только при ненулевом значении параметра Is_DVM_TRACE, содержащегося в файлах systrace.* (см. п. 7.2.1). Часть функций, тем не менее, при этом не трассируется. К таким функциям относятся функции, требующие высокой эффективности выполнения из-за предполагаемой большой частоты обращений к ним (например, функция tstelm_ проверки принадлежности заданного элемента распределённого массива его локальной части). Включение трассировки такого рода функций осуществляется заданием ненулевого значения параметра Is_ALL_TRACE (файлы systrace.*). Кроме того, для трассировки функций обращения к DVM-отладчику необходимо задание ненулевого значения параметра Is_DEB_TRACE, а для трассировки функций обращения к подсистеме сбора инфомации для анализа производительности – ненулевого значения параметра Is_STAT_TRACE (см. п. 7.2.1).

7.2Управление накоплением трассировки с помощью файлов параметров

Управление режимами трассировки и составом трассируемых событий осуществляется с помощью параметров, содержащихся в файлах systrace.* и trcevent.* . Рассмотрим основные из них. По умолчанию считается, что параметр содержится в файлах systrace.* .

7.2.1Включение и выключение трассировки

  • Is_DVM_TRACE ненулевое значение этого параметра является общим признаком включенной трассировки.

  • Is_ALL_TRACE – признак трассировки всех функций системы поддержки (кроме функций обращения к DVM-отладчику и подсистеме сбора статистики).

  • Is_DEB_TRACE – признак трассировки функций обращения к DVM-отладчику.

  • Is_STAT_TRACE – признак трассировки функций обращения к подсистеме сбора информации для анализатора производительности.

  • TraceProcList  список внутренних номеров процессоров с включенной трассировкой. При общем включении трассировки она функционирует только на тех процессорах, которые заданы в этом списке. Трассировка на главном процессоре (см. п. 4) накапливается всегда, вне зависимости от наличия его номера (нулевого) в списке TraceProcList. Признаком конца списка TraceProcList является номер, равный -1.

  • IsTraceProcList  признак включённого списка TraceProcList. При нулевом значении этого параметра трассировка накапливается на всех процессорах.

  • IsEvent[<номер события>]  равное 1 или 2 значение этого параметра является признаком включённой трассировки события с номером <номер события>. Значение 2 задает трассировку заданного события в расширенном режиме вне зависимости от наличия общего режима расширенной трассировки. Нулевое значение параметра выключает трассировку заданного события. Параметр содержится в файлах trcevent.* . Стандартно (т. е. в базовых наборах параметров) трассировка всех событий включена, а трассировка событий с номерами 0, 1, 2 и 3  включена в расширенном режиме.

  • DisableTraceEvents список номеров событий (через запятую), трассировка которых выключена. Список DisableTraceEvents отменяет трассировку заданных в нём событий, включённую ранее параметром IsEvent. Признаком конца списка DisableTraceEvents является номер события, равный -1. Отмена трассировки событий с номерами 0, 1, 2 и 3 не допускается.

  • IsDisableTraceEvents признак включённого списка DisableTraceEvents. При нулевом значении этого параметра отмена трассировки событий не производится.

  • BlockTrace  признак отложенного включения трассировки. При общем включении трассировки накопление начинается только по специальному указанию, осуществляемому с помощью функции void tron(void). Включенная трассировка может быть выключена функцией void troff(void) (а затем снова включена и т. д.).

7.2.2Задание открытых (включенных) потоков трассировки

  • TracePath  имя директории, в которую помещаются файлы с трассировкой (как при трассировке в буфер, так и при трассировке непосредственно в файл). Если задается не пустое имя директории, то оно должно заканчиваться символом "\" или "/".

  • ScreenTrace  ненулевое значение этого параметра означает вывод трассировки в поток информационных сообщений (признак вывода трассировки на "видеомонитор"). Трассировка, выводимая в поток информационных сообщений, не содержит информационных сообщений и сообщений об ошибках системы поддержки.

  • BufferTrace  признак накопления трассировки в буфер оперативной памяти.

  • TraceBufLength  длина буфера трассировки в байтах.

  • TraceBufferExt  расширение файлов с трассировкой при трассировке в буфер.

  • FileTrace  признак накопления трассировки непосредственно в файлах.

  • FatTraceNoOpen  признак завершения работы при неудачном открытии файла для непосредственного накопления трассировки. При нулевом значении этого параметра неудачное открытие файла будет отмечено предупреждением.

  • TraceFileExt  расширение файлов с трассировкой при трассировке непосредственно в файлы.

7.2.3Задание режимов трассировки

  • DelSysTrace – признак уничтожения "старых" (оставшихся от предыдущего запуска) файлов с трассировкой при инициализации системы поддержки.

  • FullTrace  общий признак расширенного режима трассировки.

  • FullTraceEvents список номеров событий (через запятую), трассируемых в расширенном режиме (вне зависимости от общего признака расширенного режима трассироки, задаваемого параметром FullTrace). Признаком конца списка FullTraceEvents является номер события, равный -1. Список FullTraceEvents изменяет режим трассировки заданных в нём событий, но не включает ранее отменённую их трассировку.

  • IsFullTraceEvents признак включённого списка FullTraceEvents. При нулевом значении этого параметра изменение режима трассировки событий, заданных в списке FullTraceEvents, не производится.

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

  • MaxEventLevel[<номер события>]  максимальная трассируемая глубина обращений к функциям для события с номером <номер события>. Данный параметр имеет приоритет над параметром MaxTraceLevel. Параметр содержится в файлах trcevent.*

  • FullBufferStop  признак останова трассировки при исчерпании буфера. Нулевое значение этого параметра устанавливает сохранение последней информации при исчерпании буфера путем замещения ею наиболее старой информации.

  • BufferTraceUnLoad – признак выгрузки в файлы накопленной в буферах трассировки перед завершением выполнения программы. При нулевом значении этого параметра система поддержки не выгружает в файлы накопленную в буферах трассировку, возлагая эту работу на запускаемую при необходимости автономную программу-дамп.

  • LowDumpLevel – признак выгрузки в файлы накопленной в буферах трассировки с помощью функций ввода/вывода нижнего уровня. Выгрузка буферов с трассировкой функциями ввода/вывода верхнего уровня осуществляется несколько медленнее.

  • SetTraceBuf  признак трассировки непосредственно в файлы с буферизацией, осуществляемой операционной системой. Режим трассировки с буферизацией устанавливается с помощью функции setbuf сразу после открытия потока трассировки.

  • TraceFlush  признак выталкивания информации трассировки из буфера операционной системы в файл после каждого события (при трассировке непосредственно в файлы). Режим, задаваемый данным параметром, функционирует только в том случае, если трассировка осуществляется с буферизацией (параметр SetTraceBuf задан ненулевым). Параметр TraceFlush может принимать два ненулевых значения: 1 и 2. В первом случае выталкивание трассировки осуществляется с помощью функции fflush. Во втором случае дополнительно осуществляется закрытие файла с трассировкой и последующее его открытие в режиме записи с добавлением информации в конец файла.

  • DisableTraceTime – признак вычитания времени работы программ трассировки из временного расстояния между выводимыми в трассировку событиями.

7.2.4Управление формой накапливаемой информации

  • KeyWordName  признак вывода последовательности символов "NAME=" перед именем каждого события.

  • PreUnderLine  признак подчеркивания заголовка каждого события (заголовок события  это строка трассировки, содержащая имя события, время, имя файла и номер строки).

  • PreUnderLining  строка подчеркивания заголовка каждого события.

  • PostUnderLine  признак подчеркивания строки, завершающей выводимую по каждому событию информацию.

  • PostUnderLining  строка подчеркивания выводимой по каждому событию информации.

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

  • FileTraceShift  коэффициент сдвига вправо выводимой информации при трассировке непосредственно в файлы.

  • TimePrecision – число знаков после запятой при выводе времени, прошедшего c предыдущего события.

7.2.5Управление механизмами внутреннего самоконтроля системы поддержки, функционирующими при накоплении трассировки

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

  • левые (нижние) и правые (верхние) контрольные части каждого динамически запрошенного блока памяти;

  • область памяти, явно задаваемая в файлах параметров systrace.* своими начальным и конечным адресами;

  • область памяти с программным кодом пользовательской программы и системы поддержки (память команд).

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

Характеристики

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7027
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее