46373 (630420)
Текст из файла
Моделирование работы в машинном зале в терминах Simula
Постановка задачи.
В студенческом машинном зале расположены две мини-ЭВМ и одно устройство подготовки данных (УПД). Студенты приходят с интервалом 8±3 мин. и треть из них хочет испытать УПД и ЭВМ, а остальные только ЭВМ. Допустимое количество студентов в машинном зале 4 чел., включая работающего на УПД.
Работа на УПД занимает 9±4 мин. Работа на ЭВМ - 15±10 мин.; 20% работавших на ЭВМ возвращаются для повторного использования УПД и ЭВМ и остаются при этом в машинном зале.
Если студент пришел в машинный зал, а там уже есть 4 чел., то он ждет не более 15±2 мин. в очереди в машинный зал и, если нет возможности в течение этого времени начать работать, то он уходит.
Смоделировать работу в машинном зале в течение 48 часов.
Определить:
-
загрузку УПД и обеих ЭВМ,
-
максимальную длину очереди в машинный зал,
-
среднее время ожидания в очереди в машинный зал,
-
распределение общего времени работы студента в машинном зале,
-
количество студентов, которые не дождались возможности поработать и ушли.
Решение задачи.
Текст программы.
Текст программы полностью приведен в конце данного документа.
Схема решения в терминах предметной области.
Собираясь приступить к работе в машинном зале, студент подходит к нему и проверяет, есть ли очередь в машинный зал. Если таковой нет, то он ищет в последнем свободное место, а если очередь есть, то становится в ее конец. Затем, либо входит в машинный зал, либо создает очередь, состоящую из одного человека (его самого). После этого ждет в течение 15±2 мин. Если за это время место в зале не освобождается, студент уходит, в противном же случае, он покидает очередь и попадает в машинный зал.
Работа студента в машинном зале происходит следующим образом. Студент определяет, приступить ли ему к работе УПД, а затем на одной из ЭВМ (по условию задачи, число таких студентов составляет треть от общего числа посетителей) или пройти сразу к ЭВМ (все остальные). После работы на ЭВМ каждый студент может либо покинуть машинный зал, либо приступить к повторной работе (20%), теперь уже точно на УПД и ЭВМ.
Схема решения задачи в терминах языка Симула.
Глобальные переменные и массивы.
M,U,C,P – целые числа, служащие для создания в программе четырех различных потоков независимых величин;
I – счетчик цикла FOR (используется для вывода таблицы);
MZCap – целое число, обозначающее число мест в машинном зале;
Num – число студентов, покинувших очередь;
Nmb – число студентов, дождавшихся обслуживания;
MAX – максимальная длина очереди;
Toz – суммарное время ожидания в очереди;
Pupd – время простоя УПД;
Pcomp – время простоя обеих ЭВМ;
QUEUE – очередь в машинный зал;
QUPD – очередь на УПД;
QCOMP – очередь на ЭВМ;
UPD1 – ссылка на УПД;
COMP1 – ссылка на пару ЭВМ;
Std – массив действительных чисел из 10 элементов, в которые помещаются данные о числе студентов, проделавших работу за i-й интервал времени [Ti-1,Ti];
Tim – массив действительных чисел, в котором хранятся границы временных интервалов Ti.
Процессы.
GENER – процесс, имитирующий появление студента у машинного зала;
STUDENT – процесс, описывающий действия студента;
COMP – процесс, изображающий работу двух мини-ЭВМ;
UPD – процесс, изображающий работу УПД;
Получение результатов.
Для получения результатов используются перечисленные в пункте 2.3.1 глобальные переменные и следующие соотношения:
Загрузка УПД = 1 - Pupd/time;
Загрузка ЭВМ = 1 - Pcomp/time;
Число ушедших студентов = Num;
Максимальная длина очереди = MAX;
Среднее время ожидания в очереди =Toz/(Num + Nmb)
Распределение общего времени работы студента в машинном зале получено в виде массивов std и tim.
Комментарии к программе.
Подробные комментарии приведены в тексте программы в конце данного документа.
Результаты.
Загрузка УПД = 33,8%;
Загрузка ЭВМ = 82,1%;
Число ушедших студентов = 109;
Максимальная длина очереди = 3;
Среднее время ожидания в очереди = 9,79 мин.
Распределение общего времени работы студентов в машинном зале приведено в таблице 2.1.
Таблица 2.1
| Число студентов | Интервалы времени |
| 14 | 0 – 15 |
| 86 | 15 – 30 |
| 56 | 30 – 45 |
| 20 | 45 – 60 |
| 19 | 60 – 75 |
| 24 | 75 – 90 |
| 12 | 90 – 105 |
| 9 | 105 – 120 |
| 8 | 120 – 135 |
Исследование адекватности модели.
Метод исследования.
Рассмотренный далее метод не претендует на абсолютную точность, но, тем не менее, позволяет примерно оценить соответствие модели реальной ситуации.
Метод заключается в использовании внесения изменений в начальные данные. При этом анализируются изменения получаемых результатов.
Применение метода к поставленной задаче.
Вся информация по измененным входным данным и полученным результатам представлена в таблице 3.1 Знаком “|” отделяются значения для исходной задачи от значений для задачи, получаемой в результате внесения изменений.
Таблица 3.1
| Параметр | Загрузка УПД, % | Загрузка ЭВМ, % | Максимальная длина очереди, чел. | Среднее время ожидания, мин. | Число ушедших студентов, чел. | |||||
| Время работы системы 48 | 100 часов | 33,8 | 32,0 | 81,2 | 83,1 | 3 | 3 | 9,79 | 9,72 | 109 | 324 | |||||
| Число мини-ЭВМ 2 | 1 шт. | 33,8 | 21,4 | 81,2 | 81,0 | 3 | 3 | 9,79 | 12,12 | 109 | 229 | |||||
| Число человек в зале 4 | 2 | 33,8 | 31,8 | 81,2 | 83,6 | 3 | 3 | 9,79 | 9,76 | 109 | 149 | |||||
| Интервал между приходами студентов 8±3 | 1 | 33,8 | 34,0 | 81,2 | 83,2 | 3 | 18 | 9,79 | 14,36 | 109 | 2650 | |||||
| Число желающих использовать УПД и ЭВМ 33 | 66 % | 33,8 | 47,1 | 81,2 | 76,6 | 3 | 3 | 9,79 | 11,17 | 109 | 192 | |||||
Приведенные здесь результаты показывают, что полученная модель с достаточной точностью отображает реальную ситуацию в рамках поставленной задачи.
Сравнительный анализ моделей.
В приведенной ниже таблице даны искомые значения, полученные при помощи двух моделей: в реализации на GPSS и в реализации на языке Симула.
Таблица 4.1
| Величина | GPSS | Симула |
| Загрузка УПД | 55,2 | 33,8 |
| Загрузка ЭВМ | 96,5 | 81,2 |
| Число ушедших студентов | 78 | 109 |
| Максимальная длина очереди | 4 | 3 |
| Среднее время ожидания | 9,02 | 9,79 |
Как видно, приведенные величины отличаются друг от друга несущественно. Это означает, что обе модели с достаточной точностью можно считать адекватными друг другу .
SIMULATION begin
integer M,U,C,P,I; comment потоки случайных величин и счетчик цикла;
integer MZCap; comment вместительность машинного зала;
integer Num, comment число студентов, покинувших очередь;
Nmb; comment число студентов, дождавшихся обслуживания;
integer MAX; comment максимальная длина очереди;
integer Toz; comment суммарное время ожидания в очереди;
integer Pupd, comment время простоя УПД;
Pcomp; comment суммарное время простоя двух ЭВМ;
ref (HEAD) QUEUE; comment очередь в машинный зал;
ref (HEAD) QUPD; comment очередь на УПД;
ref (HEAD) QCOMP; comment очередь на ЭВМ;
ref (UPD) UPD1; comment УПД;
ref (COMP) COMP1; comment пара мини-ЭВМ;
real array std (1:10); comment число студентов в i-м интервале;
real array tim (1:9); comment интервалы гистограммы;
comment описание работы генератора, имитирующего появление студентов;
PROCESS class GENER;
begin
CREAT: activate new STUDENT; comment студент подходит к машинному залу;
hold(randint(5,11,M)); comment интервал перед приходом следующего;
goto CREAT;
end GENER;
comment описание действий студента;
PROCESS class STUDENT;
begin
integer vyb, comment возможность выбора работы: на УПД и ЭВМ (3) или только
на ЭВМ (1 и 2);
rep, comment возможность повтора работы (5);
wat; comment время, до которого студент может ждать в очереди;
integer tm; comment фактическое время ожидания или работы;
vyb:=randint(1,3,P); comment если 3, то работа на УПД и ЭВМ;
rep:=randint(1,5,P); comment если 5, то повторить работу;
wat:=time+randint(13,17,P); comment время максимального ожидания;
tm:=time; comment засечь время;
into(QUEUE); comment встать в очередь в машинный зал;
if (QUEUE.cardinal>=MAX) then comment если число людей в очереди больше,
чем ранее;
MAX:=QUEUE.cardinal; comment записать новое значение;
while MZCap>=4 do begin comment пока в машинном зале нет мест;
hold(0.1); comment подождать 6 секунд;
if time>wat then begin comment если текущее время превысило максимум;
out; comment покинуть очередь;
Num:=Num+1; comment увеличение числа ушедших студентов;
Toz:=Toz+time-tm; comment увеличение суммарного времени ожида-
ния;
goto STOP; comment завершить все действия;
end;
end;
out; comment покинуть очередь;
Toz:=Toz+time-tm; comment увеличение суммарного времени ожидания;
Nmb:=Nmb+1; comment увеличение числа студентов, дождавшихся
обслуживания;
MZCap:=MZCap+1; comment уменьшение числа мест в машинном зале;
tm:=time; comment засечь время;
if (vyb=3) or (vyb=2) then begin comment если студент собирался работать на УПД;
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















