also creates lots of extra unnecessary overhead on cross-module transitions which should be eliminated. Apps like DumpRenderTree have lots of cross-module calls in the hot path, and this optimization will be critical for making them run quickly.
Another possible approach to hybrid instrumentation is to use SBI frameworks to instrument the dynamic libraries used by the application. We tried to write a "count" tool for Dyninst [17] and evaluate its performance. However, we were not satisfied with both static and dynamic instrumentation time for Dyn-inst. For example, it took one hour of CPU time and 10GB of RAM to statically instrument just two dynamic libraries linked into DumpRenderTree and add an exit callback to print run-time stats. Nevertheless, this approach sounds promising in general and may be a good direction for future research on hybrid instrumentation.
An interesting topic that we haven't covered in this paper is a common instrumentation API for hybrid instrumentation. Currently, compilers and DBI frameworks provide completely different APIs for the instrumentation tool writers, which increases the complexity of developing tools that utilize both.
Conclusions
In this paper, we presented a new hybrid approach to instrumenting programs by combining compile-time and run-time instrumentation. We developed two dynamic testing tools that benefit from such instrumentation. We suggested benchmarks for performance evaluation of dynamic binary instrumentation frameworks and significantly improved the performance of the fastest state-of-the-art dynamic instrumentation framework.
We believe that combining compile-time and runtime instrumentation can be used for a wide range of dynamic tools, which will be both faster and more useful that the current generation of such tools.
References
1. Nethercote N., Seward J., Proc. of the ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI '07), 2007, pp. 89-100.
2. Luk C.K., Cohn R., Muth R., Patil H., Klauser A., Lowney G., Wallace S., Reddi V.J., Hazelwood K., Proc. of the 2005 ACM SIGPLAN conf. on Programming language design and implementation (PLDI'05), 2005, pp. 190-200.
3. Bruening D., Efficient, Transparent, and Comprehensive Runtime Code Manipulation, PhD thesis, M.I.T., 2004.
4. The Chromium project, available at: http:// dev.chromium.org (accessed 17 June 2013).
5. Serebryany K., Bruening D., Potapenko A., Vyukov D., Proc. of the 2012 USENIX conf. on Annual Technical Conf., 2012, pp. 28-28.
6. The Chromium Blog, available at: http:// blog.chromium.org/2012/04/fuzzing-for-security.html (accessed 17 June 2013).
7. SyzyASan design document, available at: http:// code.google.com/p/sawbuck/wiki/SyzyASanDesignDocument (accessed 17 June 2013).
8. Nanda S., Li W., Lam L.C., Chiueh T.C., Proc. of the Int. Symp. on Code Generation and Optimization (CG0'06), pp. 358370.
9. Gcov — a Test Coverage Program, available at: http:// gcc.gnu.org/onlinedocs/gcc/Gcov.html (accessed 17 June 2013).
10. Eigler F.C., GCC Developers Summit, 2003, p. 57.
11. Necula G.C., McPeak S., Weimer W., ACM SIGPLAN Notices, 2002, Vol. 37, pp. 128-139.
12. Serebryany K., Potapenko A., Iskhodzhanov T., Vyukov D., Proc. of the 2nd int. conf. on Runtime verification (RV11), 2011, pp. 110-114.
13. Serebryany K., Iskhodzhanov T., Proc. of the Workshop on Binary Instrumentation and Applications (WBIA '09), 2009, pp. 62-71.
14. Hasabnis N., Misra A., Sekar R., Proc. of the Int. Symp. on Code Generation and Optimization (CGO '12), 2012, pp. 135-144.
15. Bruening D., Kiriansky V., Proc. of the fourth ACM SIGPLAN/SIGOPS int. conf. on Virtual execution environments, 2008, pp. 61-70.
16. Roy A., Hand S., Harris T., Proc. of the 7th ACM SIGPLAN/SIGOPS int. conf. on Virtual execution environments (VEE '11), 2011, pp. 227-238.
17. Bernat A.R., Miller B.P., Proc. of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools (PASTE '11), 2011, pp. 9-16.
18. MemorySanitizer, available at: http://code.google.com/p/ memory-sanitizer (accessed 17 June 2013).
19. Seward J., Nethercote N., Proc. of the USENIX Annual Technical conf., 2005, p. 2.
20. Clang: a C language family frontend for LLVM, available at: http://clang.llvm.org (accessed 17 June 2013).
21. WebKit, an open source web browser engine, available at: http://www.webkit.org (accessed 17 June 2013).
22. Bzip2, a data compressor, available at: http:// www.bzip.org (accessed 17 June 2013).
23. SQLite, an SQL database engine, available at: http:// www.sqlite.org (accessed 17 June 2013).
24. Hu S., Smith J.E., ACM SIGARCH Computer Architecture News, 2006, pp. 277-288.
УДК 512.7. 681.3
К ПОСТРОЕНИЮ ИЗОБРЕТАЮЩЕЙ СИСТЕМЫ НА ОСНОВЕ СИСТЕМОЛОГИИ
И.Н. Дорохов, д.т.н., профессор (Российский химико-технологический университет им. Д.И. Менделеева, Миусская пл., 9, г. Москва, 125047, Россия, indorokhov@yandex.ru);
Л.Н. Бутенко, д.х.н., профессор; М.А. Цыканова, аспирант
(Волгоградский государственный технический университет, просп. Ленина, 28, г. Волгоград, 400005, Россия, butenko@pstu.ru); Н.А. Семенов, д.т.н., профессор (Тверской государственный технический университет, наб. Аф. Никитина, 22, г. Тверь, 1 70026, Россия)
Изобретательская задача представляется в виде концептуальной схемы универсального решателя системных задач, в которой их типы определяются совместно с методами решения этих задач на ЭВМ. С точки зрения системоло-гии концептуальное проектирование систем представляется как процесс подъема по эпистемологической иерархии систем. На первом этапе концептуального проектирования определяется порождающая система, представляющая задание, которое она должна выполнить, на втором - структурированная система, удовлетворяющая четырем определенным требованиям. Примером реализации данного подхода является построение метода синтеза эвристических изобретательских приемов на основе системологии.
Ключевые слова: системология, концептуальное проектирование, порождающая система, структурированная система, эвристический прием, изобретательский прием, абстрагирование, интерпретация, эпистемологический уровень, иерархия.
TO CREATION OF INVENTING SYSTEM BASED ON A SYSTEMOLOGY DorokhovI.N., Ph.D., professor (D. Mendeleev University of Chemical Technology of Russia, Miusskaya Sq., 9, Moscow, 125047, Russia, indorokhov@yandex.ru); Butenko L.N., Ph.D., professor; Tsykanova M.A, postgraduate
(Volgograd State Technical University, Lenina Av., 28, Volgograd, 400005, Russia, butenko@vstu.ru); Semenov N.A., Ph.D., professor (Tver State Technical University, 22, Nikitina Quay, Tver, 170026, Russia) Аbstract. The inventive task is represented in the form of the conceptual scheme of system tasks universal solver. The system task types are defined together with solution methods of these tasks on the computer. In the context of sistemology, system conceptual design is represented as lifting process on epistemological hierarchy of systems. At the fist stage of conceptual design the generating system representing a task for the system to execute is defined. At the second stage the structured system meeting four certain requirements is defined. Example of this approach realization is creating the synthesis method of heuristic inventive receptions based on sistemology.
Keywords: sistemology, conceptual design, generating system, structured system, inventive reception, heuristic reception, epistemological level, abstraction, interpretation, hierarchy.
Системный подход к решению задач поискового конструирования базируется на широком использовании ЭВМ для решения творческих инженерных задач [1]. Системные задачи могут возникать в двух основных контекстах - при исследовании и при проектировании систем. Задачей исследования систем является накопление знаний о различных наборах переменных и параметров, определенных с конкретными целями на существующих объектах. Задача проектирования систем, в том числе концептуального, состоит в использовании приобретенных знаний для создания новых объектов, для которых на специфицированные переменные наложены определенные ограничения.
С точки зрения системологии концептуальное проектирование систем можно представить как процесс подъема по эпистемологической иерархии [2]. Проявлением такой иерархии может служить иерархия экспертных систем на различных этапах поискового конструирования объектов [3].
При концептуальном проектировании системы функция данных в системологии определяется через описание их свойств или в виде массива данных [2]. Важной чертой концептуального проектирования систем является то, что параметрически
инвариантное ограничение на некоторые конкретные переменные определяется пользователем. Ограничения при концептуальном проектировании систем можно определить на языке либо конкретной порождающей системы, либо системы данных. В первом случае задача концептуального проектирования с точки зрения положений систе-мологии сводится к определению набора структурированных систем, удовлетворяющих заданным требованиям. Во втором случае необходимо определить некие порождающие системы, адекватно описывающие ограничения, содержащиеся в данных. Если исходить из второго случая, то начальным этапом концептуального проектирования является определение порождающей системы, представляющей задание, которое должна выполнить данная система. В общем случае это задание представляет собой преобразование состояний соответствующих входных переменных в состояния выходных переменных. Вторым этапом концептуального проектирования является определение структурированной системы, отвечающей следующим требованиям: 1) структурированная система должна выполнять требуемое задание, которое представляется функцией поведения порождающей системы; 2) элементы системы пред-
ставляют собой порождающие системы с определенными функциями поведения; определены имеющиеся технологические возможности и перечень всех модулей, которые можно использовать при создании структурированной системы; 3) соответствие целевым критериям и структурным ограничениям [2].
Применение положений системологии к предметной области «изобретательские приемы» позволило установить, что при переходе от низшего эпистемологического уровня систем к высшему возрастают сложность задач и, соответственно, сложность методов их решения. Низшим эпистемологическим уровням систем соответствуют параметрические задачи, методы решения которых в настоящее время известны и хорошо поддаются формализации. Высшим эпистемологическим уровням систем (структурированные системы и метасистемы) соответствуют изобретательские задачи, для решения которых необходимы изобретательские методы.
На основе использования иерархии эпистемологических уровней систем, представленной в системологии, установлено, что должны существовать изобретательские приемы для каждого эпистемологического уровня систем, которые будут отличаться уровнем знаний относительно рассматриваемых предметных областей: приемы более высокого эпистемологического уровня являются обобщением приемов более низких уровней. Изобретательские приемы также отличаются по уровню изобретательской задачи.
Изобретательская задача представляется в виде концептуальной схемы, в которой типы системных задач определены совместно с методами решения задач этих типов. Такая концептуальная схема в системологии носит название универсального решателя системных задач (УРСЗ) [2]. В междисциплинарных исследованиях УРСЗ рассматривается как методологическое средство, ориентированное на использование вычислительной техники. Располагая этим средством, можно обращаться к его услугам всякий раз, когда в процессе решения какой-либо проблемы возникает необходимость решения системных задач. Схема решения системных задач в УРСЗ показана на рисунке.
В УРСЗ существуют два уровня операций. Первый уровень представлен внутренними прямоугольниками. Исследователь достаточно знаком с базовым языком УРСЗ, чтобы сформулировать интерпретацию своей задачи в виде системной задачи. В этом случае пользователь сам определяет интерпретированную задачу в терминах УРСЗ, а УРСЗ решает задачу и отображает решение в терминах интерпретированной системы.
Подобная ситуация также возникает, если необходимо разработать процедуры, имеющие вид простых вопросов, задаваемых пользователю. Отвечая на эти вопросы, пользователь определяет системную задачу, подходящую к данной ситуации.
Второй уровень представлен внешними прямоугольниками. Многие системные исследования
Примечание. Значения связей: 1 - выявление системных аспектов и формулировка конкретной задачи предметной области в виде системной задачи на языке УРСЗ; 2 - абстрагирование (переход от интерпретированной системы к общей системе и от конкретной системной задачи к общесистемной задаче); 3 - решение общесистемной задачи; 4 - интерпретация полученного решения в терминах конкретной системной задачи; 5 - предметная экспертиза (вклад в развитие представлений исследователя о предметной области).
Схема решения системных задач в УРСЗ
достаточно сложны, так что исследователь может содержательно использовать больший объем информации, чем это требуется для решения определенной системой задачи. В этом случае также можно разработать процедуры преобразования из интерпретированной системы в общую. Основываясь на информации, сопровождающей это преобразование, УРСЗ может перевести новую информацию относительно общей системы в термины интерпретированной системы. Таким образом, исследователь (изобретатель) может получить о ней новые сведения.
Использование УРСЗ требует введения интерфейса между вовлеченными в решение задач дисциплинами. Такой интерфейс состоит из двух альтернативных процессов - абстрагирования и интерпретации. В научных исследованиях использование этих процессов носит, вообще говоря, постоянный характер.
Примером решения изобретательских задач на основе излагаемого подхода может служить разработка метода синтеза эвристических приемов (ЭП) [4]. Здесь иерархия эпистемологических уровней систем переносится на иерархию ЭП, то есть с каждым эпистемологическим уровнем систем соотносятся свои ЭП: приемы более высокого эпистемологического уровня являются обобщением приемов более низких уровней. Это значит, что ЭП различаются по эвристичности. Вводятся понятия общего и частного ЭП. Эвристичность - это способность обеспечить появление новых идей в конкретных проблемных ситуациях. При переходе от продукционных правил на уровне порождающих систем к правилам на уровне структурированных систем и далее к метасистемам эвристич-ность возрастает. Следовательно, продукционное правило может быть использовано в качестве модели ЭП, а иерархический подход системологии -при структурировании фондов ЭП. Тем самым подчеркивается существенное различие между объектно- и проблемно-ориентированными фондами ЭП. Объектно-ориентированные ЭП основаны на определенном типе элементов, а проблемно-ориентированные - на определенном типе отношений между элементами.
На уровне структурированных систем и метасистем постановка задачи проектирования метода синтеза ЭП представлена как процесс подъема по эпистемологической иерархии систем. Первым этапом проектирования является определение порождающей системы с заданием: преобразовать входные объекты в выходные - новые ЭП. Следующим этапом проектирования является определение структурированной системы в виде последовательности специальных модулей знаний с определенными порождающими функциями.
В итоге был разработан оригинальный метод синтеза ЭП [4], состоящий из шести стадий: 1) генерация цели синтеза ЭП; 2) поиск иерархическо-
го описания объекта; 3) анализ объекта; 4) классификация параметров объекта для n-го уровня иерархии; 5) выбор обобщенных ЭП; 6) интерпретация, конкретизация и инверсия ЭП для n-го уровня иерархии описания объекта. Сформированная шестистадийная процедура синтеза ЭП соответствует системе третьего эпистемологического уровня - структурированной порождающей системе, моделью которой является семантическая сеть модулей знаний в виде ациклического графа [4]. Представляет интерес распространение изложенного системного подхода к синтезу ЭП на более широкий круг изобретательских приемов и методов.
Другим примером использования аппарата системологии может служить применение приема абстрагирования и конкретизации при переходе от реального массива объектов с парными свойствами к абстрактному массиву классов эквивалентности таких объектов, что позволило существенно сузить многообразие возможных приемов устранения физических противоречий при формулировке параметрического метода разрешения противоречий в технике [5].
Литература
1. Дорохов И.Н., Меньшиков В.В. Системный анализ процессов химической технологии. Интеллектуальные системы и инженерное творчество в задачах интенсификации химико-технологических процессов и производств. М.: Наука, 2005. 584 с.
2. Клир Дж. Системология. Автоматизация решения системных задач. М.: Радио и связь, 1990. 544 с.
3. Дворянкин А.М. К вопросу построения интегрированной системы автоматизации проектирования жизненного цикла объектов техники / В сб.: Методы поискового конструирования в системах автоматизированного проектирования. Йошкар-Ола, МарГУ, 1986. С. 94-102.
4. Цыканова М.А. Разработка метода синтеза эвристических приемов: дисс... канд. технич. наук. Волгоград: ВГТУ, 2013, 20 с.
5. Глазунов В.Н. Параметрический метод разрешения противоречий в технике. М.: Речной транспорт, 1990. 150 с.
References
1. Dorokhov I.N., Menshikov V.V., Intellektualnye sistemy i inzhenernoe tvorchestvo v zadachakh intensifikatsii khimiko-tekh-nologicheskikh protsessov i proizvodstv, series "Sistemny analiz protsessov khimicheskoy tekhnologii" [Intellegent systems and engineering creativity in problems of an intensification of chemical and technological processes and productions, series "System analysis of chemical technology processes"], Moscow, Nauka, 2005.
2. Klir J., Sistemologia. Automatizatsiya resheniya system-nykh zadach [Sistemology. Architecture of systems problem solving], Moscow, Radio i svyaz, 1990.
3. Dvoryankin A.M., Sbornik trudov: "Metody poiskovogo konstruirovaniya v sistemakh avtomatizirovannogo proektirova-niya " [Collected papers "Methods of search designing in the computer aided design systems"], Yoshkar-Ola, MarSU Publ., 1986, pp. 94-102.
4. Tsykanova M.A., Razrabotka metoda sinteza evristiches-kikh priemov [Heuristic device method design], Ph.D. thesis, Volgograd, VSTU Publ., 2013.
5. Glazunov V.N., Parametricheskiy metod razresheniya protivorechiy v tekhnike [Parametrical method to resolve conflicts in equipment], Moscow, Rechnoy transport, 1990.