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

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

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

void dvm_FreeArray(void *ArrayPtr);

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

void dvm_AllocStruct (


<Type>

<Type>,
*StructPtr );

Макроопределение выделяет блок памяти размера sizeof(Type) байтов и присваивает его адрес указателю StructPtr. Если блок памяти требуемого размера выделен быть не может, то выполнение задачи пользователя или системы поддержки будет прекращено.

void dvm_FreeStruct(void *StructPtr);

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

3Опрос времени выполнения программы в независимой от аппаратурно-программной среды форме

double dvm_time(void);

Функция возвращает время выполнения программы в секундах. Отметим, что содержание понятия времени выполнения может быть разным для различных сред.

4Опрос внутренних номеров функционально выделенных процессоров

Запуск программы пользователя для выполнения на многопроцессорной системе требует задания (в качестве параметров запуска) характеристик многопроцессорной системы как многомерного массива: размерности и размеров по каждому измерению. Пусть размерность многопроцессорной системы задана равной n, а размер по измерению k  равным PSSizek (1kn). Тогда при инициализации системы поддержки каждому процессору будет присвоен внутренний номер ProcNumberint:


ProcNumberint(I1, ... ,In) =

n
(Ik *
k=1

n
PSSizej)
,
j=k+1

где Ik  значение индекса процессора по измерению k индексного пространства многопроцессорной системы (0IkPSSizek 1).

То есть, внутренний номер  это линейный индекс процессора в индексном пространстве многопроцессорной системы.

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

При межпроцессорных обменах в качестве адреса процессора используется его идентификатор ProcIdent. Соответствие

ProcNumberint  ProcIdent

возвращается системе поддержки системой передачи сообщений (Message Passing System) при её инициализации.

Среди процессоров выделенного задаче решающего поля функционально выделены три: главный процессор, процессор ввода/вывода и центральный процессор задачи (или просто центральный процессор).

Главный процессор  это первый процессор, на котором была инициализирована параллельная программа (выполняющаяся на нём подзадача рассматривается как инициализатор всех остальных подзадач). Главный процессор имеет нулевой внутренний номер.

Процессор ввода/вывода предназначен для непосредственного общения с файловой системой и имеет нулевой внутренний номер.

Центральный процессор осуществляет вычисление редукционных функций и определяется индексным вектором ([PSSize1 /2] , ... , [PSSizen /2]).

int rtl_GetCurrentProc(void);

Функция возвращает внутренний номер текущего процессора.

int rtl_GetMasterProc(void);

Функция возвращает внутренний номер главного процессора.

int rtl_GetIOProc(void);

Функция возвращает внутренний номер процессора ввода/вывода.

int rtl_GetCentralProc(void);

Функция возвращает внутренний номер центрального процессора.

5Средства передачи сообщений, независимые от базовой системы передачи сообщений

Совокупность представленных ниже функций является интерфейсным "срезом" между собственно системой поддержки и используемой ею системой передачи сообщений (MPI, PVM и т.д.) и выходит за рамки средств, предоставляемых системой поддержки программе пользователя. Тем не менее, минимальный средонезависимый набор функций передачи сообщений может оказаться полезным для тестовых и экспериментирующих со средой программ, сопровождающих систему поддержки.

В качестве адреса процессора в рассматриваемых ниже функциях используется внутренний номер процессора, который при непосредственном обращении к функциям системы передачи сообщений заменяется на идентификатор процессора (см.п.4). Логика основных схем передачи сообщений (синхронная, асинхронная и схема "NO WAIT") предполагается известной.

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

5.1Синхронный обмен сообщениями

5.1.1Синхронная передача

int rtl_Send (

void
int
int
int

*MesPtr,
Count,
Size,
ProcNum );

MesPtr

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

Count

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

Size

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

ProcNum

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

Возвращается неотрицательное значение при успешном выполнении функции и отрицательное  в противном случае.

5.1.2Синхронный прием

int rtl_Recv (

void
int
int
int

*MesPtr,
Count,
Size,
ProcNum );

MesPtr

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

Count

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

Size

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

ProcNum

внутренний номер процессора, сообщение от которого требуется принять.

Возвращается неотрицательное значение при успешном выполнении функции и отрицательное  в противном случае.

5.2Асинхронный обмен сообщениями

5.2.1Асинхронная передача

int rtl_SendA (

void
int
int
int
int

*MesPtr,
Count,
Size,
ProcNum,
Tag );

MesPtr

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

Count

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

Size

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

ProcNum

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

Tag

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

Возвращается неотрицательное значение при успешном выполнении функции и отрицательное  в противном случае.

5.2.2Асинхронный прием

int rtl_RecvA (

void
int
int
int
int

*MesPtr,
Count,
Size,
ProcNum,
Tag );

MesPtr

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

Count

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

Size

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

ProcNum

внутренний номер процессора, сообщение от которого требуется принять.

Tag

номер класса принимаемого сообщения.

Возвращается неотрицательное значение при успешном выполнении функции и отрицательное  в противном случае.

5.3Обмен сообщениями в режиме "NO WAIT"

5.3.1Передача в режимме "NO WAIT"

int rtl_Sendnowait (

void
int
int
int
int
RTL_Request

*MesPtr,
Count,
Size,
ProcNum,
Tag,
*ReqPtr );

MesPtr

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

Count

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

Size

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

ProcNum

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

Tag

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

*ReqPtr

структура-признак, который устанавливается в состояние "заявка выполнена", когда сообщение будет доставлено адресату.

Возвращается неотрицательное значение при успешном выполнении функции и отрицательное  в противном случае.

5.3.2Прием в режиме "NO WAIT"

int rtl_Recvnowait (

void
int
int
int
int
RTL_Request

*MesPtr,
Count,
Size,
ProcNum,
Tag,
*ReqPtr );

MesPtr

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

Count

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

Size

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

ProcNum

внутренний номер процессора, сообщение от которого требуется принять.

Tag

номер класса принимаемого сообщения.

*ReqPtr

структура-признак, который устанавливается в состояние "заявка выполнена", когда сообщение поступит по адресу MesPtr.

Возвращается неотрицательное значение при успешном выполнении функции и отрицательное  в противном случае.

5.3.3Ожидание завершения передачи или приема

void rtl_Waitrequest(RTL_Request *ReqPtr);

*ReqPtr

структура-признак, от которого ожидается состояние "заявка выполнена".

5.3.4Опрос завершения передачи или приема

int rtl_Testrequest(RTL_Request *ReqPtr);

*ReqPtr

структура-признак, от которого ожидается состояние "заявка выполнена".

Возвращается значение:

0

пересылка сообщения не завершена (*ReqPtr не установлен в состояние "заявка выполнена");

1

пересылка сообщения завершена (*ReqPtr установлен в состояние "заявка выполнена").

5.4Передача сообщения от заданного процессора всем остальным (широковещательная передача)

int rtl_BroadCast (

void
int
int
int
PSRef

*MesPtr,
Count,
Size,
SenderProcNum,
*PSRefPtr );

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

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

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