BR102015020854A2 - mecanismo e método para acesso a dados - Google Patents

mecanismo e método para acesso a dados Download PDF

Info

Publication number
BR102015020854A2
BR102015020854A2 BR102015020854A BR102015020854A BR102015020854A2 BR 102015020854 A2 BR102015020854 A2 BR 102015020854A2 BR 102015020854 A BR102015020854 A BR 102015020854A BR 102015020854 A BR102015020854 A BR 102015020854A BR 102015020854 A2 BR102015020854 A2 BR 102015020854A2
Authority
BR
Brazil
Prior art keywords
data
topic
temporary
shared memory
clients
Prior art date
Application number
BR102015020854A
Other languages
English (en)
Inventor
Christian Reynolds Decker
Gregory Reed Sykes
Original Assignee
Ge Aviat Systems Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ge Aviat Systems Llc filed Critical Ge Aviat Systems Llc
Publication of BR102015020854A2 publication Critical patent/BR102015020854A2/pt

Links

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
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Computer And Data Communications (AREA)

Abstract

resumo “mecanismo e método para acesso a dados” trata-se de um mecanismo e método para acesso a dados em uma memória compartilhada por pelo menos um cliente, que inclui uma alocação de dados na memória compartilhada, sendo que a memória é configurada em uma pluralidade de armazenamentos temporários, e acesso aos dados por um cliente ou um servidor sem travar ou restringir acesso aos dados.

Description

“MECANISMO E MÉTODO PARA ACESSO A DADOS” Antecedentes da Invenção [001] Uma unidade substituível de linha (LRU) consiste em um componente modular de uma unidade maior, tal como um veículo ou uma aeronave, e é projetada dentro das especificações para garantir que as mesmas possam ser trocadas e/ou substituídas no evento de uma falha. As LRUs de uma aeronave, por exemplo, podem incluir sensores, rádios, sistemas inteiramente contidos ou outros equipamentos auxiliares para o gerenciamento e/ou a operação de funções de aeronave. No ambiente da aeronave, as LRUs podem ser projetadas para operar de acordo com uma operação particular, interoperabilidade e/ou formar padrões de fator, tais como aqueles definidos pelos padrões de séries ARINC. [002] Uma pluralidade de LRUs pode vir a ser interconectada por uma rede de dados para acesso ou troca de dados em uma memória comum, ou compartilhada, de um computador de controle de vôo ou outro sistema computacional. O computador de controle de vôo ou outro sistema computacional pode gerenciar e/ou operar adicionalmente funções de aeronave.
Breve Descrição da Invenção [003] Em uma realização, um mecanismo para acesso de dados em uma memória compartilhada por pelo menos um cliente, sendo que o mecanismo inclui uma alocação de dados na memória compartilhada em pelo menos um tópico, sendo que a alocação é acessível por meio de um endereço predeterminado constante, sendo que o pelo menos um tópico tem um número de armazenamentos temporários de memória, sendo que o número de armazenamentos temporários é igual ao número de clientes que acessam o pelo menos um tópico, mais dois para cada servidor que acessa o pelo menos um tópico, sendo que cada cliente e cada servidor tem um indicador de acesso ativo, e um diretor de indicador de ativo para direcionar os indicadores de acesso ativo para os armazenamentos temporários com base em uma solicitação de transação a partir de um cliente ou servidor. Um armazenamento temporário sempre inclui os dados mais recentes na memória compartilhada, e pelo menos um armazenamento temporário se encontra sempre disponível para acessar dados na memória compartilhada. Adicionalmente, os indicadores de acesso ativo são alocados entre os armazenamentos temporários pelo diretor de indicador de acesso ativo com uso somente das transações de linguagem do conjunto de máquinas sem a cópia de dados em um nível do sistema operacional. [004] Em outra realização, um método para acessar dados em uma memória compartilhada através de pelo menos um cliente, sendo que o método inclui a alocação de dados na memória compartilhada em pelo menos um tópico, designar um endereço simples predeterminado para acesso a cada pelo menos um tópico, alocar um número de armazenamentos temporários para cada pelo menos um tópico, igual ao número de clientes que acessam o pelo menos um tópico, mais dois para cada servidor que acessa o pelo menos um tópico, e responder às solicitações de transação a partir pelo menos de um dentre os clientes ou os servidores alocando-se um indicador de acesso ativo para cada respectivo cliente ou servidor em um armazenamento temporário. Os dados são acessados por meio do armazenamento temporário sem a cópia dos dados em um nível operacional do sistema.
Breve Descrição das Figuras [005] Nos desenhos: A Figura 1 consiste em uma vista esquemática de uma rede de comunicação de dados de uma aeronave, de acordo com uma realização da invenção. A Figura 2 consiste em uma vista esquemática de clientes que acessam os armazenamentos temporários de memória de um tópico, de acordo com uma realização da invenção. A Figura 3 consiste em uma vista esquemática de um mecanismo para clientes acessarem os dados mais recentes no armazenamento temporário, de acordo com uma realização da invenção. A Figura 4 compreende de uma vista esquemática de um mecanismo para clientes e um servidor que realiza uma transação de leitura/gravação para dados em um armazenamento temporário, de acordo com uma realização da invenção.
Descrição das Realizações da Invenção [006] As realizações descritas da presente invenção são ilustradas no ambiente da aeronave que tem uma pluralidade de sensores, sistemas, componentes de software e/ou componentes físicos da aeronave, todos operando em um sistema único que acessa diretamente uma memória em comum ou compartilhada. Entretanto, as realizações da invenção podem ser implantadas em qualquer ambiente com uso de clientes e servidores que acessam uma memória compartilhada única ou comum. Além disso, enquanto “clientes” e “servidores” são descritos adiante, deve ser entendido que as realizações em particular descritas representam exemplos não limitantes tanto de clientes quanto de servidores. Adicionalmente, enquanto um “cliente” vem é descrito, qualquer componente ou “consumidor” de dados advindos da memória compartilhada podem ser incluídos. Da mesma forma, enquanto que um “servidor” vem a ser descrito, qualquer componente de “produção” de dados para a memória compartilhada pode ser incluído. Exemplos adicionais de clientes e servidores podem incluir unidades discretas locais ou afastadas, aplicativos, processos computacionais, encadeamentos de processamento, etc., ou qualquer combinação dos mesmos, tendo acesso a uma memória compartilhada. Por exemplo, uma pluralidade de “clientes” pode residir em um único computador ou unidade computacional, acessando memória de acesso aleatório (RAM) comum. [007] A Figura 1 mostra uma ilustração esquemática de um sistema de comunicação de dados 24 de acordo com uma realização da invenção. Um ou mais encadeamentos ou processos computacionais 26, em que cada um inclui um ou mais clientes 18, têm acesso comunicativo a uma memória compartilhada 22, mostrada como RAM compartilhada. Adicionalmente um ou mais encadeamentos ou processos computacionais 28 podem, cada um, incluir um ou mais servidores 20, também têm acesso à memória compartilhada 22. Nesse sentido, cada processo 26, 28, cliente 18 e servidor 20 pode ter acesso à memória compartilhada 22. Adicionalmente, embora alguns processos 26, 28 sejam ilustrados mostrando somente o respectivo cliente 18 ou servidores 20, a realização da invenção pode incluir processos 26, 28 que incluem uma combinação de clientes 18 e/ou servidores 20 dentro de um único processo 26, 28. Embora um servidor 20 seja descrito, as realizações da invenção podem incluir qualquer sistema computacional, um sistema computacional que executa em um sistema operacional AEINC 653, um sistema de gerenciamento de vôo, um computador de vôo, etc. [008] A memória 33 pode incluir memória de acesso aleatório (RAM), memória fiash ou um mais tipos diferentes de memória eletrônica portátil, etc., ou qualquer combinação adequada desses tipos de memória. Os clientes 18 e/ou os servidores 20 podem ser operacionalmente acopladaos memória 22 de modo que os clientes 18 e/ou os servidores 20, ou quaisquer programas computacionais ou processos nos mesmos, possam acessar pelo menos uma porção da memória 22 (por exemplo, “memória compartilhada 22”). [009] Conforme emprego dado neste relatório, “programas” e/ou “processos” podem incluir ou uma porção ou todo o programa computacional que tem um conjunto de instruções executável para o controle do gerenciamento e/ou operação de pelo menos um dos respectivos clientes 18, servidores 20, ou funções da aeronave. O programa e/ou processos podem incluir um produto de programa computacional que pode incluir mídias legíveis por máquina para a condução ou incorporação de instruções executáveis por máquina ou estruturas de dados armazenadas nas mesmas. Tais mídias legíveis por máquina podem consistir em quaisquer mídias disponíveis, que possam ser acessadas por um computador de finalidade ou propósito especial ou outra máquina com um processador. Em geral, tal programa computacional pode incluir rotinas, programas, objetos, componentes, estruturas de dados, algoritmos, etc., que incorporem o efeito técnico de executar tarefas particulares ou implantar tipos de dados abstratos particulares. As instruções executáveis por máquina, associadas às estruturas de dados e programas representam exemplos de códigos de programas para a execução do intercâmbio de informação da forma descrita por este relatório. As instruções executáveis por máquina podem incluir, por exemplo, instruções de dados, que fazem com que um computador de finalidades genéricas, computador de finalidades específicas, controlador ou máquina de processamento de finalidade especial desempenhem uma certa função ou grupo de funcionalidades. [010] A rede de comunicações de dados 24 mostrada na Figura 1 compreende meramente uma representação esquemática de uma realização da invenção, e é utilizada para ilustrar que uma pluralidade de clientes 18 e servidores 20 podem estar localizados no mesmo sistema computacional da aeronave. A localização exata dos clientes 18 e dos servidores 20 não é relevante para as realizações da invenção. Adicionalmente, mais ou menos clientes 18 e/ou servidores 20 podem ser incluídos nas realizações da invenção. [011] A rede de comunicações 24 pode incluir um barramento de sistema ou outros componentes de comunicação com o sistema computacional para a facilitação da interconexão de comunicação entre os clientes 18 e servidores 20. Além disso, a configuração e operação da rede de comunicação 24 podem ser definidas através de um conjunto de padrões ou regulamentos aplicáveis aos ambientes em particular da aeronave. [012] A memória 22 é apresentada compreendendo adicionalmente uma alocação de dados 30 em pelo menos um agrupamento, ou “tópico” 32, posicionado em uma locação de memória com endereçamento constante predeterminado, ou “endereço constante” 34 da memória 22. Conforme uso dado por este relatório, um “tópico” pode incluir um subconjunto predeterminado de memória 22 alocado para uma utilização particular de dados armazenados para a aeronave. Por exemplo, um único tópico 32 pode compreender uma única alocação de dados, tal como a velocidade do ar da aeronave, ou pode compreender uma pluralidade de elementos de dados relacionados ou não, tais como pontos de caminho ou o plano atual de vôo. Conforme mostrado, os tópicos 32 podem ser arranjados em modo sequenciado, originados a partir do endereço constante 34, tal como uma lista simplesmente correlacionada; entretanto, estruturas de organização adicionais dos tópicos 32 podem ser configuradas incluir matrizes, alocações variáveis para cada tópico 32, etc., todas se originando a partir da locação de endereço constante 34. [013] Cada um dos processos 26, 28 e/ou, respectivamente, os clientes 18 e os servidores 20 são reconfigurados para incluírem o endereço constante predeterminado 34 da memória compartilhada 22. Nesse sentido, cada processo 26, 28, clientes 18 e/ou servidor 20 são pré-configurados para identificar a localização do endereço constante 34 e, consequentemente, um ou mais tópicos 32 que têm os dados a serem acessados. De acordo com o uso dado por este relatório, cada cliente 18 e/ou cada processo de cliente 26 pode ser considerado como um “cliente” para acesso a dados na memória compartilhada 22, e cada servidor 20 e/ou cada processo de servidor 28 pode ser considerado como “servidor” para acesso a dados na memória compartilhada 22. [014] Em uma realização da invenção, o número de tópicos 32 na memória compartilhada 22 é pré-definido durante a inicialização da memória 22, com base em um número conhecido de tópicos 32 acessíveis aos clientes e/ou aos servidores. Em outra realização da invenção, o número de tópicos 32 é definido no ou durante o tempo de execução pelo número coletivo de tópicos 32 acessíveis pelos clientes e/ou servidores. Nesse sentido, o número de tópicos 32 pode ser dinâmico, aumentando e diminuindo conforme o necessário, ou somente aditivo quando tópicos adicionais 32 precisam ser acessados. [015] Voltando atenção agora a Figura 2, cada tópico 32 inclui ainda uma pluralidade de armazenamentos temporários de memória 36 configurados para armazenarem um número predeterminado de dados conforme o necessário para um elemento de dados em particular. Por exemplo, um tópico 32 para acesso à velocidade do ar da aeronave pode apresentar uma pluralidade de armazenamentos temporários 36, sendo que cada um é configurado para armazenar oito bytes. Em outro exemplo, um tópico 32 para acesso ao plano de vôo atual pode apresentar uma pluralidade de armazenamentos temporários 36, sendo que cada um é configurado para armazenar mil bytes. Para finalidades ilustrativas, a pluralidade de armazenamentos temporários 36 é mostrada apresentando diferentes estados de classificação, incluindo ocupado 44, desocupado 46 e contendo os dados mais recentes 48. Cada estado irá ser explicado em detalhes adicionais adiante. [016] Cada tópico 32 é ainda mostrado incluindo um elemento funcional de direcionamento e/ou controle, tal como um diretor indicador de acesso ativo 38, O diretor indicador de acesso ativo 38 direciona o acesso à pluralidade de armazenamentos temporários 36 com base em uma solicitação de transação de dados, os quais são descritos mais adiante. As realizações alternativas da invenção podem incluir um diretor de indicador de acesso ativo 38 separado ou remoto, por exemplo, um controlador ou processador, localizado remotamente a partir do tópico 32. [017] Conforme mostrado esquematicamente, um ou mais clientes 40, sendo que cada um compreende um indicador de acesso ativo 42, têm a capacidade de acessar um armazenamento temporário 36 específico identificado através do respectivo indicador de acesso ativo 42. Adicionalmente, um ou mais servidores 50 compreendem, sendo que cada um compreende um indicador de acesso ativo 52, têm a capacidade de acessar um armazenamento temporário 36 específico identificado pelo respectivo indicador de acesso ativo 52. Conforme ilustrado, um primeiro cliente 54 e um segundo cliente 56 são associados, respectivamente, a um primeiro armazenamento temporário 58 e a um segundo armazenamento temporário 60. Adicionalmente, o primeiro e o segundo armazenamentos temporários 58, 60 são identificados como armazenamentos temporários ocupados 44. Um terceiro cliente 62 é mostrado desassociado do tópico 32, assim como o servidor 50. Embora cada um dos indicadores de acesso ativo 42, 53 seja mostrado como parte dos clientes 40 ou servidores 50, respectivamente, as realizações da invenção podem incluir indicadores de acesso ativo 42, 53 como parte do tópico 32 e/ou dos armazenamentos temporários 36. [018] Em uma realização da invenção, o número de armazenamentos temporários 36 em cada tópico 32 e o tamanho de cada armazenamento temporário 32 são pré-definidos durante a inicialização da memória compartilhada 22, com base no número conhecido de clientes 40 e/ou servidores 50 com capacidade de acesso ao tópico 32. Em uma outra realização da invenção, o número de armazenamentos temporários 36, em cada tópico 32, é definida no ou durante o tempo de execução através do número coletivo de clientes 40, e servidores 50, e então acessando o tópico 32. Nesse sentido, o número de armazenamentos temporários 36 pode ser dinâmica, aumentando ou diminuindo conforme o necessário. Ou somente aditiva quando clientes 40 e/ou servidores 50 adicionais estão vindo a acessar o tópico 32. Adicionalmente, as realizações da invenção podem incluir a definição de armazenamentos temporários 36 em um estilo similar na forma de definição dos tópicos 32, por exemplo, pré-definindo tanto os tópicos 32 quanto os armazenamentos temporários 36 na inicialização da memória compartilhada 22, ou em diferentes estilos, por exemplo, pré-definindo os tópicos 32, sendo que os armazenamentos temporários 36 são definidos dinamicamente. Em quaisquer das realizações descritas, o número total de armazenamentos temporários 36 pode ser igual ao número de clientes 40 que acessam o tópico 32, mais dois armazenamentos temporários 36 para cada servidor 50 que acessa o tópico 32. [019] Voltando atenção agora a Figura 3, é descrito um mecanismo para acesso a dados no tópico 32 e/ou no armazenamento temporário 36 da memória compartilhada 22. Um terceiro cliente 62 é acoplado comunicativamente ao tópico 32, e se comunica com o diretor de indicador de acesso ativo 38 do tópico (ilustrado como uma comunicação em linha pontilhada 64) para a solicitação de uma transação com os dados. O diretor de indicador de acesso ativo 38 responde ao terceiro cliente 62, identificando um terceiro armazenamento temporário 66, o qual inclui os dados mais recentes 48 do tópico 32. O terceiro cliente 62, agora direcionado ao terceiro armazenamento temporário 66, instrui o seu indicador de acesso ativo 42 para o terceiro armazenamento temporário 66 (ilustrado como uma segunda comunicação 68). Nesse estágio, o terceiro cliente 62 acessa os dados armazenados no terceiro armazenamento temporário 66 (os dados mais recentes 48), e executa a transação pretendida nos dados. [020] O diretor de indicador de acesso ativo 38 pode direcionar os indicadores de acesso ativo 42, 52, de um ou mais clientes 40 ou servidor 50 a um armazenamento temporário particular 36 com base na solicitação de transação específica. Por exemplo, a transação pode incluir pelo menos um dentre ler os dados armazenados no armazenamento temporário 36 e a gravação dos novos dados no armazenamento temporário 36 com base em um processamento ou computação dos dados lidos, gravar os novos dados no armazenamento temporário 36 com base nos dados providos pelo cliente (ou seja,”leitura/gravação”) e/ou gravar os novos dados a partir do servidor 52 no armazenamento temporário 36 com instrução de comprometer os novos dados, por exemplo, a uma outra porção da memória compartilhada 32, de modo que sejam visíveis e/ou acessíveis a um ou mais clientes 40 (ou seja, “armazenar”). Em um exemplo, uma transação de “armazenar” pode identificar os dados comprometidos na forma dos dados 48 mais recentes. [021] Em um exemplo do mecanismo para acesso a dados no tópico 32 e/ou no armazenamento temporário 36 da memória compartilhada 22, um ou mais clientes 40 em comunicação com o tópico 32 que solicitam somente uma transação de leitura podem, cada um, ser designados para o mesmo armazenamento temporário, tal como o terceiro armazenamento 66, o qual inclui os dados mais recentes 48 do tópico 32. Uma vez que nehum cliente irá modificar os dados nessa instância, não haverá colisões, ou questões com a integridade de dados dos dados acessados. Como tal, clientes somente de leitura 40 podem realizar suas transações de forma não sincronizada em relacao uns aos outros sem interferência. Conforme explicado, a razão de clientes somente de leitura designados 40 para armazenamentos temporários 36 não precisa ser de um para um. Uma vez que os clientes somente de leitura 40 tenham finalizado as suas respectivas transações, os mesmos podem desacoplar de modo comunicativo de seus respectivos armazenamentos temporários 36 até a solicitação de uma outra transação. Mediante uma segunda solicitação de transação, o mecanismo repete de modo que o cliente 4 possa acessar os dados mais recentes 48, conforme identificado pelo diretor de indicador de acesso ativo 38, que podem ser os mesmos dados no mesmo armazenamento temporário, 36, ou novos dados no mesmo ou em outro armazenamento temporário 36 diferente. [022] O exemplo descrito anteriormente do mecanismo pode ser ilustrado na Figura 4, construindo-se o mecanismo mostrado na Figura 3. Nesse exemplo, o servidor 50 esteve executando uma transcao de leitura/gravação no primeiro armazenamento temporário 58, em que os dados gravados serão identificados como os mais recentes “novos” dados 48. Conforme mostrado, quando o servidor 50 completa a transação de leitura/gravação, o servidor 50 irá desacoplar a comunicação ao primeiro armazenamento temporário 58, e entrar em comunicação com o diretor de indicador de acesso ativo 38 que o primeiro armazenamento temporário 58 inclui como os mais recentes “novos” dados 48 (a comunicação ilustrada na forma de comunicação em linha pontilhada 72). O diretor de indicador de acesso ativo 38, por sua vez, identifica o primeiro armazenamento temporário 58 como incluindo os dados mais recentes 48 e irá direcionar em seguida a mais nova comunicação aos clientes 40 aos dados mais recentes 48 do primeiro armazenamento temporário 58. Também é mostrado, se o servidor 50 solicitar uma nova transação de leitura/gravação, o diretor de indicador de acesso ativo 38 copia, opcionalmente, os dados mais recentes 48 do primeiro armazenamento temporário para o quarto armazenamento temporário 70, e direciona o indicador de acesso ativo 52 do servidor para o quarto armazenamento temporário 70 para realizar a nova transação de leitura/gravação. [023] Quando qualquer servidor 50 que realiza uma transação em um armazenamento temporário 36 tiver completado a sua transação, independente do tipo de transação, o servidor 50 pode instruir, opcionalmente, a finalização da transação para o diretor de indicador de acesso ativo 38. O diretor de indicador de acesso ativo 38, nesse sentido, pode manter o registro de quais armazenamentos temporários 36 se encontram presentemente em uso e/ou presentemente sendo acessados. Se o servidor 50 solicitar uma transação adicional, o servidor irá se comunicar com o diretor de indicador de acesso ativo 38, que irá designar um armazenamento temporário 46 com o qual deverá finalizar a nova transação. [024] Embora esse exemplo ilustre operações do servidor 50, deve ser entendido que os clientes 40 podem ter a capacidade de realizar transações de leitura similares. Além disso, as realizações da invenção podem incluir os clientes 40 e/ou servidores 50 que podem fornecer transações de leitura ou gravação/leitura similares às descritas neste relatório. Nesse sentido, o servidor 50 pode, por vezes, atuar como se fosse um cliente 40, e um cliente 40 pode por vezes atuar como se fosse um servidor 50. Entretanto, existem algumas diferenças entre as operações do cliente 40 e do servidor 50. Por exemplo, somente múltiplos clientes somente de leitura 40 podem acessar um único armazenamento temporário de memória 36 simultaneamente, somente um único servidor 50 pode acessar um único armazenamento temporário 36 em uma oportunidade. Em outro exemplo, embora o diretor de indicador de acesso ativo 38 possa direcionar o indicador de acesso ativo 42 de um cliente 40 para um armazenamento temporário que inclui os dados 48 mais recentes para uma transação, o diretor de indicador de acesso ativo 38 irá direcionar somente o indicador de acesso ativo 52 de um servidor 50 para a um armazenamento temporário de memória 46, e nunca o mesmo armazenamento temporário de dados 48 recentes, de modo a impedir a corrupção de dados dos mais recentes dados 48. [025] O mecanismo descrito acima é disposto e configurado de modo que um dos armazenamentos temporários 36 do tópico 32 venha sempre a ser identificado pelo diretor de indicador de acesso ativo 38 como contendo os dados mais recentes 48, para acesso por meio de um ou mais clientes 40 e/ou por um ou mais servidores 50. Adicionalmente, o mecanismo descrito acima pode ser configurado de modo que cada cliente 40 que execita uma transação junto aos dados acessíveis do tópico 32 tenha acesso proporcionado quanto aos dados 48 mais recentes ao mesmo tempo que o cliente 40 solicita a transação. Caso os dados mais recentes sejam identificados durante as transações existentes do cliente 40, aquele cliente 40 irá completar a transação nos dados 48 mais recentes ao mesmo tempo da transação solicitada. Posto de outra maneira, os dados 48 mais recentes podem ser confirmados ou garantidos somente mo tempo da solicitação da transação e não durante ou na finalização da transação. [026] Os mecanismos descritos acima podem funcionar com uso somente das transações de linguagem de conjunto de máquina sem a cópia dos dados em um nível de designação além da linguagem de conjunto de máquina, tal como a cópia dos dados em um nível de sistema operacional (por exemplo, “cópia zero”). O efeito técnico das realizações descritas acima consiste na operação de cópia zero alcançada pelo direcionamento dos clientes 40 e/ou servidores 50, com uso dos indicadores de acesso ativo 42, 52, para os respectivos armazenamentos temporários 36 que incluem os dados 48 mais recentes, de modo que os dados 48 mais recentes nunca sejam “travados” ou “bloqueados” a partir do acesso através de outros clientes 40 e/ou servidores 50. Adicionalmente, o uso de linguagem de conjunto de máquina possibilita operações de “permutações atômicas” dos indicadores, em que é finalizada a atualização em um simples ciclo atômico operacional, e não podem ser interrompidas através de outras atualizações nos indicadores de acesso ativo uma vez que outras atualizações não podem ser finalizadas em um ciclo operacional mais curto do que as permutações atômicas. [027] Através da utilização das instruções de linguagem de conjunto de máquina e das estruturas de dados básicas (por exemplo, listas unicamente ligada, indicadores básicos), o mecanismo fornece comunicações de dados entre processos assíncronas entre pelo menos um servidor 50 e pelo menos um cliente 40, em uma memória compartilhada 22, utilizando uma permuta de dados de cópia zero, permitindo acesso “livre de travamento” ou “livre de bloqueio” aos dados acessíveis sem a configuração complexa da prioridade de processo, ou o fenômeno de “Inversão de prioridade”, em que um processo de prioridade inferior de pré-acesso trava os dados, não “liberando” o mesmo para acesso mesmo quando um processo de prioridade superior solicita acesso. De fato, uma vez que as operações que fazem uso de instruções de máquina tendem em direção a “o primeiro a chegar aos dados vence”, os processos de prioridade mais elevada podem sempre executar primeiramente as suas operações. [028] As realizações da invenção podem ainda utilizar os mecanismos descritos acima através da provisão das interfaces programáveis de aplicação (APIs) de programação para acesso aos mecanismos em um nível de sistema operacional (ou nível de aplicação, etc.) por meio dos APIs. O efeito técnico consiste em que as realizações descritas acima fornecem o método de cópia zero para prevenção quanto ao travamento de dados, bloqueio de dados e/ou inversão de prioridade. [029] Uma vantagem adicional que pode ser observada nas realizações acima é que as realizações descritas acima impedem o pobre desempenho do sistema advindo dos esforços de cópia de dados em um nível de linguagem não-trabalhada. Os esforços de cópia de dados podem tomar um longo período de tempo quanto as solicitações de leitura e/ou gravação de grandes arquivos. Através da utilização de indicadores e permutações de indicador, a cópia adicional pode ser evitada enquanto que proporcionando acesso para todos os componentes que necessitem de acesso aos dados. Uma outra vantagem das realizações descritas acima inclui um mecanismo embutido para a gravação de dados mais antigos junto aos armazenamentos temporários, e portanto, não requerem quaisquer tipos de esquemas de gerenciamento de dados de “coleta de lixo”. Além disso, os dados típicos sendo compartilhados a partir de um servidor junto a um ou mais clientes são executados pela criação de uma armazenagem de dados globais com a proteção dos mesmos da utilização de semáforos (ou seja, valores de controle de acesso, tais como indicadores travados/sem-travamento), por exemplo, em um nível do sistema operacional, quaisquer outras proteções contra travamento e troca de dados (por exemplo, interrupções de dados, etc.), e cópia posterior dos dados, que pode ser de custo bastante elevado em termos de tempo de processamento, especialmente quando o armazenamento de dados é grande. Isto dá condições por operações mais eficientes, mais rápidas, com acesso livre de travamento, conforme descrito acima. [030] Outras vantagens que podem ser observadas nas realizações descritas acima incluem que o desígnio do tópico apresenta a flexibilidade para a preservação dos processos acoplados imprecisamente, requerendo pequena coordenação, e não requerendo uma “inicialização em estágios” (ou seja, processos, clientela, e/ou servidores podem vir alinhados em circuito em qualquer oportunidade). Adicionalmente, a implantação dos APIs descritos acima pode resultar no desenvolvimento de custos reduzidos para o desenvolvimento do sistema, e as margens de desempenho aumentadas junto aos componentes físicos similares em comparação com os diferentes métodos de cópia. [031] Até um ponto ainda não descrito, tem-se que as diferenciadas estruturas e aspectos das diversas realizações podem ser utilizadas em combinação entre si conforme o desejado. Uma referida característica pode não ter sido ilustrada em todas as realizações não querendo implicar que não possa haver uma construção nesse sentido, apenas buscou-se uma simplicidade na descrição. Portanto, os diversos aspectos das diferenciadas realizações podem ser misturados e combinados conforme o desejado para a formação de novas realizações, tenham sido ou não expressamente descritas as novas realizações. Todas as combinações ou permutações de características descritas neste relatório são abrangidas por este relatório. [032] Este relatório descritivo faz uso de exemplos para a descrição da invenção, incluindo o melhor modo, e também dando condições a que qualquer especialista na técnica na prática da invenção, incluindo a feitura e utilização de quaisquer dispositivos ou sistemas e execução de quaisquer dos métodos incorporados. O escopo capacitado a patente da invenção vem a ser definido pelo quadro de reivindicações, e pode incluir outros exemplos que venham a ocorrer aos especialistas da área. Tais outros exemplos pretendem estar inclusos dentro do âmbito das reivindicações caso apresentem elementos estruturais idênticos que não difiram da linguagem literal das reivindicações, ou caso eles incluam elementos estruturais equivalentes.

Claims (15)

1. MECANISMO PARA ACESSO A DADOS, em uma memória compartilhada para pelo menos um cliente, caracterizado pelo fato de que compreende: uma alocação de dados na memória compartilhada em pelo menos um tópico, sendo que a alocação é acessível por um endereço constante predeterminado; sendo que o pelo menos um tópico tem inúmeros armazenamentos temporários, sendo que o número de armazenamentos temporários é igual ao número de clientes que acessam o pelo menos um tópico, mais dois para cada servidor que acessa o pelo menos um tópico; sendo que cada cliente e cada servidor têm um indicador de acesso ativo; e um diretor de indicador de acesso ativo para direcionar os indicadores de acesso ativo para os armazenamentos temporários com base em uma solicitação de transação a partir de um cliente ou um servidor; em que um armazenamento temporário inclui sempre os dados mais recentes na memória compartilhada, e pelo menos um armazenamento temporário está sempre disponível para acessar dados na memória compartilhada; e em que os indicadores de acesso ativo são alocados entre os armazenamentos temporários pelo diretor de indicador de acesso ativo fazendo uso somente de transações de linguagem de conjunto de máquina sem copiar os dados em um nível de sistema operacional.
2. MECANISMO, de acordo com a reivindicação 1, caracterizado pelo fato de que o mecanismo é um sistema de gerenciamento de vôo.
3. MECANISMO, de acordo com a reivindicação 1, caracterizado pelo fato de que uma pluralidade de tópicos é arranjada na memória compartilhada.
4. MECANISMO, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um tópico e o número de armazenamentos temporários são pré-definidos durante a inicialização da memória compartilhada.
5. MECANISMO, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um tópico ou o número de armazenamentos temporários é definido durante o tempo de execução através de um número coletivo de clientes e servidores acessando o pelo menos um tópico.
6. MECANISMO, de acordo com a reivindicação 1, caracterizado pelo fato de que pelo menos um dentre o cliente ou o servidor acessa os dados associados ao armazenamento temporário de indicador de acesso ativo direcionado.
7. MECANISMO, de acordo com a reivindicação 6, caracterizado pelo fato de que o diretor de indicador de acesso ativo direciona os indicadores de acesso ativo para novas transações para a um armazenamento temporário diferente que compreende os dados mais recentes em resposta a uma solicitação de transação finalizada.
8. MÉTODO PARA ACESSO A DADOS, em uma memória compartilhada por pelo menos um cliente, caracterizado pelo fato de que o método compreende: alocar dados na memória compartilhada em pelo menos um tópico; designar um único endereço predeterminado para acessar cada pelo menos um tópico; alocar um número de armazenamentos temporários para cada pelo menos um tópico, igual ao número de clientes que acessam o pelo menos um tópico, mais dois para cada servidor que acessa pelo menos um tópico; e responder a solicitações de transação a partir pelo menos um dentre clientes ou servidores alocando-se um indicador de acesso ativo para cada respectivo cliente ou servidor para a um armazenamento temporário; em que os dados são acessados por meio do armazenamento temporário sem copiar os dados ao nível do sistema operacional
9. MÉTODO, de acordo com a reivindicação 8, caracterizado pelo fato de que acessar os dados por meio do armazenamento temporário impede o travamento dos dados.
10. MÉTODO, de acordo com a reivindicação 8, caracterizado pelo fato de que a alocação dos dados em pelo menos um tópico, a designação de um único endereço predeterminado e a alocação do número de armazenamentos temporários para cada pelo menos um tópico ocorrem durante a inicialização da memória compartilhada.
11. MÉTODO, de acordo com a reivindicação 8, caracterizado pelo fato de que pelo menos um dentre a alocacao dos dados em pelo menos um tópico ou a alocação do número de armazenamentos temporários para cada pelo menos um tópico ocorrem durante o tempo de execução com base no número coletivo de clientes e servidores que acessam o pelo menos um tópico.
12. MÉTODO, de acordo com a reivindicação 8, caracterizado pelo fato de que a resposta às solicitações de transação compreende adicionalmente direcionar o indicador de acesso ativo para cada respectivo cliente para a um armazenamento temporário que compreende os dados mais recentes na memória compartilhada.
13. MÉTODO, de acordo com a reivindicação 12, caracterizado pelo fato de que compreende adicionalmente pelo menos um dentre os clientes ou os servidores que realizam uma transação nos dados acessados.
14. MÉTODO, de acordo com a reivindicação 12, caracterizado pelo fato de que a realização de uma transação compreende pelo menos um dentre ler os dados, gravar os dados novos no armazenamento temporário ou armazenar os dados de armazenamento temporário na memória compartilhada.
15. MÉTODO, de acordo com a reivindicação 14, caracterizado pelo fato de que compreende adicionalmente, em resposta a uma solicitação de transação finalizada, atualizar o direcionamento do indicador de acesso ativo para cada respectivo cliente ou servidor para um armazenamento temporário diferente que compreende os dados mais recentes.
BR102015020854A 2014-09-15 2015-08-28 mecanismo e método para acesso a dados BR102015020854A2 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/486,336 US9794340B2 (en) 2014-09-15 2014-09-15 Mechanism and method for accessing data in a shared memory

Publications (1)

Publication Number Publication Date
BR102015020854A2 true BR102015020854A2 (pt) 2016-03-29

Family

ID=54363001

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102015020854A BR102015020854A2 (pt) 2014-09-15 2015-08-28 mecanismo e método para acesso a dados

Country Status (7)

Country Link
US (1) US9794340B2 (pt)
JP (1) JP2016062608A (pt)
CN (1) CN105589754B (pt)
BR (1) BR102015020854A2 (pt)
CA (1) CA2902844A1 (pt)
FR (1) FR3025908B1 (pt)
GB (1) GB2532842B (pt)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560542B2 (en) * 2014-09-15 2020-02-11 Ge Aviation Systems Llc Mechanism and method for communicating between a client and a server by accessing message data in a shared memory
US9710190B1 (en) * 2014-09-30 2017-07-18 EMC IP Holding Company LLC Shared memory
US10140036B2 (en) 2015-10-29 2018-11-27 Sandisk Technologies Llc Multi-processor non-volatile memory system having a lockless flow data path
US10417261B2 (en) 2016-02-18 2019-09-17 General Electric Company Systems and methods for flexible access of internal data of an avionics system
WO2018014282A1 (en) * 2016-07-21 2018-01-25 Baidu.Com Times Technology (Beijing) Co., Ltd. Efficient communications amongst computing nodes for operating autonomous vehicles
US10037166B2 (en) 2016-08-03 2018-07-31 Ge Aviation Systems Llc Tracking memory allocation
US10282251B2 (en) 2016-09-07 2019-05-07 Sandisk Technologies Llc System and method for protecting firmware integrity in a multi-processor non-volatile memory system
US11531645B2 (en) * 2017-12-15 2022-12-20 Slack Technologies, Llc Method, apparatus and computer program product for improving data indexing in a group-based communication platform
JP7042138B2 (ja) 2018-03-30 2022-03-25 日立Astemo株式会社 処理装置
US10572405B1 (en) 2018-12-28 2020-02-25 Didi Research America, Llc Writing messages in a shared memory architecture for a vehicle
WO2020139395A1 (en) * 2018-12-28 2020-07-02 Didi Research America, Llc Reading messages in a shared memory architecture for a vehicle
WO2020139389A1 (en) * 2018-12-28 2020-07-02 Didi Research America, Llc Shared memory architecture for a vehicle
US10785170B2 (en) * 2018-12-28 2020-09-22 Beijing Voyager Technology Co., Ltd. Reading messages in a shared memory architecture for a vehicle
WO2020139396A1 (en) * 2018-12-28 2020-07-02 Didi Research America, Llc Writing messages in a shared memory architecture for a vehicle
US10747597B2 (en) 2018-12-28 2020-08-18 Beijing Voyager Technology Co., Ltd. Message buffer for communicating information between vehicle components
WO2020139393A1 (en) * 2018-12-28 2020-07-02 Didi Research America, Llc Message buffer for communicating information between vehicle components
US11327489B2 (en) 2018-12-28 2022-05-10 Beijing Voyager Technology Co., Ltd. Shared memory architecture for a vehicle
US11995922B2 (en) 2020-07-30 2024-05-28 Ge Aviation Systems Llc Flight management system and method for reporting an intermitted error
CN112486684B (zh) * 2020-11-30 2022-08-12 展讯半导体(成都)有限公司 行车影像显示方法、装置及平台、存储介质、嵌入式设备
US11893273B2 (en) * 2022-01-20 2024-02-06 Vmware, Inc. Crash-safe tiered memory system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3107094B2 (ja) 1991-08-06 2000-11-06 富士通株式会社 共用バッファのロック期間短縮処理方法及び装置
US5715447A (en) 1991-08-06 1998-02-03 Fujitsu Limited Method of and an apparatus for shortening a lock period of a shared buffer
KR0152714B1 (ko) 1995-12-06 1998-10-15 양승택 다중 사용자 환경의 저장시스템에서 버퍼 잠금기법을 이용한 버퍼 관리방법
WO2001013229A2 (en) 1999-08-19 2001-02-22 Venturcom, Inc. System and method for data exchange
US20020144010A1 (en) * 2000-05-09 2002-10-03 Honeywell International Inc. Communication handling in integrated modular avionics
US7454477B2 (en) * 2005-05-16 2008-11-18 Microsoft Corporation Zero-copy transfer of memory between address spaces
US20080148095A1 (en) * 2006-12-14 2008-06-19 Motorola, Inc. Automated memory recovery in a zero copy messaging system
CN101296236B (zh) * 2008-06-12 2011-06-08 北京中星微电子有限公司 多用户实时访问多媒体数据的方法、系统及数据客户端
US8555292B2 (en) * 2008-06-27 2013-10-08 Microsoft Corporation Synchronizing communication over shared memory
US8316368B2 (en) * 2009-02-05 2012-11-20 Honeywell International Inc. Safe partition scheduling on multi-core processors
US9098462B1 (en) * 2010-09-14 2015-08-04 The Boeing Company Communications via shared memory
US9396227B2 (en) 2012-03-29 2016-07-19 Hewlett Packard Enterprise Development Lp Controlled lock violation for data transactions
EP2865164B1 (en) * 2012-06-21 2019-08-14 Saab Ab Dynamic memory access management
US9176872B2 (en) * 2013-02-25 2015-11-03 Barco N.V. Wait-free algorithm for inter-core, inter-process, or inter-task communication

Also Published As

Publication number Publication date
JP2016062608A (ja) 2016-04-25
CN105589754B (zh) 2021-05-28
US9794340B2 (en) 2017-10-17
US20160080491A1 (en) 2016-03-17
GB2532842A (en) 2016-06-01
FR3025908A1 (fr) 2016-03-18
CN105589754A (zh) 2016-05-18
CA2902844A1 (en) 2016-03-15
FR3025908B1 (fr) 2019-07-12
GB2532842B (en) 2018-05-23
GB201516085D0 (en) 2015-10-28

Similar Documents

Publication Publication Date Title
BR102015020854A2 (pt) mecanismo e método para acesso a dados
US8738701B2 (en) Arbitration of disk ownership in a storage pool
US6973517B1 (en) Partition formation using microprocessors in a multiprocessor computer system
US10560542B2 (en) Mechanism and method for communicating between a client and a server by accessing message data in a shared memory
EP3382526B1 (en) Multi-node storage operation
CN112313617A (zh) 存储器高效的升级暂存
US10929293B2 (en) Atomic operations for fabric shared memories
EP2807558A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
US9262289B2 (en) Storage apparatus and failover method
US20170075816A1 (en) Storage system
US20230221897A1 (en) Implementing coherency and page cache support for a storage system spread across multiple data centers
WO2019217112A1 (en) Fault tolerant device upgrade
WO2013191606A1 (en) Dynamic memory access management
Ailijiang et al. Multileader wan paxos: Ruling the archipelago with fast consensus
US20100057741A1 (en) Software resource access utilizing multiple lock tables
BR102015031245A2 (pt) método para assegurar a integridade de dados críticos e sistema para assegurar a integridade de dados críticos manipuláveis
US11656796B2 (en) Adaptive memory consistency in disaggregated datacenters
WO2016122607A1 (en) Dedicated memory server
JPS60215272A (ja) マルチプロセツサシステム
JP2006190120A (ja) 計算機システム

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B11B Dismissal acc. art. 36, par 1 of ipl - no reply within 90 days to fullfil the necessary requirements