2 research outputs found

    Estudio comparativo de frameworks de instrumentaci贸n din谩mica de ejecutables

    Get PDF
    La Instrumentaci贸n Din谩mica de Ejecutables (Dynamic Binary Instrumentation, DBI) es una t茅cnica muy potente que permite analizar el comportamiento, en tiempo de ejecuci贸n, de cualquier aplicaci贸n. DBI se puede usar, por ejemplo, para contar el n煤mero de instrucciones que ejecuta o contar todas las transferencias (lectura y/o escritura) a memoria que realiza un determinado programa. Un framework de DBI es una plataforma software que incluye programas, librer铆as, documentaci贸n y una API para manipulaci贸n de instrucciones en tiempo de ejecuci贸n. Existen diferentes frameworks de DBI (p.e., Pin, Valgrind, DynamoRIO, Paradyn/Dyninst), que proporcionan APIs muy extensas para que cada ingeniero pueda desarrollar sus propias herramientas de an谩lisis din谩mico, llamadas herramientas DBA (Dynamic Binary Analysis). Las herramientas DBA permiten analizar, generar optimizaciones y monitorizar el comportamiento de programas. El objetivo de este PFC es realizar un estudio comparativo centrado a nivel de impacto en rendimiento (performance) de diferentes frameworks de DBI. Es decir, se comprobar谩 el rendimiento de una aplicaci贸n ejecutada de forma nativa, sin instrumentar, y se comparar谩 con esta misma aplicaci贸n instrumentada por herramientas programadas bajo diferentes frameworks de DBI. De esta forma se obtiene el impacto en rendimiento de cada uno de los frameworks. Para poder llevar a cabo este estudio, se han seleccionado un conjunto de aplicaciones para crear un benchmark, que nos dar谩 informaci贸n de rendimiento de cada framework de DBI. Adem谩s, se pretende comparar cada framework de DBI atendiendo a las siguientes caracter铆sticas: plataformas y tipos de ejecutables que aceptan, necesidad de disponer del c贸digo fuente, API proporcionada, facilidad de programaci贸n de herramientas DBA, licencia/coste y la posibilidad de vincular a un proceso en ejecuci贸n

    Evaluating the impact of dynamic binary translation systems on hardware cache performance

    No full text
    Dynamic binary translation systems enable a wide range of applications such as program instrumentation, optimization, and security. DBTs use a software code cache to store previ-ously translated instructions. The code layout in the code cache greatly differs from the code layout of the original program. This paper provides an exhaustive analysis of the performance of the instruction/trace cache and other structures of the micro-architecture while executing DBTs that focus on program instr-umentation, such as DynamoRIO and Pin. We performed our evaluation along two axes. First, we di-rectly accessed the hardware performance counters to deter-mine actual cache miss counts. Second, we used simulation to analyze the spatial locality of the translated application. Our re-sults show that when executing an application under the control of Pin or DynamoRIO, the icache miss counts actually increase over 2X. Surprisingly, the L2 cache and the L1 data cache show a much lower performance degradation or even break even with the native application. We also found that overall performance degradations are due to the instructions added by the DBT it-self, and that these extra instructions outweigh any possible spatial locality benefits exhibited in the code cache. Our obser-vations held regardless of the trace length, code cache size, or the presence of a hardware trace cache. These results provide a better understanding of the efficiency of current instrumen-tation tools and their effects on instruction/trace cache perfor-mance and other structures of the microarchitecture. 1
    corecore