Функция a0wait создана специально для данного лабораторного практикума и обеспечивает "занятое" (с использованием центрального процессора) ожидание в течение заданного интервала времени. Синтаксис:
void a0wait(int I);где параметр I - задаваемый интервал ожидания. Значение параметра 1000 примерно соответствует 1 сек ожидания при монопольном использовании процессом центрального процессора.
Алгоритм функции состоит из цикла, в который вложен другой цикл. Внутренний цикл всегда выполняется 10000 раз, а внешний - от 0 до I. Параметр внешнего цикла waitFactor определен как статическая переменная вне функции - для того, чтобы к нему могли иметь доступ функции, внешние по отношению к a0wait.
Текст функции находится в файле ../common/wait.c и может включаться в Вашу программу. Рекомендуется оператор
#include "../common/wait.h"включать в начало Вашей программы, до определения функций, вызывающих a0wait, чтобы обойти необходимость описания функции. Здесь ../common/wait.h означает, что файл wait.h находится на один каталог выше относительно текущего в каталоге common.
#include "wait.h"
/***********************************************/
/* Занятое ожидание с фиксированным интервалом */
/***********************************************/
/*static*/ int waitFactor; // счетчик циклов ожидания и функции ожидания
void a0wait(int I)
{
int j;
double d;
I*=100;
for (waitFactor=0; waitFactor<I; waitFactor++)
for (j=0; j<10000; j++)
d=3.1415*j;
}
/*************************************************/
/* занятое ожидание, время которого определяется */
/* случайным числом в заданном интервал */
/*************************************************/
void a1wait(int I)
{
int r;
srand(time(NULL)); // инициализация генератора случайных чисел
r=(int)((double)I*rand()/RAND_MAX); // получение случайного числа в интервале 0 - I-1
a0wait(r); // ожидание
}
|
© life-prog.ru |