Функция a0wait

Функция 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.

Файл wait.c

 #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