BR112017002780B1 - Método e aparelho de acesso de arquivo, e sistema de armazenamento - Google Patents

Método e aparelho de acesso de arquivo, e sistema de armazenamento Download PDF

Info

Publication number
BR112017002780B1
BR112017002780B1 BR112017002780-1A BR112017002780A BR112017002780B1 BR 112017002780 B1 BR112017002780 B1 BR 112017002780B1 BR 112017002780 A BR112017002780 A BR 112017002780A BR 112017002780 B1 BR112017002780 B1 BR 112017002780B1
Authority
BR
Brazil
Prior art keywords
address space
file
space
virtual address
physical address
Prior art date
Application number
BR112017002780-1A
Other languages
English (en)
Other versions
BR112017002780A2 (pt
Inventor
Guanyu ZHU
Jun Xu
Qun Yu
Original Assignee
Huawei Technologies Co., Ltd
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 Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR112017002780A2 publication Critical patent/BR112017002780A2/pt
Publication of BR112017002780B1 publication Critical patent/BR112017002780B1/pt

Links

Images

Classifications

    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Trata-se de um método e um aparelho de acesso de arquivo e um sistema de armazenamento. O método inclui: receber (S210) uma solicitação de acesso de arquivo de um processo, em que a solicitação de acesso de arquivo inclui um identificador de arquivo; acessar (S220) um primeiro espaço de endereço físico de acordo com um primeiro espaço de endereço virtual predefinido e uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual predefinido e o primeiro espaço de endereço físico, sendo que o primeiro espaço de endereço físico armazena um sistema de arquivo; obter (S230) um nó de índice de um arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo; obter (S240) uma tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, sendo que a tabela de página de arquivo grava um segundo espaço de endereço físico no primeiro espaço de endereço físico, uma página de dados do arquivo alvo é armazenada no segundo espaço de endereço físico; e acessar (S250) o arquivo alvo de acordo com o segundo (...).

Description

CAMPO DA TÉCNICA
[0001] As modalidades da presente invenção referem-se ao campo de computador, e mais especificamente, a um método e um aparelho de acesso de arquivo e um sistema de armazenamento.
ANTECEDENTES
[0002] Em tecnologias convencionais, um sistema de arquivo pode ser acessado apenas em um espaço de kernel. Quando um processo precisa acessar um arquivo alvo no sistema de arquivo, uma chamada de sistema precisa ser realizada. Acessar um arquivo alvo por meio de uma mudança de um espaço de usuário para um espaço de kernel afeta uma velocidade de acesso de arquivo, e causa sobrecargas de execução de software relativamente altas.
[0003] Portanto, um método no qual um acesso de arquivo pode ser implantado diretamente em um espaço de usuário precisa ser proposto.
SUMÁRIO
[0004] As modalidades da presente invenção fornecem um método e um aparelho de acesso de arquivo e um sistema de armazenamento, que causam sobrecargas de execução de software relativamente baixas, e podem implantar um acesso de arquivo em um espaço de usuário.
[0005] De acordo com um primeiro aspecto, é fornecido um método de acesso de arquivo, sendo que o método inclui:receber uma solicitação de acesso de arquivo de um processo, em que a solicitação de acesso de arquivo inclui um identificador de arquivo, e o identificador de arquivo é usado para indicar um arquivo alvo a ser acessado; acessar um primeiro espaço de endereço físico de acordo com um primeiro espaço de endereço virtual predefinido e uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, em que o primeiro espaço de endereço virtual é uma parte de um espaço de usuário em um sistema operacional, e o primeiro espaço de endereço físico armazena um sistema de arquivo e é uma parte de espaço de memória; obter um nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo, sendo que o nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo; obter uma tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, em que a tabela de página de arquivo grava um segundo espaço de endereço físico no primeiro espaço de endereço físico, uma página de dados do arquivo alvo é armazenada no segundo espaço de endereço físico, e a página de dados do arquivo alvo é usada para armazenar dados de arquivo; e acessar o arquivo alvo de acordo com o segundo espaço de endereço físico.
[0006] Em referência ao primeiro aspecto, em uma primeira maneira de implantação possível do primeiro aspecto, acessar o arquivo alvo de acordo com o segundo espaço de endereço físico inclui: alocar um segundo espaço de endereço virtual ao arquivo alvo, em que o segundo espaço de endereço virtual é uma parte de espaço privado, alocado ao processo, no espaço de usuário no sistema operacional, e o segundo espaço de endereço virtual é um espaço de endereço contíguo; estabelecer uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual; e acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento.
[0007] Em referência à primeira maneira de implantação possível do primeiro aspecto, em uma segunda maneira de implantação possível do primeiro aspecto, estabelecer uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual inclui:estabelecer a segunda relação de mapeamento com a ligação da tabela de página de arquivo do arquivo alvo a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual.
[0008] Em referência à primeira ou à segunda maneira de implantação possível do primeiro aspecto, em uma terceira maneira de implantação possível do primeiro aspecto, o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico; e acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento inclui: realizar uma operação de leitura no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não é incluído em um espaço de endereço virtual que corresponde ao arquivo alvo, finalizar a operação de leitura.
[0009] Em referência à primeira ou à segunda maneira de implantação possível do primeiro aspecto, em uma quarta maneira de implantação possível do primeiro aspecto, o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico; e acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento inclui: realizar uma operação de gravação no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não é incluído no segundo espaço de endereço virtual, finalizar a operação de gravação.
[0010] Em referência a qualquer uma do primeiro aspecto, ou da primeira até a quarta maneira de implantação possível do primeiro aspecto, em uma quinta maneira de implantação possível do primeiro aspecto, o método adicionalmente inclui: estabelecer, em um espaço de kernel, a primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, e armazenar, em uma tabela de página de processo que corresponde ao espaço de kernel, uma tabela de página de mapeamento que corresponde à primeira relação de mapeamento; e após receber a solicitação de acesso de arquivo do processo, o método adicionalmente inclui: determinar que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grave a primeira relação de mapeamento; e ligar, à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento e que é armazenada no espaço de kernel.
[0011] De acordo com um segundo aspecto, um aparelho de acesso de arquivo é fornecido, sendo que o aparelho inclui: um módulo de recebimento, configurado para receber uma solicitação de acesso de arquivo de um processo, em que a solicitação de acesso de arquivo inclui um identificador de arquivo, e o identificador de arquivo é usado para indicar um arquivo alvo a ser acessado; um primeiro módulo de acesso, configurado para acessar um primeiro espaço de endereço físico de acordo com um primeiro espaço de endereço virtual predefinido e uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, em que o primeiro espaço de endereço virtual é uma parte de um espaço de usuário em um sistema operacional, e o primeiro espaço de endereço físico armazena um sistema de arquivo e é uma parte de espaço de memória; um módulo de obtenção, configurado para obter um nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo que é do arquivo alvo e que é recebido pelo módulo de recebimento, sendo que o nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo, e o módulo de obtenção é adicionalmente configurado para obter uma tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, em que a tabela de página de arquivo grava um segundo espaço de endereço físico no primeiro espaço de endereço físico, uma página de dados do arquivo alvo é armazenada no segundo espaço de endereço físico, e a página de dados do arquivo alvo é usada para armazenar dados de arquivo; e um segundo módulo de acesso, configurado para acessar o arquivo alvo de acordo com o segundo espaço de endereço físico que é indicado pela tabela de página de arquivo obtida pelo módulo de obtenção.
[0012] Em referência ao segundo aspecto, em uma primeira maneira de implantação possível do segundo aspecto, o segundo módulo de acesso inclui: uma unidade de alocação, configurada para alocar um segundo espaço de endereço virtual ao arquivo alvo, em que o segundo espaço de endereço virtual é uma parte de espaço privado, alocado ao processo, no espaço de usuário no sistema operacional, e o segundo espaço de endereço virtual é um espaço de endereço contíguo; uma unidade de estabelecimento, configurada para estabelecer uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual alocado pela unidade de alocação; e uma unidade de acesso, configurada para acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual alocado pela unidade de alocação e a segunda relação de mapeamento estabelecida pela unidade de estabelecimento.
[0013] Em referência à primeira maneira de implantação possível do segundo aspecto, em uma segunda maneira de implantação possível do segundo aspecto, a unidade de estabelecimento é especificamente configurada para estabelecer a segunda relação de mapeamento com a ligação da tabela de página de arquivo do arquivo alvo a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual.
[0014] Em referência à primeira ou à segunda maneira de implantação possível do segundo aspecto, em uma terceira maneira de implantação possível do segundo aspecto, o segundo espaço de endereço virtual alocado pela unidade de alocação é maior do que o segundo espaço de endereço físico; e a unidade de acesso é especificamente configurada para: realizar uma operação de leitura no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não é incluído em um espaço de endereço virtual que corresponde ao arquivo alvo, finalizar a operação de leitura.
[0015] Em referência à primeira ou à segunda maneira de implantação possível do segundo aspecto, em uma quarta maneira de implantação possível do segundo aspecto, o segundo espaço de endereço virtual alocado pela unidade de alocação é maior do que o segundo espaço de endereço físico; e a unidade de acesso é especificamente configurada para: realizar uma operação de gravação no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não é incluído no segundo espaço de endereço virtual, finalizar a operação de gravação.
[0016] Em referência a qualquer uma do segundo aspecto, ou da primeira até a quarta maneira de implantação possível do segundo aspecto, em uma quinta maneira de implantação possível do segundo aspecto, o aparelho adicionalmente inclui: um módulo de estabelecimento, configurado para: estabelecer, em um espaço de kernel, a primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, e armazenar, em uma tabela de página de processo que corresponde ao espaço de kernel, uma tabela de página de mapeamento que corresponde à primeira relação de mapeamento; um módulo de determinação, configurado para: após o módulo de recebimento receber a solicitação de acesso de arquivo do processo, determinar que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grave a primeira relação de mapeamento; e um módulo de ligação, configurado para ligar, à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento estabelecida pelo módulo de estabelecimento e que é armazenado no espaço de kernel.
[0017] De acordo com um terceiro aspecto, um sistema de armazenamento é fornecido, sendo que o sistema de armazenamento inclui: uma memória, configurada para armazenar um arquivo e um programa; e um processador, configurado para executar o programa, para implantar: receber uma solicitação de acesso de arquivo de um processo, em que a solicitação de acesso de arquivo inclui um identificador de arquivo, e o identificador de arquivo é usado para indicar um arquivo alvo a ser acessado; acessar um primeiro espaço de endereço físico de acordo com um primeiro espaço de endereço virtual predefinido e uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, em que o primeiro espaço de endereço virtual é uma parte de um espaço de usuário em um sistema operacional, e o primeiro espaço de endereço físico armazena um sistema de arquivo e é uma parte de espaço de memória; obter um nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo, sendo que o nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo; obter uma tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, em que a tabela de página de arquivo grava um segundo espaço de endereço físico no primeiro espaço de endereço físico, uma página de dados do arquivo alvo é armazenada no segundo espaço de endereço físico, e a página de dados do arquivo alvo é usada para armazenar dados de arquivo; e acessar o arquivo alvo de acordo com o segundo espaço de endereço físico.
[0018] Em referência ao terceiro aspecto, em uma primeira maneira de implantação possível do terceiro aspecto, o processador é especificamente configurado para: alocar um segundo espaço de endereço virtual ao arquivo alvo, em que o segundo espaço de endereço virtual é uma parte de espaço privado, alocado ao processo, no espaço de usuário no sistema operacional, e o segundo espaço de endereço virtual é um espaço de endereço contíguo; estabelecer uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual; e acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento.
[0019] Em referência à primeira maneira de implantação possível do terceiro aspecto, em uma segunda maneira de implantação possível do terceiro aspecto, o processador é especificamente configurado para estabelecer a segunda relação de mapeamento com a ligação da tabela de página de arquivo do arquivo alvo a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual.
[0020] Em referência à primeira ou à segunda maneira de implantação possível do terceiro aspecto, em uma terceira maneira de implantação possível do terceiro aspecto, o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico; e o processador é especificamente configurado para: realizar uma operação de leitura no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não é incluído em um espaço de endereço virtual que corresponde ao arquivo alvo, finalizar a operação de leitura.
[0021] Em referência à primeira ou à segunda maneira de implantação possível do terceiro aspecto, em uma quarta maneira de implantação possível do terceiro aspecto, o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico; e o processador é especificamente configurado para: realizar uma operação de gravação no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não é incluído no segundo espaço de endereço virtual, finalizar a operação de gravação.
[0022] Em referência a qualquer uma do terceiro aspecto, ou da primeira até a quarta maneira de implantação possível do terceiro aspecto, em uma quinta maneira de implantação possível do terceiro aspecto, o processador é adicionalmente configurado para: estabelecer, em um espaço de kernel, a primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, e armazenar, em uma tabela de página de processo que corresponde ao espaço de kernel, uma tabela de página de mapeamento que corresponde à primeira relação de mapeamento; após receber a solicitação de acesso de arquivo do processo, determinar que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grave a primeira relação de mapeamento; e ligar, à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento e que é armazenada no espaço de kernel.
[0023] No método e no aparelho de acesso de arquivo e no sistema de armazenamento que são fornecidos nas modalidades da presente invenção, de acordo com uma relação de mapeamento entre um primeiro espaço de endereço virtual em um espaço de usuário e um primeiro espaço de endereço físico que armazena um sistema de arquivo, o primeiro espaço de endereço físico pode ser acessado com o uso do primeiro espaço de endereço virtual, de modo que um arquivo alvo no sistema de arquivo possa ser acessado. No método de acesso de arquivo fornecido nas modalidades da presente invenção, o acesso de arquivo é implantado diretamente no espaço de usuário, e as chamadas de sistema frequentes durante um acesso de arquivo são evitadas na técnica anterior, o que pode reduzir de modo eficaz as sobrecargas de execução de software durante um acesso de arquivo, e pode aumentar uma velocidade de acesso de arquivo.
BREVE DESCRIÇÃO DAS FIGURAS
[0024] A fim de descrever as soluções técnicas nas modalidades da presente invenção de modo mais claro, o que é posto a seguir brevemente introduz as figuras anexadas exigidas para descrever as modalidades.
[0025] A Figura 1-a é um diagrama esquemático de um espaço de endereço virtual em um sistema operacional de acordo com uma modalidade da presente invenção;
[0026] A Figura 1-b é outro diagrama esquemático de um espaço de endereço virtual em um sistema operacional de acordo com uma modalidade da presente invenção;
[0027] A Figura 2 é um fluxograma esquemático de um método de acesso de arquivo de acordo com uma modalidade da presente invenção;
[0028] A Figura 3 é um diagrama esquemático de uma tabela de página de arquivo de acordo com uma modalidade da presente invenção;
[0029] A Figura 4 é um fluxograma esquemático de outro método de acesso de arquivo de acordo com uma modalidade da presente invenção;
[0030] A Figura 5 é um fluxograma esquemático de um ainda outro método de acesso de arquivo de acordo com uma modalidade da presente invenção;
[0031] A Figura 6 é um diagrama em bloco estrutural esquemático de um aparelho de acesso de arquivo de acordo com uma modalidade da presente invenção;
[0032] A Figura 7 é um diagrama em bloco estrutural esquemático de outro aparelho de acesso de arquivo de acordo com uma modalidade da presente invenção;
[0033] A Figura 8 é um diagrama em bloco estrutural esquemático de um ainda outro aparelho de acesso de arquivo de acordo com uma modalidade da presente invenção; e
[0034] A Figura 9 é um diagrama em bloco estrutural esquemático de um sistema de armazenamento de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DAS MODALIDADES
[0035] O que é posto a seguir claramente descreve as soluções técnicas nas modalidades da presente invenção em referência às figuras anexadas nas modalidades da presente invenção. Aparentemente, as modalidades descritas são uma parte ao invés da totalidade das modalidades da presente invenção.
[0036] A fim de entender facilmente as modalidades da presente invenção, alguns conceitos relacionados são descritos primeiro no presente documento:
[0037] 1. Sistema de arquivo:
[0038] Em um sistema operacional, um software usado para armazenar e gerenciar dados de arquivo é chamado de um sistema de arquivo. O sistema de arquivo é usado para armazenar e organizar dados, e definir uma política de acesso de arquivo. Os dados no sistema de arquivo são classificados em metadados e dados, sendo que os dados se referem a dados reais em um arquivo comum, e os metadados se referem aos dados de sistema usados para descrever as características de um arquivo. Os metadados podem incluir, por exemplo, uma permissão de acesso, um dono de arquivo e informações de distribuição “inode” de um bloco de dados de arquivo. Quando um usuário precisa operar um arquivo, o usuário precisa obter metadados do arquivo primeiro e então pode orientar o arquivo e obter um conteúdo de arquivo ou um atributo de arquivo relacionado. Os metadados sãos dados sobre dados, e em um campo de sistema de arquivo, sendo que cada arquivo corresponde a uma estrutura de metadados. Essa estrutura inclui um atributo de arquivo tal como o tempo para uma criação de arquivo, modificação de arquivo e um acesso de arquivo, um dono de arquivo, uma permissão e as informações de mapeamento.
[0039] Existem três estruturas de dados importantes no sistema de arquivo: arquivo, inode e dentry. O que é posto a seguir brevemente descreve as três estruturas de dados importantes.
[0040] (1) Objeto de arquivo aberto “arquivo”
[0041] Uma estrutura de arquivo representa um objeto de arquivo aberto (no sistema, cada arquivo aberto corresponde a uma estrutura de arquivo em um espaço de kernel), e é criada por um kernel mediante a abertura do arquivo e liberada mediante o fechamento do arquivo.
[0042] (2) Objeto de nó de índice de arquivo “inode”
[0043] No kernel, um arquivo é representado com o uso de uma estrutura de inode, que é diferente da estrutura de arquivo. A estrutura de arquivo representa um descritor de arquivo de um arquivo aberto. Para um arquivo, cada vez que o arquivo é aberto, pode haver uma estrutura de arquivo diferente que represente um descritor de arquivo, mas toda a estrutura de arquivos aponta para um inode único.
[0044] (3) Objeto de diretório de arquivo “dentry” Para um componente cada nome de caminho buscado por um processo, o kernel cria uma estrutura de dentry. Por exemplo, quando um nome de caminho /dev/test é buscado, o kernel cria uma estrutura de dentry nível-1 para diretório raiz “/”, cria uma estrutura de dentry nível-2 para “dev”, e cria uma estrutura de dentry nível-3 para test.
[0045] Um sistema de arquivo convencional é executado em modo kernel, e se um processo de modo de usuário precisa acessar um arquivo no sistema de arquivo, uma chamada de sistema precisa ser realizada para implantar um acesso de arquivo.
[0046] 2. Chamada de sistema:
[0047] Uma chamada de sistema é um meio amplamente usado de comunicação entre espaço de kernel e espaço de usuário. A chamada de sistema pode ser considerada como um grupo de “interfaces especiais” fornecidas por um sistema operacional para chamar um programa de usuário. Um programa de usuário pode usar esse grupo de “interfaces especiais” para obter um serviço de sistema fornecido por um kernel do sistema operacional. Por exemplo, um usuário pode solicitar, por meio de uma chamada de sistema relacionada a um sistema de arquivo, que o sistema abra um arquivo, feche um arquivo ou leia/grave um arquivo. A principal causa de fornecer um serviço de sistema para um espaço de usuário por meio de uma chamada de sistema é realizar uma “proteção” de sistema. Um espaço que executa Linux é dividido em espaço de kernel e espaço de usuário, sendo que o espaço de kernel e o espaço de usuário são executados com diferentes níveis de prioridade e são separados em lógica. Geralmente, um processo (executado no espaço de usuário) não é permitido a acessar dados de kernel ou usar uma função de kernel, mas pode apenas operar dados de usuário ou chamar uma função de usuário. Quando um processo precisa acessar os dados de kernel (por exemplo, acessar um arquivo), o processo acessa os dados de kernel com o uso de uma “interface especial” fornecida pelo sistema para um usuário, ou seja, por meio de uma chamada de sistema. Especificamente, uma solicitação do processo é transferida para o kernel, e após o processamento da solicitação ser completo no espaço de kernel, um resultado de processo é retornado para o espaço de usuário (equivalente a retornar para o processo).
[0048] 3. Espaço de usuário e espaço de kernel:
[0049] Um espaço que executa Linux é dividido em espaço de kernel (que também pode ser chamado de um modo de kernel) e espaço de usuário (que também pode ser chamado de um modo de usuário), sendo que o espaço de kernel e o espaço de usuário são executados com diferentes níveis de prioridade e são separados em lógica.
[0050] Na técnica anterior, um espaço de endereço virtual em um sistema operacional é dividido em duas partes: espaço de usuário (cujo ambiente em execução pode ser chamado de um modo de usuário) e espaço de kernel (cujo ambiente em execução pode ser chamado de um modo de kernel). O espaço de usuário é um espaço de endereço virtual privado para um processo, sendo que o processo é executado no espaço de usuário. O espaço de kernel é especialmente usado para gerenciar um recurso de sistema. Quando um processo precisa acessar um recurso (por exemplo, acessar um arquivo), o processo precisa aplicar para um kernel pelo recurso por meio de uma chamada de sistema. A fim de evitar as chamadas de sistema frequentes quando um processo solicita acessar um arquivo, a presente invenção fornece um método e um aparelho de acesso de arquivo, o que pode reduzir de modo eficaz as sobrecargas de execução de software durante um acesso de arquivo.
[0051] A fim de facilmente entender as soluções técnicas fornecidas nas modalidades da presente invenção, o que é posto a seguir descreve um cenário de aplicação das modalidades da presente invenção em referência à Figura 1-a e à Figura 1-b.
[0052] Conforme mostrado na Figura 1-a, um espaço de endereço virtual 110 em um sistema operacional inclui o espaço de kernel 120 e o espaço de usuário 130, sendo que o espaço de usuário 130 especificamente inclui um espaço de processo compartilhado e um espaço de processo privado. Um primeiro espaço de endereço virtual 140 mostrado na Figura 1-a é um espaço, compartilhado por todos os processos, no espaço de usuário 130. Ou seja, no espaço de usuário 130, todos os processos têm permissão para acessar o primeiro espaço de endereço virtual 140. Um espaço de processo privado 150 mostrado na Figura 1-a é um espaço, privado para cada processo, no espaço de usuário 130. Conforme mostrado na Figura 1-a, uma primeira relação de mapeamento existe entre o primeiro espaço de endereço virtual 140 e um primeiro espaço de endereço físico 160 (mostrado por linhas tracejadas na Figura 1-a). O primeiro espaço de endereço físico 160 é um espaço de endereço físico, em espaço de memória física, que corresponde a uma área de armazenamento que armazena um sistema de arquivo. Por exemplo, se o sistema de arquivo inclui um arquivo alvo, o primeiro espaço de endereço físico 160 inclui um segundo espaço de endereço físico 170 (mostrado na Figura 1-a) é usado para armazenar o arquivo alvo.
[0053] Especificamente, uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual 140 grava a primeira relação de mapeamento. Deve ser entendido que, com base na primeira relação de mapeamento, o primeiro espaço de endereço físico pode ser acessado com o uso do primeiro espaço de endereço virtual e, portanto, um arquivo no sistema de arquivo pode ser acessado. Por exemplo, se um processo precisa acessar o arquivo alvo mostrado na Figura 1-a, o arquivo alvo no segundo espaço de endereço físico 170 pode ser acessado de acordo com um espaço de endereço virtual (ou seja, um espaço de endereço mapeado, no primeiro espaço de endereço virtual 140, do segundo espaço de endereço físico 170) que corresponde ao arquivo alvo. Portanto, qualquer processo que precise acessar o arquivo alvo no sistema de arquivo pode implantar um acesso ao arquivo alvo com o acesso do primeiro espaço de endereço virtual, que pode evitar chamadas de sistema frequentes na técnica anterior.
[0054] Opcionalmente, o espaço de processo privado 150 na Figura 1-a pode incluir duas partes: um espaço de acesso de arquivo 151 e um espaço de atividade de processo 152. O arquivo que acessa o espaço 151 é usado para mapear um arquivo alvo a ser aberto (detalhado no que é posto a seguir), e o espaço de atividade de processo 152 é um espaço ao qual uma atividade de processo comum pertence.
[0055] Opcionalmente, a primeira relação de mapeamento entre o primeiro espaço de endereço virtual 140 e o primeiro espaço de endereço físico 160 pode ser uma relação de mapeamento linear, que pode facilitar o acesso ao primeiro espaço de endereço físico 160.
[0056] Deve ser entendido que, o espaço de processo privado 150 que é esquematicamente mostrado na Figura 1-a pode representar um espaço privado de qualquer processo, mas um diagrama em bloco esquemático mostrado na Figura 1-a não impõe uma limitação específica nessa modalidade da presente invenção.
[0057] O primeiro espaço de endereço físico 160 na Figura 1-a é um espaço de endereço físico que corresponde à área de armazenamento, é usado para armazenar o sistema de arquivo em uma memória física. Adicionalmente, conforme mostrado na Figura 1-b, o primeiro espaço de endereço físico 160 que é usado para armazenar o sistema de arquivo pode adicionalmente ser dividido em: uma primeira área de memória física 161 é usada para armazenar metadados e dados que são do sistema de arquivo, e uma segunda área de memória física 162 é usada para armazenar dados temporários gerados durante a execução do sistema de arquivo. Os dados temporários gerados durante a execução do sistema de arquivo especificamente se referem aos dados gerados durante um acesso de arquivo por um processo, tal como um objeto de arquivo “arquivo”, um objeto de nó de índice de arquivo “inode”, um objeto de diretório de arquivo “dentry” e um descritor de arquivo (que também pode ser chamado de um identificador (handle)). Deve ser entendido que, o segundo espaço de endereço físico 170 que é usado para armazenar o arquivo alvo e que está no primeiro espaço de endereço físico 160 está na primeira área de memória física 161 (mostrado na Figura 1-b). Opcionalmente, a primeira área de memória física 161 e a segunda área de memória física 162 podem não ser contíguas em termos de endereço físico.
[0058] Conforme mostrado na Figura 1-b, a primeira relação de mapeamento existe entre o primeiro espaço de endereço virtual 140 e o primeiro espaço de endereço físico 160. Portanto, em correspondência às duas áreas obtidas através da divisão do primeiro espaço de endereço físico 160, o primeiro espaço de endereço virtual 140 pode também incluir duas áreas de modo correspondente: uma primeira área 141 e uma segunda área142. Uma área mapeada, no primeiro espaço de endereço virtual 140, da primeira área de memória física 161 é a primeira área 141, e uma área mapeada, no primeiro espaço de endereço virtual 140, da segunda área de memória física 162 é a segunda área 142. Deve ser entendido que, um processo pode acessar a primeira área de memória física 161 e a segunda área de memória física 162 respectivamente com o acesso da primeira área 141 e da segunda área 142, de modo a acessar os metadados e os dados que são do sistema de arquivo e os dados temporários gerados durante a execução do sistema de arquivo. Deve ser entendido que, o espaço de endereço mapeado, no primeiro espaço de endereço virtual 140, do segundo espaço de endereço físico 170 que armazena o arquivo alvo está na primeira área 141.
[0059] Pode ser entendido que, a divisão do primeiro espaço de endereço físico 160 em duas áreas é apenas um exemplo. Alternativamente, na aplicação real, o primeiro espaço de endereço físico 160 pode ser dividido em múltiplas áreas de acordo com uma necessidade real, e certamente, na aplicação real, o primeiro espaço de endereço virtual 140 pode também ser dividido em múltiplas áreas de acordo com uma necessidade real, que não são limitadas no presente documento.
[0060] Nas modalidades da presente invenção, em um caso, a primeira área de memória física 161 e a segunda área de memória física 162 pode ambas usar um meio de memória não volátil (Non-Volatile Memory, NVM), tal como uma memória de mudança de fase (Phase Change Memory, PCM), uma memória de acesso aleatório resistiva variável (Resistive RAM, ReRAM), uma memória de acesso aleatório magnética (Magnetic Random Access Memory, MRAM) ou outro meio de armazenamento não volátil que tenha um recurso de ler/gravar similar ao mesmo de uma DRAM e que pode ser montado em um barramento de memória para acessar. Em outro caso, a primeira área de memória física 161 pode usar um meio de armazenamento não volátil; a segunda área de memória física 162 pode usar um meio de armazenamento volátil, especificamente, tal como um meio de memória de acesso aleatório dinâmica (Dynamic Random Access Memory, DRAM) com resistência à abrasão.
[0061] Um método de acesso de arquivo 200 em uma modalidade da presente invenção pode ser executado por um controlador ou uma unidade de processamento central (Central Processing Unit, CPU).
[0062] O que é posto a seguir detalha métodos de acesso de arquivo de acordo com as modalidades da presente invenção em referência da Figura 2 até a Figura 5. A Figura 2 é um fluxograma esquemático de um método de acesso de arquivo de acordo com uma modalidade da presente invenção. Deve ser observado que, na Figura 2, uma solicitação de acesso de arquivo de um processo é usada como um exemplo para descrição. Pode ser entendido que o método 200 pode ser aplicado a qualquer cenário no qual um processo solicita acessar um arquivo. Conforme mostrado na Figura 2, o método 200 inclui:
[0063] S210: Receber uma solicitação de acesso de arquivo de um processo, sendo que a solicitação de acesso de arquivo inclui um identificador de arquivo, e o identificador de arquivo é usado para indicar um arquivo alvo a ser acessado.
[0064] Especificamente, o identificador de arquivo pode incluir um caminho de armazenamento do arquivo alvo, um tipo de arquivo do arquivo alvo (um arquivo de diretório ou um arquivo de dados) e semelhantes. Deve ser entendido que a solicitação de acesso de arquivo pode ser especificamente uma solicitação de abertura de arquivo, uma solicitação de leitura de arquivo, uma solicitação de gravação de arquivo ou outra solicitação de acesso.
[0065] S220: Acessar um primeiro espaço de endereço físico de acordo com um primeiro espaço de endereço virtual predefinido e uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, sendo que o primeiro espaço de endereço virtual é uma parte de um espaço de usuário em um sistema operacional, e o primeiro espaço de endereço físico armazena um sistema de arquivo e é uma parte de espaço de memória.
[0066] Opcionalmente, nessa modalidade da presente invenção, S220 de acesso a um primeiro espaço de endereço físico de acordo com um primeiro espaço de endereço virtual predefinido e uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, em que o primeiro espaço de endereço físico armazena um sistema de arquivo, inclui:
[0067] S221: Acessar o primeiro espaço de endereço virtual de acordo com a solicitação de acesso de arquivo.
[0068] S222: Determinar que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual grave a primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico que armazena o sistema de arquivo.
[0069] S223: Acessar o primeiro espaço de endereço físico de acordo com o primeiro espaço de endereço virtual e a primeira relação de mapeamento.
[0070] Adicionalmente, a primeira relação de mapeamento é uma relação de mapeamento linear. Portanto, um endereço inicial do primeiro espaço de endereço físico corresponde a um endereço inicial do primeiro espaço de endereço virtual, e assim em diante para endereços subsequentes, o que facilita o acesso ao primeiro espaço de endereço físico.
[0071] S230: Obter um nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo, sendo que o nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo.
[0072] Opcionalmente, nessa modalidade da presente invenção, S230 de obtenção de um nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo inclui:
[0073] S231: Determinar, de acordo com o identificador de arquivo do arquivo alvo, se o primeiro espaço de endereço físico armazena o arquivo alvo a ser acessado indicado pelo identificador de arquivo.
[0074] S232: Quando o primeiro espaço de endereço físico armazena o arquivo alvo a ser acessado indicado pelo identificador de arquivo, obter o nó de índice do arquivo alvo.
[0075] S233: Quando o primeiro espaço de endereço físico não armazena o arquivo alvo a ser acessado indicado pelo identificador de arquivo, criar o arquivo alvo no primeiro espaço de endereço físico e alocar um nó de índice ao arquivo alvo, sendo que o nó de índice alocado ao arquivo alvo inclui as informações de tabela de página de arquivo do arquivo alvo, e uma tabela de página de arquivo é usada para apontar para um segundo espaço de endereço físico do arquivo alvo criado no primeiro espaço de endereço físico.
[0076] Deve ser entendido que, cada arquivo no sistema de arquivo corresponde a um nó de índice “inode”. Portanto, um nó de índice que corresponde ao arquivo alvo pode ser obtido após o primeiro espaço de endereço físico do sistema de arquivo armazena o arquivo alvo. Deve também ser entendido que, alternativamente, o primeiro espaço de endereço físico pode armazenar o arquivo alvo por padrão. Nesse cenário, uma etapa relacionada de determinar se o primeiro espaço de endereço físico armazena o arquivo alvo pode ser omitida.
[0077] O nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo. Especificamente, o nó de índice pode incluir informações que podem ser usadas para obter o segundo espaço de endereço físico, no primeiro espaço de endereço físico, de uma página de memória que armazena o arquivo alvo. Por exemplo, o nó de índice do arquivo alvo pode gravar uma tabela de página de arquivo (File Page Table, ““FPT”“ para abreviar) do arquivo alvo, ou um apontador que é usado para apontar para uma tabela de página de arquivo do arquivo alvo. Especificamente, conforme mostrado na Figura 3, o nó de índice do arquivo alvo inclui um apontador (Apontador) que é usado para apontar para uma tabela de página de arquivo, sendo que o apontador especificamente armazena uma tabela de página de arquivo do nível mais alto (PUD) do arquivo alvo.
[0078] S240: Obter uma tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, sendo que a tabela de página de arquivo grava um segundo espaço de endereço físico no primeiro espaço de endereço físico, uma página de dados do arquivo alvo é armazenada no segundo espaço de endereço físico e a página de dados do arquivo alvo é usada para armazenar dados de arquivo.
[0079] Especificamente, a tabela de página de arquivo do arquivo alvo é usado para apontar para um endereço físico, no primeiro espaço de endereço físico, da página de memória que armazena o arquivo alvo. Portanto, o segundo espaço de endereço físico do arquivo alvo pode ser orientado de acordo com a tabela de página de arquivo do arquivo alvo.
[0080] Opcionalmente, nessa modalidade da presente invenção, uma estrutura de dados da tabela de página de arquivo do arquivo alvo é similar ou igual às mesmas da tabela de página de processo.
[0081] Deve ser entendido que, na técnica anterior, a tabela de página de processo é usada por um processo no sistema operacional em modo de proteção, e representa uma relação de mapeamento entre espaço virtual e espaço físico que são de um processo. Para um dado endereço virtual a ser acessado, um MMU orienta, na tabela de página de processo atual de acordo com o endereço virtual, uma entrada de tabela de página de processo que corresponde ao endereço virtual, e então analisa a entrada de tabela de página para obter um endereço físico real, de modo a implantar um acesso. Existe um espaço de endereçamento diferente do sistema operacional, que inclui um espaço de endereçamento de 32-bit com um tamanho de 232 bytes, ou um espaço de endereçamento de 64-bit com um tamanho de 264 bytes. Uma tabela de página de processo comum pode ser uma tabela de página de três níveis ou uma tabela de página de quatro níveis. A tabela de página de quatro níveis inclui um PGD, um PUD, um PMD e um PTE. A tabela de página de três níveis é compatível com a tabela de página de quatro níveis e também inclui um PGD, um PUD, um PMD e um PTE nominalmente. No entanto, o PUD e o PMD pertencem a um mesmo nível de uma tabela de página. Uma entrada de tabela de página de nível maior inclui um endereço inicial físico que aponta para uma entrada de tabela de página de nível menor, e o PTE de entrada de tabela de página de último nível inclui um endereço inicial físico que aponta para uma página específica.
[0082] Nessa modalidade da presente invenção, a estrutura da tabela de página de arquivo pode ser a mesma ou similar à mesma de uma tabela de página de processo. Especificamente, a tabela de página de arquivo pode ser uma tabela de página de nível único ou de multinível, em que cada entrada de cada nível de tabela de página em uma tabela de página que não seja a menor grava um endereço inicial físico de uma tabela de página de nível menor, e cada entrada de uma tabela de página do menor nível grava um endereço inicial físico de uma página de memória de um arquivo. Especificamente, conforme mostrado na Figura 3, a Figura 3 dá um exemplo em que a tabela de página de arquivo do arquivo alvo é uma tabela de página de arquivo de três níveis que inclui um PUD, um PMD e um PTE. Cada entrada em um PUD grava um endereço inicial físico de um PMD, cada entrada de um PMD grava um endereço inicial físico de um PTE e cada entrada de um PTE grava um endereço inicial físico de uma página de memória (uma página de memória armazena um conteúdo de arquivo do arquivo alvo). Deve ser entendido que, não todos os arquivos necessários para usar uma tabela de página de arquivo de três níveis, e mesmo se uma tabela de página de três níveis for usada, a tabela de página não tem definitivamente um formato fixo. Por exemplo, não todos os arquivos necessários para usar 1.024 PTEs e uma estrutura de organização de uma tabela de página de arquivo podem se ajustados de modo dinâmico de acordo com uma mudança de um tamanho de arquivo.
[0083] A Figura 3 fornece uma descrição com o uso de um exemplo no qual o nó de índice do arquivo alvo grava um apontador (por exemplo, um endereço inicial físico de um PUD) que aponta para um PUD de tabela de página de arquivo de primeiro nível de uma tabela de página de arquivo de três níveis. Pode ser adicionalmente entendido que, alternativamente, o nó de índice do arquivo alvo pode diretamente armazenar o segundo espaço de endereço físico que armazena o arquivo alvo e que está no primeiro espaço de endereço físico, um endereço inicial do segundo espaço de endereço físico, ou semelhantes. Nenhuma limitação específica é imposta no presente documento em informações gravadas no nó de índice do arquivo alvo desde que as informações relacionadas ao segundo espaço de endereço físico do arquivo alvo possam ser obtidas de acordo com as informações gravadas no nó de índice do arquivo alvo.
[0084] Deve ser entendido que, o exemplo mostrado na Figura 3 é para ajudar uma pessoa versada na técnica a entender melhor essa modalidade da presente invenção, mas não se destina a limitar o escopo dessa modalidade da presente invenção. Obviamente, uma pessoa versada na técnica pode fazer várias modificações ou variações equivalentes de acordo com o exemplo mostrado na Figura 3, e tais modificações ou variações devem também ser abrangidas pelo escopo dessa modalidade da presente invenção.
[0085] S250: Acessar o arquivo alvo de acordo com o Segundo espaço de endereço físico.
[0086] Especificamente, pode haver dois métodos para acessar, no espaço de usuário, o arquivo alvo no segundo espaço de endereço físico. Um primeiro método é: obter, de acordo com a primeira relação de mapeamento através de computação, um espaço de endereço virtual alvo que é obtido através de mapeamento do segundo espaço de endereço físico para o primeiro espaço de endereço virtual, e acessar, no espaço de usuário, o segundo espaço de endereço físico com o acesso do espaço de endereço virtual alvo, de modo a implantar o acesso ao arquivo alvo. Um segundo método é: alocar, no espaço de usuário, um segmento de um espaço de endereço virtual contíguo ao arquivo alvo e estabelecer uma segunda relação de mapeamento entre o segundo espaço de endereço virtual e o segundo espaço de endereço físico do arquivo alvo, de modo que o segundo espaço de endereço físico possa ser acessado no espaço de usuário com o acesso do segundo espaço de endereço virtual, e através disso implantar um acesso contínuo ao arquivo alvo.
[0087] No método de acesso de arquivo de acordo com essa modalidade da presente invenção, um arquivo alvo em um primeiro espaço de endereço físico que armazena um sistema de arquivo é acessado com o uso de um primeiro espaço de endereço virtual e de acordo com uma relação de mapeamento entre o primeiro espaço de endereço virtual em um espaço de usuário e o primeiro espaço de endereço físico, de modo que um acesso de arquivo seja implantado diretamente no espaço de usuário sem chamadas de sistema frequentes durante um acesso de arquivo na técnica anterior, o que pode reduzir de modo eficaz as sobrecargas de execução de software durante um acesso de arquivo e pode aumentar uma velocidade de acesso de arquivo.
[0088] O que é posto a seguir detalha o segundo método para acessar, no espaço de usuário, o arquivo alvo no segundo espaço de endereço físico em referência à Figura 4.
[0089] Conforme mostrado na Figura 4, opcionalmente, no método de acesso de arquivo 200 mostrado na Figura 2, S250 acessar o arquivo alvo de acordo com o segundo espaço de endereço físico inclui:
[0090] S251: Alocar o segundo espaço de endereço virtual ao arquivo alvo, sendo que o segundo espaço de endereço virtual é uma parte de espaço privado, alocado ao processo, no espaço de usuário no sistema operacional, e o segundo espaço de endereço virtual é um espaço de endereço contíguo.
[0091] Especificamente, o segundo espaço de endereço virtual pode ser um segmento de um espaço de endereço virtual contíguo no arquivo que acessa o espaço 151 do espaço de processo privado 150 descrito acima em referência à Figura 1-a.
[0092] S252: Estabelecer a segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual.
[0093] Opcionalmente, nessa modalidade da presente invenção, S252 estabelecer a segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual inclui: estabelecer a segunda relação de mapeamento com a ligação da tabela de página de arquivo do arquivo alvo a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual.
[0094] Especificamente, é assumido que a tabela de página de processo que corresponde ao segundo espaço de endereço virtual é uma tabela de página de nível N enquanto a tabela de página de arquivo do arquivo alvo é uma tabela de página de nível M, em que M^N, e a tabela de página de arquivo não tem as entradas de tabela de página de nível 0 a nível (N-M-1). A ligação da tabela de página de arquivo do arquivo alvo a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual especificamente se refere a: copiar os níveis mais altos (N-M) de entradas de tabela de página da tabela de página de arquivo para níveis (N-M) de entradas de tabela de página da tabela de página de processo que corresponde ao segundo espaço de endereço virtual. De acordo com essa maneira, a segunda relação de mapeamento pode ser estabelecida entre o segundo espaço de endereço virtual e o segundo espaço de endereço físico do arquivo alvo. Pode ser aprendido a partir das descrições supracitadas que, a fim de estabelecer a segunda relação de mapeamento em uma maneira de “ligação”, uma entrada de tabela de página de nível mais alto da tabela de página de arquivo do arquivo alvo precisa ser copiada para um nível correspondente de entrada de tabela de página da tabela de página de processo que corresponde ao segundo espaço de endereço virtual. Dessa maneira, outras entradas de página cujos níveis são menores do que os mesmos da entrada de tabela de página de nível mais alto (nível (N-M)) da tabela de página de arquivo do arquivo alvo são automaticamente ligadas à tabela de página de processo que corresponde ao segundo espaço de endereço virtual. Portanto, nessa maneira de ligação, uma quantidade de tabelas de página copiadas pode ser reduzida de modo eficaz e as sobrecargas de execução de software podem ser reduzidas.
[0095] Após a segunda relação de mapeamento ser estabelecida entre o segundo espaço de endereço físico do arquivo alvo e o segundo espaço de endereço virtual, o segundo espaço de endereço físico pode ser acessado com o uso do segundo espaço de endereço virtual contíguo. Portanto, um acesso contíguo ao arquivo alvo pode ser implantado.
[0096] S253: Acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento.
[0097] Especificamente, uma falha de página de dados não ocorre, ou seja, o arquivo alvo pode ser acessado diretamente no espaço de usuário desde que um endereço de acesso no segundo espaço de endereço virtual seja incluído em um espaço de endereço virtual que corresponde ao arquivo alvo. Em comparação com a técnica anterior, uma quantidade de vezes para realizar uma chamada de sistema é muito reduzida; portanto, as sobrecargas de execução de software podem ser reduzidas e uma velocidade de acesso de arquivo pode ser aumentada.
[0098] “O espaço de endereço virtual que corresponde ao arquivo alvo” descrito acima especificamente se refere um espaço mapeado que é obtido através de mapeamento do segundo espaço de endereço físico do arquivo alvo até o segundo espaço de endereço virtual. Em outras palavras, “o espaço de endereço virtual que corresponde ao arquivo alvo” é uma parte do segundo espaço de endereço virtual. Além disso, uma relação de mapeamento existe entre cada endereço virtual no “espaço de endereço virtual que corresponde ao arquivo alvo” e um endereço físico específico (um endereço físico da página de dados do arquivo alvo). Portanto, o segundo espaço de endereço físico do arquivo alvo pode ser acessado com o acesso do “espaço de endereço virtual que corresponde ao arquivo alvo”. S253 de acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento pode também ser descrito como: acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o “espaço de endereço virtual que corresponde ao arquivo alvo” no segundo espaço de endereço virtual e a segunda relação de mapeamento.
[0099] Opcionalmente, nessa modalidade da presente invenção, o segundo espaço de endereço virtual alocado ao arquivo alvo é igual ou maior do que o “espaço de endereço virtual que corresponde ao arquivo alvo”. Em outras palavras, o segundo espaço de endereço virtual alocado ao arquivo alvo pode ser igual ou maior do que o segundo espaço de endereço físico do arquivo alvo.
[00100] A “falha de página de dados” descrita acima se refere a interromper uma operação de acesso atual quando o caso a seguir ocorre: a tabela de página de processo que corresponde ao segundo espaço de endereço virtual não grava uma relação de mapeamento entre um endereço de acesso atual e um endereço físico específico, ou seja, a tabela de página de processo que corresponde ao segundo espaço de endereço virtual não tem uma entrada que indica a relação de mapeamento entre o endereço de acesso atual e o endereço físico específico. Portanto, um endereço físico não pode ser acessado com o uso do endereço de acesso atual, e o acesso atual ao arquivo alvo é interrompido.
[00101] Especificamente, existem dois casos: (1) Se o segundo espaço de endereço virtual é igual ao “espaço de endereço virtual que corresponde ao arquivo alvo”, quando o arquivo alvo é acessado com o uso do segundo espaço de endereço virtual, um endereço de acesso definitivamente é incluído no “espaço de endereço virtual que corresponde ao arquivo alvo”, e uma relação de mapeamento existe entre cada endereço virtual no “espaço de endereço virtual que corresponde ao arquivo alvo” e um endereço físico específico (um endereço físico da página de dados do arquivo alvo); portanto, no caso supracitado, a “falha de página de dados” não ocorre. (2) Se o segundo espaço de endereço virtual é maior do que o “espaço de endereço virtual que corresponde ao arquivo alvo”, quando o arquivo alvo é acessado com o uso do segundo espaço de endereço virtual, a “falha de página de dados” supracitada ocorre pelo fato de que um endereço de acesso não é incluído no “espaço de endereço virtual que corresponde ao arquivo alvo”.
[00102] No caso em que o segundo espaço de endereço virtual é maior do que o “espaço de endereço virtual que corresponde ao arquivo alvo”, quando uma operação de ler e/ou de gravar é realizada no arquivo alvo com o uso do segundo espaço de endereço virtual, um acesso fora dos limites pode ocorrer. A fim de reduzir um erro de leitura causado por uma operação de leitura fora dos limites, nessa modalidade da presente invenção, S253 de acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento pode incluir: realizar uma operação de leitura no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não é incluído no espaço de endereço virtual que corresponde ao arquivo alvo, de modo a finalizar a operação de leitura.
[00103] Deve ser entendido que o “espaço de endereço virtual que corresponde ao arquivo alvo” nessa modalidade se refere ao estado mapeado supracitado que é obtido através de mapeamento do segundo espaço de endereço físico do arquivo alvo até o segundo espaço de endereço virtual e que é uma parte do segundo espaço de endereço virtual.
[00104] Especificamente, uma instrução de leitura de arquivo usada para solicitar a ler os dados de arquivo do arquivo alvo é recebida do processo; com base na segunda relação de mapeamento, o segundo espaço de endereço físico é acessado com o uso do segundo espaço de endereço virtual, para realizar a operação de leitura no arquivo alvo; quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não é incluído no espaço de endereço virtual que corresponde ao arquivo alvo, a operação de leitura é finalizada. Especificamente, quando um endereço de leitura de fim, o qual é obtido após um endereço de leitura de início no segundo espaço de endereço virtual se desviar de um comprimento de byte de leitura predefinido, não é incluído no “espaço de endereço virtual que corresponde ao arquivo alvo”, a operação de leitura realizada no arquivo alvo é finalizada.
[00105] Opcionalmente, nessa modalidade da presente invenção, um descritor de arquivo “fd” do arquivo alvo e um objeto de arquivo “arquivo” do arquivo alvo podem ser criados na segunda área de memória física 162 (mostrado na Figura 1-b) do primeiro espaço de endereço físico 160, e uma relação de associação entre o descritor de arquivo “fd” e o objeto de arquivo “arquivo” do arquivo alvo é criado. O objeto de arquivo “arquivo” é usado para gravar um tamanho do segundo espaço de endereço virtual, um endereço inicial que é obtido através de mapeamento do segundo espaço de endereço físico do arquivo alvo até o segundo espaço de endereço virtual, um tamanho de arquivo do arquivo alvo e outras informações. Quando a solicitação de operação de leitura para o arquivo alvo é recebida, o descritor de arquivo “fd” do arquivo alvo na segunda área de memória física 162 pode ser acessado com o uso de um endereço virtual (um endereço mapeado, na segunda área 142, de um endereço físico que armazena o descritor de arquivo “fd” e que está na segunda área de memória física 162), que corresponde ao descritor de arquivo “fd” do arquivo alvo, na segunda área 142 (mostrado na Figura 1-b) do primeiro espaço de endereço virtual, de modo a obter o tamanho do segundo espaço de endereço virtual alocado ao arquivo alvo, o endereço de início que é obtido através de mapeamento do segundo espaço de endereço físico do arquivo alvo até o segundo espaço de endereço virtual, o tamanho de arquivo do arquivo alvo e as outras informações, e adicionalmente para realizar uma operação de leitura no arquivo alvo com o uso do segundo espaço de endereço virtual.
[00106] Portanto, no método de acesso de arquivo de acordo com essa modalidade da presente invenção, um problema de uma operação de leitura fora dos limites pode ser resolvido, o que pode efetivamente assegurar a segurança de acesso.
[00107] A fim de reduzir um erro de gravação causado por uma operação de gravação fora dos limites, nessa modalidade da presente invenção, se o segundo espaço de endereço virtual for maior do que o segundo espaço de endereço físico, S253 acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento inclui:realizar uma operação de gravação no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; equando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não é incluído no segundo espaço de endereço virtual, de modo a finalizar a operação de gravação.
[00108] Especificamente, uma solicitação de gravação de arquivo para solicitar a realizar a operação de gravação no arquivo alvo é recebida do processo; com base na segunda relação de mapeamento, o segundo espaço de endereço físico é acessado com o uso do segundo espaço de endereço virtual, para realizar a operação de gravação no arquivo alvo; quando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não é incluído no segundo espaço de endereço virtual, a operação de gravação é finalizada. Especificamente, quando um endereço de gravação de fim, o qual é obtido após um endereço de gravação de início no segundo espaço de endereço virtual se desviar de um comprimento de byte de gravação predefinido, não é incluído no segundo espaço de endereço virtual, a operação de gravação realizada no arquivo alvo é finalizada.
[00109] Opcionalmente, nessa modalidade da presente invenção, um descritor de arquivo “fd” do arquivo alvo e um objeto de arquivo “arquivo” do arquivo alvo podem ser criados na segunda área de memória física 162 (mostrado na Figura 1-b) do primeiro espaço de endereço físico 160, e uma relação de associação entre o descritor de arquivo “fd” e o objeto de arquivo “arquivo” do arquivo alvo é criada. O objeto de arquivo “arquivo” é usado para gravar um tamanho do segundo espaço de endereço virtual, um endereço inicial que é obtido através de mapeamento do segundo espaço de endereço físico do arquivo alvo até o segundo espaço de endereço virtual, um tamanho de arquivo do arquivo alvo, e outras informações. Quando a solicitação de operação de gravação para o arquivo alvo é recebida, o descritor de arquivo “fd” do arquivo alvo na segunda área de memória física 162 pode ser acessado com o uso de um endereço virtual (um endereço mapeado, na segunda área 142, de um endereço físico que armazena o descritor de arquivo “fd” e que está na segunda área de memória física 162), que corresponde ao descritor de arquivo “fd” do arquivo alvo, na segunda área 142 (mostrado na Figura 1-b) do primeiro espaço de endereço virtual, de modo a obter o tamanho do segundo espaço de endereço virtual alocado ao arquivo alvo, o endereço de início que é obtido através de mapeamento do segundo espaço de endereço físico do arquivo alvo até o segundo espaço de endereço virtual, o tamanho de arquivo do arquivo alvo, e as outras informações, e adicionalmente realizar uma operação de gravação no arquivo alvo com o uso do segundo espaço de endereço virtual. Conforme descrito acima, no caso em que o segundo espaço de endereço virtual é maior do que o “espaço de endereço virtual que corresponde ao arquivo alvo”, a “falha de página de dados” pode ocorrer quando a operação de gravação é realizada no arquivo alvo com o uso do segundo espaço de endereço virtual. Após o processamento de interrupção estar completo, a operação de gravação pode continuar a ser realizada no arquivo alvo.
[00110] Opcionalmente, nessa modalidade da presente invenção, durante um processo de realizar a operação de gravação no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento: quando a tabela de página de processo que corresponde ao segundo espaço de endereço virtual não tem uma entrada que grave um endereço físico mapeado, no primeiro espaço de endereço físico, de um endereço de gravação atual, a operação de gravação realizada no arquivo alvo é interrompida, sendo que o endereço de gravação atual não é incluído no espaço de endereço virtual que corresponde ao arquivo alvo; um terceiro endereço físico é alocado ao arquivo alvo no primeiro espaço de endereço físico, e uma entrada que é usada para gravar uma relação de mapeamento entre o endereço de gravação atual e o terceiro endereço físico é adicionado na tabela de página de processo que corresponde ao segundo espaço de endereço virtual; e com base na relação de mapeamento gravada na entrada supracitada que é adicionado na tabela de página de processo que corresponde ao segundo espaço de endereço virtual, o terceiro endereço físico é acessado com o uso do endereço de gravação atual, e a operação de gravação continua a ser realizada no arquivo alvo.
[00111] No método de acesso de arquivo de acordo com essa modalidade da presente invenção, uma faixa de uma operação de gravação de arquivo pode ser aumentada, e um problema de acesso fora dos limites pode ser resolvido, o que pode efetivamente assegurar a segurança de acesso. Nessa modalidade da presente invenção, o segundo espaço de endereço virtual é um segmento de espaço de endereço contíguo, que facilita a implantação de um acesso único a páginas de memória física dentro de um comprimento de acesso exigido, de um endereço inicial de um endereço virtual que corresponde a um arquivo alvo a ser acessado, sem a necessidade de usar um software para buscar por endereços virtuais que correspondem a diferentes páginas de memória física muitas vezes. Dessa maneira, um acesso sequencial a arquivos pode ser implantado, e a velocidade de acesso de arquivo pode ser aumentada. Adicionalmente, a tradução entre um endereço virtual e um endereço físico do arquivo alvo pode ser completada de modo transparente com o uso de uma unidade de gerenciamento de memória (Memory Management Unit, “MMU” para abreviar), que facilita um aumento em uma velocidade de acesso de arquivo, e pode reduzir adicionalmente as sobrecargas de execução de software. Deve ser entendido que, alternativamente, um acesso contínuo ao arquivo alvo pode ser implantado com o uso do segundo espaço de endereço virtual por meio de uma instrução de carregar/armazenar (Load/Store) para uma unidade de processamento central (Central Processing Unit, CPU para abreviar).
[00112] Nessa modalidade da presente invenção, um arquivo alvo é mapeado até um segmento de um espaço de endereço virtual contíguo no espaço de usuário. Por um lado, o acesso de arquivo pode ser implantado no espaço de usuário quando uma quantidade de chamadas de sistema é reduzida; por outro lado, a velocidade de acesso de arquivo pode ser aumentada de modo eficaz e a eficiência de acesso de arquivo pode ser aprimorada de modo eficaz.
[00113] O que é posto a seguir descreve um método de acesso de arquivo 300 de acordo com outra modalidade da presente invenção em referência à Figura 5. Deve ser observado que, na Figura 5, uma solicitação de acesso de arquivo de um processo é usada como um exemplo para a descrição. Pode ser entendido que o método 300 pode ser aplicado a qualquer cenário no qual um processo solicita acessar um arquivo. Conforme mostrado na Figura 5, o método 300 inclui:
[00114] S310: Estabelecer, em um espaço de kernel, uma primeira relação de mapeamento entre um primeiro espaço de endereço virtual predefinido e um primeiro espaço de endereço físico, e armazenar, em uma tabela de página de processo que corresponde ao espaço de kernel, uma tabela de página de mapeamento que corresponde à primeira relação de mapeamento, sendo que o primeiro espaço de endereço virtual é uma parte de um espaço de usuário em um sistema operacional e o primeiro espaço de endereço físico é uma parte de espaço de memória.
[00115] Especificamente, durante a inicialização do sistema, a primeira relação de mapeamento (mostrado na Figura 1-a e Figura 1-b) entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico é estabelecida e a tabela de página de mapeamento que corresponde à primeira relação de mapeamento é armazenada na tabela de página de processo que corresponde ao espaço de kernel. Por exemplo, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento é armazenada em um diretório global de página compartilhada do espaço de kernel.
[00116] Deve ser entendido que, antes da primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico ser estabelecida em um espaço de kernel em S310, o primeiro espaço de endereço físico precisa ser inicializado. Especificamente, após o sistema iniciar, se o primeiro espaço de endereço físico foi predefinido, se for verificado que dados os armazenados em uma localização de cabeçalho do segmento de espaço de endereço físico predefinido estão em conformidade com uma forma de organização de estrutura física de um sistema de arquivo. Se os dados estão em conformidade com a forma de organização, a inicialização não precisa ser realizada; se os dados não estiverem em conformidade com a forma de organização, a inicialização é realizada no primeiro espaço de endereço físico. Se o segmento de espaço de endereço físico for uma área de memória em branco, a área de memória em branco é inicializada de acordo com a forma de organização de estrutura física do sistema de arquivo. Por exemplo, o segmento de área de memória física é formatado de acordo com um fator tal como um tamanho do primeiro espaço de endereço físico e uma estrutura de organização de dados do sistema de arquivo. Por exemplo, o segmento de área de memória física (ou seja, o primeiro espaço de endereço físico) é organizado e gerenciado ao estabelecer uma estrutura de dados tal como um superbloco ou um nó de índice.
[00117] S320: Receber uma solicitação de acesso de arquivo de um processo, sendo que a solicitação de acesso de arquivo inclui um identificador de arquivo, e o identificador de arquivo é usado para indicar um arquivo alvo a ser acessado. S320 é igual a S210 mostrado na Figura 2. A título de brevidade, os detalhes não são descritos no presente documento novamente.
[00118] S330: Determinar que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grave a primeira relação de mapeamento.
[00119] Especificamente, após receber a solicitação de acesso de arquivo do processo, quando o primeiro espaço de endereço virtual é acessado no espaço de usuário, a tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não tem uma entrada que grava a primeira relação de mapeamento.
[00120] S340: Ligar, à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento e que é armazenada no espaço de kernel.
[00121] Especificamente, o espaço de usuário é trocado para o espaço de kernel, e a tabela de página de mapeamento que corresponde à primeira relação de mapeamento e que é armazenada no espaço de kernel é ligada à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, de modo que um acesso de arquivo seja subsequentemente implantado no espaço de usuário de acordo com o primeiro espaço de endereço virtual e a primeira relação de mapeamento.
[00122] S350: Acessar o primeiro espaço de endereço físico de acordo com o primeiro espaço de endereço virtual e a primeira relação de mapeamento. S350 é igual a S220 mostrado na Figura 2, e os detalhes não são descritos no presente documento novamente.
[00123] S360: Obter um nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo, sendo que o nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo. S360 é igual a S230 mostrado na Figura 2, e os detalhes não são descritos no presente documento novamente.
[00124] S370: Obter uma tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, em que a tabela de página de arquivo grava um segundo espaço de endereço físico no primeiro espaço de endereço físico, uma página de dados do arquivo alvo é armazenada no segundo espaço de endereço físico, e a página de dados do arquivo alvo é usada para armazenar dados de arquivo. S370 é igual a S240 mostrado na Figura 2, e os detalhes não são descritos no presente documento novamente.
[00125] S380: Acessar o arquivo alvo de acordo com o segundo espaço de endereço físico. S380 é igual a S250 mostrado na Figura 2, e os detalhes não são descritos no presente documento novamente.
[00126] No método de acesso de arquivo de acordo com essa modalidade da presente invenção, se a tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grava a primeira relação de mapeamento, uma falha de página precisa ser executada uma vez. Ou seja, o espaço de usuário é trocado para o espaço de kernel, e a tabela de página de mapeamento que corresponde à primeira relação de mapeamento é ligada à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual. Se a tabela de página de processo que corresponde ao primeiro espaço de endereço virtual grava a primeira relação de mapeamento, o primeiro espaço de endereço físico que armazena o sistema de arquivo é acessado de acordo com a primeira relação de mapeamento e o primeiro espaço de endereço virtual, de modo que um arquivo no sistema de arquivo seja acessado. Deve ser observado que, nessa modalidade da presente invenção, o primeiro espaço de endereço virtual é um espaço, compartilhado por todos os processos, no espaço de usuário. Para solicitações de acesso de arquivo de todos os processos, o acesso a um arquivo alvo solicitado pode ser implantado diretamente no espaço de usuário.
[00127] Deve ser entendido que, nessa modalidade da presente invenção, após o mapeamento da tabela de página que corresponde à primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico ser ligada à tabela de processo que corresponde ao primeiro espaço de endereço virtual, se o sistema não estiver desativado, a tabela de página de processo que corresponde ao primeiro espaço de endereço virtual permanentemente armazena a entrada que grava a primeira relação de mapeamento, e qualquer processo pode subsequentemente implantar, com base no primeiro espaço de endereço virtual, o acesso de arquivo no espaço de usuário.
[00128] Em comparação com a técnica anterior, no método de acesso de arquivo de acordo com essa modalidade da presente invenção, o acesso de arquivo pode ser implantado em um espaço de usuário quando uma quantidade de chamadas de sistema é reduzida em uma extensão relativamente grande. Portanto, as sobrecargas de execução de software podem ser reduzidas de modo eficaz durante um acesso de arquivo, e uma velocidade de acesso de arquivo pode ser aumentada de modo eficaz e a eficiência de acesso de arquivo pode ser aprimorada de modo eficaz.
[00129] Deve ser entendido que, a solução técnica fornecida nessa modalidade da presente invenção pode ser aplicada a um sistema operacional em Linux, ou pode ser aplicado a outro sistema operacional no qual cada processo tem seu espaço dedicado.
[00130] O que foi supracitado detalha o método de acesso de arquivos de acordo com as modalidades da presente invenção em referência da Figura 1 à Figura 5, e o que é posto a seguir irá detalhar um aparelho de acesso de arquivo de acordo com uma modalidade da presente invenção em referência da Figura 6 à Figura 8.
[00131] A Figura 6 é um diagrama em bloco esquemático de um aparelho de acesso de arquivo 400 de acordo com uma modalidade da presente invenção. O aparelho 400 inclui: um módulo de recebimento 410, configurado para receber uma solicitação de acesso de arquivo de um processo, sendo que a solicitação de acesso de arquivo inclui um identificador de arquivo, e o identificador de arquivo é usado para indicar um arquivo alvo a ser acessado; um primeiro módulo de acesso 420, configurado para acessar um primeiro espaço de endereço físico de acordo com um primeiro espaço de endereço virtual predefinido e uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, sendo que o primeiro espaço de endereço virtual é uma parte de um espaço de usuário em um sistema operacional, e o primeiro espaço de endereço físico armazena um sistema de arquivo e é uma parte de espaço de memória; um módulo de obtenção 430, configurado para obter um nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo que é do arquivo alvo e que é recebido pelo módulo de recebimento, sendo que o nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo, e o módulo de obtenção 430 é adicionalmente configurado para obter uma tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, sendo que a tabela de página de arquivo grava um segundo espaço de endereço físico no primeiro espaço de endereço físico, uma página de dados do arquivo alvo é armazenada no segundo espaço de endereço físico e a página de dados do arquivo alvo é usada para armazenar dados de arquivo; e um segundo módulo de acesso 440, configurado para acessar o arquivo alvo de acordo com o segundo espaço de endereço físico que é indicado pela tabela de página de arquivo obtida através do módulo de obtenção.
[00132] No aparelho de acesso de arquivo de acordo com essa modalidade da presente invenção, um arquivo alvo em um primeiro espaço de endereço físico que armazena um sistema de arquivo é acessado com o uso de um primeiro espaço de endereço virtual e de acordo com uma relação de mapeamento entre o primeiro espaço de endereço virtual em um espaço de usuário e o primeiro espaço de endereço físico, de modo que um acesso de arquivo seja implantado diretamente no espaço de usuário sem chamadas de sistema frequentes durante um acesso de arquivo na técnica anterior, o que pode reduzir de modo eficaz as sobrecargas de execução de software durante um acesso de arquivo e pode aumentar uma velocidade de acesso de arquivo.
[00133] Conforme mostrado na Figura 7, opcionalmente, em uma modalidade, o segundo módulo de acesso 440 inclui: uma unidade de alocação 441, configurada para alocar um segundo espaço de endereço virtual ao arquivo alvo, sendo que o segundo espaço de endereço virtual é uma parte de espaço privado, alocado ao processo, no espaço de usuário no sistema operacional, e o segundo espaço de endereço virtual é um espaço de endereço contíguo; uma unidade de estabelecimento 442, configurada para estabelecer uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual alocado pela unidade de alocação; e uma unidade de acesso 443, configurada para acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual alocado pela unidade de alocação e a segunda relação de mapeamento estabelecida pela unidade de estabelecimento.
[00134] Opcionalmente, em uma modalidade, a unidade de estabelecimento 442 é especificamente configurada para estabelecer a segunda relação de mapeamento com a ligação da tabela de página de arquivo do arquivo alvo a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual.
[00135] Opcionalmente, em uma modalidade, o segundo espaço de endereço virtual alocado pela unidade de alocação é maior do que o segundo espaço de endereço físico; e a unidade de acesso é especificamente configurada para: realizar uma operação de leitura no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não é incluído em um espaço de endereço virtual que corresponde ao arquivo alvo, finalizar a operação de leitura.
[00136] Opcionalmente, em uma modalidade, o segundo espaço de endereço virtual alocado pela unidade de alocação é maior do que o segundo espaço de endereço físico; e a unidade de acesso é especificamente configurada para: realizar uma operação de gravação no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não é incluído no segundo espaço de endereço virtual, finalizar a operação de gravação.
[00137] Conforme mostrado na Figura 8, Opcionalmente, em uma modalidade, o aparelho 400 inclui: um módulo de estabelecimento 450, configurado para: estabelecer, em um espaço de kernel, a primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, e armazenar, em uma tabela de página de processo que corresponde ao espaço de kernel, uma tabela de página de mapeamento que corresponde à primeira relação de mapeamento; o módulo de recebimento 410, configurado para receber a solicitação de acesso de arquivo do processo, sendo que a solicitação de acesso de arquivo inclui o identificador de arquivo, e o identificador de arquivo é usado para indicar o arquivo alvo a ser acessado; um módulo de determinação 460, configurado para: após o módulo de recebimento 410 receber a solicitação de acesso de arquivo do processo, determinar que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grave a primeira relação de mapeamento; um módulo de ligação 470, configurado para ligar, à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento estabelecida pelo módulo de estabelecimento e que é armazenado no espaço de kernel; o primeiro módulo de acesso 420, configurado para acessar o primeiro espaço de endereço físico de acordo com o primeiro espaço de endereço virtual predefinido e a primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, em que o primeiro espaço de endereço virtual é uma parte do espaço de usuário no sistema operacional, e o primeiro espaço de endereço físico armazena o sistema de arquivo e é uma parte do espaço de memória; o módulo de obtenção 430, configurado para obter o nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo que é do arquivo alvo e que é recebido pelo módulo de recebimento, sendo que o nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo; e o módulo de obtenção 430 é adicionalmente configurado para obter a tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, sendo que a tabela de página de arquivo grava o segundo espaço de endereço físico da página de dados do arquivo alvo armazenado no primeiro espaço de endereço físico, e a página de dados do arquivo alvo é usada para armazenar os dados de arquivo; e o segundo módulo de acesso 440, configurado para acessar o arquivo alvo de acordo com o segundo espaço de endereço físico que é indicado pela tabela de página de arquivo obtida através do módulo de obtenção.
[00138] Deve ser entendido que, o módulo de estabelecimento 450 estabelece a primeira relação de mapeamento no espaço de kernel antes que o módulo de recebimento 410 receba a solicitação de acesso de arquivo. Deve também ser entendido que, o primeiro módulo de acesso 420 acessa o primeiro espaço de endereço físico de acordo com o primeiro espaço de endereço virtual e a primeira relação de mapeamento se o módulo de ligação 470 ligar, à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento estabelecida pelo módulo de estabelecimento e que é armazenado no espaço de kernel.
[00139] Deve ser entendido que, o que foi supracitado e outras operações e/ou funções de cada módulo no aparelho de acesso de arquivo 400 de acordo com essa modalidade da presente invenção são separadamente destinados a implantar procedimentos correspondentes dos métodos mostrados na Figura 2, na Figura 4 e na Figura 5. A título de brevidade, os detalhes não são descritos no presente documento novamente.
[00140] No aparelho de acesso de arquivo de acordo com essa modalidade da presente invenção, um arquivo alvo em um primeiro espaço de endereço físico que armazena um sistema de arquivo é acessado com o uso de um primeiro espaço de endereço virtual e de acordo com uma relação de mapeamento entre o primeiro espaço de endereço virtual em um espaço de usuário e o primeiro espaço de endereço físico, de modo que um acesso de arquivo seja implantado diretamente no espaço de usuário sem chamadas de sistema frequentes durante um acesso de arquivo na técnica anterior, o que pode reduzir de modo eficaz as sobrecargas de execução de software durante um acesso de arquivo e pode aumentar uma velocidade de acesso de arquivo.
[00141] Conforme mostrado na Figura 9, uma modalidade da presente invenção fornece adicionalmente um diagrama estrutural esquemático de um sistema de armazenamento. O sistema de armazenamento 500 inclui um processador 510, uma memória 520 e um sistema de barramento 530. O processador 510 é conectado à memória 520 com o uso do sistema de barramento 530, e a memória 520 é configurada para armazenar um arquivo e um programa. O processador 510 é configurado para executar o programa armazenado na memória 520. O processador 510 invoca, com o uso do sistema de barramento 530, um código armazenado na memória 520, a fim de implantar: receber uma solicitação de acesso de arquivo de um processo, sendo que a solicitação de acesso de arquivo inclui um identificador de arquivo, e o identificador de arquivo é usado para indicar um arquivo alvo a ser acessado; acessar um primeiro espaço de endereço físico de acordo com um primeiro espaço de endereço virtual predefinido e uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, sendo que o primeiro espaço de endereço virtual é uma parte de um espaço de usuário em um sistema operacional, e o primeiro espaço de endereço físico armazena um sistema de arquivo e é uma parte de espaço de memória; obter um nó de índice do arquivo alvo do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo, sendo que o nó de índice inclui as informações de tabela de página de arquivo do arquivo alvo; obter uma tabela de página de arquivo do arquivo alvo de acordo com as informações de tabela de página de arquivo, incluídas no nó de índice, do arquivo alvo, sendo que a tabela de página de arquivo grava um segundo espaço de endereço físico no primeiro espaço de endereço físico, uma página de dados do arquivo alvo é armazenada no segundo espaço de endereço físico e a página de dados do arquivo alvo é usada para armazenar dados de arquivo; e acessar o arquivo alvo de acordo com o segundo espaço de endereço físico.
[00142] No sistema de armazenamento de acordo com essa modalidade da presente invenção, um arquivo alvo em um primeiro espaço de endereço físico que armazena um sistema de arquivo é acessado com o uso de um primeiro espaço de endereço virtual e de acordo com uma relação de mapeamento entre o primeiro espaço de endereço virtual em um espaço de usuário e o primeiro espaço de endereço físico, de modo que um acesso de arquivo seja implantado diretamente no espaço de usuário sem chamadas de sistema frequentes durante um acesso de arquivo na técnica anterior, o que pode reduzir de modo eficaz as sobrecargas de execução de software durante um acesso de arquivo, e pode aumentar uma velocidade de acesso de arquivo.
[00143] Opcionalmente, o processador 510 invoca, com o uso do sistema de barramento 530, o código armazenado na memória 520, a fim de especificamente implantar: alocar um segundo espaço de endereço virtual ao arquivo alvo, sendo que o segundo espaço de endereço virtual é uma parte de espaço privado, alocado ao processo, no espaço de usuário no sistema operacional, e o segundo espaço de endereço virtual é um espaço de endereço contíguo; estabelecer uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual; e acessar o arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento.
[00144] Opcionalmente, o processador 510 invoca, com o uso do sistema de barramento 530, o código armazenado na memória 520, a fim de especificamente implantar: estabelecer a segunda relação de mapeamento com a ligação da tabela de página de arquivo do arquivo alvo a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual.
[00145] Opcionalmente, o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico. O processador 510 invoca, com o uso do sistema de barramento 530, o código armazenado na memória 520, a fim de especificamente implantar: realizar uma operação de leitura no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não é incluído em um espaço de endereço virtual que corresponde ao arquivo alvo, finalizar a operação de leitura.
[00146] Opcionalmente, o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico. O processador 510 invoca, com o uso do sistema de barramento 530, o código armazenado na memória 520, a fim de especificamente implantar: realizar uma operação de gravação no arquivo alvo no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e a segunda relação de mapeamento; e quando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não é incluído no segundo espaço de endereço virtual, finalizar a operação de gravação.
[00147] Opcionalmente, o processador 510 invoca, com o uso do sistema de barramento 530, o código armazenado na memória 520, a fim de adicionalmente implantar: estabelecer, em um espaço de kernel, a primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, e armazenar, em uma tabela de página de processo que corresponde ao espaço de kernel, uma tabela de página de mapeamento que corresponde à primeira relação de mapeamento; após receber a solicitação de acesso de arquivo do processo, determinar que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grave a primeira relação de mapeamento; e ligar, à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento e que é armazenada no espaço de kernel.
[00148] Deve ser entendido que, nessa modalidade da presente invenção, o processador 510 pode ser uma unidade de processamento central (Central Processing Unit, “CPU” para abreviar), ou o processador 510 pode ser outro processador de propósito geral, um processador de sinal digital (DSP), um circuito integrado de aplicação específica (ASIC), um arranjo de portas programável em campo (FPGA) ou outro dispositivo lógico programável, um dispositivo lógico de transistor, um componente de hardware, ou semelhantes. O processador de propósito geral pode ser um microprocessador ou o processador pode ser qualquer processador comum ou semelhante.
[00149] A memória 520 pode incluir uma memória somente de leitura e uma memória de acesso aleatório, e fornece uma instrução e dados para o processador 510. A memória 520 pode adicionalmente incluir uma memória de acesso aleatório não volátil, que é configurada para armazenar um arquivo. Por exemplo, a memória 520 pode adicionalmente armazenar informações tais como um tipo de dispositivo.
[00150] Além de um barramento de dados, o sistema de barramento 530 pode também incluir um barramento de potência, um barramento de controle, um barramento de sinal de estado, e semelhantes. No entanto, a título de uma descrição clara, todos os barramentos na figura são rotulados como o sistema de barramento 530.
[00151] O sistema de armazenamento 500 nessa modalidade da presente invenção pode incluir um dispositivo tal como um computador, um servidor, uma matriz de armazenamento na qual um sistema de arquivo é estabelecido. Deve ser observado que, no sistema de armazenamento 500, uma NVM pode ser montada em um barramento de memória, e o sistema de arquivo é estabelecido na NVM.
[00152] Durante um processo de implantação, as etapas nos métodos supracitados podem ser completadas com o uso de um circuito lógico integrado de hardware no processador 510 ou uma instrução em forma de software. As etapas nos métodos revelados em referência às modalidades da presente invenção podem ser executadas diretamente por um processador de hardware, ou executadas por uma combinação de hardware em um processador e um módulo de software. O módulo de software pode ser localizado em um meio de armazenamento que é maduro na técnica anterior, tal como uma memória de acesso aleatório, uma memória flash, uma memória somente de leitura, uma memória somente de leitura programável, uma memória somente de leitura programável eletricamente apagável ou um registro. O meio de armazenamento é localizado na memória 520. O processador 510 lê as informações da memória 520, e completa as etapas dos métodos supracitados em referência ao hardware do processador 510. A fim de evitar repetição, os detalhes não são descritos no presente documento novamente.
[00153] Deve ser entendido que o sistema de armazenamento 500 de acordo com essa modalidade da presente invenção pode ser correspondente ao aparelho de acesso de arquivo 400 de acordo com a modalidade supracitada da presente invenção, e o sistema de armazenamento 500 pode implantar os métodos mostrados na Figura 2, na Figura 4 e na Figura 5. A título de brevidade, os detalhes não são descritos no presente documento novamente.
[00154] No sistema de armazenamento de acordo com essa modalidade da presente invenção, um arquivo alvo em um primeiro espaço de endereço físico que armazena um sistema de arquivo é acessado com o uso de um primeiro espaço de endereço virtual e de acordo com uma relação de mapeamento entre o primeiro espaço de endereço virtual em um espaço de usuário e o primeiro espaço de endereço físico, de modo que um acesso de arquivo seja implantado diretamente no espaço de usuário sem chamadas de sistema frequentes durante um acesso de arquivo na técnica anterior, o que pode reduzir de modo eficaz as sobrecargas de execução de software durante um acesso de arquivo, e pode aumentar uma velocidade de acesso de arquivo.
[00155] Deve ser entendido que no relatório descritivo, nas reivindicações e nas figuras anexadas da presente invenção, os termos “primeiro”, “segundo”, “terceiro” e assim em diante se destinam a distinguir entre diferentes objetos, mas não indicam uma ordem em particular. Além disso, os termos “inclui”, “contém” ou qualquer outra variante do mesmo, se destinam a cobrir uma inclusão não exclusiva. Por exemplo, um processo, um método, um sistema, um produto ou um aparelho que inclui uma série de etapas ou módulos não é limitada às etapas ou aos módulos listados, mas de modo opcional, adicionalmente inclui uma etapa ou um módulo não listado, ou de modo opcional, adicionalmente inclui outra etapa ou outro módulo inerente do processo, do método, do produto ou do aparelho.
[00156] Deve também ser entendido que os números em sequência dos processos supracitados não significam sequências de execução em várias modalidades da presente invenção. As sequências de execução dos processos devem ser determinadas de acordo com as funções e a lógica interna dos processos, e não devem ser interpretados como qualquer limitação nos processos de implantação das modalidades da presente invenção.
[00157] Uma pessoa de habilidade comum na técnica pode estar consciente de que, em combinação com os exemplos descritos nas modalidades reveladas nesse relatório descritivo, as unidades e as etapas de algoritmo podem ser implantadas por hardware eletrônico ou uma combinação de software de computador e hardware eletrônico. Se as funções são realizadas por hardware ou software depende de aplicações particulares e condições de limitação de projeto das soluções técnicas. Uma pessoa versada na técnica pode usar diferentes métodos para implantar as funções descritas para cada aplicação particular, mas não deve ser considerado que a implantação vá além do escopo da presente invenção.
[00158] Nas muitas modalidades fornecidas no presente pedido de patente, deve ser entendido que o sistema, o aparelho e o método revelados podem ser implantados de outras maneiras. Por exemplo, a modalidade de aparelho descrita é meramente exemplificativa. Por exemplo, a divisão de unidade é meramente uma divisão de função lógica e pode ser outra divisão em uma implantação real. Por exemplo, uma pluralidade de unidades ou componentes pode ser combinada ou integrada em outro sistema, ou alguns recursos podem ser ignorados ou não realizados. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou as conexões de comunicação, exibidos ou discutidos, podem ser implantados com o uso de algumas interfaces. Os acoplamentos indiretos ou as conexões de comunicação indiretas entre os aparelhos ou as unidades podem ser implantados em formas eletrônicas, mecânicas ou outras.
[00159] Quando as funções são implantadas na forma de uma unidade funcional de software e vendidas ou usadas como um produto independente, as funções podem ser armazenadas em um meio de armazenamento legível por computador. Com base em tal entendimento, as soluções técnicas da presente invenção essencialmente, ou a parte que contribui com a técnica anterior, ou algumas das soluções técnicas podem ser implantadas em uma forma de um produto de software. O produto de software é armazenado em um meio de armazenamento, e inclui muitas instruções para instruir um dispositivo de computador (que pode ser um computador pessoal, um servidor ou um dispositivo de rede) para realizar algumas ou todas as etapas dos métodos descritos nas modalidades da presente invenção. O meio de armazenamento supracitado inclui: qualquer meio legível por máquina não transitório (non-transitory) que possa armazenar um código de programa, tal como uma unidade de memória flash USB, um disco rígido removível, uma memória somente de leitura (ROM, Read-Only Memory), uma memória de acesso aleatório (RAM, Random Access Memory), um disco magnético ou um disco óptico.
[00160] Uma pessoa versada na técnica pode claramente saber que, a título de conveniência e concisão da descrição, nas modalidades supracitadas, as modalidades enfatizam diferentes aspectos, e para uma parte não descrita em detalhes em uma modalidade, pode ser feita uma referência a uma descrição relevante de outra modalidade. Os recursos revelados nas modalidades da presente invenção, nas reivindicações e nas figuras anexadas podem existir independentemente, ou existir em uma combinação. Os recursos descritos em uma forma de hardware nas modalidades da presente invenção podem ser executados por software, e vice versa, o que não é limitado no presente documento.

Claims (14)

1. Método de acesso de arquivo, CARACTERIZADO pelo fato de que compreende: receber (S210) uma solicitação de acesso de arquivo de um processo, em que a solicitação de acesso de arquivo compreende um identificador de arquivo, e o identificador de arquivo indica um arquivo alvo a ser acessado; acessar (S220) um primeiro espaço de endereço físico (160) de acordo com um primeiro espaço de endereço virtual predefinido (140) e com uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, em que o primeiro espaço de endereço virtual é uma parte de espaço de usuário (130) em um sistema operacional, o primeiro espaço de endereço físico armazena um sistema de arquivo e é uma parte de espaço de memória, o espaço de usuário (130) compreende espaço de processo compartilhado e espaço de processo privado, e o primeiro espaço de endereço virtual (140) é o espaço de processo compartilhado, em que todos os processos têm permissão para acessar o espaço de processo compartilhado; obter (S230) um nó de índice do arquivo alvo a ser acessado do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo a ser acessado, em que o nó de índice compreende informações de tabela de página de arquivo do arquivo alvo a ser acessado; obter (S240) uma tabela de página de arquivo do arquivo alvo a ser acessado de acordo com as informações de tabela de página de arquivo, compreendidas no nó de índice, do arquivo alvo a ser acessado, em que a tabela de página de arquivo grava um segundo espaço de endereço físico (170) no primeiro espaço de endereço físico, uma página de dados do arquivo alvo a ser acessado é armazenada no segundo espaço de endereço físico, e a página de dados do arquivo alvo a ser acessado é usada para armazenar dados de arquivo; e acessar (S250) o arquivo alvo a ser acessado de acordo com o segundo espaço de endereço físico.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente: dividir o espaço de usuário (130) do sistema operacional no espaço de processo compartilhado e no espaço de processo privado, em que o espaço de processo privado é espaço privado para cada processo.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que acessar o arquivo alvo a ser acessado de acordo com o segundo espaço de endereço físico compreende: alocar (S251) um segundo espaço de endereço virtual ao arquivo alvo a ser acessado, em que o segundo espaço de endereço virtual é uma parte de espaço privado, alocado ao processo (150), no espaço de usuário no sistema operacional, em que o espaço de processo privado alocado ao processo compreende espaço de acesso de arquivo (151) e espaço de atividade de processo (152), o espaço de atividade de processo (152) é espaço ao qual uma atividade de processo comum pertence, o espaço de acesso de arquivo (151) é usado para mapear o arquivo alvo a ser acessado, e o segundo espaço de endereço virtual é um segmento de espaço de endereço virtual contíguo no espaço de acesso de arquivo (151); estabelecer (S252) uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual; e acessar (S253) o arquivo alvo a ser acessado no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e com a segunda relação de mapeamento.
4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que estabelecer (S252) uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual compreende: estabelecer (S252) a segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual ligando a tabela de página de arquivo do arquivo alvo a ser acessado a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual.
5. Método, de acordo com a reivindicação 3 ou 4, CARACTERIZADO pelo fato de que o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico; e acessar (S253) o arquivo alvo a ser acessado no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e com a segunda relação de mapeamento compreende: realizar uma operação de leitura no arquivo alvo a ser acessado no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e com a segunda relação de mapeamento; e finalizar a operação de leitura quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não estiver incluído em um espaço de endereço virtual que corresponde ao arquivo alvo a ser acessado.
6. Método, de acordo com a reivindicação 3 ou 4, CARACTERIZADO pelo fato de que o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico; e acessar (S253) o arquivo alvo a ser acessado no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e com a segunda relação de mapeamento compreende: realizar uma operação de gravação no arquivo alvo a ser acessado no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e com a segunda relação de mapeamento; e finalizar a operação de gravação quando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não estiver incluído no segundo espaço de endereço virtual.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, CARACTERIZADO pelo fato de que compreende adicionalmente: estabelecer (S310), em espaço de kernel, a primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, e armazenar, em uma tabela de página de processo que corresponde ao espaço de kernel, uma tabela de página de mapeamento que corresponde à primeira relação de mapeamento; e após receber a solicitação de acesso de arquivo do processo, o método compreende adicionalmente: determinar (S330) que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grave a primeira relação de mapeamento; e ligar (S340), à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que corresponde à primeira relação de mapeamento e que é armazenada no espaço de kernel.
8. Sistema de armazenamento CARACTERIZADO pelo fato de que compreende: uma memória, configurada para armazenar um arquivo e um programa; e um processador, configurado para executar o programa para realizar: receber (S210) uma solicitação de acesso de arquivo de um processo, em que a solicitação de acesso de arquivo compreende um identificador de arquivo, e o identificador de arquivo indica um arquivo alvo a ser acessado; acessar (S220) um primeiro espaço de endereço físico (160) de acordo com um primeiro espaço de endereço virtual predefinido (140) e com uma primeira relação de mapeamento predefinida entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, em que o primeiro espaço de endereço virtual é uma parte de espaço de usuário (130) em um sistema operacional, o primeiro espaço de endereço físico armazena um sistema de arquivo e é uma parte de espaço de memória, o espaço de usuário (130) compreende espaço de processo compartilhado e espaço de processo privado, o primeiro espaço de endereço virtual (140) é o espaço de processo compartilhado, em que todos os processos têm permissão para acessar o espaço de processo compartilhado; obter (S230) um nó de índice do arquivo alvo a ser acessado do primeiro espaço de endereço físico de acordo com o identificador de arquivo do arquivo alvo a ser acessado, em que o nó de índice compreende informações de tabela de página de arquivo do arquivo alvo a ser acessado; obter (S240) uma tabela de página de arquivo do arquivo alvo a ser acessado de acordo com as informações de tabela de página de arquivo, compreendidas no nó de índice, do arquivo alvo a ser acessado, em que a tabela de página de arquivo grava um segundo espaço de endereço físico (170) no primeiro espaço de endereço físico, uma página de dados do arquivo alvo a ser acessado é armazenada no segundo espaço de endereço físico, e a página de dados do arquivo alvo a ser acessado é usada para armazenar dados de arquivo; e acessar (S250) o arquivo alvo a ser acessado de acordo com o segundo espaço de endereço físico.
9. Sistema de armazenamento, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o processador é adicionalmente configurado para realizar: dividir o espaço de usuário (130) do sistema operacional no espaço de processo compartilhado e no espaço de processo privado, em que o espaço de processo privado é espaço privado para cada processo.
10. Sistema de armazenamento, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que a etapa de acessar o arquivo alvo a ser acessado, o processador é configurado para realizar: alocar (S251) um segundo espaço de endereço virtual ao arquivo alvo a ser acessado, em que o segundo espaço de endereço virtual é uma parte de espaço privado, alocado ao processo (150), no espaço de usuário no sistema operacional, e o segundo espaço de endereço virtual é um espaço de endereço contíguo, em que o espaço de processo privado alocado ao processo compreende espaço de acesso de arquivo (151) e espaço de atividade de processo (152), o espaço de atividade de processo (152) é espaço ao qual uma atividade de processo comum pertence, o espaço de acesso de arquivo (151) é usado para mapear o arquivo alvo a ser acessado, e o segundo espaço de endereço virtual é um segmento de espaço de endereço virtual contíguo no espaço de acesso de arquivo (151); estabelecer (S252) uma segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual; e acessar (S253) o arquivo alvo a ser acessado no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e com a segunda relação de mapeamento.
11. Sistema de armazenamento, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o processador é configurado para realizar: estabelecer (S252) a segunda relação de mapeamento entre o segundo espaço de endereço físico e o segundo espaço de endereço virtual ligando a tabela de página de arquivo do arquivo alvo a uma tabela de página de processo que corresponde ao segundo espaço de endereço virtual.
12. Sistema de armazenamento, de acordo com a reivindicação 10 ou 11, CARACTERIZADO pelo fato de que o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico; e o processador é configurado para realizar o acesso (S250) do arquivo alvo a ser acessado de acordo com o segundo espaço de endereço físico por: realizar uma operação de leitura no arquivo alvo a ser acessado no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e com a segunda relação de mapeamento; e finalizar a operação de leitura quando um endereço virtual que corresponde a dados a serem lidos através da operação de leitura não estiver incluído em um espaço de endereço virtual que corresponde ao arquivo alvo a ser acessado.
13. Sistema de armazenamento, de acordo com a reivindicação 10 ou 11, CARACTERIZADO pelo fato de que o segundo espaço de endereço virtual é maior do que o segundo espaço de endereço físico; e o processador é configurado para realizar o acesso (S250) do arquivo alvo a ser acessado de acordo com o segundo espaço de endereço físico por: realizar uma operação de gravação no arquivo alvo a ser acessado no segundo espaço de endereço físico de acordo com o segundo espaço de endereço virtual e com a segunda relação de mapeamento; e finalizar a operação de gravação quando um endereço virtual que corresponde a dados a serem gravados através da operação de gravação não estiver incluído no segundo espaço de endereço virtual.
14. Sistema de armazenamento, de acordo com qualquer uma das reivindicações 8 a 13, CARACTERIZADO pelo fato de que o processador é adicionalmente configurado para realizar: estabelecer (S310), em espaço de kernel, a primeira relação de mapeamento entre o primeiro espaço de endereço virtual e o primeiro espaço de endereço físico, e armazenar, em uma tabela de página de processo que corresponde ao espaço de kernel, uma tabela de página de mapeamento que corresponde à primeira relação de mapeamento; e após o recebimento da solicitação de acesso de arquivo do processo, o método compreende adicionalmente: determinar (S330) que uma tabela de página de processo que corresponde ao primeiro espaço de endereço virtual não grave a primeira relação de mapeamento; e ligar (S340), à tabela de página de processo que corresponde ao primeiro espaço de endereço virtual, a tabela de página de mapeamento que é correspondente à primeira relação de mapeamento e que é armazenada no espaço de kernel.
BR112017002780-1A 2014-09-01 2014-09-01 Método e aparelho de acesso de arquivo, e sistema de armazenamento BR112017002780B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/085661 WO2016033719A1 (zh) 2014-09-01 2014-09-01 访问文件的方法、装置及存储系统

Publications (2)

Publication Number Publication Date
BR112017002780A2 BR112017002780A2 (pt) 2017-12-19
BR112017002780B1 true BR112017002780B1 (pt) 2023-01-31

Family

ID=55438969

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112017002780-1A BR112017002780B1 (pt) 2014-09-01 2014-09-01 Método e aparelho de acesso de arquivo, e sistema de armazenamento

Country Status (9)

Country Link
US (1) US10061711B2 (pt)
EP (2) EP3173931B1 (pt)
JP (1) JP6377257B2 (pt)
KR (1) KR101909966B1 (pt)
CN (1) CN105579977B (pt)
BR (1) BR112017002780B1 (pt)
PH (1) PH12017500241B1 (pt)
SG (1) SG11201701365XA (pt)
WO (1) WO2016033719A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104571934B (zh) * 2013-10-18 2018-02-06 华为技术有限公司 一种内存访问的方法、设备和系统
WO2016082196A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 文件访问方法、装置及存储设备
US10437735B2 (en) 2017-12-13 2019-10-08 Red Hat, Inc. Process isolation for out of process page fault handling
GB2570691B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
KR20190106228A (ko) * 2018-03-08 2019-09-18 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN111414248B (zh) * 2019-01-04 2023-03-21 阿里巴巴集团控股有限公司 内存管理方法、装置及计算设备
CN110196757B (zh) * 2019-05-31 2021-08-03 龙芯中科技术股份有限公司 虚拟机的tlb填写方法、装置及存储介质
CN110457261B (zh) * 2019-08-06 2023-11-10 深圳市腾讯计算机系统有限公司 数据访问方法、装置及服务器
CN111597124B (zh) * 2020-04-21 2023-05-05 重庆大学 持久化内存文件系统数据组织方法、系统及存储介质
CN116466876A (zh) * 2020-09-11 2023-07-21 华为技术有限公司 一种存储系统及数据处理方法
US11875152B2 (en) * 2020-10-30 2024-01-16 EMC IP Holding Company LLC Methods and systems for optimizing file system usage
CN112732269B (zh) * 2021-01-15 2024-05-24 北京博雅慧视智能技术研究院有限公司 一种应用于avs2硬件编码器的物理地址的访问方法及装置
CN112732198B (zh) * 2021-01-15 2023-11-14 广州Tcl互联网小额贷款有限公司 文件管理方法、装置、设备和存储介质
CN117093132A (zh) * 2022-05-12 2023-11-21 华为技术有限公司 数据处理方法、装置、处理器及计算机系统
CN117407326A (zh) * 2022-07-25 2024-01-16 华为技术有限公司 内存访问方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4742450A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to share copy on write segment for mapped files
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US5873120A (en) * 1996-05-03 1999-02-16 Digital Equipment Corporation Variable split virtual address space allocation with multi-system compatibility
US6061773A (en) * 1996-05-03 2000-05-09 Digital Equipment Corporation Virtual memory system with page table space separating a private space and a shared space in a virtual memory
CN100504854C (zh) 2003-01-14 2009-06-24 联想(北京)有限公司 文件管理方法
US8069192B2 (en) 2004-03-22 2011-11-29 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
US7409494B2 (en) 2004-04-30 2008-08-05 Network Appliance, Inc. Extension of write anywhere file system layout
US8645665B1 (en) 2012-12-14 2014-02-04 Intel Corporation Virtualizing physical memory in a virtual machine system utilizing multilevel translation table base registers to map guest virtual addresses to guest physical addresses then to host physical addresses
CN100470506C (zh) 2007-06-08 2009-03-18 马彩艳 基于sector访问的flash存储器的存储管理方法
CN101382953B (zh) 2008-09-19 2013-03-20 中兴通讯股份有限公司 在用户空间访问文件系统的接口系统与文件读、写方法
EP2211263A3 (en) 2009-01-23 2013-01-23 Infortrend Technology, Inc. Method for performing storage virtualization in a storage system architecture
CN101882132A (zh) * 2009-04-27 2010-11-10 深圳市闪联信息技术有限公司 虚拟fat文件系统的创建及读取方法以及装置
CN101901263A (zh) * 2010-07-22 2010-12-01 华为终端有限公司 文件系统的访问方法及装置
US8495750B2 (en) * 2010-08-31 2013-07-23 International Business Machines Corporation Filesystem management and security system
RU2598812C2 (ru) * 2011-01-21 2016-09-27 Томсон Лайсенсинг Способ усовершенствования выполнения операции обратно совместимой агрегатной файловой системы и соответственное устройство
CN102707966B (zh) * 2012-04-12 2014-09-03 腾讯科技(深圳)有限公司 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端
WO2014026343A1 (zh) * 2012-08-16 2014-02-20 华为终端有限公司 一种用于终端的文件访问方法及终端
CN103218312B (zh) * 2013-03-28 2017-07-11 中国科学院上海微系统与信息技术研究所 文件访问方法及系统
KR102061079B1 (ko) * 2014-03-07 2019-12-31 후아웨이 테크놀러지 컴퍼니 리미티드 파일 액세스 방법 및 관련 기기

Also Published As

Publication number Publication date
WO2016033719A1 (zh) 2016-03-10
CN105579977B (zh) 2020-04-14
JP2017529612A (ja) 2017-10-05
BR112017002780A2 (pt) 2017-12-19
EP3173931A4 (en) 2017-08-02
EP3173931B1 (en) 2018-08-29
US10061711B2 (en) 2018-08-28
JP6377257B2 (ja) 2018-08-22
PH12017500241A1 (en) 2017-07-03
EP3173931A1 (en) 2017-05-31
EP3489832B1 (en) 2021-06-30
PH12017500241B1 (en) 2017-07-03
EP3489832A1 (en) 2019-05-29
CN105579977A (zh) 2016-05-11
KR20170043593A (ko) 2017-04-21
SG11201701365XA (en) 2017-03-30
US20170168952A1 (en) 2017-06-15
KR101909966B1 (ko) 2018-10-19

Similar Documents

Publication Publication Date Title
BR112017002780B1 (pt) Método e aparelho de acesso de arquivo, e sistema de armazenamento
US10157143B2 (en) File access method and apparatus, and storage system
US10452562B2 (en) File access method and related device
JP6460497B2 (ja) ファイルアクセス方法およびファイルアクセス装置、ならびに記憶装置
US10901627B1 (en) Tracking persistent memory usage
US11762827B2 (en) B-plus tree access method and apparatus, and computer-readable storage medium
US11467977B2 (en) Method and apparatus for monitoring memory access behavior of sample process
US10474359B1 (en) Write minimization for de-allocated memory
US20190196735A1 (en) Direct access to de-duplicated data units in memory-based file systems
WO2016037499A1 (zh) 一种内存迁移方法及设备
US10795821B2 (en) Memory efficient key-value store
US20230281113A1 (en) Adaptive memory metadata allocation
JP2019144921A (ja) 情報処理装置及び情報処理方法
WO2016049893A1 (zh) 文件页面管理单元、处理设备和文件页面管理方法
WO2017020194A1 (zh) 一种文件系统保护方法、装置及存储设备
KR101825013B1 (ko) 비휘발성 메모리에 영구 보존 데이터를 저장할 수 있는 시스템에서의 데이터 관리 방법

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 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: 20 (VINTE) ANOS CONTADOS A PARTIR DE 01/09/2014, OBSERVADAS AS CONDICOES LEGAIS