PYRxUtil


Библиотека PYRxUtil предназначена для расширения функциональности OS/2 REXX (classic) программ и предоставляет более универсальные средства, чем просто API интерфейс, для осуществления операций:

В состав библиотеки входят 9 функций:

каждая из которых обеспечивает доступ к нескольким родственным функциям API в зависимости от значений и количества задаваемых при вызове параметров.

В соответствии с концепциями REXX результат вызова функции

В некоторых случаях возвращаемый результат представлен в виде строки-набора значений, разделенных символом ' ' (пробел), либо другим символом, применение которого для каждого случая оговаривается особо.

Дополнительный результат возвращается через переменную REXX, имя которой при необходимости указывается в одном из параметров вызова

Для возвращения массива результатов используются индексированные переменные REXX, имя-основа которых в этом случае указывается в одном из параметров вызова

Текущая версия PYRxUtil -- 20011221 - первый официальный бета-релиз (pyrxutru.zip, 243k).



Min_all  Очистка Рабочего Стола

"Мы их душили, душили.. душили, душили.."
Из отчета Нач. Подотдела Очистки OS Windows.

Думаю, многие сталкивались с ситуацией, когда бывает необходимо быстро заиметь чистый Рабочий Стол, и даже использование программ типа 9Lives! не спасает положение.

Причем, бывает нужно иметь окна некоторых программ всегда открытыми. В качестве примера можно привести мониторы SysBar, или QU-Player. Данная программа предназначена именно для таких ситуаций.

При первом запуске в "чистом" варианте программа устанавливает себе иконку и сразу предлагает начать процесс конфигурации.

Программа представляет собой скрипт на классическом REXX, рассчитанный на использование библиотеки расширения PYRxUtil с датой сборки не ранее 1.11.2001, доступная через переменную окружения LIBPATH.

P.S. Данная программа предоставляется "как есть".
Гарантии и обязательства автора (вернее, их полное отсутствие)
определяются текстом лицензии на использование библиотеки PYRxUtil.DLL.

Текущая версия min_all -- (min_all.zip, 10k).



Kill'em All  монитор процессов OS/2

"Этот велосипед отличается от остальных тем,
что его изобрел Я."

Меня давно интересовал вопрос о диспетчирезации процессов в OS/2. И предлагаемая программа представляет, так сказать, результат моих изысканий в этой области.

Основной момент, который я уяснил для себя в процессе "изысканий", состоит в том, что понятия "загрузка системы" и "загрузка ЦПУ" - это суть разные вещи. И даже более того - понятие "загрузка системы" в обычных ситуациях вообще не имеет особого смысла.

Практически, единственный известный источник информации об использовании процессами системного времени - это данные, возвращаемые функциями DosQProcStatus или более современной DosQuerySysState. Структура данных известна, но их смысл, особенно в отношении переменных, относящихся к диспетчеризации процессов и тредов, не раз'ясняется до конца ни в одном известном мне источнике.

В вопросе идентификации с процессами все более-менее ясно: родился - получил PID, умер - забрал его с собой в могилу. Новорожденный сразу после этого процесс может получить только PID c большим (до 65535) номером, или с меньшим, если кольцевой счетчик выделяемых номеров PID переполнился и отсчет начат с начала. Понятно, что поскольку реальное число процессов, существующих в системе одновременно, едва ли достигает сотни, а скорость порождения новых процессов не такая уж большая, для программы мониторинга всегда найдется промежуток времени для фиксации того факта, что PID с номером N нужно исключить из списка живых и забыть про такой номер на какое-то время. Другой процесс с таким же номером появится не очень скоро и это будет точно совсем другой процесс.

Для тредов дело обстоит несколько по-другому. И это еще мягко сказано. Бывают ситуации, когда практически невозможно отличить треды, не имеющие друг к другу абсолютно никакого отношения, кроме полностью аналогичных значений всех возможных идентификаторов.

Программа Kill'em All (а почему бы и нет ;) является оболочкой для получения доступной в системе информации рассматриваемого характера. Результаты ее обработки не претендуют на исчерпывающие полноту и точность. Программа не использует треды с повышенным приоритетом и сверхточные таймеры, т.к. задумывалась не как измерительный прибор, но как средство визуализации и оценки.

При первом "чистом" запуске программа вначале устанавливает себе иконку и затем после перезапуска входит в рабочий цикл.

Вся информация динамически обновляется примерно через 1 секунду (текущее время можно увидеть на панели общей информации).

Наблюдать за такой "живой" картинкой довольно интересно, и лично для себя я именно в процессе изготовления этой программы "осознал" некоторые неявные моменты в работе системы.

Например, понял, почему программа поначалу иногда "вываливалась", при расчетах относительных приращений используемого системного времени. Не сразу дошло, что треды одного процесса с одинаковыми значениями слот-идентификатора и TID в соседних измерениях могут не иметь друг к другу абсолютно никакого отношения.
Пример такой программы, активно сбрасывающей-возобновляющей треды - небезызвестный File Commander 2.20 в режиме поиска на диске файла, содержащего заданную строку.

Или, другой интересный момент - после переполнения системного таймера, когда получаем время работы системы меньшее, чем затрачено на выполнение какой-нибудь программы или треда.

Нормально работает под штатным telnet-om (ansi-terminal, OS/2 windowed session).

Программа представляет собой скрипт на классическом REXX, рассчитанный на использование библиотеки расширения PYRxUtil с датой сборки не ранее 1.11.2001, доступная через переменную окружения LIBPATH.

P.S. Данная программа предоставляется "как есть".
Гарантии и обязательства автора (вернее, их полное отсутствие)
определяются текстом лицензии на использование библиотеки PYRxUtil.DLL.

Текущая версия Kill'em All -- (kill'em.zip, 15k).

Ю.Погребняк. Yury Pogrebnyak


Интересные ссылки: Доходных для бизнеса.
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ