Este trabalho apresenta uma metodologia para caracterização do perfil de consumo de recursos demandados por um programa de computador a partir da análise do código binário do arquivo executável. A categorização de processos de acordo com seus perfis de consumo de recursos durante a execuçãotais como uso de CPU e memóriaé uma informação muito desejada para objetivos de projeto e gerenciamento de sistemas. Técnicas convencionais para este propósito são baseadas em testes de caixa branca (que avaliam o código fonte da aplicação), que tendem a ser de difícil aplicação dado a complexidade das arquiteturas de software além da necessidade de acesso ao código fonte; ou detecção de perfis baseada em dados de execução, que depende da disponibilidade de dados de execução confiáveis e da seleção de características que de fato vão correlacionar o perfil de consumo. A abordagem baseada em mineração de dados proposta neste trabalho evita estas dificuldades uma vez que manipula somente os arquivos binários executáveis. O método combina técnicas provindas da teoria da informação, redes complexas e filogenia para produzir um agrupamento hierárquico de um conjunto de arquivos de programas executáveis que pode ser utilizado para prever potenciais similaridades em termos de consumo de recursos em tempo de execução. As questões de pesquisa deste trabalho investigam se a transformação feita pelo compilador preserva similaridades entre código fonte e binário que podem ser detectadas através de algoritmos de compressão; em caso positivo, verificar se as similaridades encontradas no código binário estão relacionadas com o perfil de execução das aplicações, permitindo inferir o comportamento dos programas a partir da análise do código binário. Este trabalho apresenta a sistematização do método assim como os resultados da aplicação para caracterizar aplicações em termos de consumo de CPU e Entrada/Saída em uma plataforma PC padrão. Diversos experimentos foram executados em um repositório de 80 programas de várias fontes obtendo-se resultados significativos que evidenciam que a similaridade dos perfis de execução obtidas com esta abordagem é consistente com as obtidas experimentalmente por aferição. A aplicação do método também é exemplificado através de casos de estudo que caracterizam o perfil de execução de programas executáveis. / This work introduces a methodology for characterizing the runtime resource demands of a computer program from the analysis of its binary executable file. Categorization of processes according to the kind of resources required during execution such as CPU and memory usage is a sought-after piece of knowledge for the aims of computer system design and management. Conventional techniques available for this purpose include white-box static source code analysis and profile matching based on historical execution data. The former tends to be challenging in face of complex software architectures and requires access to the source code; the latter is dependent on the availability of reliable past data and on the selection of features yielding effective correlations with resource usage. The alternative data mining approach proposed in this paper avoids those difficulties by manipulating binary executable files. The method combines techniques from information theory, complex networks and phylogenetics to produce a hierarchical clustering of a set of executable files, which can be used to predict potential similarities in terms of runtime resource usage. The works research questions investigate if the transformation performed by the compiler preserves similarity information across the source and binary code representation such that it can be detected by standard compression algorithms; and if the so identified similarities in the symbolic object encoding are correlated to runtime resource usage to an extent which allows for inferring the programs behavior from the analysis of the binary file. The paper introduces the methods rationales and presents results of its application to characterize CPU and IO usages of benchmark applications executed on a standard PC platform. Essays carried out over a set of 80 executable programs from varying sources yielded numerically significant evidences that the prediction of resource usage similarity obtained by the approach is consistent with experimentally measured runtime profile. The application of the method is also exemplified in a few case studies aimed at characterizing executable programs runtime profile.
Identifer | oai:union.ndltd.org:IBICT/oai:teses.usp.br:tde-06022018-150306 |
Date | 14 September 2017 |
Creators | Renê de Souza Pinto |
Contributors | Alexandre Cláudio Botazzo Delbem, João Manuel Paiva Cardoso, Pedro Nuno Cruz Diniz, Frederico Gadelha Guimarães, Eduardo Marques |
Publisher | Universidade de São Paulo, Ciências da Computação e Matemática Computacional, USP, BR |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/doctoralThesis |
Source | reponame:Biblioteca Digital de Teses e Dissertações da USP, instname:Universidade de São Paulo, instacron:USP |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0019 seconds