pppaDDr (1158441), страница 2

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

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

Эти функции-члены добавляют к ранее посчитанным или записывают новые значения временных характеристик. Первая функция AddTime и WriteTime предназначены для работы с массивом mgen, первый параметр - это номер индекса, а второй само значение. Вторая функция AddTime предназначена для работы с остальными массивами, параметр t1 служит для выбора массива, параметр t2 – значение индекса массива, а val - значение.

3.1.4Функции чтения

void ReadTime(typegrp t1,typecom t2,double &val);
void ReadTime(typetime t2,double &val);

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

3.1.5Чтение информации, идентифицирующей интервал

void ReadIdent(ident **p);

Устанавливает указатель равным адресу идентификатора интервала.

3.1.6Сравнение идентифицирующей информации

int CompIdent(ident *p);

Сравнивает идентификатор интервала с другого процессора с идентификатором текущего интервала, параметр р - указатель на идентификатор интервала. В случае совпадения идентификаторов по всем элементам структуры возвращает 1, в противном случае – 0.

3.1.7Суммирование временных характеристик

void SumInter(CInter *p);

Эта функция-член суммирует значения временных характеристик интервала со значениями интервала более высокого уровня. Параметр р – указатель на интервал более высокого уровня.

3.2Класс CtreeInter, модуль treeinter.cpp

Этот класс предназначен для работы с интервалами, собранными на одном процессоре. Он содержит элементы данных: номер процессора - nproc, количество интервалов – qinter, номер текущего интервала – curninter, максимальный номер уровня вложенности maxnlev, а также указатель на динамический массив структур, содержащий номера интервалов более низкого, высокого или этого же уровня.

typedef struct ttree{




} ptree;

unsigned long


int
CInter

up,
next,
down,
sign,
*pint;

up, next, down
sign
*pint
ptree (*pt)

- номера интервалов,
- признак, что интервал уже пройден при обходе,
- указатель на класс Cinter,
- указатель на массив структур.

3.2.1Конструктор

CtreeInter(

FILE
int
char*
unsigned int
unsigned long
short

*stream,
lint,
pbuffer,
n,
qfrag,
maxn);

stream
lint
pbuffer
n
qfrag
maxn

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

Конструктор читает из файла, записанного в конце выполнения DVM-программы, информацию об интервалах, собранных на процессоре.

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

3.2.2Деструктор

~CTreeInter(); - Деструктор освобождает память, запрошенную под массив структур.

3.2.3Получение результата работы конструктора

bool Valid();

Функция-член Valid() предназначена для получения результата работы конструктора. Возвращает TRUE в том случае, если работа конструктора завершилась успешно и FALSE в противном случае.

3.2.4Сообщение об ошибке

void TextErr(char *t);

Предназначена для получения сообщения об ошибке, если Valid() возвратила код ответа FALSE.

3.2.5Функции обхода интервалов

void BeginInter(void);
void NextInter(ident **id);
CInter *FindInter(ident *id);

Предназначены для обхода интервалов. Параметр *id – указатель на идентификатор интервала. Обход интервалов осуществляется в том же порядке, что и заполнение интервалов на этапе сбора. Функция FindInter осуществляет поиск интервала с такими идентификационными значениями, что и параметр, в случае, когда соответствующий интервал не найден возвращает NULL.

3.2.6Суммирование характеристик по дереву интервалов

void SumLevel(void);

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

3.3Класс Csynchro, модуль synchro.cpp

Этот класс предназначен для хранения значений времен рассинхронизации и разброса времен.

typedef struct tsyn {



}psyn*ps;

short
unsigned long
void
double

nitem,
ninter,
*pgrp,
time,

nitem
ninter
pgrp
time
psyn

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

Функции-члены:

3.3.1Конструктор

CSynchro(

FILE
int

*stream,
l);

Чтение из файла времен рассинхронизации.

stream
l

- указатель на файл, полученный при выполнении DVM-программы.
– длина записанной информации

3.3.2Деструктор

~CSynchro();

Освобождение запрошенной памяти.

3.3.3Результат работы конструктора

bool Valid();

Служит для получения признака о работе конструктора, TRUE- работа конструктора завершилась успешно, FALSE – в противном случае.

3.3.4Сообщение об ошибке

void TextErr(char *t);

Выдает сообщение об ошибке.

3.3.5Подсчет числа рассинхронизаций и разброса времен интервала

void Count(

unsigned long
short

Nint,
waserr);

nint
waserr

– номер интервала,
– признак, что под времена рассинхронизаций не хватило места в файле.

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

3.3.6Количество рассинхронизаций в интервале

int GetCount(typecollect nitem);

Возвращает число рассинхронизаций для заданного типа коллективной операции.

3.3.7Чтение значения времени рассинхронизации

double Find(typecollect nitem);
double GetCurr(void);

Служат для получения значения времени рассинхронизации и разброса времен для коллективной операции. Функция Find() осуществляет поиск нового значения времени для текущего интервала, а функция GetCurr() только читает это текущее значение.

nitem – тип коллективной операции.

3.3.8Чтение значения времени рассинхронизации, поступившего вслед за текущим

double FindNearest(typecollect nitem);

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

3.4Класс CstatRead, модуль statread.cpp

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

Функции-члены:

3.4.1Конструктор

CStatRead(const char *name);

name – имя файла.

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

3.4.2Деструктор

~CStatRead(void);

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

3.4.3Количество процессоров

unsigned long QProc(void);

Возвращает количество процессоров, на которых считалась задача.

3.4.4Номер процессора ввода/вывода

unsigned long IOProc(void);

Возвращает номер процессора ввода/вывода.

3.4.5Тип передачи сообщений

tmps MPSType(void);

Возвращает тип передачи сообщений.

3.4.6Обход деревьев интервалов

int BeginTreeWalk(void);
int TreeWalk(void);

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

3.4.7Результат работы конструктора

bool Valid(void);

Возвращает TRUE в том случае, когда работа конструктора завершена успешно, FALSE в противном случае.

3.4.8Сообщение об ошибке

void TextErr(char* t);

Записывает сообщение об ошибке по указателю t.

3.4.9Чтение идентифицирующей информации интервала

void ReadTitle(char* p);

p – указатель на строку символов, в которую записывается информация о заголовке, идентифицирующем интервал.

3.4.10Чтение временных характеристик по заданным процессорам

bool ReadProc(

typeprint
unsigned long
int
double
char*

t,
*pnumb,
qnumb,
sum,
str);

t

- тип информации о характеристиках по процессорам,

pnumb

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

qnumb

- число элементов массива номеров процессоров,

sum

- суммарное значение характеристики по процессорам,

str

- строка, в которую записывается название характеристики и значения времен.

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

3.4.11Минимальные, максимальные и суммарные значения временных характеристик

void MinMaxSum(

typeprint
double*
unsigned long*
double*
unsigned long*
double*

t,
min,
nprocmin,
max,
nprocmax,
sum);

t

- тип характеристики,

min

- указатель на массив минимальных значений характеристик,

nprocmin

- указатель на массив номеров процессоров, где достигаются минимальные значения,

max

- указатель на массив максимальных значений характеристик,

nprocmax

- указатель на массив номеров процессоров, где достигаются максимальные значения,

sum

- указатель на массив суммарных значений характеристик.

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

3.4.12Размерность матрицы решения задачи

void VMSSize(char *p);

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

3.4.13Количество коллективных операций в интервале

long ReadCall(typecom t);

t – тип коллективной операции.

Возвращает количество вызовов коллективной операции данного типа.

3.5Модуль statfile.cpp функция main.

Чтение и разбор параметров, обращение к конструктору CstatRead(…) для чтения из файла накопленных времен и интервалов и вывод в файл заказанных характеристик. Характеристики, имеющие нулевые значения не печатаются.

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

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

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