… или
сколько «попугаев» в
ЭВМ?
Адрес
документа |
http://shabronov_s2.dyn-dns.ru/doc_sh/nagruzika_v3/nagruzika_v3.doc
1-4-2 |
Программа
«определителя» |
http://90.189.213.191:4422/doc_sh/nagruzika_v3/arhiv/nagruzika_v3.zip 2 мб |
Исходный
текст
«определителя» |
http://90.189.213.191:4422/doc_sh/nagruzika_v3/arhiv/test_monsys_all.zip 14мб |
От автора:
·
Компьютеры
все «мощнее»
и «сильнее»,
как говорит
про них
реклама. Что
бы
ориентироваться
в этой
«мощности»
предлагается
квант учета
(КУ)
вычислительной
мощности.
Приводиться
описание КУ -
программы
часов на
компьютере.
Чем больше
часов работает,
тем больше
«вычислительная
мощность».
·
Программа
подготовлена
на языке FORTH
и доступна
всем
желающим для
изучения и
модификации.
·
Игнорируются
отзывы и
критика метода
оценки «вычислительной
мощности» без
альтернативных
предложений
с конкретными
текстовыми
примерами
или
исходными
кодами
программ.
Меню
программы
«плавной
нагрузки».
·
Ниже
на рисунке
формата gif
показано,
главное, оно
же и
единственное
окно
программы.
·
Программу
скачать,
по
приведенным
ссылкам,
распаковать,
и выполнить в
отдельной
папке. Управление
или
цифровыми
клавишами,
или подвести
курсор и
нажать клавишу
«enter»,
или кликнуть
левой
кнопкой
«мышки» на цифру
или букву
меню.
·
Клавиша
5 -
выполняет
пересчет
задаваемых
часиков, в
размер
«рабочего
стола» окна.
Ниже на
рисунке
слева
«рабочий стол»
отображается
без
пересчета , а справа
пересчитан.
·
По
клавише =t=
извлекается
текст программы
часов и файл
компилятора
языка FORTH. Ниже
показано на
рисунке и
выделено
цветовым
овалом.
·
В
рабочем
каталоге
увидите два
новых файла cclock2.f 100_spf4.exe
·
Из
этих двух
файлов
формируется
третий файл - cclock2.exe.
Выполнить
в командной
строке
…\100_spf4.exe cclock2.f <enter>
·
Файл
часов
работает
автономно, и
может выполняться
любыми
другими
программами.
Вид
исполнения одного
приложения и
четырех,
показан ниже на
рисунках gif. Это
часы, которые
«тикают» по
данным времени,
установленном
на Вашем
компьютере.
·
Расположение
и размер КУ -
программы
часиков в «пикселах»
предусмотрено
задавать и из
командной строки,
например …\cclock2.exe 200 300 400 500 5 <enter> где
цифры
определяют:
§
200 - точка
левого
верхнего
угла часиков
по
горизонтали
на «рабочем
столе»;
§
300 –
точка левого
верхнего
угла часиков
по вертикали
на «рабочем
столе»;
§
400 –
размер
часиков по
горизонтали;
§
500 –
размер
часиков по
вертикали;
§
5 - номер
часиков в
названии
окна «КУ квант
учета».
·
Без
командной
строки
устанавливаются опции
часиков 300 500 250 250
1
Алгоритм
и состав
компонентов программы часов
cclock2.exe
·
Программа
часиков cclock2.f это
обычный
текстовый
файл, с
кодировкой ОЕМ-DOS. Открывается
блокнотом со
шрифтом
Терминал, как
показано
ниже на
рисунке.
·
Автор
рекомендует
использовать
свободно
распространяемый
редактор
текстов AkelPad В
этом случае
отображение и
редактирование
удобнее.
Показано
ниже на
рисунке.
·
Программу
часов,
условно по
«территории»
можно
разделить на
три части:
§
Входная
часть.
Принимает
данные из
командой
строки, или
из стека при
подключении
в составе
верхней
программы и
служебные
слова для
формирования
точек останова
и отладки;
§
Вторая
часть для
создания
окон часов
формата окон Windows. Это - локальные
переменные,
выбор по
целому, константы
и dll-функции;
§
Часть
формирования
и
исполнения окна
часиков.
Содержит
графику
стрелок,
значения
синуса,
формирует
выбранный
класс окна и
т.д. А так же,
содержит
раздел
запуска
приложения
для
выполнения.
·
Особенность
и
достоинство
языка
программирования
FORTH в
том, что не
важно, где
будет
определена
переменная.
Важно, что бы
она была
определена до
начала
компиляции,
т.е. до использования.
·
Такое
же правило
применяется
и к формированию
слов.
Определили
слова, и
использовать
их можно тут
же по тексту или в
любом
отдаленном месте.
·
Далее, приведен
пример форт-слова,
формирующее
окно часов.
* * * ( текст
программы ) *
* * : A_CLOCK
( слово
формирует
окно для
часов ) WITH [ ACWindow ] ( 1й объект - winobj ) /WNDCLSEX OBJECT TO winobj winobj
initInstance ['] (MyWndProc) winobj setproc winobj
register TO clsid ( класс ид ) ( 2й объект - awin ) /CREATEX OBJECT TO awin
TIME_POZ
DUP @ SWAP 4 + @ awin setpos ( передаем
данные или
из верхней
программы
или свои )
TIME_RAZM_WID DUP @ SWAP 4 + @ awin setsize WS_OVERLAPPEDWINDOW WS_VISIBLE OR
awin setstyle Title
awin settitle winobj getName awin setclass
awin create_win TO Myhwnd ENDWITH DECIMAL 0 1000 ID_TIMER Myhwnd SetTimer
DROP Myhwnd UpdateWindow DROP SW_SHOW Myhwnd ShowWindow DROP ( вывести окно на экран ) MessageLoop
( войти в
цикл
обработки
сообщений ) ; '
A_CLOCK
TASK:
Thread1_DIN5 ( сформирован
адрес
запуска
потока )
* * * ( текст
программы
продолжается ) |
§
Выделенная
толстым
шрифтом
константа SW_SHOW
определяет
тип
отображения
созданного
окна. Например,
если
заменить
данную
константу на
SW_HIDE, то окно
будет
сформировано
в скрытом
виде. Это
означает, что
программы
будут
спрятаны с
рабочего
стола и
видны, только через
диспетчер
задач.
При
генерации
окон в
скрытом виде,
сообщение о
превышении
ресурсов
будет
выдаваться
без
отображения
окон.
Вдруг
появиться
сообщение «ресурсов
не хватает».
§
Интервал
опроса окон
задается dll
функцией SetTimer,
выделено
толстым
шрифтом в
примере.
Например, если
ее увеличить
до 5000, то
стрелки будут
изменять
свое
положение
через 5000 миллисекунд,
или 5 секунд.
Но,
уменьшение
значения, не
заставит
стрелки
находиться
в промежуточном
состоянии.
Таких
рисунков не
предусмотрено.
§
Важно!
Уменьшение
времени таймера
означает, что
чаще
операционная
система
обращается к
данному
приложению, и
соответственно
больше
ресурсов
будет потреблять.
Т.е. общее
количество
часиков на
экране
УМЕНЬШИТЬСЯ!
§
Описание
алгоритма
программы КУ
– квант учета,
формирования
часиков.
1.
Выделяется
память для
работы окон Windows;
2.
Формируются
коды,
выполнения
окон Windows;
3.
Получаются
данные из
командной
строки о
расположении
и размере
окна часиков
4.
Начало
цикла часов -
проверяется
время и по
данным
времени
устанавливаются
стрелки;
5.
Проверка
на нажатие ESC или
клика мышки о
остановке
или наличия в
рабочем
каталоге файла
cclock2.txt – если
нет таких
событий то п4,
иначе далее;
6.
Закрываются
окна,
освобождается
память и
программа
прекращает
работу.
§
Программа
формирует
«без всяких
затей» стандартное
окно Windows и
рисует
стрелки. В
тексте
программы,
есть много
констант,
которые
позволяют
оформить
окно в других
стилях.
Окрасить
стрелки или
фон часов или
ввести
другие
«художества»
для
восприятия. Смотрите
комментарии
в тексте.
§
Режим
генерации по
клавише 9, потоков,
имеет
особенность
– нелинейное
увеличение
времени
формирования
потоков. Это
связано с
тем, что
приложение
увеличивается в
своих
размерах. Операционная
система
выделяет
память из
оперативных
источников, а
затем
начинает
использовать
файл подкачки.
И все время с
увеличением.
§
Вторая
особенность
– это
использование
одного
участка
памяти для
данных
рисунков,
стрелки
«накладываются»
при отображении.
Операционная
система не контролирует
последовательность
потоков. Нет
возможности
операционной
системе
определить
последовательность
потоков. Это
должна
делать
программа
§
Другая
особенность
запуска
многих потоков
на
исполнения
без учета их
последовательности
в том, что
существует
возможность старта
одного
потока и не
завершения
старта
другого
потока, а
данные
стрелок уже
поменялись.
Для этого,
надо потоки
запускать с
интервалом
более чем
одна секунда.
В противном
случае некоторые
потоки не
сформируются,
и будет пропущенное
окно часов.
§
Автор
счел задачу точного
управления
потоками
избыточной,
для решения
отображения
часов в
качестве
кванта учета
нагрузки. Но
желающие
могут это
дело
продолжить.
Определение
предела
вычислительной
мощности
§
Задаем
«запредельный
предел» в 400 КУ,
и выполняем
программу,
нажав
клавишу 0. КУ
формируется,
и перестает формироваться
на числе 143, как
показано
ниже на
рисунке.
Выделено
цветовым
овалом места
отображения.
§
Фиксируем
данные
экрана по
клавише F1,
формируется
отчетный
файл данных в
рабочем
каталоге, или
просто
запоминаем, и
нажимаем
клавишу «ESC». В
рабочем каталоге
формируется
файл cclock2.txt Все
работающие
часики
проверяют
наличие этого
файла и если
его
обнаруживают,
то прекращают
работу.
§
Процесс
выключения
одних
часиков,
освобождает
ресурсы, и
соответственно
включаются
другие
часики. А
потом сразу и
выключаются,
т.к. находят
файл
выключения. Это
выглядит как
«пробегание»
окон часиков
по рабочему
столу.
§
Однако, может
быть и
ситуация
«предупреждения»
операционной
системы о
работе
программы и
нехватки
ресурсов
компьютера.
Это зависит,
от настроек
Вашей системы,
ее
предупредительных
средствах
о памяти,
быстродействии
и прочем.
§
Настройка
системы и
быстродействия
компьютера
отдельная
тема, которая
выходит за рамки
данной
работы.
Считаем, что
система настроена.
§
Если
закрыть окно
программы
плавной нагрузки
через alt+f4 или
мышкой, то
загруженные
часики
останутся в
работе!
§
Недостаток
измерения, в
том, что в
«предельном
режиме»
другие
программы
фиксации, например
«скриншот»
экрана, может
и не
работать.
Ресурсов то НЕТ!
§
Альтернативой
предлагается в
начале, включить,
например
«запись
экрана» а
далее,
нагружать до
момента
«надрыва живота
компьютера».
Шутка.
§
Существующая
тенденция «
вычислительных
мощностей
компьютеров»
предполагает
продажу
части
мощностей, например
тут:
o
https://v-mire.net/prostoj-zarabotok-na-resursax-kompyutera/
- рассматривается
возможность
продажи части
ресурса
компьютера;
o
https://habrahabr.ru/post/172969/
-
рассматривается
альтернатива
использования;
o
http://www.ibm.com/developerworks/ru/library/l-grid/index.html
-
рассматривается
сетевая
система открытых
вычислений;
§
Предлагаемая
методика КУ- квант
учета,
позволяет
оценить
возможность
использования
вычислительной
мощности.
§
И если
КУ маловато,
то добавить
вычислительной
мощности. А
если ее
избыток, то кому либо
предложить,
или продать.
§
Но
надо помнить
из биологии - «Желудок
умнее мозга,
потому что
желудок
умеет
тошнить, мозг
же глотает
любую дрянь».
А компьютер,
это мозг,
который
переваривает
информацию! А
может и не
переварить!
Выводы
Данная
тестовая
программа
предназначена
для
мониторинга и
формирования
плавной
нагрузки на компьютер,
путем
создания
одинаковых
приложений с квантом
учета
нагрузки – это
авторская
терминология.
Особенности
программы:
·
Имеет
упрощенный
«оконный»
интерфейс.
·
Программа
не
устанавливается,
не прописывается
в системные
библиотеки,
·
Программа
содержит в
своем «теле» файлы
программы часов
и компилятор
FORHT для
возможной
модификации
и изучения;
·
Программа
работает под
операционными
системами WINDOWS 95/98/NT/2000/XP/Vista/Win7/8/10 и
использует
только
функции api- ядра
системы –
файл kernel32.dll
·
Программа
написана на
языке Форт
версия
spf4.exe – автор А.
Черезов http://www.forth.org.ru
·
Программа
доступна для
использования,
изучения и
модификации
всем
желающим.
·
За
модифицированный тест
отвечает сам
модификатор.
Автор может,
при наличии
времени,
только
кратко
провести
консультацию
по используемым
им forth-словам.
·
Автор
оставляет за
собой право
на модификацию
и улучшение
теста, т.к.
периодически
тестирует компьютеры
и получает
замечания и
информацию
от реальных
пользователей.
·
Тема
учета
вычислительной
мощности
автором
освещалась
ранее. Адрес публикации http://90.189.213.191:4422/doc_sh/popg2_sh/
. «Все течет,
все
изменяется»
и автор модифицировал
программу, но метод
сохранил;
·
В
связи
возможными
нарушениями
работы сервера
автора, нет
резервной
линии и нет
гарантированного
питания в
нашей
деревне, имеется
резервное
хранилище
тестов по адресу: https://cloud.mail.ru/public/JAHX/BULXQfT6S
---------------------------------------------------------------------------------------------------------------------------------
Автор - Шабронов
Андрей
Анатольевич тс. +7 913-905-8839 e_mail - shabronov@ngs.ru
ред. 28-2-2017 .
Успехов и
здоровья!