PT1980944E - Mecanismo para a extracção do tempo de cpu - Google Patents
Mecanismo para a extracção do tempo de cpu Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 8
- 238000006073 displacement reaction Methods 0.000 claims 2
- 230000007246 mechanism Effects 0.000 description 15
- 230000008901 benefit Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3419—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring 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)
- ΡΕ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. 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. 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. 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. 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. 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. 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
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)
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)
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 |
-
2006
- 2006-05-19 US US11/437,220 patent/US8117614B2/en active Active
- 2006-12-20 ES ES08161018T patent/ES2389894T3/es active Active
- 2006-12-20 SI SI200631418T patent/SI1980944T1/sl unknown
- 2006-12-20 CN CN2006800546048A patent/CN101443738B/zh active Active
- 2006-12-20 WO PCT/EP2006/069992 patent/WO2007134648A1/en active Application Filing
- 2006-12-20 DK DK08161018.0T patent/DK1980944T3/da active
- 2006-12-20 PT PT08161018T patent/PT1980944E/pt unknown
- 2006-12-20 EP EP06126643A patent/EP1860567A1/en not_active Withdrawn
- 2006-12-20 PL PL08161018T patent/PL1980944T3/pl unknown
- 2006-12-20 EP EP08161018A patent/EP1980944B1/en active Active
- 2006-12-21 GB GB0625722A patent/GB2438230A/en not_active Withdrawn
-
2007
- 2007-05-08 TW TW096116339A patent/TWI447644B/zh active
-
2012
- 2012-01-10 US US13/347,223 patent/US8516485B2/en active Active
- 2012-09-05 CY CY20121100799T patent/CY1113092T1/el unknown
-
2013
- 2013-07-29 US US13/953,206 patent/US9047078B2/en active Active
-
2015
- 2015-06-01 US US14/726,772 patent/US10572301B2/en active Active
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 |