BRPI0816037B1 - aparelho para descarregar processameto de dados, sistema de descarregamento de processamento de dados, e, método implementado por máquina de descarregamento de processamento de dados - Google Patents

aparelho para descarregar processameto de dados, sistema de descarregamento de processamento de dados, e, método implementado por máquina de descarregamento de processamento de dados Download PDF

Info

Publication number
BRPI0816037B1
BRPI0816037B1 BRPI0816037-6A BRPI0816037A BRPI0816037B1 BR PI0816037 B1 BRPI0816037 B1 BR PI0816037B1 BR PI0816037 A BRPI0816037 A BR PI0816037A BR PI0816037 B1 BRPI0816037 B1 BR PI0816037B1
Authority
BR
Brazil
Prior art keywords
data processing
processing system
task module
data
task
Prior art date
Application number
BRPI0816037-6A
Other languages
English (en)
Inventor
Ronald N. Hilton
Original Assignee
Ronald N. Hilton
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=40509900&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0816037(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Ronald N. Hilton filed Critical Ronald N. Hilton
Publication of BRPI0816037A2 publication Critical patent/BRPI0816037A2/pt
Publication of BRPI0816037B1 publication Critical patent/BRPI0816037B1/pt

Links

Images

Classifications

    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

APARELHO PARA DESCARREGAR PROCESSAMETO DE DADOS, SISTEMA DE DESCARREGAMENTO DE PROCESSAMENTO DE DADOS, PRODUTO j DE PROGRAMA DE COMPUTADOR, E, MÉTODO IMPLEMENTADO POR MÁQUINA DE DESCARREGAMENTO DE PROCESSAMENTO DE DADOS São descritos um aparelho, sistema e método de descarregamento de processamento de dados. Uma tarefa de descarregamento 306 hospedada em um primeiro sistema de processamento de dados 300-1 fornece funcionalidade interna substancialmente equivalente à de uma segunda tarefa 304 hospedada em um segundo sistema de processamento de dados 300-2 com arquitetura potencialmente diferente. Uma tarefa de proxy 308 hospedada no segundo sistema de processamento de dados 300-2 fornece uma interface externa substancialmente equivalente à da segunda tarefa 304. Um mecanismo de comunicação 322 entre os primeiro e segundo sistemas de processamento de dados 300 pode ser composto de uma rede 424, armazenagem compartilhada 422 e memória compartilhada 426. A tarefa de proxy 308 substitui substancialmente a segunda tarefa 304, delegando a funcionalidade interna da segunda tarefa 304 para a tarefa de descarregamento 306 por meio do mapeamento 506 de argumentos, acesso 514 e 714 e tradução 518 e 710 dos dados de entrada 510 e saída 706 conforme o necessário.

Description

ANTECEDENTES DA INVENÇÃO CAMPO DA INVENÇÃO
A presente invenção refere-se a acoplamento de sistema cruzado e, mais especificamente, refere-se ao descarregamento de tarefas de computação de um processador de dados ou sistema de processamento para outro processador de dados ou sistema de processamento.
DESCRIÇÃO DA TÉCNICA RELACIONADA
Como se sabe na técnica, processadores de descarregamento com fins especiais são empregados para realizar certas tarefas de computação mais eficientemente que um processador ou sistema de processamento para uso geral. Esses processadores foram implementados como um coprocessador ligado a um processador para uso geral que aumenta as capacidades de processamento deste último para realizar operações especializadas tais como processamento de ponto flutuante, vetor ou criptográfico. Alternativamente, os processadores de descarregamento podem ser implementados na forma de parceiros dos processadores para uso geral em um sistema de multiprocessamento, com a capacidade de condução de tarefas especializadas simultaneamente com outras tarefas conduzidas nos processadores para uso geral. Um exemplo deste último seriam os tipos de processadores zAAP e zIIP em um sistema mainframe de arquitetura z que trabalham sob o controle do sistema operacional z/OS, mas são confinados a certos tipos de tarefas, tais como applets Java e consultas em bancos de dados.
Em um projeto de processador de descarregamento tradicional, os processadores para uso geral e de descarregamento trabalham todos no mesmo sistema de processamento de dados, conforme definido pela mesma arquitetura geral, e sob o controle da mesma execução. Esse ’ projeto acoplado firmemente tende a minimizar a latência de ' 5 comunicação, mas também limita a flexibilidade e aumenta o * custo por deixar de explorar a ampla variedade de sistemas de computação com arquiteturas e pontos de preço diferentes que são disponíveis atualmente no mercado.
DESCRIÇÃO RESUMIDA DA INVENÇÃO
A partir da discussão acima, deverá ser evidente que existe a necessidade de um aparelho, sistema e método que descarregue sem emendas o processamento de tarefas de computação de um processador de dados ou sistema de processamento para outro processador de dados ou sistema de 15 processamento com arquitetura potencialmente diferente.
Beneficamente, esse aparelho, sistema e método exibiria a flexibilidade e eficácia para o custo de acoplamento de sistema cruzado, atingindo ao mesmo tempo a transparência e alta eficiência de processadores de descarregamento 20 firmemente acoplados.
A presente invenção foi desenvolvida em resposta ao estado da técnica atual e, particularmente, em resposta aos problemas e necessidades da técnica que ainda não foram completamente solucionados por processadores de 25 descarregamento disponíveis atualmente. Consequentemente, a presente invenção foi desenvolvida para fornecer um aparelho, ; sistema e método de descarregamento de processamento de um sistema de processamento de dados para outro sistema de processamento de dados com arquitetura potencialmente 30 diferente que supera muitas ou todas as desvantagens da técnica discutidas acima.
Cada sistema de processamento de dados pode incluir um conjunto de software que trabalha em um ou mais processadores, memória, interfaces de dispositivo I/O (entrada/saída) e interfaces de rede, conectados por meio de um terminal. Os sistemas de processamento de dados podem • também consistir de partições lógicas ou físicas separadas de 5 um sistema de processamento de dados maior, em que alguns ou todos os componentes de sistema mencionados acima são especializados para uma partição específica ou compartilhados entre diversas partições de forma virtualizada.
A tarefa a ser descarregada é hospedada em um 10 primeiro sistema de processamento de dados e estende os seus serviços para um segundo sistema de processamento de dados por meio de um proxy que é hospedado no segundo sistema. A tarefa e o seu proxy dependem do seu hospedeiro local correspondente para serviços básicos de sistema operacional, 15 tais como o despacho de recursos de processador, administração de memória, acesso a dispositivo I/O e possibilidade de comunicação com o outro sistema.
No nível de aplicativo, a tarefa de descarregamento possui a responsabilidade principal pelas funções internas do 20 aplicativo e a tarefa de proxy possui a responsabilidade principal pela comunicação externa com outras tarefas relacionadas no segundo sistema. A tarefa de descarregamento e o seu proxy comunicam-se entre si de forma específica para necessidades do aplicativo, operando eficientemente como 25 corrotinas que compreendem uma única tarefa lógica.
Quanto mais eficientes as instalações subjacentes 5 para comunicação intersistemas, mais a eficiência do mecanismo geral pode aproximar-se dos mecanismos de descarregamento acoplados firmemente do estado da técnica, 30 mas sem o custo e a inflexibilidade adicionados e associados a esses mecanismos com propósitos especiais.
Observe-se que o papel do primeiro e segundo sistema de processamento de dados é dependente de tarefa, um sistema pode servir de sistema de descarregamento para uma tarefa e servir simultaneamente de sistema proxy para uma outra tarefa.
O aparelho para descarregar o processamento de dados é equipado com uma série de módulos configurados para executar funcionalmente as etapas necessárias de comunicação , externa, delegando funções internas e relatando o término.
Esses módulos nas realizações descritas incluem a tarefa de tf proxy e a tarefa de descarregamento.
O aparelho, em uma realização, é configurado para mapear argumentos, ter acesso a dados de entrada e saída e formatá-los conforme o necessário. 0 acesso a dados pode incluir uma conexão física ao dispositivo de armazenagem apropriado, a disposição física dos dados e o sistema de 15 arquivos ou método de acesso apropriado que dita a disposição lógica dos dados. A formatação pode incluir a tradução dos dados para um formato inteligível.
Um sistema conforme a presente invenção também é apresentado para descarregar o processamento de dados. O 20 sistema pode ser incorporado para incluir um primeiro e um segundo sistema de processamento de dados, um mecanismo de comunicação, a tarefa de descarregamento e a tarefa de proxy e um sistema de armazenagem para armazenar os dados de entrada e de saída. Particularmente, o sistema, em uma 25 realização, inclui uma rede como parte do mecanismo de comunicação.
O sistema pode incluir adicionalmente a armazenagem compartilhada entre os primeiro e segundo sistemas de processamento de dados. O sistema de armazenagem, no todo ou 30 em parte, pode ser compartilhado desta forma.
O sistema é adicionalmente configurado, em uma realização, para operar sobre dados que já estão armazenados na memória. Neste caso, não é necessário envolvimento do sistema de armazenagem. Em uma realização adicional, o sistema pode ser configurado de forma a manter os dados, no todo ou em parte, em uma memória compartilhada que é s diretamente acessível para os primeiro e segundo sistemas de 5 processamento de dados.
Os primeiro e segundo sistemas de processamento de „ dados podem incluir primeira e potencialmente segunda plataforma de hardware, firmware e sistemas operacionais diferentes. Os sistemas opearcionais podem incluir, por 10 exemplo, OS/390, z/OS, Windows, Unix e Lunix.
Um método conforme a presente invenção também é apresentado para descarregar o processamento de dados. O método nas realizações descritas inclui substancialmente as etapas necessárias para conduzir as funções apresentadas 15 acima com relação à operação do sistema e aparelho descritos.
Em uma realização, o método inclui o recebimento de uma solicitação de introdução de uma tarefa de descarregamento de uma tarefa de proxy; mapeamento da solicitação em uma forma que é inteligível para o primeiro sistema de processamento de 20 dados, realização da funcionalidade interna pela tarefa de descarregamento e relatório do término da tarefa de descarregamento para a tarefa de proxy.
Em uma realização adicional, o método pode também incluir dados de leitura e escrita, seja direta ou 25 indiretamente, dependendo se o primeiro sistema de processamento de dados possui acesso a dados do segundo ‘ sistema de processamento de dados. O acesso a dados pode incluir uma conexão física ao dispositivo de armazenagem apropriado, a disposição física dos dados, o método de acesso 30 apropriado que dita a disposição lógica dos dados e a tradução dos dados para um formato inteligível. Qualquer das etapas do método pode ser realizada uma ou mais vezes em resposta a uma invocação isolada da tarefa de proxy.
Referência ao longo do presente relatório descritivo a características, vantagens oü expressões similares não indica que todas as características e vantagens que podem ser realizadas com a presente invenção deverão estar ou encontram-se em qualquer realização isolada da presente invenção. Ao contrário, as expressões referentes às características e vantagens são interpretadas como indicando que uma característica, vantagem ou função específica descrita com relação a uma realização ê incluída em pelo menos uma realização da presente invenção. Desta forma, a discussão das características, vantagens e expressões similares ao longo de todo o presente relatório descritivo pode, mas não necessariamente, referir-se à mesma realização.
Além disso, as características, vantagens e funções da presente invenção descritas podem ser combinadas de qualquer forma apropriada em uma ou mais realizações. Os técnicos no assunto reconhecerão que a presente invenção pode ser praticada sem uma ou mais das características ou vantagens específicas de uma realização específica. Em outros casos, podem ser reconhecidas em certas realizações características e vantagens adicionais que podem não estar presentes em todas as realizações da presente invenção.
Estas características e vantagens da presente invenção tornar-se-ão mais completamente evidentes a partir da descrição a seguir e das reivindicações anexas, ou podem ser aprendidas por meio da prática da presente invenção, conforme descrito a seguir.
BREVE DESCRIÇÃO DAS FIGURAS
A fim de que as vantagens da presente invenção sejam facilmente compreendidas, uma descrição mais específica da presente invenção detalhada resumidamente acima será oferecida por meio de referência a realizações específicas que são ilustradas nas figuras anexas. Compreendendo que essas figuras ilustram apenas realizações típicas da presente invenção e não se destinam, portanto, a ser consideradas limitadoras do seu escopo, a presente invenção será descrita * e explicada com especificidade e detalhes adicionais 5 utilizando as figuras anexas, nas quais: r - a Figura 1 é um diagrama de bloco esquemático que ilustra uma possível plataforma de hardware de computador sobre a qual a presente invenção pode ser desdobrada ao menos em parte; - a Figura 2 é um diagrama de bloco esquemático de um possível computador que inclui um conjunto de software no qual a presente invenção pode residir ao menos em parte,- a Figura 3 é um diagrama de bloco esquemático de dois computadores em operação conforme a presente 15 invenção; a Figura 4 é um diagrama de bloco esquemático de uma possível configuração de hardware de diversos sistemas de processamento de dados para executar a presente invenção; a Figura 5 é um fluxograma esquemático que 20 ilustra uma realização de método de introdução de uma tarefa de descarregamento de uma tarefa de proxy conforme a presente invenção; a Figura 6 é um fluxograma esquemático que ilustra uma realização de método de introdução de uma tarefa 25 de descarregamento conforme a presente invenção; e a Figura 7 é um fluxograma esquemático que - ilustra uma realização de um método de captura de resultados de uma tarefa de descarregamento por uma tarefa de proxy conforme a presente invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
Muitas das unidades funcionais descritas no presente relatório descritivo foram marcadas como módulos, a fim de enfatizar mais especificamente a sua independência de implementação. Um módulo pode ser implementado, por exemplo, como um circuito de hardware que compreende circuitos de VLSI customizados ou conjuntos de portal, semicondutores padrão • tais como chips lógicos, transistores ou outros componentes 5 discretos. Um módulo pode também ser implementado em * dispositivos de hardware programáveis tais como conjuntos de £ portais programáveis de campo, lógica de conjunto programável, dispositivos lógicos programáveis ou similares.
Podem também serem implementados módulos em 10 software para execução por diversos tipos de processadores.
Um módulo identificado de código executável pode compreender, por exemplo, um ou mais blocos lógicos ou físicos de instruções de computador que podem, por exemplo, ser organizados na forma de um objeto, procedimento ou função. Os 15 executáveis de um módulo identificado não necessitam, entretanto, estar localizados fisicamente juntos, mas podem compreender instruções diferentes armazenadas em locais diferentes que, quando unidas logicamente entre si, compreendem o módulo e atingem o propósito indicado para o 20 módulo.
De fato, um módulo de código executável pode ser uma instrução isolada ou várias instruções e pode até ser distribuído ao longo de diversos segmentos de códigos diferentes, entre diferentes programas e ao longo de diversos 25 dispositivos de memória. De forma similar, dados operacionais podem ser identificados e ilustrados no presente em módulos e 1 podem ser realizados em qualquer forma apropriada e organizados em qualquer tipo apropriado de estrutura de dados. Os dados operacionais podem ser coletados na forma de 30 um conjunto de dados isolado ou podem ser distribuídos ao longo de diferentes locais que incluem diferentes dispositivos de armazenagem e podem, ao menos parcialmente, existir meramente na forma de sinais eletrônicos em um sistema ou rede. Quando um módulo ou partes de um módulo forem implementados em software, as partes de software são armazenadas sobre um ou mais meios legíveis por computador.
Ao longo do presente relatório descritivo, referência a "uma realização", "realização" ou expressões similares indica que uma característica, estrutura ou função ? específica descrita com relação à realização é incluída em pelo menos uma realização da presente invenção. Desta forma, inclusões das expressões "em uma realização", "na realização" 10 e expressões similares ao longo do presente relatório descritivo podem, mas não necessariamente, referir-se todas ã mesma realização.
Referência a meio legível por computador pode assumir qualquer forma capaz de armazenar instruções legíveis 15 por máquina em um aparelho de processamento digital, Um meio legível por computador pode ser realizado por uma linha de transmissão, disco compacto, disco de vídeo digital, fita magnética, driver Bernoulli, disco magnético, cartão perfurado, memória flash, circuitos integrados ou outro 20 dispositivo de memória de aparelho de processamento digital.
Além disso, as características, vantagens e funções da presente invenção descritas podem ser combinadas de qualquer forma apropriada em uma ou mais realizações. Na descrição a seguir, são fornecidos numerosos detalhes 25 específicos, tais como exemplos de programação, módulos de software, seleções de usuários, transações de rede, consultas - a bancos de dados, estruturas de bancos de dados, módulos de hardware, circuitos de hardware, chips de hardware etc., para fornecer uma compreensão completa das realizações da presente 30 invenção. Os técnicos no assunto reconhecerão, entretanto, que a presente invenção pode ser praticada sem um ou mais dos detalhes específicos, ou com outros métodos, componentes, materiais e assim por diante. Em outros casos, estruturas, materiais ou operações bem conhecidas não são exibidas nem descritas em detalhes para evitar obscurecer aspectos da presente invenção. Os fluxogramas esquemáticos incluídos no presente 5 são geralmente descritos como fluxogramas lógicos. Desta * forma, as etapas marcadas e a ordem ilustrada são indicativas ■, de uma realização do método apresentado. Podem ser concebidas outras etapas e métodos que possuem função, lógica ou efeito equivalente a uma ou mais etapas do método ilustrado ou suas 10 partes. Além disso, o formato e os símbolos empregados são fornecidos para explicar as etapas lógicas do método e são compreendidos como não limitadores do escopo do método. Embora vários tipos de setas e tipos de linha possam ser empregados nos fluxogramas, eles são compreendidos como não . 15 limitando o escopo do método correspondente. De fato, algumas setas ou outros conectores podem ser utilizados para indicar ‘ apenas o fluxo lógico do método. Uma seta pode indicar, por exemplo, um período de espera ou de monitoramento com duração não especificada entre etapas enumeradas do método ilustrado.
O Além disso, a ordem em que ocorre um método específico pode ou não obedecer estritamente à ordem das etapas correspondentes exibidas.
A Figura 1 ilustra uma possível plataforma de hardware de computador 100 sobre a qual a presente invenção 25 pode ser desdobrada ao menos em parte. A plataforma de hardware 100 pode incluir processador(es) 102, memória (104), £ uma interface de rede 106 e uma interface de dispositivo I/O (entrada/saída) 108, conectada por meio de um terminal 110.
A plataforma de hardware 100 pode ser de qualquer 30 forma, fator ou tipo, incluindo um sistema embutido, manual, notebook, computador pessoal, minicomputador, servidor, mainframe, supercomputador e similares.
O(s) processador(es) 102 pode(m) estar presente(s) em qualquer quantidade, incluindo um uniprocessador, e pode{m) possuir qualquer arquitetura de conjunto de instruções. Em uma realização, o(s) processador(es) 102 * pode(m) possuir um ou mais níveis de caches dedicados ou 5, compartilhados. Possíveis implementações físicas podem * incluir processadores com múltiplos chips, chip isolado, 5 multicore, hiperprocessadores e similares.
A memória 104 pode ser de qualquer tamanho ou organização e pode incluir seções de leitura e escrita e de 10 somente leitura. Ela pode também incluir seções globais e locais e pode sustentar acesso uniforme e não uniforme. Ela pode incorporar acesso I/O mapeado na memória e de memória direta. Ela pode sustentar coerência de cache, incluindo protocolos com base em diretório e com base em snoop. - 15 A interface de rede 10 6 pode sustentar qualquer arquitetura ou protocolo de rede. Ela pode sustentar conexões de rede com e sem fio. Ela pode compreender Ethernet, Token Ring, Arquitetura de Rede de Sistema ("SNA") e similares. Em uma realização, ela pode ser integrada à interface de 20 dispositivo I/O 108.
A interface de dispositivo I/O 108 pode ser dirigida principalmente pelo(s) processador(es) 102 ou pode incorporar um subsistema de processador I/O independente. Ela pode compreender Interconexão de Componentes Periféricos 25 ("PCI"), Interface de Sistema de Computador Pequeno ("SCSI"),
Fiberchannel ("FC"), Conexão de Sistema Comercial ("ESCON"), ■ ESCON sobre Fiberchannel ("FICON") e similares. Em uma realização, ela pode incluir dispositivos I/O locais dedicados. I 30 O terminal 110 pode compreender uma ou mais dentre uma série de topologias físicas e lógicas. Ele pode ser paralelo ou serial. Ele pode ser unidirecional ou bidirecional. Ele pode ser plano ou hierárquico. Ele pode compreender uma barra cruzada total ou parcial. Ele pode compreender diversos terminais em ponte. Em uma realização, o terminal 110 pode compreender uma rede interna em alta • velocidade.
A Figura 2 é um diagrama de um possível computador 200 que inclui um conjunto de software no qual a presente j invenção pode residir ao menos em parte. O conjunto de software pode incluir tarefa(s) 202, ser abrigado em um sistema operacional 204, capacitado por firmware 206, 10 conduzido em uma plataforma de hardware 100 da qual a configuração da Figura 1 é representativa.
A(s) tarefa (s) 202 pode(m) incluir tarefas em nível de usuário e de sistema. Elas podem ser interativas ou em bateladas. Elas podem ser conduzidas em primeiro plano ou * 15 plano de fundo. Tarefa(s) em nível de usuário 202 pode(m) incluir aplicativos, programas, trabalhos, tarefas “ intermediárias e similares. Tarefa(s) em nível de sistema 202 pode(m) incluir serviços, drivers, daemons, utilitários e similares.
O sistema operacional 204 pode ser de qualquer tipo e versão e encontra-se em qualquer estado. Os tipos podem incluir Unix, Linux, Windows, Mac, MVS, VMS e similares. As versões podem incluir Windows XP, Windows Vista e similares. Os estados podem incluir um grau de customização, um modo de 25 operação, uma preparação de sistema para inicialização e similares. O sistema operacional 204 pode ser de usuário 1 único ou múltiplos usuários. Ele pode ser unitarefa ou multitarefa. Em uma realização, o sistema operacional 204 pode operar em tempo real. Em uma outra realização, o sistema 30 operacional 204 pode ser embutido.
O firmware 206 pode compreender microcódigos, que podem residir em uma microloja do(s) processador(es) 102. Em uma realização, o firmware 206 pode compreender software de baixo nível, que pode residir na memória 104. Em uma realização, o firmware 206 pode compreender um sistema operacional rudimentar 204. Em uma realização adicional, o • firmware 206 pode sustentar visualização, de forma a permitir 5 a operação simultânea de diversos sistemas operacionais 204 sobre uma plataforma de hardware 100. j. A Figura 3 é um diagrama de bloco esquemático de dois computadores 200 incluindo os seus conjuntos de software correspondentes em operação conforme a presente invenção. Os 10 primeiro e segundo conjuntos de software podem incluir, respectivamente, primeira(s) tarefa(s) 302 e segunda(s) tarefa(s) 304 que podem ou não diferir de número e função, hospedadas, respectivamente, em um primeiro sistema operacional 310 e em um segundo sistema operacional * 15 potencialmente diferente 312, capacitados, respectivamente, por primeiro firmware 314 e por um segundo firmware potencialmente diferente 316, conduzidos, respectivamente, em uma primeira plataforma de hardware 318 e em uma segunda plataforma de hardware potencialmente diferente 320. As 20 mencionadas plataformas de hardware podem também ser partições lógicas ou físicas de uma ou mais plataformas de hardware maiores.
São de relevância específica para a presente invenção a tarefa de descarregamento 306 e a tarefa de proxy 25 308. Estas tarefas são hospedadas, respectivamente, sobre os primeiro e segundo conjuntos de software em execução, ' respectivamente, em primeira e segunda plataformas de hardware 318 e 320, indicadas a seguir, respectivamente, como primeiro sistema de processamento de dados 300-1 e segundo 30 sistema de processamento de dados 300-2. A tarefa de descarregamento 306 e a sua tarefa de proxy correspondente 308 dependem do seu hospedeiro local correspondente, o primeiro sistema de processamento de dados 300-1 e o segundo sistema de processamento de dados 300-2, para serviços básicos de sistema operacional tais como despacho de recursos de processador, administração de memória, acesso ao dispositivo I/O e facilidades de comunicação com o outro 5 sistema.
A tarefa de descarregamento 306 no primeiro sistema de processamento de dados 300-1 estende os seus serviços para o segundo sistema de processamento de dados 300-2 por meio da tarefa de proxy 308. No nível de aplicativo (ou tarefa 10 intermediária, ou driver), a tarefa de descarregamento 306 possui a responsabilidade principal pelas funções internas do aplicativo e a tarefa de proxy 308 possui a responsabilidade principal pela comunicação externa com outras segundas tarefas relacionadas 304 no segundo sistema de processamento 15 de dados 300-2. A tarefa de descarregamento 306 e a sua tarefa de proxy 308 comunicam-se entre si por meio do mecanismo de comunicação 322 de forma específica para necessidades do aplicativo, que opera eficientemente como corrotinas que compreendem uma única tarefa lógica.
A Figura 4 é um diagrama de bloco esquemático de uma possível configuração de hardware de diversos sistemas de processamento de dados para executar a presente invenção, que ilustra diversos trajetos potenciais para o mecanismo de comunicação 322 na Figura 3. 0 primeiro sistema de processamento de dados 300-1 e o segundo sistema de processamento de dados 300-2 podem incluir, respectivamente, * primeiro(s) processador(es) 402 e segundo(s) processador(es) 404, primeira memória 406 e segunda memória 408, primeira interface de rede 410 e segunda interface de rede 412, 30 primeira interface de dispositivo I/O 414 e segunda interface de dispositivo I/O 416, conectadas por meio do primeiro terminal 418 e do segundo terminal 420.
O trajeto de comunicação mais remoto, com latência mais alta, mas ainda assim útil seria por meio de armazenagem compartilhada 422 que sustenta comunicações da primeira interface de dispositivo I/O 414 e da segunda interface de dispositivo I/O 416. Existe tecnologia por meio da qual o 5 mesmo dispositivo de armazenagem pode sustentar a interface *■ I/O de diferentes protocolos de arquitetura de sistema, de , forma a permitir que o primeiro sistema de processamento de dados 300-1 tenha acesso aos dados de armazenagem do segundo sistema de processamento de dados 300-2 e vice versa.
Um trajeto de comunicação menos remoto e com latência mais baixa seria por meio da rede 4 24, sustentando conexões da primeira interface de rede 410 e da segunda interface de rede 412. Alguns protocolos de rede tais como TCP/IP permitem a troca de pacotes de mensagem de informações i 15 entre sistemas. Outros protocolos tais como Infiniband sustentam VIA (Arquitetura de Interface Virtual) que permite o compartillhamento direto de memória entre a(s) primeira (s) tarefa(s) 302 e a(s) segunda(s) tarefa(s) 304, utilizando RDMA (Acesso a Memória Direto Remoto) por meio da rede 424 20 para permitir que o primeiro sistema de processamento de dados 300-1 tenha acesso à segunda memória 408 e o segundo sistema de processamento de dados 300-2 tenha acesso à primeira memória 406.
O processo de comunicação menos remoto e com 25 latência mais baixa envolve o compartilhamento real de memória entre os primeiro e segundo sistemas de processamento 4 de dados 300, conforme ilustrado pela sobreposição de memória compartilhada 426 entre a primeira memória 406 e a segunda memória 408. Este tipo de compartilhamento de memória 30 necessita que os primeiro e segundo sistemas de processamento de dados 300 sejam partições lógicas ou físicas dentro do mesmo sistema de processamento de dados físico. Os mesmos protocolos de comunicação utilizados na rede 424 podem ser empregados em velocidade de memória por meio de memória compartilhada 426, incluindo TCP/IP e Infiniband. O último protocolo pode ser particularmente bem apropriado para as • necessidades da presente invenção, pois ele permite que a 5 tarefa de descarregamento 306 e a tarefa de proxy 308 ’ interoperem como se fossem de fato corrotinas em execução a partir da mesma memória no mesmo sistema de processamento de dados físico, de forma a aproximar-se da eficiência dos mecanismos de descarregamento para fins especiais do estado 10 da técnica.
Existe e está agora emergindo a tecnologia que permite a coexistência de primeiro firmware 314 e segundo firmware 312 com arquiteturas diferentes (tais como PCMware da Platform Solutions, Inc.), bem como primeiro(s) t 15 processador(es) 402 e segundo(s) processador(es) 404 com arquiteturas diferentes (tais como Interface de Sistema Comum da Intel Corporation) dentro do mesmo sistema de processamento de dados particionável físico. Esse sistema híbrido pode fornecer uma plataforma capacitadora 20 particularmente apropriada para a presente invenção.
A Figura 5 é um fluxograma esquemático que ilustra uma realização de método 500 de introdução de uma tarefa de descarregamento 306 de uma tarefa de proxy 308 conforme a presente invenção. 0 método 500 inicia 502 quando uma 25 solicitação de tarefa de proxy for recebida 504 no segundo sistema de processamento de dados 300-2. A solicitação é mapeada 506 em uma forma que seja inteligível para o primeiro sistema de processamento de dados 300-1 e transmitida 508 para o primeiro sistema de processamento de dados 300-1 por 3 0 meio do nó Al como uma solicitação de tarefa de descarregamento.
Caso haja dados introduzidos adicionais 510 fornecidos além dos argumentos imediatos recebidos 504 com a solicitação de tarefa, deve-se determinar se o primeiro sistema de processamento de dados 300-1 possui acessibilidade direta 512 a esses dados. Essa acessibilidade 512 pode incluir uma conexão física ao dispositivo de armazenagem 5 apropriado, a disposição física dos dados, o método de acesso apropriado que dita a disposição lógica dos dados e a , inteligibilidade dos dados ao serem lidos. Caso qualquer dessas condições solicitadas não seja atendida, a tarefa de proxy 308 deve ter acesso 514 aos dados introduzidos em nome 10 do primeiro sistema de processamento de dados 300-1. Após o acesso aos dados 514, eles podem ou não estar em um formato 516 que seja inteligível para o primeiro sistema de processamento de dados 300-1. Observe-se que a inteligibilidade do formato 516 também foi uma das condições 15 que compreendem a acessibilidade 512. Caso esta condição não seja atendida, a tarefa de proxy 308 deve traduzir em primeiro lugar 518 os dados introduzidos em um formato que é inteligível para o primeiro sistema de processamento de dados 3 00-1 antes que possa ser transmitido 520 para o primeiro 20 sistema de processamento de dados 300-1 por meio do nó A2.
Neste momento, o processamento da tarefa de proxy 308 é suspenso, liberando os seus recursos para outro processamento pelo segundo sistema de processamento de dados 300-2 e o método 500 termina 522.
A Figura 6 é um fluxograma esquemático que ilustra uma realização de método 600 de uma tarefa de descarregamento *- 3 06 conforme a presente invenção. 0 método 600 inicia 602 e a solicitação de tarefa de descarregamento é recebida 604 conforme transmitido 508 pelo segundo sistema de 30 processamento de dados 300-2 por meio do nó Al. Pendente o recebimento de quaisquer dados introduzidos adicionais 606 conforme transmitido 520 pelo segundo sistema de processamento de dados 300-2 por meio do nó A2, a tarefa de descarregamento 306 é realizada 608 utilizando os recursos do primeiro sistema de processamento de dados 300-1. Mediante o término, um relatório 610 é transmitido 612 para o segundo t sistema de processamento de dados 300-2 por meio do nó B2. 5 Dados emitidos adicionais 614, se houver, são transmitidos 616 para o segundo sistema de processamento de dados 300-2 por meio do nó B2 e o método 600 termina 618.
A Figura 7 é um fluxograma esquemático que ilustra uma realização de um método 700 de captura de resultados de 10 uma tarefa de descarregamento 306 por uma tarefa de proxy 308 conforme a presente invenção. 0 método 700 inicia 702 e a tarefa de proxy 308 é novamente despertada em resposta ao recebimento 704 do relatório de transmissão 612 do primeiro sistema de processamento de dados 300-1 por meio do nó BI, Caso não haja dados emitidos adicionais 706 recebidos conforme transmitido 616 pelo primeiro sistema de processamento de dados 300-1 por meio do nó B2, além dos argumentos imediatos associados ao relatório, que foi recebido 7 04, o método 700 termina 716. Caso sejam recebidos dados 20 emitidos adicionais 706, deve-se determinar se os dados encontram-se em um formato 708 que é inteligível para o segundo sistema de processamento de dados 300-2. Caso contrário, a tarefa de proxy 308 deve traduzir em primeiro lugar 710 os dados emitidos em um formato inteligível para o 25 segundo sistema de processamento de dados 300-2 antes de torná-los acessíveis 712 para o segundo sistema de processamento de dados 300-2. Essa acessibilidade 712 pode incluir uma conexão física ao dispositivo de armazenagem apropriado, a disposição física dos dados e o método de 30 acesso apropriado que dita a disposição lógica dos dados.
Caso os dados emitidos sejam acessíveis 712, o método 700 termina 716. Caso qualquer das condições desejadas de acessibilidade 712 não seja atendida, o segundo sistema de processamento de dados 300-2 deve ter acesso 714 aos dados emitidos em nome do primeiro sistema de processamento de dados 300-1. Após a disponibilização dos dados emitidos para s acesso 714 ao segundo sistema de processamento de dados 300- 5 2, o método 700 termina 716.
Os métodos 500, 600 e 700 podem ser adicionalmente ilustrados com um exemplo específico. Considere um programa de ordenamento (a segunda tarefa 304) em operação sob z/OS em um mainframe da IBM (o segundo sistema de processamento de 10 dados 300-2) a ser descarregado para Windows em operação em um servidor Intel (o primeiro sistema de processamento de dados 300-1). Os dados a serem ordenados encontram-se em formato EBCDIC (Código de Intercâmbio Decimal Codificado Binário Estendido) , residente em um conjunto de dados -- 15 (arquivo) VSAM (Método de Acesso a Armazenagem Virtual) em I DASD (Dispositivo de Armazenagem de Acesso Direto) CKD (Dados
Chave de Contagem) conectado por meio de uma interface ESCON (Conexão de Sistema Empresarial). A tarefa de proxy 308 pode ser especificada em uma instrução EXEC JCL (Linguagem de 20 Controle de Trabalho) ou o arquivo executável para o próprio programa de ordenamento z/OS pode ser substituído pelo da tarefa de proxy 308. Após o término daquela configuração inicial, não é necessário interação de usuário adicional além daquela que normalmente é realizada para conduzir o programa 2-5 de ordenamento z/OS. Sempre que o programa de ordenamento z/OS for invocado em seguida, uma solicitação da tarefa de 12 proxy 3 08 será automaticamente recebida 5 04 e os seus argumentos serão mapeados 506 em um programa de ordenamento Windows correspondente.
Neste exemplo, os dados introduzidos 510 a serem ordenados devem ser fornecidos para a tarefa de descarregamento 306. Windows pode ou não possuir acessibilidade direta 512 aos dados. ESCON pode ser a única conexão física disponível que é nativa para z/OS, enquanto Windows pode sustentar apenas conectividade por FC {Canal de Fibra). Por outro lado, alguns dispositivos de armazenagem t não sustentam ESCON e FC, bem como FICON {ESCON por FC) . A 5 disposição física de z/OS nativa dos dados é CKD, mas o
Windows tipicamente espera FBA {Arquitetura de Bloco Fixa). O . método de acesso a z/OS nativo para os dados é VSAM, mas o Windows pode também ser baseado em NTFS (Sistema de Arquivos S' de Nova Tecnologia) . O formato de z/OS nativo dos dados é 10 EBCDIC, mas o programa de ordenamento Windows pode considerar que o formato de dados é ASCII (Código Padrão Norte-Americano para Intercâmbio de Informações). Nenhuma dessas diferenças é insuperável. Os drivers e tradutores podem existir ou podem ser desenvolvidos com base em Windows para fornecer i 15 acessibilidade 512. Caso estes não estejam disponíveis, a tarefa de descarregamento 3 06 com base em Windows deve ter acesso 514 aos dados indiretamente a partir de z/OS, solicitando que ela seja lida utilizando uma segunda interface de dispositivo I/O 416 e transferida para Windows 2 0 por meio da rede 424 ou de um buffer comumente acessível em memória compartilhada 426. Em seguida, os dados, que neste exemplo encontram-se em formato EBCDIC 516, devem ser traduzidos 518 para ASCII.
Neste ponto, o processamento da tarefa de proxy 306 25 é suspenso, liberando os seus recursos para outro processamento de z/OS, e a tarefa de descarregamento 306 r realiza 608 o programa de ordenamento Windows. No final, um relatório 610 é transmitido 612 pelo Windows para z/OS e os dados emitidos ordenados 614 também são transmitidos 616.
Neste exemplo, entretanto, os dados emitidos 614 encontram-se em formato ASCII 708 e devem, portanto, ser traduzidos 710 de volta para EBCDIC. Além disso, o Windows não possui acessibilidade direta 712 para o conjunto de dados z/OS no qual devem ser escritos os dados emitidos. A tarefa de proxy 3 08 com base em z/OS deve, portanto, transferir os dados de Windows para z/OS indiretamente por meio da rede 424 ou de um buffer comumente acessível em memória compartilhada 426, tendo acesso 714 aos dados de z/OS definidos para escrever utilizando a segunda interface de dispositivo I/O 416.
Conforme indicado no exemplo a seguir, são possíveis outras realizações potencialmente mais eficientes em que Windows possui um grau maior de acessibilidade 512 e 712 para dados z/OS, incluindo interfaces físicas, drivers e tradutores projetados especificamente para ter acesso a DASD z/OS e/ou emulá-los. Em uma outra realização, os dados podem existir em um estado intermediário na segunda memória 408, acessível para a tarefa de descarregamento 306 por meio da rede 424 ou memória compartilhada 426, ou diretamente residente na memória compartilhada 426. Neste caso, a disposição e conectividade de armazenagem física não seria problema, embora outros fatores de acessibilidade, tais como formato e disposição lógica, ainda possam necessitar de drivers ou tradutores. Em uma realização adicional, pode existir acessibilidade a mesmo formato em memória total, de forma a permitir interação acoplada de perto muito rápida entre a tarefa de proxy 3 08 e a tarefa de descarregamento 306. Dever-se-á observar que os métodos 500 e 700 podem ser invocados mais de uma vez pela mesma tarefa de proxy 308, com diversas invocações correspondentes do método 600 pela mesma tarefa de descarregamento 306 em forma particulada em grãos finos.
A presente invenção pode ser realizada em outras formas específicas sem abandonar o seu espírito ou características essenciais. As realizações descritas devem ser consideradas, em todos os aspectos, como apenas ilustrativas e não restritivas. O escopo da presente invenção é indicado, portanto, pelas reivindicações anexas, e não pelo relatório descritivo acima. Todas as alterações que estejam de acordo com o significado e a faixa de equivalência das reivindicações devem ser englobadas no seu escopo.

Claims (20)

1. APARELHO PARA DESCARREGAR PROCESSAMETO DE DADOS, caracterizado por compreender: - um módulo de tarefa de descarregamento residente em um primeiro sistema de processamento de dados e que possui funcionalidade interna equivalente à de um segundo módulo de tarefa residente em um segundo sistema de processamento de dados; e - um módulo de tarefa de proxy residente no segundo sistema de processamento de dados e que se comunica com o módulo de tarefa de descarregamento no primeiro sistema de processamento de dados, que possui uma interface externa idêntica à do segundo módulo de tarefa, em que o módulo de tarefa de proxy substitui substancialmente o segundo módulo de tarefa dentro do segundo sistema de processamento de dados, delegando a funcionalidade interna do segundo módulo de tarefa para o módulo de tarefa de descarregamento por meio de mapeamento de uma solicitação para ativar o módulo de tarefa de descarregamento em uma forma correspondente que seja inteligível para o primeiro sistema de processamento de dados e comunicá-lo ao módulo de tarefa de descarregamento; - realização da funcionalidade interna do segundo módulo de tarefa trocando-o com a funcionalidade interna equivalente do módulo de tarefa de descarregamento de uma maneira totalmente transparente e automática; - relatar o término da funcionalidade interna para o módulo de tarefa de proxy; - em que o módulo de tarefa de descarregamento, o segundo módulo de tarefa e o módulo de tarefa de proxy compreendem um ou mais dentre hardware lógico e código executável, em que o código executável é armazenado sobre um ou mais meios legíveis por computador não transitórios.
2. APARELHO, de acordo com a reivindicação 1, caracterizado pela delegação da funcionalidade interna do segundo módulo de tarefa compreender adicionalmente o acesso e formatação de dados de entrada e saída conforme o necessário.
3. APARELHO, de acordo com a reivindicação 2, caracterizado por compreender adicionalmente um driver para o primeiro sistema de processamento de dados capaz de ter acesso a uma conexão física e disposição física de dados de entrada e saída que são nativos do segundo sistema de processamento de dados.
4. APARELHO, de acordo com a reivindicação 2, caracterizado por compreender adicionalmente um sistema de arquivos para o primeiro sistema de processamento de dados capaz de ter acesso a uma disposição lógica de dados de entrada e saída que são nativos do segundo sistema de processamento de dados.
5. APARELHO, de acordo com a reivindicação 2, caracterizado por compreender adicionalmente um tradutor para o primeiro sistema de processamento de dados capaz de traduzir um formato de dados de entrada e saída que são nativos do segundo sistema de processamento de dados.
6. SISTEMA DE DESCARREGAMENTO DE PROCESSAMENTO DE DADOS, caracterizado por compreender: - um primeiro sistema de processamento de dados composto de um primeiro sistema operacional, um primeiro firmware e uma primeira plataforma de hardware; - um segundo sistema de processamento de dados composto de um segundo sistema operacional, um segundo firmware e uma segunda plataforma de hardware; - um mecanismo de comunicação entre o primeiro sistema de processamento de dados e o segundo sistema de processamento de dados; - um módulo de tarefa de descarregamento residente no primeiro sistema de processamento de dados que possui funcionalidade interna substancialmente equivalente à de um segundo módulo de tarefa residente no segundo sistema de processamento de dados; - um módulo de tarefa de proxy residente no segundo sistema de processamento de dados, comunicando-se com o módulo de tarefa de descarregamento no primeiro sistema de processamento de dados, que possui uma interface externa substancialmente idêntica ao do segundo módulo de tarefa, em que o módulo de tarefa de proxy substitui substancialmente o segundo módulo de tarefa dentro do segundo sistema de processamento de dados, delegando a funcionalidade interna do segundo módulo tarefa para o módulo de tarefa de descarregamento por meio de mapeamento de uma solicitação para ativar o módulo de tarefa de descarregamento em uma forma correspondente que seja inteligível para o primeiro sistema de processamento de dados e comunicá-lo ao módulo de tarefa de descarregamento; - realização da funcionalidade interna do segundo módulo de tarefa trocando-o com a funcionalidade interna equivalente do módulo de tarefa de descarregamento de uma maneira totalmente transparente e automática; - relatar o término do módulo de tarefa de descarregamento para o módulo de tarefa de proxy; - acessar e formatar os dados de entrada e saída conforme o necessário; - em que o módulo de tarefa de descarregamento, o segundo módulo de tarefa de descarregamento, e o módulo de tarefa de proxy compreendem um ou mais hardwares lógicos e códigos executáveis, os códigos executáveis armazenados em uma ou mais mídias legíveis por computador não transitórias; e - um sistema de armazenagem para armazenar os dados de entrada e saída.
7. SISTEMA, de acordo com a reivindicação 6, caracterizado pelo mecanismo de comunicação compreender uma rede.
8. SISTEMA, de acordo com a reivindicação 6, caracterizado pelo sistema de armazenagem ser compartilhado de tal forma que os dados de entrada e de saída são acessíveis pelo primeiro sistema de processamento de dados e pelo segundo sistema de processamento de dados.
9. SISTEMA, de acordo com a reivindicação 6, caracterizado pela primeira plataforma de hardware incluir uma primeira memória e a segunda plataforma de hardware incluir uma segunda memória e os dados de entrada e saída são armazenados em uma união entre a primeira memória e a segunda memória.
10. SISTEMA, de acordo com a reivindicação 9, caracterizado pela primeira memória e a segunda memória interseccionam-se ao menos parcialmente para formar uma memória compartilhada e os dados de entrada e saída serem armazenados ao menos parcialmente na memória compartilhada.
11. SISTEMA, de acordo com a reivindicação 6, caracterizado pela primeira plataforma de hardware diferir da segunda plataforma de hardware.
12. SISTEMA, de acordo com a reivindicação 6, caracterizado pelo primeiro firmware diferir do segundo firmware.
13. SISTEMA, de acordo com a reivindicação 6, caracterizado pelo primeiro sistema operacional diferir do segundo sistema operacional.
14. SISTEMA, de acordo com a reivindicação 13, caracterizado pelo primeiro sistema operacional e o segundo sistema operacional serem selecionados a partir do conjunto que consiste de OS/390, z/OS, Windows, Unix e Lunix.
15. MÉTODO IMPLEMENTADO POR MÁQUINA DE DESCARREGAMENTO DE PROCESSAMENTO DE DADOS, caracterizado por compreender as etapas de: - recebimento de uma solicitação de ativação de um módulo de tarefa de descarregamento, residente em um primeiro sistema de processamento de dados e que possui funcionalidade interna substancialmente equivalente à de um segundo módulo de tarefa residente em um segundo sistema de processamento de dados, por um módulo de tarefa de proxy residente no segundo sistema de processamento de dados, que se comunica com o módulo de tarefa de descarregamento no primeiro sistema de processamento e dados e que possui uma interface externa substancialmente equivalente à do segundo módulo de tarefa, em que o módulo de tarefa de proxy substitui substancialmente o segundo módulo de tarefa dentro do segundo sistema de processamento de dados; - mapeamento da solicitação em uma forma correspondente que é inteligível para o primeiro sistema de processamento de dados e sua comunicação para o módulo de tarefa de descarregamento; - realização da funcionalidade interna do segundo módulo de tarefa intercambiando-o com a funcionalidade interna equivalente do módulo de tarefa de descarregamento de uma maneira totalmente transparente e automática; e - relatório do término do módulo de tarefa de descarregamento para o módulo de tarefa de proxy.
16. MÉTODO, de acordo com a reivindicação 15, caracterizado por compreender adicionalmente as etapas de: - leitura de quaisquer dados de entrada diretamente caso o primeiro sistema de processamento de dados possua acesso a dados do segundo sistema de processamento de dados, caso contrário leitura indireta de quaisquer dados de entrada; e - escrita de quaisquer dados de saída diretamente caso o primeiro sistema de processamento de dados possua acesso a dados do segundo sistema de processamento de dados, caso contrário leitura indireta de quaisquer dados de saída.
17. MÉTODO, de acordo com a reivindicação 16, caracterizado pelo acesso a dados do segundo sistema de processamento de dados compreender o acesso a uma conexão física e disposição física de dados de entrada e saída que são nativos do segundo sistema de processamento de dados.
18. MÉTODO, de acordo com a reivindicação 16, caracterizado pelo acesso a dados do segundo sistema de processamento de dados compreender o acesso a uma disposição lógica de dados de entrada e saída que são nativos do segundo sistema de processamento de dados.
19. MÉTODO, de acordo com a reivindicação 16, caracterizado pelo acesso a dados do segundo sistema de processamento de dados compreender a tradução de um formato de dados de entrada e saída que são nativos do segundo sistema de processamento de dados.
20. MÉTODO, de acordo com a reivindicação 15, caracterizado por qualquer das etapas ser realizável uma ou mais vezes em resposta a uma ativação isolada pelo módulo de tarefa de proxy.
BRPI0816037-6A 2007-09-27 2008-09-29 aparelho para descarregar processameto de dados, sistema de descarregamento de processamento de dados, e, método implementado por máquina de descarregamento de processamento de dados BRPI0816037B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US97579407P 2007-09-27 2007-09-27
US60/975,794 2007-09-27
US12/240,685 2008-09-29
US12/240,685 US8527991B2 (en) 2007-09-27 2008-09-29 Apparatus, system, and method for cross-system proxy-based task offloading
PCT/US2008/078182 WO2009043043A1 (en) 2007-09-27 2008-09-29 Apparatus, system, and method for cross-system proxy-based task offloading

Publications (2)

Publication Number Publication Date
BRPI0816037A2 BRPI0816037A2 (pt) 2020-08-11
BRPI0816037B1 true BRPI0816037B1 (pt) 2021-01-19

Family

ID=40509900

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0816037-6A BRPI0816037B1 (pt) 2007-09-27 2008-09-29 aparelho para descarregar processameto de dados, sistema de descarregamento de processamento de dados, e, método implementado por máquina de descarregamento de processamento de dados

Country Status (8)

Country Link
US (2) US8527991B2 (pt)
KR (1) KR101517258B1 (pt)
AU (1) AU2008304105B2 (pt)
BR (1) BRPI0816037B1 (pt)
DE (1) DE112008002634T5 (pt)
GB (1) GB2466604B (pt)
HK (1) HK1141112A1 (pt)
WO (1) WO2009043043A1 (pt)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467373A (zh) * 2010-10-28 2012-05-23 微软公司 任务取消宽限期
US8566831B2 (en) * 2011-01-26 2013-10-22 International Business Machines Corporation Execution of work units in a heterogeneous computing environment
US8533720B2 (en) 2011-02-25 2013-09-10 International Business Machines Corporation Offloading work from one type to another type of processor based on the count of each type of service call instructions in the work unit
US8813083B2 (en) * 2011-07-01 2014-08-19 Intel Corporation Method and system for safe enqueuing of events
US9423983B2 (en) 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
US9203903B2 (en) 2012-12-26 2015-12-01 International Business Machines Corporation Processing a request to mount a boot volume
US9152450B2 (en) * 2013-03-12 2015-10-06 International Business Machines Corporation Offloading service requests to a second guest hypervisor in a logical partition shared by a plurality of guest hypervisors
US9921770B1 (en) * 2014-03-28 2018-03-20 EMC IP Holding Company LLC Extending fixed block architecture device access over ficon using transport mode protocol
US9389789B2 (en) 2014-12-15 2016-07-12 International Business Machines Corporation Migration of executing applications and associated stored data
US9910705B1 (en) * 2015-02-18 2018-03-06 Altera Corporation Modular offloading for computationally intensive tasks
US9554239B2 (en) 2015-04-21 2017-01-24 Apple Inc. Opportunistic offloading of tasks between nearby computing devices
US9996329B2 (en) 2016-02-16 2018-06-12 Microsoft Technology Licensing, Llc Translating atomic read-modify-write accesses
CN107133086B (zh) * 2016-02-29 2020-09-04 阿里巴巴集团控股有限公司 基于分布式系统的任务处理方法、装置和系统
US10878493B2 (en) 2016-06-21 2020-12-29 Erland Wittkotter Sample data extraction
WO2017223250A1 (en) 2016-06-21 2017-12-28 Wittkotter Erland Sample data extraction
ES2703473B2 (es) * 2016-07-12 2020-10-22 Proximal Systems Corp Aparato, sistema y procedimiento de gestion de acoplamiento de intermediario
US20180039519A1 (en) * 2016-08-08 2018-02-08 Qualcomm Incorporated Systems and methods for managing processing load
US11042394B2 (en) 2017-10-13 2021-06-22 Electronics And Telecommunications Research Institute Method for processing input and output on multi kernel system and apparatus for the same
KR102160014B1 (ko) * 2019-03-05 2020-09-25 서울대학교산학협력단 혼합 네트워크상에서의 태스크 간 통신 방법 및 시스템
US11687364B2 (en) 2019-07-30 2023-06-27 Samsung Electronics Co., Ltd. Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (SMP) environment
US11200131B2 (en) 2019-11-12 2021-12-14 VirtualZ Computing Corporation System and method for enhancing the efficiency of mainframe operations
CN111245651B (zh) * 2020-01-08 2022-03-29 上海交通大学 一种基于功率控制和资源分配的任务卸载方法
US20230318986A1 (en) * 2022-03-30 2023-10-05 Microsoft Technology Licensing, Llc Dynamic cloud offloading

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006277A (en) * 1987-11-06 1999-12-21 Bea Systems, Inc. Virtual software machine for enabling CICS application software to run on UNIX based computer systems
US5745748A (en) * 1994-12-09 1998-04-28 Sprint Communication Co. L.P. System and method for direct accessing of remote data
GB2305270A (en) * 1995-09-15 1997-04-02 Ibm Bridge for a client-server environment
US5774728A (en) * 1995-12-27 1998-06-30 International Business Machines Corporation Method and system for compiling sections of a computer program for multiple execution environments
US6021408A (en) * 1996-09-12 2000-02-01 Veritas Software Corp. Methods for operating a log device
EP0958537A1 (en) 1997-02-07 1999-11-24 Newframe Corporation Ltd. Method of sharing data in a heterogeneous computer system and computer system with data sharing
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6822955B1 (en) * 1998-01-22 2004-11-23 Nortel Networks Limited Proxy server for TCP/IP network address portability
JP3565490B2 (ja) * 1999-11-09 2004-09-15 インターナショナル・ビジネス・マシーンズ・コーポレーション クライアントサーバシステム、サーバ、クライアント、プロキシサーバ制御方法、プロキシサーバ機能提供方法および記憶媒体
US20020116452A1 (en) * 2000-03-03 2002-08-22 Surgient Networks, Inc. Network connected computing system including storage system
US7325030B2 (en) * 2001-01-25 2008-01-29 Yahoo, Inc. High performance client-server communication system
JP2003141018A (ja) * 2001-11-02 2003-05-16 Fujitsu Ltd サーバ、中継装置、情報提供方法、およびプログラム
US7150042B2 (en) * 2001-12-06 2006-12-12 Mcafee, Inc. Techniques for performing malware scanning of files stored within a file storage device of a computer network
US7246360B2 (en) * 2002-02-07 2007-07-17 Mobitv, Inc. Plug-in API for protocol and payload transformation
US20050076327A1 (en) * 2003-01-15 2005-04-07 University Of Florida Server-side wireless development tool
US7356562B2 (en) * 2003-04-30 2008-04-08 International Business Machines Corporation Dynamic generator for fast-client static proxy from service interface definition document
GB2418757B (en) * 2003-07-07 2006-11-08 Progress Software Corp Multi-platform single sign-on database driver
US7328222B2 (en) * 2004-08-26 2008-02-05 Oracle International Corporation Method and apparatus for preserving data coherency in a database by generating a command object that includes instructions for writing a data record to a local cache
US7779164B2 (en) * 2005-04-04 2010-08-17 Oracle America, Inc. Asymmetrical data processing partition
US7949766B2 (en) * 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US7441112B2 (en) * 2005-06-30 2008-10-21 Intel Corporation Offloading the processing of a network protocol stack
US20070094402A1 (en) * 2005-10-17 2007-04-26 Stevenson Harold R Method, process and system for sharing data in a heterogeneous storage network
JP2007156824A (ja) 2005-12-05 2007-06-21 Nec Electronics Corp プロセッサシステム、タスク制御方法
US20080313364A1 (en) * 2006-12-06 2008-12-18 David Flynn Apparatus, system, and method for remote direct memory access to a solid-state storage device

Also Published As

Publication number Publication date
US20130339979A1 (en) 2013-12-19
GB201006848D0 (en) 2010-06-09
GB2466604B (en) 2012-09-12
US20090089794A1 (en) 2009-04-02
KR20100058670A (ko) 2010-06-03
US8527991B2 (en) 2013-09-03
AU2008304105A1 (en) 2009-04-02
WO2009043043A9 (en) 2011-11-03
WO2009043043A1 (en) 2009-04-02
KR101517258B1 (ko) 2015-05-04
HK1141112A1 (en) 2010-10-29
US9389904B2 (en) 2016-07-12
AU2008304105B2 (en) 2013-08-29
DE112008002634T5 (de) 2011-01-13
BRPI0816037A2 (pt) 2020-08-11
GB2466604A (en) 2010-06-30

Similar Documents

Publication Publication Date Title
BRPI0816037B1 (pt) aparelho para descarregar processameto de dados, sistema de descarregamento de processamento de dados, e, método implementado por máquina de descarregamento de processamento de dados
US10282192B1 (en) Updating device code through a bus
US8874681B2 (en) Remote direct memory access (‘RDMA’) in a parallel computer
US9542244B2 (en) Systems and methods for performing primitive tasks using specialized processors
US9823851B2 (en) Secure migratable architecture having security features
EP3274861B1 (en) Reliability, availability, and serviceability in multi-node systems with disaggregated memory
KR101895763B1 (ko) 노드들 사이의 i/o 서비스 및 메모리 공유
US8495655B2 (en) Messaging in a parallel computer using remote direct memory access (‘RDMA’)
US11526440B2 (en) Providing multiple memory modes for a processor including internal memory
EP3629187A1 (en) Multi-uplink device enumeration and management
JP2021093130A (ja) フレキシブルなオンダイファブリックインターフェイス
US8930568B1 (en) Method and apparatus for enabling access to storage
US20220004439A1 (en) Cluster identifier remapping for asymmetric topologies
US10108349B2 (en) Method and system that increase storage-stack throughput
US10169113B2 (en) Storage and application intercommunication using ACPI
US10579420B2 (en) Apparatus, system and method for proxy coupling management
US7979660B2 (en) Paging memory contents between a plurality of compute nodes in a parallel computer
US7958514B2 (en) Apparatus, system, and method for managing tray devices
Quintero et al. Implementing an IBM High-Performance Computing Solution on IBM Power System S822LC
Yang Programming for I/O and Storage

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 19/01/2021, OBSERVADAS AS CONDICOES LEGAIS.