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