PT1980944E - Mecanismo para a extracção do tempo de cpu - Google Patents

Mecanismo para a extracção do tempo de cpu Download PDF

Info

Publication number
PT1980944E
PT1980944E PT08161018T PT08161018T PT1980944E PT 1980944 E PT1980944 E PT 1980944E PT 08161018 T PT08161018 T PT 08161018T PT 08161018 T PT08161018 T PT 08161018T PT 1980944 E PT1980944 E PT 1980944E
Authority
PT
Portugal
Prior art keywords
operand
register
cpu
time
task
Prior art date
Application number
PT08161018T
Other languages
English (en)
Inventor
Dan Greiner
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of PT1980944E publication Critical patent/PT1980944E/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

ΡΕ1980944 1
DESCRIÇÃO "MECANISMO PARA A EXTRACÇÃO DO TEMPO DE CPU"
Campo Técnico
No geral, esta invenção diz respeito ao processamento no seio de um meio de processamento e, em particular, a um mecanismo para determinar de modo eficiente a utilização de recursos de tarefas.
Antecedentes da Invenção A determinação da utilização de recursos é fundamental para muitos aspectos de processamento, incluindo refinamento de código, facturação, etc. Um recurso para o qual a utilização é determinada é o tempo de processador. Na z/Arquitectura, oferecida pela International Business Machines Corporation, é proporcionado um temporizador que mede o tempo decorrido de unidade de processamento central (CPU) e que provoca uma interrupção quando uma quantidade de tempo determinada foi decorrida.
Este temporizador é definido por uma instrução de controlo Set CPU Temporizador (SPT)("Conjunto Temporizador de CPU"), e os conteúdos do temporizador são inspeccionados através de uma instrução de controlo Store CPU Time (STPT) 2 ΡΕ1980944 ("Armazenamento de Tempo de CPU"). Ambas as instruções são instruções elegidas para garantir a precisão do tempo, e como tal não são utilizáveis por programas de estado do problema (ou seja, programas do utilizador).
Para aém do acima exposto, o sistema operativo Z/OS®, oferecido pela International Business Machines Corporation, também proporciona uma rotina de serviço designada como TIMEUSED, a qual está disponível para os programas de estado do problema. Um programa ou operação solicita o serviço para determinar a quantidade de tempo de CPU que um pedaço de código (por exemplo, tarefa) tem utilizado. A rotina de serviço de TIMEUSED calcula o tempo decorrido, adiciona o tempo acumulado, e faz o valor regressar ao programa. Os cálculos da rotina de TIMEUSED devem ser realizados ao ser desactivada para interrupções, uma vez que qualquer interrupção poderia afectar de modo adverso os resultados pela manipulação do temporizador de CPU ou do acumulador. A rotina de serviço de TIMEUSED é interligada por via das instruções de solicitação de programa e das de retorno de programa. Esta rotina desactiva- -se para interrupções, obtém e liberta um bloqueio de CPU, estabelece um meio de recuperação, calcula 0 tempo decorrido, e reabilita-se depois de ter concluído o seu trabalho, tudo isto que conduz a centenas de ciclos de CPU. Ao tentar medir um pequeno fragmento de código, a sobrecarga da rotina de serviço de TIMEUSED pode perturbar 3 ΡΕ1980944 seriamente o que estiver a ser medido. 0 documento de patente US-B-6385637 descreve um método para determinação do tempo de utilização de CPU em tarefas utilizando um temporizador de processo periódico. 0 documento de patente US-A-6016466 descreve a determinação do tempo de execução para uma fracção de software pela obtenção de valores selados de tempo. 0 documento de patente WO-A-OO/72143 proporciona estatísticas de instrumentação ao nível de sub-rotina.
Sumário da Invenção
Com base no acima mencionado, existe uma necessidade de um mecanismo para determinar a eficiente utilização de recursos, tal como o tempo decorrido de CPU de uma tarefa. Em particular, existe uma necessidade para um mecanismo que de modo eficiente determine a utilização de recursos de tarefas sem solicitar serviços do sistema operativo. Existe uma necessidade para a capacidade de um utilizador determinar de modo eficiente a utilização dos recursos.
As insuficiências da anterior tecnologia são ultrapassadas e vantagens adicionais são proporcionadas através da disponibilização de um método tal como o reivindicado na reivindicação 1.
Os produtos de sistema e de programa de 4 ΡΕ1980944 computador correspondentes ao método acima resumido, bem como uma ou mais instruções, são também descritos e reivindicados.
Caracteristicas e vantagens adicionais são conseguidas através das técnicas da presente invenção. Outras modalidades de realização e aspectos da invenção são aqui descritas em pormenor e são consideradas como parte da invenção reivindicada.
Breve Descrição das Peças Desenhadas
Um ou mais aspectos da presente invenção são particularmente salientados e reivindicados de modo distinto como exemplos nas reivindicações quando da conclusão da especificação. 0 precedente e outros objectos, caracteristicas e vantagens da invenção são evidentes a partir da seguinte descrição detalhada tomada em conjunto com as peças desenhadas que a acompanham, em que: FIG. 1 esquematiza uma modalidade de realização de um meio de processamento incorporando e utilizando um ou mais aspectos da presente invenção; FIG. 2 descreve uma modalidade de realização da lógica associada com a determinação da utilização de recursos, de acordo com um aspecto da presente invenção; FIG. 3 mostra um exemplo de um formato de uma 5 ΡΕ1980944 instrução de Extracto do Tempo de CPU utilizada de acordo com um aspecto da presente invenção; FIG. 4a mostra uma campos de registador geral 0 Extracto do Tempo de CPU invenção; FIG. 4b mostra uma campos de registador geral 1 Extracto do Tempo de CPU invenção; modalidade de realização dos utilizados pela instrução de de um aspecto da presente modalidade de realização dos utilizados pela instrução de de um aspecto da presente FIG. 5 descreve uma modalidade de realização da lógica associada com a execução da instrução de Extracto do Tempo de CPU, de acordo com um aspecto da presente invenção; FIG. 6 é uma representação ilustrada das operações da instrução de Extracto do Tempo de CPU de um aspecto da presente invenção; e FIG. 7 ilustra um exemplo de um produto de programa de computador que incorpora um ou mais aspectos da presente invenção.
Melhor Modo para a Realização da Invenção
De acordo com um aspecto da presente invenção, é 6 ΡΕ1980944 proporcionado um mecanisco para determinar de modo eficiente a utilização dos recursos de execução de tarefas dentro de um meio de processamento. Num dado exemplo, é proporcionado o mecanismo, no qual um utilizador (por exemplo, o código de utilizador, a aplicação de utilizador, o programa de utilizador, etc) pode medir com precisão o tempo requerido de processador para executar um fragmento de código em particular (aqui referido como uma tarefa). Este mecanismo determina o tempo de processador decorrido sem significativa sobrecarga que tem enviesado tais medições, tal como a sobrecarga associada com a utilização de um serviço do sistema operativo para a determinação de tempo decorrido.
Uma modalidade de realização de um meio de processamento incorporando e utilizando um ou mais aspectos da presente invenção é descrita com referência à FIG. 1. 0 meio de processamento 100 é, por exemplo, um meio de multiprocessamento que inclui uma pluralidade de processadores 102 (por exemplo, as unidades de processamento central (CPUs)), uma memória 104 (por exemplo, memória principal) e um ou mais dispositivos de entrada/saida (1/0) 106 acoplados uns aos outros por meio de, por exemplo, uma ou mais ligações "bus" 108 ou outras conexões.
Como um exemplo, cada processador 102 é um servidor IBM System Z™, disponibilizado pela International Business Machines Corporation, Armonk, Nova Iorque, e um ou mais dos processadores executam um sistema operativo, tal 7 ΡΕ1980944 como o z/OS®, também disponibilizado pela International Business Machines Corporation. (IBM e z/OS são marcas comerciais registadas da International Business Machines Corporation, Armonk, Nova Iorque, EUA. Outros nomes aqui utilizados podem ser marcas comerciais registadas, marcas comerciais ou nomes de produtos da International Business Machines Corporation ou de outras empresas.) 0 processamento no seio do meio de processamento é facilitado pela provisão de um mecanismo que permite a determinação da utilização de recursos, tal como o tempo de processador decorrido (por exemplo, CPU), sem exigir a solicitação de um serviço de sistema operativo ou sem a utilização de instruções elegidas ou de operações.
Uma modalidade de realização da lógica associada com a determinação da utilização de recursos é descrita com referência à FIG. 2. Esta lógica é executada por uma unidade de processamento do meio de processamento, como resposta a, por exemplo, uma solicitação por uma aplicação de utilizador (por exemplo, código não elegido). A utilização do recurso é determinada para uma solicitação de ausência de tarefa para um serviço de sistema operativo e sem a utilização de operações elegidas, ETAPA 200.
Inicialmente, o valor corrente de um contador utilizado para rastrear o recurso para a tarefa, tal como o tempo utilizado, é determinado pela leitura do valor do contador, como instruído pela lógica, ETAPA 202. O valor ΡΕ1980944 determinado é então subtraído a partir de um valor memorizado, o qual é, por exemplo, o valor do contador quando ele foi iniciado, ETAPA 204. Em um exemplo, o contador decresce à medida que o recurso é utilizado pela tarefa e o valor corrente do contador é lido, como resposta ao pedido. O resultado da subtracção representa a quantidade de recurso utilizada pela tarefa para este intervalo de tempo, o qual é definido pelos valores inicial e final do contador, ETAPA 206.
Num exemplo, as operações utilizadas para determinar a utilização do recurso são efectadas por via duma instrução. Como um exemplo específico, é proporcionada uma instrução para determinar uma quantidade de tempo de processador utilizado por uma tarefa. A instrução pode ser implementada em muitas arquiteturas e pode ser emulada. Como exemplos, a instrução é executada em hardware por um processador, ou pela emulação de um conjunto de instruções que inclui essa instrução, pela execução de software numa unidade de processamento tendo um diferente conjunto de instruções inerentes. Num exemplo particular, a instrução é implementada na z/Arquitectura, disponibilizada pela International Business Machines Corporation, e é aqui referida como uma instrução de Extracto de Tempo de CPU (ECTG).
Uma instrução de Extracto de Tempo de CPU 300 (FIG. 3) é uma instrução não elegida, e inclui, por exemplo, um código de operação 302a, 302b, que designa a 9 ΡΕ1980944 instrução de Extracto de Tempo de CPU, um registador geral 304, cujo conteúdo especifica um terceiro operando utilizado pela instrução, um registador de base 306, o qual pode ser um qualquer dos dezasseis registadores de utilização geral da unidade de processamento, e inclui uma fracção de um endereço de um primeiro operando em armazenamento utilizado pela instrução, um valor de deslocamento 308, o qual é, por exemplo, um número binário não assinalado de 12 bits adicionados ao conteúdo do registador 306 para proporcionar o endereço do primeiro operando em armazém; um registador de base 310, que mais uma vez é um qualquer dos dezasseis registadores de utilização geral da unidade de processamento, e inclui uma fracção de um endereço de um segundo operando em armazenamento utilizado pela instrução, e um valor de deslocamento 312, o qual é adicionado ao conteúdo do registador 310 para proporcionar à instrução o endereço do segundo operando em armazenamento.
Para além dos registadores acima descritos, a instrução de Extracto de Tempo de CPU utiliza também implicitamente dois registadores gerais que não têm de ser codificados na instrução, mas são utilizados pela instrução. Esses registadores incluem o registador geral 0 e o registador geral 1. 0 registador geral 0 (400; FIG. 4a) inclui, por exemplo, o tempo decorrido desde o último despacho da tarefa 402. É a diferença resultante de subtrair o valor 10 ΡΕ1980944 corrente do temporizador de CPU a partir do primeiro operando, os conteúdos do qual incluem o valor do temporizador de CPU no despacho da tarefa. 0 registador geral 1 (410; FIG. 4b) , inclui, por exemplo, um valor do acumulador de tempo da tarefa quando a tarefa foi despachada 412. Este é o conteúdo do segundo operando da instrução.
Embora exemplos de registadores sejam descritos acima, cada um dos registadores pode incluir mais, menos ou diferente informação. Para além disso, cada um deles pode incluir dados adicionais não necessariamente necessários em um ou mais aspectos da presente invenção. A localização especifica para a informação dentro dos registadores é a implementação e/ou dependente da arquitectura.
Uma modalidade de realização da lógica associada com a instrução de Extracto de Tempo de CPU é descrita com referência à FIG. 5. Como um exemplo, esta instrução é executada por um processador do meio de processamento em representação de uma aplicação de utilizador não elegida (por exemplo, no estado de problema) que solicita a operação no que diz respeito a uma tarefa particular. A instrução de Extracto de Tempo de CPU é uma instrução não-elegida que não solicita um serviço de sistema operativo. No entanto, ela assume nesta modalidade de realização, que o temporizador de CPU (por exemplo, contador, registador, etc.) é definido quando uma tarefa é despachada. Em um 11 ΡΕ1980944 exemplo, o temporizador é definido por uma instrução Conjunto de Temporizador de CPU (STP), a qual é uma instrução eleita descrita em "z/Architecture: Principies of Operation, IBM® Publication No. SA22-7832-04, Setembro de 2005". Também pode ser definido por qualquer outro meio. O temporizador é definido para um determinado valor o qual representa um especificado intervalo de tempo para a execução da tarefa (por exemplo, 10 a 12 ms).
Em resposta à execução da instrução de Extracto de Tempo de CPU, é determinado o valor corrente do temporizador de CPU, ETAPA 500. Por exemplo, o temporizador decresce à medida que o processador processa a tarefa, e como resposta à execução da instrução de Extracto de Tempo de CPU, o valor do temporizador, naquele momento, é observado. Isto inclui, por exemplo, a leitura do registador que contém o temporizador. Numa modalidade de realização, o valor do temporizador pode ser extraído em qualquer momento, incluindo o prévio ao final do intervalo de tempo previsto para a tarefa e sem esperar por uma interrupção do temporizador. O valor corrente do temporizador de CPU é então subtraído a partir do primeiro operando da instrução, ETAPA 502. O primeiro operando representa o valor do temporizador de CPU no momento em que a tarefa foi despachada. Por exemplo, quando uma tarefa é despachada, o temporizador de CPU é definido para um valor escolhido (por exemplo, 10 a 12 ms) e esse valor é armazenado no armazenamento (por 12 ΡΕ1980944 exemplo, PSDATSAV). Assim, PSADTSAV - Temporizador de CPU corrente = tempo de processador decorrido desde o último despacho da tarefa. Este valor é colocado no registador geral 0, ETAPA 504.
Para além do que já foi referido, numa modalidade de realização é também extraída informação adicional, ETAPA 506. Como um exemplo, o segundo operando da instrução é colocado inalterado no registador geral 1. O segundo operando inclui, por exemplo, um endereço de um bloco de controlo de tarefa (por exemplo, TCBTTUSD) que mantém a quantidade de tempo total de CPU para a tarefa previamente utilizada. Extraindo e colocando esta informação no registador geral 1, a aplicação de utilizador pela adição dos resultados do registador geral 0 e do registador geral 1 é capaz de determinar a quantidade total de tempo de processador utilizada até então.
Também, numa modalidade de realização, a informação na posição do terceiro operando da instrução substitui o conteúdo do registador geral R3. Esta informação inclui vários tipos de informação, incluindo mas não limitado a, sinalizadores designando informação importante ou desejada para a tarefa, um factor de escala utilizável no ajustamento do tempo de processador para fins de facturação, bem como outros tipos de informação.
Uma representação ilustrada das operações está retratada na FIG. 6. Βχϋι (600) referencia um primeiro 13 ΡΕ1980944 operando no armazenamento 602. O valor corrente do temporizador de CPU 606 é subtraído a partir do conteúdo do primeiro operando 604. A diferença é armazenada no registador geral 0 (608). B2D2 (610) referencia um segundo operando no armazenamento 612, os conteúdos do qual são colocados inalterados no registador geral 1 (614) . Adicionalmente, R3 (616) referencia um terceiro operando no armazenamento 618, os conteúdos do qual são colocados inalterados no registador geral R3 (620) .
Numa modalidade de realização, as operações acima descritas ocorrem todas dentro da mesma unidade de operação, sem a possibilidade de serem interrompidas. Ao efectuar atomicamente estas operações, os valores mantêm os seus significados.
Descrito acima em detalhe é um mecanismo para determinar de modo eficiente a utilização de recurso, sem a sobrecarga de custos associada com serviços do sistema operativo e/ou sem a utilização de operações elegidas. Em particular, é descrito um mecanismo de Extracto de Tempo de CPU que permite a determinação eficiente da quantidade de tempo de CPU consumido, sem a sobrecarga de custos de solicitar um serviço de sistema operativo e/ou sem emissão de instruções de Solicitação de Programa e/ou de Retorno de Programa. Este mecanismo permite um programa de aplicação para medir com precisão o tempo de CPU necessário para executar um fragmento de código particular, sem a sobrecarga significativa que tem enviesado tradicionalmente 14 ΡΕ1980944 tais medições. As medições são úteis em muitos aspectos, incluindo, mas não limitado para, a sintonia fina do código de aplicação e de facturação. 0 mecanismo permite vantajosamente um programa de aplicação para determinar de modo eficiente a quantidade de tempo de tarefa utilizado em qualquer momento dado, e não apenas no fim de um intervalo de tempo. Isso permite que o programa determine efectivamente as temporizações de instrução nas gamas dos microssegundos ou dos nanossegundos, sem ter que esperar até que tenham decorrido os milissegundos.
Um ou mais aspectos da presente invenção podem estar incluídos dentro de um artigo de fabricação (por exemplo, um ou mais produtos de programa de computador), tendo, por exemplo, meios de computador utilizáveis. Os meios têm ai, por exemplo, meios de leitura de código de programação de computador ou lógica (por exemplo, instruções, código, comandos, etc) para proporcionar e facilitar as capacidades da presente invenção. 0 artigo de fabricação pode estar incluído como uma parte de um sistema de computador ou vendido em separado.
Um exemplo de um artigo de fabricação ou de um produto de programa de computador que incorpore um ou mais aspectos da presente invenção é descrito com referência à FIG. 7. Um produto de programa de computador 700 inclui, por exemplo, um ou mais meios de computador utilizáveis 702 para armazenar os meios de leitura de código de programação de computador ou lógica 704 para no mesmo proporcionar e 15 ΡΕ1980944 facilitar um ou mais aspectos da presente invenção. 0 meio pode ser um sistema electrónico, magnético, óptico, electromagnético, de infravermelhos ou de semicondutor (ou dispositivo ou aparelho) ou um meio de propagação. Exemplos de um meio legível por computador inclui uma memória de semicondutor ou de estado sólido, uma fita magnética, uma disquete de computador removível, uma memória de acesso aleatório (RAM), uma memória só de leitura (ROM), um disco rígido magnético e um disco óptico. Exemplos de discos ópticos incluem disco compacto de memória só de leitura (CD-ROM), disco compacto de read leitura e escrita (CD-R/W) e DVD.
Uma sequência de instruções de programa ou de uma montagem lógica de um ou mais módulos inter-relacionados definidos por um ou mais meios de leitura de código de programa de computador ou direccionar a lógica de desempenho de um ou mais aspectos da presente invenção.
Embora um ou mais exemplos tenham sido aqui indicados, estes são apenas exemplos. São possíveis muitas variações sem afastamento do espírito da presente invenção. Por exemplo, para outros meios de processamento que não os do exemplo fornecido neste documento podem incluir e/ou beneficiar de um ou mais aspectos da presente invenção. Como um exemplo, um ou mais processadores podem ser outros processadores que não os processadores IBM Sistema Z™ e/ou outros sistemas operativos executáveis que não o z/OS®. Para além disso, o meio não precisa de ser baseado na 16 ΡΕ1980944 z/Arquitectura, mas, em vez disso, pode basear-se noutras arquitecturas, disponibilizadas pela, por exemplo, Intel, Sun Microsystems, bem como de outras. Ainda para além disso, a instrução pode incluir outros registadores ou outras entidades de registadores que designem a informação. Para além disso, são possíveis diferentes dados e/ou posicionamento dentro dos registadores e/ou das entidades. Ainda para além disso, o temporizador pode ser outro que não contadores ou registadores. Qualquer mecanismo pode ser utilizado para determinar a utilização de recursos. 0 termo "temporizador" pretende incluir um amplo espectro de mecanismos, incluindo, mas não limitado aos contadores e registadores. Para além disso, embora nas modalidades de realização aqui referidas, os decréscimos do temporizador, noutras modalidades de realização, podem incrementar e/ou seguir algum padrão. Existem muitas outras variações.
Por outro lado, um meio pode incluir um emulador (por exemplo, software ou outros mecanismos de emulação) , no qual é emulada uma arquitectura particular ou um seu subconjunto. Num tal meio, uma ou mais funções de emulação do emulador podem implementar um ou mais aspectos da presente invenção, mesmo que um computador executando o emulador possa ter uma arquitectura diferente das capacidades a serem emuladas. Como um exemplo, no modo de emulação, a instrução específica ou operação a ser emulada é descodificada, e uma função de emulação apropriada é construída para implementar a instrução individual ou operação. 17 ΡΕ1980944
No seio de um meio de emulação, um computador hospedeiro inclui, por exemplo, uma memória para armazenar instruções e dados; uma unidade de instrução de busca para procurar instruções a partir da memória e para opcionalmente, proporcionar o local de armazenagem tampão para a instrução procurada; uma unidade de descodificação de instrução para receber a unidade de busca de instrução e para determinar o tipo de instruções que foram procuradas; e uma unidade de execução de instrução para executar as instruções. A execução pode incluir o carregamento de dados para dentro de um registador de memória, o armazenamento de dados de retorno para a memória a partir de um registador, ou a realização de algum tipo de operação de aritmética ou de lógica, como determinado pela unidade de descodificação. Num exemplo, cada unidade é implementada em software. Por exemplo, as operações que estão a ser executadas pelas unidades são implementadas como uma ou mais sub-rotinas dentro do software do emulador.
Para além disso, um sistema de processamento de dados apropriado para o armazenamento e/ou a execução de código de programa que pode ser utilizado inclui, pelo menos, um processador acoplado directamente ou indirectamente, a elementos de memória através de um "bus" de sistema. Os elementos de memória incluem, por exemplo, a memória local empregue durante a execução corrente do código de programa, o armazenamento em massa e, em que a memória cache a qual proporciona o armazenamento temporário de, pelo menos, alguns programas de código, com o objectivo 18 ΡΕ1980944 de reduzir o número de vezes que o código deve ser recuperado a partir do armazenamento em massa durante a execução.
Dispositivos de Entrada/Saida ou de 1/0 Output (incluindo, mas não limitado a, teclados, monitores, dispositivos apontadores, etc.) podem ser acoplados ao sistema, quer directamente quer através da intervenção de controladores de 1/0. Adaptadores de rede podem também ser acoplados ao sistema para permitir que o sistema de processamento de dados a tornar-se acoplado a outros sistemas de processamento de dados ou impressoras remotas ou dispositivos de armazenamento por meio de intervenção de redes públicas ou privadas. Modems, modems de cabo e cartões de Ethernet são apenas alguns dos tipos disponiveis de adaptadores de rede.
Tal como aqui utilizado, o termo "operando" não só inclui e/ou refere-se a operandos de uma instrução, mas também a outros operandos, bem como parâmetros ou argumentos que passam entre funções de programas, ou quaisquer outros dados que sejam passados entre entidades. Para além disso, uma tarefa inclui qualquer fracção de código, incluindo uma aplicação ou um programa completo ou qualquer fracção do mesmo.
As capacidades de um ou mais aspectos da presente invenção podem ser implementadas em software, firmware, hardware ou alguma combinação dos mesmos. Pelo menos, um 19 ΡΕ1980944 dispositivo de armazenamento de programa legível por uma máquina que incorpora pelo menos um programa de instruções executáveis pela máquina pode ser proporcionado para executar as capacidades da presente invenção.
Lisboa, 14 de Setembro de 2012

Claims (7)

  1. ΡΕ1980944 1 REIVINDICAÇÕES 1. Um método para medir o tempo de processamento acumulado para as tarefas seleccionadas pela execução de uma instrução de máquina EXTRACTO DE TEMPO DE CPU (EXTRACT CPU TIME) num sistema de computador que inclui um conjunto de 16 registadores de instrução acessíveis e um temporizador de CPU, o método que compreende: obtenção para a execução da instrução de máquina EXTRACTO DE TEMPO DE CPU definida para uma arquitectura, a instrução EXTRACTO DE TEMPO DE CPU que compreende um campo "opcode" ("código de operação") que identifica a instrução, um primeiro campo de base (Bl) para a identificação de um primeiro registador e um primeiro campo de deslocamento (Dl), um segundo campo de base (B2) para a identificação de um segundo registador e um segundo campo de deslocamento (D2), e um terceiro registador, o terceiro registador mantendo um endereço de um terceiro operando; e execução da instrução de máquina EXTRACTO DE TEMPO DE CPU obtida atomicamente no estado não elegida sem recorrer a um serviço do sistema operativo, a execução que compreende: a determinação de um valor corrente de um temporizador de CPU a desincrementar; a adiçao do conteúdo do primeiro registador ΡΕ1980944 2 e um valor do primeiro campo de deslocamento para formar um endereço de um primeiro operando em armazenamento, o primeiro operando a representar o valor do temporizador de CPU no momento em que uma tarefa foi despachada; com base no endereço formado do primeiro operando, a procura do primeiro operando a partir do armazenamento; a subtracção do valor corrente determinado do temporizador de CPU a partir do primeiro operando procurado para produzir um primeiro resultado; o armazenamento do primeiro resultado num quarto registador, o primeiro resultado que representa a quantidade de recurso utilizado pela tarefa para esse intervalo de tempo; a adição do conteúdo do segundo registador, e um valor do segundo campo de deslocamento para formar um endereço de um segundo operando; com base no endereço formado do segundo operando, a procura do segundo operando a partir do armazenamento; o armazenamento do segundo operando num 3 ΡΕ1980944 quinto registador, o segundo operando que compreende uma quantidade de tempo previamente utilizado para a tarefa, em que o tempo total de CPU utilizado até então, pela tarefa é determinado pela adição do primeiro resultado armazenado no quarto registador para a quantidade de tempo previamente utilizado para a tarefa armazenada no quinto registador; com base no endereço do terceiro operando, a procura do terceiro operando a partir do armazenamento, e o armazenamento do terceiro operando procurado no terceiro registador, o terceiro operando que compreende sinalizadores para a designação de informação de tarefa, em que o endereço do terceiro operando no terceiro registador é substituído pelo terceiro operando procurado.
  2. 2. O método de acordo com a reivindicação 1, em que o quarto registador é definido pela arquitectura para ser o registador 0 dos registadores de 0 a 15, e o quinto registador é definido pela arquitectura para ser o registador 1 dos registodores de 0 a 15.
  3. 3. 0 método da reivindicação 1, que compreende ainda a etapa de: 4 ΡΕ1980944 previamente à obtenção para execução da instrução de máquina EXTRACTO DE TEMPO DE CPU, o temporizador de CPU é definido para um valor que representa uma especificada quantidade de tempo alocada pelo sistema de computador para a execução da tarefa.
  4. 4. 0 método da reivindicação 3, em que os sinalizadores do terceiro operando procurado contém informação utilizada para ajustar o tempo de CPU para facturar um utilizador para uma quantidade de tempo de CPU utilizado para a tarefa.
  5. 5. 0 método da reivindicação 1, em que o método é realizado numa unidade de processamento de uma diferente arquitectura que está a emular a execução da instrução de máquina EXTRACTO DE TEMPO DE CPU.
  6. 6. Um sistema que compreende meios adaptados para a realização de todas as etapas do método de acordo com qualquer precedente reivindicação do método.
  7. 7. Um programa de computador que compreende instruções para a realização de todas os etapas do método de acordo com qualquer precedente reivindicação do método, quando o referido programa de computador é executado num sistema de computador. Lisboa,14 de Setembro de 2012
PT08161018T 2006-05-19 2006-12-20 Mecanismo para a extracção do tempo de cpu PT1980944E (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/437,220 US8117614B2 (en) 2006-05-19 2006-05-19 Extract CPU time facility

Publications (1)

Publication Number Publication Date
PT1980944E true PT1980944E (pt) 2012-09-20

Family

ID=37758905

Family Applications (1)

Application Number Title Priority Date Filing Date
PT08161018T PT1980944E (pt) 2006-05-19 2006-12-20 Mecanismo para a extracção do tempo de cpu

Country Status (12)

Country Link
US (4) US8117614B2 (pt)
EP (2) EP1860567A1 (pt)
CN (1) CN101443738B (pt)
CY (1) CY1113092T1 (pt)
DK (1) DK1980944T3 (pt)
ES (1) ES2389894T3 (pt)
GB (1) GB2438230A (pt)
PL (1) PL1980944T3 (pt)
PT (1) PT1980944E (pt)
SI (1) SI1980944T1 (pt)
TW (1) TWI447644B (pt)
WO (1) WO2007134648A1 (pt)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
EP2056198A4 (en) * 2006-08-24 2010-08-18 Netcleus Systems Corp TASK PROCESSING DEVICE
GB2473194A (en) * 2009-09-02 2011-03-09 1E Ltd Monitoring the performance of a computer based on the value of a net useful activity metric
US8572357B2 (en) 2009-09-29 2013-10-29 International Business Machines Corporation Monitoring events and incrementing counters associated therewith absent taking an interrupt
US9256426B2 (en) * 2012-09-14 2016-02-09 General Electric Company Controlling total number of instructions executed to a desired number after iterations of monitoring for successively less number of instructions until a predetermined time period elapse
KR101991687B1 (ko) 2012-11-23 2019-06-24 삼성전자 주식회사 동적 라이브러리 프로파일링 방법, 이를 기록한 컴퓨터로 읽을 수 있는 기록 매체 및 동적 라이브러리 프로파일링 시스템
US9465659B2 (en) * 2012-12-19 2016-10-11 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic task completion scaling of system resources for a battery operated device
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
US9658888B2 (en) * 2013-08-05 2017-05-23 International Business Machines Corporation Thresholding task control blocks for staging and destaging
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253432A5 (pt) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
WO1983001524A1 (en) 1981-10-13 1983-04-28 Cormier, Roger, Louis Method and apparatus for measurements of channel operation
US4388688A (en) * 1981-11-10 1983-06-14 International Business Machines Corp. Shared TOD clock modification bit
US4497022A (en) * 1982-10-19 1985-01-29 International Business Machines Corporation Method and apparatus for measurements of channel operation
US4937780A (en) * 1986-05-30 1990-06-26 Bull Nh Information Systems, Inc. Single instruction updating of processing time field using software invisible working registers
US5047928A (en) * 1986-10-24 1991-09-10 Wiedemer John D Billing system for computer software
US5072376A (en) * 1988-06-10 1991-12-10 Amdahl Corporation Measuring utilization of processor shared by multiple system control programs
JP2779032B2 (ja) * 1990-01-23 1998-07-23 株式会社日立製作所 情報処理装置
JPH03226883A (ja) * 1990-01-31 1991-10-07 Mitsubishi Electric Corp 制御プロセッサ
JP3169597B2 (ja) * 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 マルチタスク実行時間アカウント方法とその機構
US5615354A (en) * 1992-12-23 1997-03-25 International Business Machines Corporation Method and system for controlling references to system storage by overriding values
US5758144A (en) * 1994-06-24 1998-05-26 International Business Machines Corporation Database execution cost and system performance estimator
US5963914A (en) * 1995-04-17 1999-10-05 Skinner; Gary R. Network time and work tracker
US5696702A (en) * 1995-04-17 1997-12-09 Skinner; Gary R. Time and work tracker
JPH08292956A (ja) 1995-04-20 1996-11-05 Mitsubishi Electric Corp データベース管理装置及びデータベース管理方法
US6016466A (en) * 1996-08-27 2000-01-18 Compuware Corporation Accurate profile and timing information for multitasking systems
US6128710A (en) * 1997-05-28 2000-10-03 International Business Machines Corporation Method utilizing a set of blocking-symbol resource-manipulation instructions for protecting the integrity of data in noncontiguous data objects of resources in a shared memory of a multiple processor computer system
US5937199A (en) * 1997-06-03 1999-08-10 International Business Machines Corporation User programmable interrupt mask with timeout for enhanced resource locking efficiency
US6385637B1 (en) * 1997-08-21 2002-05-07 Rockwell Science Center, Inc. Periodic process timer
US6954922B2 (en) * 1998-04-29 2005-10-11 Sun Microsystems, Inc. Method apparatus and article of manufacture for time profiling multi-threaded programs
US6032248A (en) 1998-04-29 2000-02-29 Atmel Corporation Microcontroller including a single memory module having a data memory sector and a code memory sector and supporting simultaneous read/write access to both sectors
US6438704B1 (en) 1999-03-25 2002-08-20 International Business Machines Corporation System and method for scheduling use of system resources among a plurality of limited users
US6247170B1 (en) 1999-05-21 2001-06-12 Bull Hn Information Systems Inc. Method and data processing system for providing subroutine level instrumentation statistics
KR100613201B1 (ko) * 2000-08-28 2006-08-18 마이크로코넥트 엘엘씨 씨피유 사용량 측정 방법
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
TW538335B (en) * 2001-12-24 2003-06-21 Winbond Electronics Corp Method and device for speeding up reading and writing the register for the processor
US7243145B1 (en) * 2002-09-30 2007-07-10 Electronic Data Systems Corporation Generation of computer resource utilization data per computer application
US7320013B2 (en) 2002-12-12 2008-01-15 Adaptec, Inc. Method and apparatus for aligning operands for a processor
US8484643B2 (en) * 2003-03-31 2013-07-09 Fujitsu Limited CPU usage time counting method and job control system using this CPU usage time
US20040267548A1 (en) * 2003-06-25 2004-12-30 Jones James O. Workload profiling in computers
US6925424B2 (en) * 2003-10-16 2005-08-02 International Business Machines Corporation Method, apparatus and computer program product for efficient per thread performance information
US7426731B2 (en) * 2004-03-22 2008-09-16 Hewlett-Packard Development Company, L.P. Determining processor usage by a thread
US7672983B2 (en) * 2005-12-19 2010-03-02 Sun Microsystems, Inc. Method and apparatus for tracking activity of a garbage collector with a plurality of threads that operate concurrently with an application program
US8020164B2 (en) * 2005-12-22 2011-09-13 International Business Machines Corporation System for determining and reporting benefits of borrowed computing resources in a partitioned environment
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
US20090089123A1 (en) * 2007-06-29 2009-04-02 Sylvia Delcheva Method and a Tool for Performance Measurement of a Business Scenario Step Executed by a Single User

Also Published As

Publication number Publication date
WO2007134648A1 (en) 2007-11-29
SI1980944T1 (sl) 2012-11-30
US10572301B2 (en) 2020-02-25
EP1980944A3 (en) 2009-01-14
EP1860567A1 (en) 2007-11-28
US20130311757A1 (en) 2013-11-21
US20070271566A1 (en) 2007-11-22
TW200821921A (en) 2008-05-16
US8516485B2 (en) 2013-08-20
US20120109622A1 (en) 2012-05-03
CN101443738B (zh) 2012-05-02
CN101443738A (zh) 2009-05-27
US20150261565A1 (en) 2015-09-17
CY1113092T1 (el) 2016-04-13
US8117614B2 (en) 2012-02-14
US9047078B2 (en) 2015-06-02
GB0625722D0 (en) 2007-02-07
GB2438230A (en) 2007-11-21
EP1980944A2 (en) 2008-10-15
EP1980944B1 (en) 2012-08-15
ES2389894T3 (es) 2012-11-02
TWI447644B (zh) 2014-08-01
PL1980944T3 (pl) 2012-11-30
DK1980944T3 (da) 2012-09-10

Similar Documents

Publication Publication Date Title
PT1980944E (pt) Mecanismo para a extracção do tempo de cpu
Sprunt Pentium 4 performance-monitoring features
JP6138142B2 (ja) 被管理ランタイムのためのハードウェア・ベース・ランタイム計装機構
Braun et al. A universal technique for fast and flexible instruction-set architecture simulation
Srinivas et al. IBM POWER7 performance modeling, verification, and evaluation
Munera et al. Experiences on the characterization of parallel applications in embedded systems with extrae/paraver
Moir et al. The Adaptive Transactional Memory Test Platform: A tool for experimenting with transactional code for Rock
McCurdy et al. Using pin as a memory reference generator for multiprocessor simulation
Zeng et al. MPTLsim: A simulator for X86 multicore processors
SR Spec CPU2017: Performance, Energy and Event Characterization on Modern Processors
Afzal et al. An analytic performance model for overlapping execution of memory-bound loop kernels on multicore CPUs
Jakimovska et al. Modern processor architectures overview
Cheng et al. ESCA: Effective System Call Aggregation for Event-Driven Servers
Lucuta Semi-static Conditions in Low-latency C++ for High Frequency Trading: Better than Branch Prediction Hints
US20230315453A1 (en) Forward conditional branch event for profile-guided-optimization (pgo)
Tu et al. Mt-btrimer: A master-slave multi-threaded dynamic binary translator
Laukemann Design and Implementation of a Framework for Predicting Instruction Throughput
Wang et al. Research on Real-time Analysis Method for Real-time Operating System
Bilokon et al. Semi-static Conditions in Low-latency C++ for High Frequency Trading: Better than Branch Prediction Hints
GB2451344A (en) Measuring resource usage using a register based elapsed time function
Zhang et al. A loosely-coupled full-system multicore simulation framework
Carnà HOP-Hardware-based Online Profiling of multi-threaded applications via AMD Instruction-Based Sampling
Thakkar Dynamic page migration on ccnuma platforms guided by hardware tracing
Martinsen et al. Thread-level speculation as an optimization technique in web applications—initial results
Toporkov et al. Measuring the execution time of fragmented programs