BR112018013524B1 - Método de recuperação de memória, aparelho, sistema de computador, dispositivo de armazenamento e meio de armazenamento legível por computador - Google Patents

Método de recuperação de memória, aparelho, sistema de computador, dispositivo de armazenamento e meio de armazenamento legível por computador Download PDF

Info

Publication number
BR112018013524B1
BR112018013524B1 BR112018013524-0A BR112018013524A BR112018013524B1 BR 112018013524 B1 BR112018013524 B1 BR 112018013524B1 BR 112018013524 A BR112018013524 A BR 112018013524A BR 112018013524 B1 BR112018013524 B1 BR 112018013524B1
Authority
BR
Brazil
Prior art keywords
memory
application
terminal
applications
recovery
Prior art date
Application number
BR112018013524-0A
Other languages
English (en)
Other versions
BR112018013524A2 (pt
Inventor
Bintian WANG
Xishi Qiu
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
Priority claimed from CN201511032537.7A external-priority patent/CN105701025B/zh
Application filed by Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR112018013524A2 publication Critical patent/BR112018013524A2/pt
Publication of BR112018013524B1 publication Critical patent/BR112018013524B1/pt

Links

Abstract

Este pedido refere-se ao campo das tecnologias informáticas e, em particular, a um modo e aparelho de recuperação de memória, de modo a resolver um problema de bloqueio de aplicação facilmente causado pela recuperação de memória que não executada a tempo. O método de recuperação de memória fornecido neste aplicativo inclui: monitorar a operação do usuário e usar informações e informações de ocupação de memória de aplicativos instalados em um terminal; e se for determinado, de acordo com pelo menos uma das informações de operação e uso do usuário ou das informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, determinando, de acordo com a operação do usuário e informações de uso e informações de ocupação de memória de aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e que executa recuperação de memória, invocando uma interface de recuperação de memória fornecida por um modo kernel.

Description

CAMPO DA TÉCNICA
[001] Este pedido refere-se ao campo das tecnologias de computadores e, em particular, a um método e aparelho de recuperação de memória.
ANTECEDENTES
[002] Em consideração aos custos de produção, a capacidade de memória de um dispositivo terminal é geralmente relativamente pequena e, na maioria dos casos, é de 1 a 2 G. Atualmente, um kernel satisfaz, tanto quanto possível, uma exigência de um programa de aplicativo para solicitar memória. Como resultado, em um produto terminal, como um telefone móvel, um aplicativo (como uma Câmera) que consome bancos de memória relativamente grandes ou até mesmo o aplicativo é repetidamente encerrado e reiniciado em um processo inicial ou em execução normalmente porque a memória suficiente (por exemplo, um aplicativo pode se solicitar a 300 MB a 500 MB instantaneamente) falha ao ser solicitada.
[003] Uma política de recuperação de memória de um sistema Linux aciona a recuperação de memória quando a memória é insuficiente. Por exemplo, quando um aplicativo é iniciado ou alternado para uma interface de primeiro plano, um processo de aplicativo no modo usuário se aplica a um modo kernel para memória, e a recuperação de memória é acionada se a memória que o aplicativo precisa ocupar for maior que a memória livre do sistema. Especificamente, a memória que é menos frequentemente usada recentemente é selecionada, usando o algoritmo menos utilizado recentemente (Menos Utilizado Recentemente, LRU), para recuperação. Além disso, a recuperação de memória também pode ser realizada usando-se compactação na memória, fusão de mesma página, desfragmentação de memória e semelhantes. Um sistema Android (Android) aciona a recuperação de memória no modo kernel, que define um nível de memória livre no mesmo. Por exemplo, se a memória for menor que n1 MB, um processo de aplicativo cuja prioridade é a menor é eliminado e, se a memória ainda for menor que n2 (n1 < n2) MB, um processo de aplicativo cuja prioridade é um nível superior é liberado.
[004] De acordo com as políticas de recuperação de memória anteriores, a recuperação de memória é acionada somente quando é encontrado, no modo kernel, que a memória livre que pode ser usada é relativamente pequena. Portanto, é provável que o seguinte ocorra: Memória cuja taxa de utilização é relativamente baixa em um sistema não pode ser liberada a tempo. Quando a recuperação de memória é acionada depois que se descobre que a memória livre é insuficiente, é provável que o seguinte ocorra: Um aplicativo em execução no momento que não se aplica à memória necessária em intervalos de tempo.
SUMÁRIO
[005] Este pedido fornece um método e um aparelho de recuperação de memória, para resolver, até certo ponto, um problema de paralisação de aplicativos facilmente causado pela recuperação de memória que não é realizada a tempo.
[006] Este pedido fornece um método de recuperação de memória, no qual o seguinte é realizado no modo usuário: monitorar as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e se for determinado, de acordo com pelo menos uma das informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, que determina, de acordo com informações de operação e uso de usuário e ocupação de memória de aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória, invocando-se uma interface de recuperação de memória fornecida por um modo kernel.
[007] Neste pedido, a recuperação de memória é realizada de forma proativa, que monitora, no modo usuário, uma operação de usuário e situação de uso e uma situação de ocupação de memória dos aplicativos instalados no terminal, de modo que, quando um aplicativo é frequentemente operado e usado por um usuário e ocupar uma memória relativamente grande, a frequência de recuperação da memória pode ser aumentada, para garantir o uso normal da mesma.
[008] Em uma implementação, em que é determinado, de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal; e determinar que a condição de recuperação de memória é atualmente atendida quando o tempo atual atinge o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória.
[009] Nessa implementação, primeiro o intervalo de tempo de recuperação de memória é determinado de acordo com a regularidade do uso do aplicativo pelo usuário, e em seguida, a recuperação de memória é realizada proativamente de acordo com o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória. Dessa forma, a recuperação planejada é realizada na memória, de modo que a memória livre disponível no terminal possa ser mantida em um nível relativamente desejável.
[010] Na implementação anterior, uma maneira opcional de determinar um intervalo de tempo de recuperação de memória é: determinar separadamente as informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e para cada segmento de tempo do pelo menos um segmento de tempo predefinido, determinar separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória, no segmento de tempo, dos aplicativos instalados no terminal.
[011] A frequência de operação e uso de um aplicativo pelo usuário é diferente em um segmento de tempo diferente. Portanto, dessa maneira, diferentes intervalos de tempo de recuperação de memória podem ser usados em diferentes segmentos de tempo. Isso melhora ainda mais a oportunidade de recuperação de memória e evita também o desperdício de recursos do sistema causado pela execução frequente de um procedimento desnecessário de recuperação de memória.
[012] Em outra implementação, em que é determinado, de acordo com as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se for determinado que a memória livre do sistema é menor que um primeiro limite especificado, que determina que a condição de recuperação de memória é atualmente atendida.
[013] Dessa forma, a insuficiência de memória pode ser evitada até certo ponto.
[014] Em ainda outra implementação, que é determinado, de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se for detectado que um aplicativo é iniciado ou comutado para uma interface de primeiro plano, determinar, de acordo com informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, se a recuperação de memória precisa ser realizada; e se a recuperação de memória precisar ser realizada, determinar que a condição de recuperação de memória seja atualmente atendida.
[015] Um aplicativo recém-iniciado ou um aplicativo comutado para a interface de primeiro plano geralmente é um aplicativo que o usuário está prestes a usar, e dessa maneira, a execução normal do aplicativo recém-iniciado ou do aplicativo comutado para a interface em primeiro plano pode ser assegurada, melhorando assim, o desempenho do sistema e melhorando a experiência do usuário.
[016] Em outra implementação, que é determinado, de acordo com as informações de operação e uso de usuário dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se uma quantidade de aplicativos atualmente em execução em um segundo plano for maior que uma quantidade especificada de aplicativos que podem ser executados em segundo plano, determinar que a condição de recuperação de memória seja atualmente atendida.
[017] Além disso, no presente documento, a quantidade de aplicativos permitidos para serem executados em segundo plano pode ser ajustada em um intervalo de tempo de acordo com um tamanho de memória livre atual. Como os aplicativos executados em segundo plano geralmente não são aplicativos usados atualmente pelo usuário, a ocupação excessiva e desnecessária de memória pode ser evitada pela limitação de uma quantidade desses aplicativos.
[018] Na implementação anterior, uma maneira opcional de determinar um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória invocando-se uma interface de recuperação de memória fornecida por um modo kernel é: selecionar, de acordo com uma sequência de prioridade pré- armazenada de aplicativos cuja memória deve ser recuperada, um aplicativo que está atualmente em execução no terminal e que não é operado ou usado por um usuário, e determinar se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado, em que o segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo; se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada, e realizar recuperação de memória invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida.
[019] Dessa forma, a memória de um aplicativo (esse aplicativo é normalmente um aplicativo não utilizado com frequência pelo usuário) cuja prioridade é relativamente baixa é preferencialmente selecionada para recuperação, em que o tempo atual não está dentro de um segmento de tempo de alta probabilidade de execução do aplicativo, melhorando assim o desempenho do sistema e melhorando a experiência do usuário.
[020] Na implementação anterior, a condição de término de recuperação de memória pode incluir uma ou mais das seguintes condições: o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface em primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano.
[021] Além disso, a sequência de prioridade de aplicativos cuja memória deve ser recuperada pode ser definida de acordo com as seguintes etapas: agrupar os aplicativos instalados no terminal de acordo com a frequência de uso dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso; e determinar uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo de acordo com uma faixa de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
[022] Em ainda uma outra implementação, se for determinado, de acordo com as informações de operação e uso de usuário dos aplicativos instalados no terminal, em que a condição de recuperação de memória é atualmente atendida, a recuperação de memória em execução invocando-se uma interface de recuperação de memória fornecida por um modo kernel inclui: se for detectado que a duração da permanência, por um aplicativo no terminal em segundo plano excedeu a duração especificada, determinar que a condição de recuperação de memória está atualmente atendida e recuperar, invocando-se a interface de recuperação de memória fornecida pelo modo kernel, a memória do aplicativo cuja duração de permanência no segundo plano exceder a duração especificada.
[023] No presente documento, o aplicativo cuja duração de permanência no segundo plano é relativamente longa, geralmente é um aplicativo que não é operado pelo usuário por um período atual, e a memória do aplicativo pode ser liberada e, portanto, fornecida a um aplicativo que necessita mais de memória, melhorando assim uma taxa de utilização efetiva da mesma
[024] Este pedido fornece ainda um aparelho de recuperação de memória, que inclui: um módulo de determinação, configurado para monitorar, no modo usuário, as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e um módulo de recuperação de memória, configurado para: se for determinado, de acordo com pelo menos uma dentre as informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, determinar, de acordo com as informações de operação e uso de usuário e informações de ocupação de memória dos aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória invocando-se uma interface de recuperação de memória fornecida por um modo kernel.
[025] Neste pedido, a recuperação de memória é realizada proativamente que monitora, no modo usuário, uma situação de operação e uso do usuário e uma situação de ocupação de memória dos aplicativos instalados no terminal, de modo que, quando um aplicativo é frequentemente operado e usado por um usuário, e ocupa memória relativamente grande, a frequência de recuperação de memória pode ser aumentada para garantir o uso normal da mesma.
[026] Em uma implementação, o módulo de recuperação de memória é especificamente configurado para: determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal; e determinar que a condição de recuperação de memória é atualmente atendida quando o tempo atual atingir o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória.
[027] Nessa implementação, primeiro o intervalo de tempo de recuperação de memória é determinado de acordo com uma regularidade do uso do aplicativo pelo usuário e, em seguida, a recuperação de memória é realizada proativamente de acordo com o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória. Dessa forma, a recuperação planejada é realizada na memória, de modo que a memória livre disponível no terminal possa ser mantida em um nível relativamente desejável.
[028] Na implementação anterior, uma maneira opcional de determinar o intervalo de tempo de recuperação de memória pelo módulo de recuperação de memória é: determinar separadamente informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e para cada segmento de tempo de pelo menos um segmento de tempo predefinido, determinar separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória, no segmento de tempo, dos aplicativos instalados no terminal.
[029] A frequência de operar e usar um aplicativo pelo usuário é diferente em um segmento de tempo diferente. Portanto, dessa maneira, diferentes intervalos de tempo de recuperação de memória podem ser usados em diferentes segmentos de tempo. Isso melhora ainda mais a atualidade de recuperação de memória e evita também o desperdício de recursos do sistema causado pela execução frequente de um procedimento desnecessário de recuperação de memória.
[030] Em outra implementação, o módulo de recuperação de memória é especificamente configurado para se for determinado que a memória livre do sistema é menor que um primeiro limite especificado, determinar que a condição de recuperação de memória é atualmente atendida.
[031] Dessa forma, a insuficiência de memória pode ser evitada.
[032] Em outra implementação, o módulo de recuperação de memória é especificamente configurado para: se for detectado que um aplicativo foi iniciado ou comutado para uma interface em primeiro plano, determinar, de acordo com as informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, se a recuperação de memória precisa ser realizada; e se a recuperação de memória precisar ser realizada, determinar que a condição de recuperação de memória é atualmente atendida.
[033] Um aplicativo recém-iniciado ou um aplicativo comutado para a interface em primeiro plano geralmente é um aplicativo que o usuário está prestes a usar, e dessa maneira, a execução normal do aplicativo recém-iniciado ou do aplicativo comutado para a interface em primeiro plano pode ser assegurada, melhorando assim o desempenho do sistema e melhorando também a experiência do usuário.
[034] Em outra implementação, o módulo de recuperação de memória é especificamente configurado para se uma quantidade de aplicativos atualmente em execução em segundo plano for maior que uma quantidade especificada de aplicativos que podem ser executados em segundo plano, determinar que a condição de recuperação de memória é atualmente atendida.
[035] Além disso, no presente documento, a quantidade de aplicativos permitidos para ser executado em segundo plano pode ser ajustada em um intervalo de tempo de acordo com um tamanho de memória livre atual. Como os aplicativos executados em segundo plano geralmente não são aplicativos usados atualmente pelo usuário, a ocupação excessiva e desnecessária de memória pode ser evitada pela limitação de uma quantidade desses aplicativos.
[036] Na implementação anterior, uma maneira opcional de determinar, pelo módulo de recuperação de memória, o aplicativo cuja memória deve ser recuperada e executar a recuperação de memória invocando-se a interface de recuperação de memória fornecida por um modo kernel é: selecionar, de acordo com uma sequência de prioridade pré- armazenada de aplicativos cuja memória deve ser recuperada, um aplicativo que está atualmente em execução no terminal e que não é operado ou usado por um usuário, e determinar se a hora corrente está dentro de um segmento de tempo de utilização de alta probabilidade da aplicativo selecionado, em que o segmento de tempo de utilização de alta probabilidade do aplicativo determinado com base nas informações de operação e uso de usuário do aplicativo; se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada, e executar a recuperação de memória, invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida.
[037] Dessa forma, a memória de um aplicativo (esse aplicativo é normalmente um aplicativo não utilizado com frequência pelo usuário) cuja prioridade é relativamente baixa é preferencialmente selecionada para recuperação, em que o tempo atual não está dentro de um segmento de tempo de alta probabilidade de execução do aplicativo, melhorando assim o desempenho do sistema e melhorando a experiência do usuário.
[038] Na implementação anterior, a condição de término de recuperação de memória pode incluir uma ou mais das seguintes condições: o tamanho da memória livre do sistema é maior que um segundo limite especificado; memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; memória exigida por um aplicativo comutado para a interface em primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano.
[039] Além disso, o módulo de recuperação de memória pode ser configurado especificamente para definir a sequência de prioridade de aplicativos cuja memória deve ser recuperada de acordo com as seguintes etapas: agrupar os aplicativos instalados no terminal de acordo com a frequência de uso dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso; e determinar uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo de acordo com uma faixa de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
[040] Em ainda outra implementação, o módulo de recuperação de memória é especificamente configurado para: se for detectado que a duração da permanência, por um aplicativo no terminal, em segundo plano excedeu a duração especificada, determinar que a condição de recuperação de memória é atualmente atendida e recuperar, invocando-se a interface de recuperação de memória fornecida pelo modo kernel, memória do aplicativo cuja duração da permanência em segundo plano exceder a duração especificada.
[041] Esse pedido fornece equipamento de usuário, em que o equipamento do usuário inclui um processador, uma memória e um barramento. A memória é configurada para armazenar uma instrução de execução e inclui um dispositivo de memória interna e uma memória externa. O dispositivo de memória interna, também é citado no presente documento como uma memória interna e é configurado para armazenar temporariamente dados operacionais do processador e dados trocados com a memória externa, como um disco rígido. O processador troca dados com a memória externa usando o dispositivo de memória interna e, quando o equipamento do usuário é executado, o processador e a memória se comunicam usando-se o barramento, para que o processador execute as seguintes instruções no modo usuário: monitorar as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e quando é determinado, de acordo com pelo menos uma dentre as informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atendida no momento, que determina, de acordo com informações de operação e uso de usuário e informações de ocupação de memória de aplicativos atualmente em execução no terminal e a partir dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e executar a recuperação de memória, invocando-se uma interface de recuperação de memória fornecida por um modo kernel.
[042] Nesse aplicativo, a recuperação de memória é realizada proativamente que monitora, no modo usuário, uma situação de operação e uso do usuário e uma situação de ocupação de memória dos aplicativos instalados no terminal, de modo que quando um aplicativo é frequentemente operado e usado por um usuário e ocupa memória relativamente grande, a frequência de recuperação de memória pode ser aumentada, para garantir o uso normal da mesma.
[043] Em uma implementação, nas instruções executadas pelo processador, que é determinado, de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal; e determinar que a condição de recuperação de memória é atualmente atendida quando o tempo atual atinge o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória.
[044] Nessa implementação, primeiro o intervalo de tempo de recuperação de memória é determinado de acordo com uma regularidade do uso do aplicativo pelo usuário e, em seguida, a recuperação de memória é realizada proativamente de acordo com o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória. Dessa forma, a recuperação planejada é realizada na memória, de modo que a memória livre disponível no terminal possa ser mantida em um nível relativamente desejável.
[045] Na implementação anterior, nas instruções executadas pelo processador, uma maneira opcional de determinar o intervalo de tempo de recuperação de memória pelo processador é: determinar separadamente as informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e para cada segmento de tempo de pelo menos um segmento de tempo predefinido, que determina separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória, no segmento de tempo, dos aplicativos instalados no terminal.
[046] A frequência de operação e uso de um aplicativo pelo usuário é diferente em um segmento de tempo diferente. Portanto, dessa maneira, diferentes intervalos de tempo de recuperação de memória podem ser usados em diferentes segmentos de tempo. Isso melhora ainda mais a atualidade de recuperação de memória e evita também o desperdício de recursos do sistema causado pela execução frequente de um procedimento desnecessário de recuperação de memória.
[047] Em outra implementação, nas instruções executadas pelo processador, que é determinado, de acordo com as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se for determinado que a memória livre do sistema é menor que um primeiro limite especificado, determinar que a condição de recuperação de memória está atualmente atendida.
[048] Dessa forma, a insuficiência de memória pode ser evitada.
[049] Em ainda outra implementação, nas instruções executadas pelo processador, em que é determinado, de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se for detectado que um aplicativo é iniciado ou comutado para uma interface em primeiro plano, determinar, de acordo com as informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, se a recuperação de memória precisa ser realizada; e se a recuperação de memória precisar ser realizada, determinar que a condição de recuperação de memória seja atualmente atendida.
[050] Um aplicativo recém-iniciado ou um aplicativo comutado para a interface em primeiro plano geralmente é um aplicativo que o usuário está prestes a usar, e dessa maneira, a execução normal do aplicativo recém-iniciado ou do aplicativo comutado para a interface em primeiro plano pode ser assegurada, melhorando assim o desempenho do sistema e melhora também a experiência do usuário.
[051] Em uma outra implementação, nas instruções executadas pelo processador, em que é determinado, de acordo com as informações de operação e uso de usuário dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se uma quantidade de aplicativos atualmente em execução em um segundo plano for maior que uma quantidade especificada de aplicativos que podem ser executados em segundo plano, determinar que a condição de recuperação de memória seja atualmente atendida.
[052] Além disso, no presente documento, a quantidade de aplicativos permitidos para ser executado em segundo plano pode ser ajustada em um intervalo de tempo de acordo com um tamanho de memória livre atual. Como os aplicativos executados em segundo plano geralmente não são aplicativos usados atualmente pelo usuário, a ocupação excessiva e desnecessária de memória pode ser evitada pela limitação de uma quantidade desses aplicativos.
[053] Na implementação anterior, nas instruções executadas pelo processador, uma maneira opcional de determinar um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória invocando-se uma interface de recuperação de memória fornecida por um modo kernel é: selecionar, de acordo com uma sequência de prioridade pré- armazenada de aplicativos cuja memória deve ser recuperada, um aplicativo que está atualmente em execução no terminal e que não é operado ou usado por um usuário, e determinar se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado, em que o segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo; se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida.
[054] Dessa forma, a memória de um aplicativo (esse aplicativo é normalmente um aplicativo não utilizado frequentemente pelo usuário) cuja prioridade é relativamente baixa é preferencialmente selecionada para recuperação, em que o tempo atual não está dentro de um segmento de tempo de alta probabilidade de execução do aplicativo, melhorando assim o desempenho do sistema e melhorando a experiência do usuário.
[055] Na implementação anterior, a condição de término de recuperação de memória pode incluir uma ou mais das seguintes condições: o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciada é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface em primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano.
[056] Além disso, nas instruções executadas pelo processador, uma maneira opcional de definir a sequência de prioridade de aplicativos cuja memória deve ser recuperada é: agrupar os aplicativos instalados no terminal de acordo com a frequência de uso dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso; e determinar uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo de acordo com uma faixa de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
[057] Este pedido fornece um sistema de computador, em que o sistema de computador compreende: uma memória configurada para armazenar instruções legíveis por computador; e um processador configurado para ler as instruções legíveis por computador da memória para fazer com que o processador implemente o método de acordo com qualquer um dos métodos acima.
[058] Este pedido fornece um dispositivo de armazenamento, em que o dispositivo de armazenamento armazena instruções legíveis por computador quando executado por um ou mais processadores para implementar o método de acordo com qualquer um dos métodos acima.
[059] Este pedido fornece um produto de programa, onde o produto do programa armazena instruções legíveis por computador quando executado por um ou mais processadores para implementar o método de acordo com qualquer um dos métodos acima.
[060] Em ainda uma outra implementação, nas instruções executadas pelo processador, se for determinado, de acordo com as informações de operação e uso de usuário dos aplicativos instalados no terminal, que a condição de recuperação de memória é atualmente atendida, a recuperação de memória em execução invocando-se uma interface de recuperação de memória fornecida por um modo kernel inclui: se for detectado que a duração da permanência, por um aplicativo no terminal, em segundo plano excedeu a duração especificada, determinar que a condição de recuperação de memória está atualmente atendida e recuperar, invocando-se a interface de recuperação de memória fornecida pelo modo kernel, memória do aplicativo cuja duração da permanência em segundo plano exceder a duração especificada.
[061] No presente documento, o aplicativo cuja duração de permanência em segundo plano é relativamente longa geralmente é um aplicativo que não é operado pelo usuário por um período atual, e a memória do aplicativo pode ser liberada e, portanto, fornecida a um aplicativo que necessita mais da memória, melhorando assim uma taxa de utilização efetiva da mesma.
BREVE DESCRIÇÃO DAS FIGURAS
[062] A Figura 1 é um diagrama esquemático de recuperação de memória de acordo com este pedido;
[063] A Figura 2 é um fluxograma de um método de recuperação de memória de acordo com a Modalidade 1 deste pedido;
[064] A Figura 3 é um fluxograma de um método de recuperação de memória de acordo com a Modalidade 2 deste pedido;
[065] A Figura 4 é um fluxograma de um método de recuperação de memória de acordo com a Modalidade 3 deste pedido;
[066] A Figura 5 é um diagrama estrutural esquemático de um aparelho de recuperação de memória 50 de acordo com uma modalidade deste pedido;
[067] A Figura 6 é um diagrama estrutural esquemático do equipamento do usuário 60 de acordo com uma modalidade deste pedido;
[068] A Figura 7 é um diagrama estrutural esquemático de um dispositivo terminal 700 de acordo com este pedido; e
[069] A Figura 8 é um diagrama estrutural esquemático de um terminal 800 de acordo com uma modalidade deste pedido.
DESCRIÇÃO DAS MODALIDADES
[070] Como mostrado na Figura 1, a Figura 1 é um diagrama esquemático de recuperação de memória de acordo com este pedido. Neste pedido, a recuperação de memória é realizada executando-se uma política de recuperação de memória no modo usuário e usando-se uma interface de recuperação de memória fornecida por um modo kernel. Especificamente, a recuperação de memória é acionada pelo monitoramento das informações de operação e uso de usuário e informações de ocupação de memória dos aplicativos (Aplicativo, App) instalados em um terminal. Depois que uma condição de recuperação de memória é atendida, um aplicativo cuja memória deve ser recuperada é selecionado de acordo com informações de operação e uso de usuário e informações de ocupação de memória dos aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal e recuperação de memória realizada invocando-se a interface de recuperação de memória fornecida pelo modo kernel para o modo usuário. Neste pedido, a recuperação de memória é realizada proativamente que monitora, no modo usuário, as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos, de modo que quando um aplicativo é frequentemente operado e usado por um usuário e ocupa uma memória relativamente grande, a frequência de recuperação de memória pode ser aumentada, para garantir a atualidade da recuperação de memória.
[071] A seguir descreve-se adicionalmente as modalidades deste pedido em detalhe com referência aos desenhos anexos dessa especificação.
MODALIDADE 1
[072] Como mostrado na Figura 2, a Figura 2 é um fluxograma de um método de recuperação de memória de acordo com a Modalidade 1 deste pedido, e o método executa as seguintes etapas no modo usuário.
[073] S201. Monitorar as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal.
[074] No presente documento, as informações de ocupação de memória podem incluir um tamanho de memória ocupado quando um aplicativo é executado, e as informações de operação e uso de usuário dos aplicativos podem incluir frequência de uso, um segmento de tempo de uso, duração de uso e similares de um aplicativo por um usuário.
[075] Na implementação específica, uma situação de execução de cada aplicativo em um sistema de terminal e um tamanho de memória ocupado quando o aplicativo é executado podem ser monitorados em tempo real usando-se um processo de monitoramento no modo usuário. A frequência de uso, um segmento de tempo de uso, duração de uso e similares de um aplicativo por um usuário podem ser determinados usando-se a situação de execução do aplicativo obtido pelo monitoramento. No presente documento, o segmento de tempo de uso do uso do aplicativo pelo usuário pode ser um segmento de tempo, no qual o usuário usa o aplicativo, em uma pluralidade de segmentos de tempo predefinidos, ou pode ser um segmento de tempo real de um momento em que o usuário operar o aplicativo até o momento em que o usuário termina de operar o aplicativo.
[076] No presente documento, o monitoramento da situação de execução de cada aplicativo no sistema do terminal pode incluir: monitorar a situação inicial de um aplicativo, a situação de fechamento de um aplicativo, a situação de comutação de um aplicativo de segundo plano a interface em primeiro plano, a situação de comutação de uma interface em primeiro plano para um segundo e afins. O processo de monitoramento pode obter especificamente, por meio de consulta, a situação de execução anterior do aplicativo usando-se uma interface de consulta fornecida por um sistema de arquivos proc.
[077] Na implementação específica, para diferentes aplicativos, as maneiras de coletar estatísticas sobre informações de operação e uso de usuário dos aplicativos podem ser diferentes. Por exemplo, para um aplicativo que precisa ser operado em uma interface em primeiro plano por um usuário, como os aplicativos WeChat ou Calendar, um horário no qual o aplicativo é iniciado ou alternado para a interface em primeiro plano pode ser usado como o momento em que o usuário inicia para operar o aplicativo, e um momento em que o aplicativo é fechado ou comutado para um segundo plano para execução pode ser usado como um tempo no qual o usuário conclui a operação do aplicativo. Para um aplicativo que não precisa ser sempre operado por um usuário em uma interface em primeiro plano, como transferir por download um software, o momento em que o aplicativo é iniciado pode ser usado como o momento em que o usuário inicia a operação do aplicativo e a hora em que o aplicativo é fechado pode ser usada como o momento em que o usuário termina de operar o aplicativo. A frequência de uso, um segmento de tempo de uso, duração de uso e similares do uso do aplicativo pelo usuário podem ser determinados de acordo com a hora em que o usuário começa a operar o aplicativo e a hora em que o usuário finaliza a operação do aplicativo que são obtidos por meio de coleta de estatísticas.
[078] S202. Determinar, de acordo com pelo menos uma dentre as informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, se uma condição de recuperação de memória é atualmente atendida; e ir para S203 se a condição de recuperação de memória for atualmente atendida ou retornar para S201 se a condição de recuperação de memória não for atualmente atendida.
[079] Na implementação específica, uma condição que aciona a recuperação de memória no modo usuário pode ser definida de acordo com uma exigência atual. Por exemplo, um intervalo de tempo de recuperação de memória pode ser determinado de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, e recuperação de memória é acionada de acordo com um intervalo de tempo de recuperação de memória predefinido, para implementar recuperação de memória planejada, para que a memória livre disponível no terminal seja mantida em um nível relativamente desejável. No presente documento, pode haver um ou mais intervalos de tempo de recuperação de memória predefinidos. Por exemplo, se ambos usam a frequência de uso de um aplicativo por um usuário em um dia inteiro e a ocupação de memória é relativamente estável, somente um intervalo de tempo de recuperação de memória pode ser definido. Alternativamente, se o usuário se concentrar em usar um aplicativo em apenas um segmento de tempo em um dia inteiro, e a frequência de uso do aplicativo for relativamente estável, um intervalo de tempo de recuperação de memória poderá ser definido apenas nesse segmento de tempo e a recuperação de memória não será realizada em outro segmento de tempo. Se a frequência de uso do aplicativo pelo usuário variar muito em diferentes segmentos de tempo em um dia, diferentes intervalos de tempo de recuperação de memória poderão ser usados em diferentes segmentos de tempo em um dia. Além disso, pode ser definido que: a recuperação de memória é acionada quando a memória livre do sistema é menor do que um limite (a recuperação de memória é acionada de acordo com as informações de ocupação de memória dos aplicativos instalados no terminal); quando é detectado que um aplicativo é iniciado ou comutado para a interface em primeiro plano, a recuperação de memória é acionada de acordo com as informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema (a recuperação de memória é acionada de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal); ou a recuperação de memória é acionada quando é detectado que a duração da permanência, por um aplicativo no terminal, em segundo plano excedeu a duração especificada (recuperação de memória é acionada de acordo com as informações de operação e uso de usuário dos aplicativos).
[080] S203. Determinar, de acordo com as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória invocando-se uma interface de recuperação de memória por um modo kernel.
[081] No presente documento, os aplicativos instalados no terminal em S201 e S202 incluem os aplicativos atualmente em execução no terminal em S203. Além dos aplicativos atualmente em execução no terminal no S203, os aplicativos instalados no terminal incluem ainda um aplicativo que está atualmente em um estado fechado.
[082] Na implementação específica, um programa de recuperação de memória no modo kernel é chamado no modo usuário usando-se a interface de recuperação de memória fornecida pelo modo kernel, para realizar a recuperação de memória. A interface de recuperação de memória pode ser implementada com base em um sistema como um sistema de arquivos do tipo procfs linux ou um sistema de arquivos do tipo sysfs linux.
[083] Em um sistema Linux, o gerenciamento de recuperação de memória existente no modo kernel é implementado com base em um algoritmo LRU. No gerenciamento de recuperação de memória existente, a memória ocupada por um aplicativo é dividida em dois tipos principais: uma página anônima (como memória alocada que usa uma função de alocação de memória dinâmica (malloc)) e uma página de arquivo (como memória alocada durante a leitura e gravação de um arquivo). A memória que não é usada com frequência recentemente é colocada em uma lista vinculada de acordo com o algoritmo LRU, e a lista vinculada é reduzida a cada vez que a recuperação é realizada, para recuperar uma parte das páginas de memória (que são principalmente caches de páginas (cache de página)). Uma função subjacente usada para recuperação de memória no modo kernel é “try_to_free_pages()”. Nesse aplicativo, uma interface da função é exposta a um modo usuário para chamada. No modo usuário, a recuperação de memória é implementada invocando-se a interface da função e com base em uma política de recuperação de memória fornecida nesse aplicativo.
MODALIDADE 2
[084] O seguinte descreve uma implementação preferencial deste pedido: determinar um intervalo de tempo de recuperação de memória coletando-se estatísticas sobre as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal e realizar a recuperação de memória com base no intervalo de tempo de recuperação de memória determinado.
[085] Como mostrado na Figura 3, a Figura 3 é um fluxograma de um método de recuperação de memória de acordo com a Modalidade 2 deste pedido, o método executa as seguintes etapas no modo usuário:
[086] S301. Monitorar as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal.
[087] Na implementação específica, estatísticas sobre as informações de operação e uso de usuário de um aplicativo, como frequência de uso e um segmento de tempo de utilização do uso de um aplicativo por um usuário, e informações de ocupação de memória, como o tamanho da memória ocupada quando um aplicativo é executado, são monitoradas pelo monitoramento de uma situação de execução de cada aplicativo em um sistema de terminal no modo usuário em tempo real.
[088] S302. Determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal.
[089] No presente documento, o intervalo de tempo de recuperação de memória pode ser determinado de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos obtidas por meio de coleta de estatísticas em S301. Pode haver um ou mais intervalos de tempo de recuperação de memória. Por exemplo, se ambos usarem a frequência de uso de um aplicativo por um usuário em um dia inteiro e a ocupação de memória for relativamente consistente, apenas um intervalo de tempo de recuperação de memória poderá ser definido. Se a frequência de uso de um aplicativo por um usuário for diferente em diferentes segmentos de tempo em um dia, diferentes intervalos de tempo de recuperação de memória poderão ser usados em diferentes segmentos de tempo em um dia. Por exemplo, a recuperação de memória pode ser realizada com mais frequência em um segmento de tempo no qual um aplicativo é usado com frequência e a memória relativamente grande é ocupada. Pelo contrário, a recuperação de memória pode ser realizada com menor frequência em um segmento de tempo dentro do qual um aplicativo é usado com pouca frequência e a memória relativamente pequena é ocupada.
[090] Em implementação específica, uma pluralidade de segmentos de tempo pode ser pré-armazenada de acordo com a experiência. As informações de operação e uso de usuário e de ocupação de memória, em cada segmento de tempo predefinido, dos aplicativos instalados no terminal são determinadas. Um intervalo de tempo de recuperação de memória em cada segmento de tempo predefinido é determinado de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória, no segmento de tempo predefinido, dos aplicativos instalados no terminal.
[091] Por exemplo, um dia é usado como uma granularidade e diversos segmentos de tempo 9:00 às 17:00, 17:00 às 23:00 e 23:00 às 9:00 são predefinidos. As estatísticas sobre as informações de operação e uso de usuário e informações de ocupação da memória, nos diversos segmentos de tempo predefinidos, de aplicativos são coletadas separadamente. Por exemplo, no segmento de tempo 17:00 às 23:00, um usuário utiliza os aplicativos com maior frequência, um tamanho de memória ocupado pelos aplicativos também é o maior, e um intervalo de tempo de recuperação de memória nesse segmento de tempo pode ser definido como 0,5 horas. No segmento de tempo 9:00 às 17:00, a frequência de utilização dos aplicativos pelo usuário é intermediária, um tamanho de memória ocupada também é intermediário, e um intervalo de tempo de recuperação de memória nesse segmento de tempo pode ser definido como 1 hora. No segmento de tempo 23:00 às 9:00, o usuário utiliza os aplicativos com menor frequência, um tamanho de memória ocupada também é o menor, e um intervalo de tempo de recuperação de memória nesse segmento de tempo pode ser definido como 3 horas. Por outro exemplo, uma diferença entre as situações de uso do aplicativo em um dia útil e um dia não útil de uma semana pode ser levada em consideração, para definir respectivamente diferentes intervalos de tempo de recuperação de memória para o dia útil e o dia não útil. Por exemplo, a frequência de uso de um aplicativo por um usuário no sábado e no domingo é obviamente maior do que a frequência de uso do aplicativo em um dia de trabalho. Os intervalos de tempo de recuperação de memória anteriores ainda podem ser usados de segunda a sexta- feira, e a frequência de recuperação de memória é aumentada no sábado e domingo. Por exemplo, os intervalos de tempo de recuperação de memória anteriores nos segmentos de tempo 9:00 às 17:00, 17:00 às 23:00 e 23:00 às 9:00 são divididos separadamente aos sábados e domingos. Ou seja, um intervalo de tempo de recuperação de memória no segmento de tempo 17:00 às 23:00 é definido como 0,25 horas, um intervalo de tempo de recuperação de memória no segmento de tempo 9:00 às 17:00 é definido como 0,5 horas e uma memória recupera o intervalo de tempo no segmento de tempo 23:00 às 9:00 está configurado para 1,5 horas.
[092] S303. Se for determinado, de acordo com o intervalo de tempo de recuperação de memória, que a recuperação de memória precisa ser realizada atualmente, determinar, de acordo com as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada. No presente documento, para garantir que um usuário normalmente use um aplicativo, a recuperação de memória não é considerada para um aplicativo atualmente usado pelo usuário. O aplicativo atualmente usado pelo usuário pode incluir um aplicativo de primeiro plano e pode incluir ainda um aplicativo executado em segundo plano, como a transferência por download de arquivos.
[093] S304. Realizar a recuperação de memória, invocando-se uma interface de recuperação de memória fornecida por um modo kernel.
[094] Em implementação específica, quando é determinado que o tempo de recuperação de memória é atingido de acordo com o intervalo de tempo de recuperação de memória determinado, a memória de um aplicativo que está atualmente em execução no terminal e que não é operada ou usada pelo usuário pode ser recuperada se o tempo atual não estiver dentro de um intervalo de tempo, obtida por meio de coleta de estatísticas, na qual há uma probabilidade relativamente alta de uso do aplicativo pelo usuário. Dessa forma, os aplicativos são selecionados com êxito para recuperação de memória até que uma condição de término de recuperação de memória seja atendida.
[095] Em uma implementação, após ser determinado que a recuperação de memória precisa ser realizada atualmente, um aplicativo que está atualmente em execução no terminal e que não é operado ou usado pelo usuário pode ser selecionado de acordo com uma sequência de prioridade pré-armazenada de aplicativos cuja memória deve ser recuperada. Se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso (ou seja, um segmento de tempo no qual a operação do usuário e a probabilidade de uso de um aplicativo é relativamente alta) do aplicativo selecionado é determinado. O segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo (por exemplo, se um usuário usa um aplicativo das 12:00 às 13:00 em cinco dias consecutivos, das 12:00 às 13:00 é um segmento de tempo de alta probabilidade de execução do aplicativo). Se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, é determinado que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada. As etapas anteriores são repetidas até que uma condição de término de recuperação de memória seja atendida. No presente documento, a condição de término de recuperação de memória pode incluir que um tamanho de memória livre do sistema seja maior que um segundo limite especificado.
[096] A sequência de prioridade pode ser uma sequência de prioridade entre diferentes grupos de aplicativos. Especificamente, os aplicativos instalados no terminal podem ser agrupados de acordo com a frequência de uso dos aplicativos, onde os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso. Uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo é determinada de acordo com uma faixa de frequência de uso correspondente a cada grupo, onde os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade. Por exemplo, alguns aplicativos, como a Interface do Usuário (Interface do Usuário, IU), podem estar relacionados a um elemento chave de um sistema operacional no terminal; esse tipo de aplicativo pode ser classificado em grupo (grupo) 1, que indicam aplicativos muito importantes. Para alguns aplicativos frequentemente usados pelo usuário, como WeChat e Camera, esse tipo de aplicativo pode ser classificado em um grupo 2, que indica aplicativos geralmente importantes. Para alguns aplicativos não usados com frequência, como Calculadora e Estoque, esse tipo de aplicativo pode ser classificado em um grupo 3, que indicam aplicativos sem importância. É definido da seguinte maneira: uma prioridade de recuperação de memória do grupo 3 > uma prioridade de recuperação de memória do grupo 2 > uma prioridade de recuperação de memória do grupo 1. Durante a recuperação de memória, a recuperação de memória dos aplicativos no grupo 3 é considerada mais preferencialmente, a recuperação de memória dos aplicativos no grupo 2 é considerada a segunda mais preferencial, e a memória dos aplicativos no grupo 1 não é recuperada.
MODALIDADE 3
[097] Para otimizar ainda mais uma política de recuperação de memória para garantir uma recuperação de memória adequada e em tempo hábil, uma incorporação desse pedido fornece uma implementação para realizar recuperação de memória usando-se uma pluralidade de condições de recuperação de memória.
[098] Como mostrado na Figura 4, a Figura 4 é um fluxograma de um método de recuperação de memória de acordo com a Modalidade 3 deste pedido, o método executa as seguintes etapas no modo usuário.
[099] S401. Monitorar as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal.
[100] S402. Determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal.
[101] S403. Acionar um procedimento de recuperação de memória no S404 quando qualquer uma ou mais das seguintes condições 1 a 4 forem atendidas e acionar um procedimento de recuperação de memória no S405 quando uma condição 5 for atendida.
[102] 1. É determinado, de acordo com o intervalo de tempo de recuperação de memória, que a recuperação de memória precisa ser realizada atualmente.
[103] Em implementação específica, se a recuperação de memória precisa ser realizada atualmente também pode ser determinada com referência à memória livre do sistema. Ou seja, quando o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória for atingido, a recuperação de memória poderá ser realizada se a memória livre do sistema for menor que um limite (o limite pode ser um primeiro limite especificado, um segundo limite especificado ou outro limite que são descritos a seguir, em que o outro limite pode ser um limite entre o primeiro limite especificado e o segundo limite especificado, e o primeiro limite especificado é menor que o segundo limite especificado).
[104] 2. É detectado que a memória livre do sistema é menor que um primeiro limite especificado.
[105] 3. Quando é detectado que um aplicativo é iniciado ou comutado para uma interface em primeiro plano, é determinado, de acordo com as informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, que a recuperação de memória precisa ser realizada atualmente.
[106] No presente documento, quando um tamanho de memória exigido pelo aplicativo recém-iniciado ou comutado para a interface em primeiro plano é maior que a memória livre do sistema, a recuperação de memória é acionada.
[107] 4. Uma quantidade M de aplicativos em execução em segundo plano é maior que uma quantidade especificada atual N de aplicativos que podem ser executados em segundo plano.
[108] Em implementação específica, a quantidade de aplicativos permitidos para execução em segundo plano pode ser definida de acordo com um tamanho de memória livre do sistema atual.
[109] 5. É detectado que a duração da permanência, por um aplicativo no terminal, em segundo plano excedeu a duração especificada.
[110] Deve ser observado que para as condições precedentes 2 a 5, uma pessoa versada na técnica pode selecionar apenas uma parte das condições de acordo com uma exigência real.
[111] S404. Determinar, de acordo com as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos atualmente em execução no terminal e de aplicativos que estão atualmente em execução no terminal e que não são operados ou usados pelo usuário, um aplicativo cuja memória deve ser recuperada, e realizar a recuperação de memória invocando-se uma interface de recuperação de memória fornecida por um modo kernel.
[112] Em implementação específica, depois que um sistema de terminal é iniciado, um daemon, usado para recuperação de memória, no modo usuário desse aplicativo é iniciado primeiro, em seguida, os aplicativos são iniciados e uma tabela de dados em execução do aplicativo é mantida, para registrar as situações de ocupação de memória dos aplicativos no terminal e coletar estatísticas sobre um segmento de tempo de alta probabilidade de execução, conforme mostrado na Tabela 1 a seguir. TABELA 1
[113] Se for determinado que a recuperação de memória precisa ser realizada, um aplicativo atualmente em execução no terminal pode ser selecionado de acordo com uma sequência de prioridade pré-armazenada de aplicativos cuja memória deve ser recuperada. Com referência à Tabela 1, é determinado se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado. Se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, o aplicativo selecionado é usado como um aplicativo cuja memória deve ser recuperada, a recuperação de memória é realizada invocando- se a interface de recuperação de memória usada para recuperação de memória e fornecido pelo modo kernel, e as etapas anteriores são repetidas até que uma condição de término de recuperação de memória seja atendida. No presente documento, com base nas diferenças entre as condições 1 a 4, a condição de término de recuperação de memória anterior pode incluir um ou mais de: o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface em primeiro plano é menor que a memória livre do sistema; ou uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano. Por exemplo, para as condições 1 e 2, a condição de término de recuperação de memória pode ser que o tamanho da memória livre do sistema seja maior que um segundo limite especificado (o segundo limite especificado é maior que o primeiro limite especificado); para a condição 3, a condição de término de recuperação de memória pode ser que a memória exigida por um aplicativo atualmente iniciado seja menor que a memória livre do sistema; e para a condição 4, a condição de término de recuperação de memória pode ser que uma quantidade de aplicativos em execução em segundo plano seja igual à quantidade especificada de aplicativos que podem ser executados em segundo plano, ou seja, em aplicativos S303, M - N cuja memória deve ser recuperada são selecionados a partir dos aplicativos em execução em segundo plano.
[114] S405. Recuperar, invocando-se a interface de recuperação de memória fornecida pelo modo kernel, a memória de um aplicativo cuja duração de permanência em segundo plano exceder a duração especificada.
[115] Com base em um mesmo conceito inventivo, este pedido fornece ainda um aparelho de recuperação de memória e equipamento de usuário correspondente ao método de recuperação de memória. Como os princípios do aparelho e equipamento de usuário para resolução de problemas são semelhantes aos do método de recuperação de memória neste pedido, para implementação do aparelho e equipamento de usuário, pode ser feita referência à implementação do método. Componentes repetidos não são descritos novamente.
MODALIDADE 4
[116] Como mostrado na Figura 5, a Figura 5 é um diagrama estrutural esquemático de um aparelho de recuperação de memória 50 de acordo com uma modalidade deste pedido, e o aparelho de recuperação de memória 50 que inclui: um módulo de determinação 51, configurado para monitorar, no modo usuário, informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e um módulo de recuperação de memória 52, configurado para: se for determinado, de acordo com pelo menos uma das informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, determinar, de acordo com informações de operação e uso de usuário e informações de ocupação de memória dos aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e executar a recuperação de memória, invocando-se uma interface de recuperação de memória fornecida por um modo kernel.
[117] Neste pedido, a recuperação de memória é realizada proativamente monitorando, no modo usuário, uma situação de operação e utilização do usuário e uma situação de ocupação de memória dos aplicativos instalados no terminal, de modo que, quando um aplicativo é frequentemente operado e utilizado por um usuário e ocupar uma memória relativamente grande, a frequência de recuperação de memória pode ser aumentada, para garantir o uso normal da mesma.
[118] Opcionalmente, o módulo de recuperação de memória 52 é especificamente configurado para: determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal; e determinar que a condição de recuperação de memória é atualmente atendida quando o tempo atual atingir o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória.
[119] Nessa implementação, o módulo de recuperação de memória 52, primeiro, determina o intervalo de tempo de recuperação de memória de acordo com uma regularidade do uso do aplicativo pelo usuário e, em seguida, realiza ativamente a recuperação de memória de acordo com o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória. Dessa forma, a recuperação planejada é realizada na memória, de modo que a memória livre disponível no terminal possa ser mantida em um nível relativamente desejável.
[120] Opcionalmente, o módulo de recuperação de memória 52 é especificamente utilizado para determinar o intervalo de tempo de recuperação de memória de acordo com as seguintes etapas: determinar separadamente as informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e para cada segmento de tempo de pelo menos um segmento de tempo predefinido, determinar separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória, no segmento de tempo, dos aplicativos instalados no terminal.
[121] A frequência de operação e uso de um aplicativo pelo usuário é diferente em um segmento de tempo diferente. Portanto, dessa maneira, diferentes intervalos de tempo de recuperação de memória podem ser usados em diferentes segmentos de tempo. Isso melhora ainda mais a atualidade de recuperação de memória e evita também o desperdício de recursos do sistema causado pela execução frequente de um procedimento desnecessário de recuperação de memória.
[122] Opcionalmente, o módulo de recuperação de memória 52 é especificamente configurado para: se for determinado que a memória livre do sistema é menor que um primeiro limite especificado, determinar que a condição de recuperação de memória é atualmente atendida.
[123] Dessa forma, a insuficiência de memória pode ser evitada até certo ponto.
[124] Opcionalmente, o módulo de recuperação de memória 52 é especificamente configurado para: se for detectado que um aplicativo foi iniciado ou comutado para uma interface em primeiro plano, determinar, de acordo com as informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, se a recuperação de memória precisa ser realizada; e se a recuperação de memória precisar ser realizada, determinar que a condição de recuperação de memória é atualmente atendida.
[125] Um aplicativo recém-iniciado ou um aplicativo comutado para a interface em primeiro plano é geralmente um aplicativo que o usuário está prestes a usar e, dessa maneira, a execução normal do aplicativo recém-iniciado ou do aplicativo comutado para a interface em primeiro plano pode ser garantida, aumentando assim desempenho do sistema e melhorando a experiência do usuário.
[126] Opcionalmente, o módulo de recuperação de memória 52 é especificamente configurado para: se uma quantidade de aplicativos atualmente em execução em segundo plano for maior que a quantidade especificada de aplicativos que podem ser executados em segundo plano, determinar que a condição de recuperação de memória é atualmente atendida.
[127] Além disso, no presente documento, a quantidade de aplicativos permitidos para serem executados em segundo plano pode ser ajustada em um intervalo de tempo de acordo com um tamanho de memória livre atual. Como os aplicativos executados em segundo plano geralmente não são aplicativos usados atualmente pelo usuário, a ocupação excessiva e desnecessária de memória pode ser evitada pela limitação de uma quantidade desses aplicativos.
[128] Opcionalmente, o módulo de recuperação de memória 52 é especificamente configurado para: selecionar, de acordo com uma sequência de prioridade pré-armazenada de aplicativos cuja memória deve ser recuperada, um aplicativo que esteja atualmente em execução no terminal e que não seja operado ou utilizado por um usuário, e determinar se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado, em que o segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo; se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar se o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada, e realizar a recuperação de memória invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida.
[129] Dessa forma, a memória de um aplicativo (esse aplicativo é normalmente um aplicativo não utilizado com frequência pelo usuário) cuja prioridade é relativamente baixa é preferencialmente selecionada para recuperação, em que o tempo atual não está dentro de um segmento de tempo de alta probabilidade de execução do aplicativo, melhorando assim o desempenho do sistema e melhorando a experiência do usuário.
[130] Opcionalmente, a condição de término de recuperação de memória inclui uma ou mais das seguintes condições: o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface em primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano.
[131] Opcionalmente, o módulo de recuperação de memória 52 especificamente configurado para definir a sequência de prioridade de aplicativos cuja memória deve ser recuperada de acordo com as seguintes etapas: agrupar os aplicativos instalados no terminal de acordo com a frequência de uso dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso; e determinar uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo de acordo com um intervalo de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
[132] Opcionalmente, o módulo de recuperação de memória 52 é especificamente configurado para: se for detectado que a duração da permanência, por um aplicativo no terminal, em segundo plano excedeu a duração especificada, recuperar a memória do aplicativo cuja duração da permanência em segundo plano exceder a duração especificada.
[133] No presente documento, o aplicativo cuja duração de permanência em segundo plano é relativamente longa geralmente é um aplicativo que não é operado pelo usuário por um período atual, e a memória do aplicativo pode ser liberada e, portanto, fornecida a um aplicativo que está em maior necessidade da memória, melhorando assim uma taxa de utilização efetiva da memória.
MODALIDADE 5
[134] Como mostrado na Figura 6, a Figura 6 é um diagrama estrutural esquemático do equipamento de usuário 60 de acordo com uma modalidade deste pedido, e o equipamento de usuário 60 inclui um processador 61, uma memória 62 e um barramento 63. A memória 62 está configurada para armazenar uma instrução de execução e inclui um dispositivo de memória interno 621 e uma memória externa 622. O dispositivo de memória interna 621 no presente documento também citado como uma memória interna e está configurado para armazenar temporariamente dados operacionais do processador 61 e dados trocados com a memória externa 622, tal como um disco rígido. O processador 61 troca dados com a memória externa 622 usando o dispositivo de memória interna 621, e quando o equipamento de usuário 60 é executado, o processador 61 e a memória 62 se comunicam usando-se o barramento 63, para que o processador 61 execute as seguintes instruções no modo usuário: monitorar as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e quando é determinado, de acordo com pelo menos uma dentre as informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, determinar, de acordo com as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória, invocando-se uma interface de recuperação de memória fornecida por um modo kernel.
[135] Opcionalmente, nas instruções executadas pelo processador 61, em que é determinado, de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal; e determinar que a condição de recuperação de memória é atualmente atendida quando o tempo atual atingir o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória.
[136] Opcionalmente, nas instruções executadas pelo processador 61, a determinação de um intervalo de tempo de recuperação de memória inclui: determinar separadamente as informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e para cada segmento de tempo de pelo menos um segmento de tempo predefinido, determinar separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e informações de ocupação da memória, no segmento de tempo, dos aplicativos instalados no terminal.
[137] Opcionalmente, nas instruções executadas pelo processador 61, em que é determinado, de acordo com as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se for determinado que a memória livre do sistema é menor que um primeiro limite especificado, determinar que a condição de recuperação de memória é atualmente atendida.
[138] Opcionalmente, nas instruções executadas pelo processador 61, em que é determinado, de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se for detectado que um aplicativo é iniciado ou comutado para uma interface em primeiro plano, determinar, de acordo com as informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, se a recuperação de memória precisa ser realizada; e se a recuperação de memória precisar ser realizada, determinar que a condição de recuperação de memória seja atualmente atendida.
[139] Opcionalmente, nas instruções realizadas pelo processador 61, em que é determinado, de acordo com as informações de operação e uso de usuário dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida inclui: se uma quantidade de aplicativos atualmente em execução em um segundo plano for maior que uma quantidade especificada de aplicativos que podem ser executados em segundo plano, determinar que a condição de recuperação de memória seja atualmente atendida.
[140] Além disso, no presente documento, a quantidade de aplicativos permitidas para serem executadas em segundo plano pode ser ajustada em um intervalo de tempo de acordo com um tamanho de memória livre atual. Como os aplicativos executados em segundo plano geralmente não são aplicativos usados atualmente pelo usuário, a ocupação excessiva e desnecessária de memória pode ser evitada pela limitação de uma quantidade desses aplicativos.
[141] Opcionalmente, nas instruções executadas pelo processador 61, a determinação de um aplicativo cuja memória deve ser recuperada, e a recuperação de memória invocando- se uma interface de recuperação de memória fornecida por um modo kernel inclui: selecionar, de acordo com uma sequência de prioridade pré-armazenada de aplicativos cuja memória deve ser recuperada, um aplicativo que está atualmente em execução no terminal e que não é operado ou utilizado por um usuário, e determinar se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado, em que o segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo; se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada, e realizar a recuperação de memória invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida.
[142] Opcionalmente, a condição de término de recuperação de memória inclui uma ou mais das seguintes condições: o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface de primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano.
[143] Opcionalmente, nas instruções executadas pelo processador 61, a configuração da sequência de prioridade de aplicativos cuja memória deve ser recuperada inclui: agrupar os aplicativos instalados no terminal de acordo com a frequência de uso dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso; e determinar uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo de acordo com um intervalo de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
[144] Opcionalmente, nas instruções executadas pelo processador 61, se for determinado, de acordo com as informações de operação e uso de usuário dos aplicativos instalados no terminal, que a condição de recuperação de memória é atualmente atendida, a recuperação de memória em execução invocando-se uma interface de recuperação de memória fornecida por um modo kernel inclui: se for detectado que a duração da permanência, por um aplicativo no terminal, em segundo plano excedeu a duração especificada, determinar que a condição de recuperação de memória é atualmente atendida e recuperar, invocando-se a interface de recuperação de memória fornecida pelo modo kernel, memória do aplicativo cuja duração da permanência em segundo plano exceder a duração especificada.
MODALIDADE 6
[145] A Figura 7 descreve uma estrutura de um dispositivo terminal 700 de acordo com este pedido, e o dispositivo terminal 700 inclui: pelo menos um processador 701, pelo menos uma interface de rede 704 ou outra interface de usuário 703, uma memória 705 e pelo menos um barramento de comunicações 702. O barramento de comunicações 702 é configurado para implementar conexão e comunicação entre os componentes. No presente documento, a memória 705 inclui um dispositivo de memória interna e uma memória externa. O dispositivo de memória interna no presente documento também citado como uma memória interna, e está configurado para armazenar temporariamente dados operacionais do processador 701 e dados trocados com a memória externa, tal como um disco rígido. O processador 701 troca dados com a memória externa usando-se o dispositivo de memória interna.
[146] A memória 705 armazena os seguintes elementos, módulos executáveis ou resultados de dados, ou subconjuntos dos mesmos, ou conjuntos estendidos dos mesmos.
[147] Um sistema operacional 7051 inclui diversos programas do sistema e pode ter dois níveis de execução: um modo kernel 7051a e um modo usuário 7051b. Quando um processo realiza o chamado do sistema e entra no código do kernel para execução, o processo está no modo de execução de kernel, que é citado de forma abreviada como um modo kernel. Quando o processo está no modo kernel, o código de kernel em execução pode usar uma pilha de kernel do processo atual, e cada processo tem sua própria pilha de kernel. Quando um processo realiza o código de um usuário, o processo está no modo de execução de usuário, que é citado de forma abreviada como um modo usuário. Nesse caso, o processador 701 é executado no código do usuário cujo nível de privilégio é o mais baixo.
[148] Um módulo de programa de aplicativo 7052 inclui diversos programas de aplicativos (de forma abreviada, Aplicativo).
[149] Nessa modalidade deste pedido, o processador 701 está configurado para realizar as seguintes etapas no modo usuário invocando-se um programa ou uma instrução armazenada na memória 705: monitorar as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e quando é determinado, de acordo com pelo menos uma dentre as informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, determinar, de acordo com as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e executar a recuperação de memória, invocando-se uma interface de recuperação de memória fornecida pelo modo kernel.
[150] Opcionalmente, em uma modalidade, o processador 701 é ainda configurado para: determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal; e determinar que a condição de recuperação de memória é atualmente atendida quando o tempo atual atingir o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória.
[151] Além disso, o processador 701 é ainda configurado para: determinar separadamente as informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e para cada segmento de tempo de pelo menos um segmento de tempo predefinido, determinar separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e de ocupação de memória, nos segmentos de tempo, dos aplicativos instalados no terminal.
[152] Opcionalmente, em outra modalidade, o processador 701 é ainda configurado para se for determinado que a memória livre do sistema é menor do que um primeiro limite especificado, determinar que a condição de recuperação de memória é atualmente atendida.
[153] Opcionalmente, ainda em outra modalidade, o processador 701 é ainda configurado para: se for detectado que um aplicativo é iniciado ou comutado para uma interface em primeiro plano, determinar, de acordo com informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, se a recuperação de memória precisa ser realizada; e se a recuperação de memória precisar ser realizada, determinar que a condição de recuperação de memória é atualmente atendida.
[154] Opcionalmente, em ainda outra modalidade, o processador 701 é ainda configurado para se uma quantidade de aplicativos atualmente em execução em um segundo plano for maior que uma quantidade especificada de aplicativos que podem ser executados em segundo plano, determinar que a condição de recuperação de memória é atualmente atendida.
[155] Além disso, no presente documento, a quantidade de aplicativos permitidos para serem executados em segundo plano pode ser ajustada em um intervalo de tempo de acordo com um tamanho de memória livre atual. Como os aplicativos executados em segundo plano geralmente não são aplicativos usados atualmente pelo usuário, a ocupação excessiva e desnecessária de memória pode ser evitada pela limitação de uma quantidade desses aplicativos.
[156] Além disso, que o processador 701 é ainda configurado para determinar o aplicativo cuja memória deve ser recuperada, e realizar a recuperação de memória invocando-se a interface de recuperação de memória fornecida por um modo kernel inclui: selecionar, de acordo com uma sequência de prioridade pré-armazenada de aplicativos cuja memória deve ser recuperada, um aplicativo que está atualmente em execução no terminal e que não é operado ou usado por um usuário, e determinar se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado, em que o segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo; se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada, e realizar a recuperação de memória invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida.
[157] A condição de término de recuperação de memória inclui uma ou mais das seguintes condições: o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface de primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano.
[158] Além disso, o processador 701 é ainda configurado para: agrupar os aplicativos instalados no terminal de acordo com a frequência de uso dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso; e determinar uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo de acordo com um intervalo de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
[159] Opcionalmente, ainda em outra modalidade, o processador 701 é ainda configurado para: se for detectado que a duração de permanência, por um aplicativo no terminal, em segundo plano excedeu a duração especificada, recuperar a memória do aplicativo cuja duração da permanência em segundo plano exceder a duração especificada.
[160] Além disso, o dispositivo terminal 700 pode ainda realizar o método e modalidades na Figura 2 a Figura 4 e os detalhes não são descritos novamente no presente documento nessa modalidade deste pedido.
[161] Pode ser aprendido que, após as soluções anteriores serem usadas, quando um aplicativo é frequentemente operado e usado por um usuário e ocupar uma memória relativamente grande, a frequência de recuperação de memória pode ser aumentada, para assegurar o uso normal da mesma.
MODALIDADE 7
[162] Uma modalidade deste pedido refere-se a um terminal 800 e um método de recuperação de memória, em que o terminal 800 pode ser um telefone móvel, um computador do tipo tablet, um assistente pessoal digital (PDA), um ponto de vendas (POS), ou um computador de veículo.
[163] A Figura 8 é um diagrama estrutural esquemático de um terminal 800 de acordo com uma modalidade deste pedido.
[164] Com referência à Figura 8, o terminal 800 nessa modalidade deste pedido inclui: um processador 810, uma memória 820, uma unidade de entrada 830, uma fonte de alimentação 850, um circuito de rádio frequência (RF) 860, um circuito de frequência de áudio 870, e um módulo de Fidelidade sem Fios(WiFi) 880.
[165] A memória 820 inclui um dispositivo de memória interna 821 e uma memória externa 822. O dispositivo de memória interna 821 é configurado para armazenar temporariamente dados operacionais do processador 810 e dados trocados com a memória externa 822, tal como um disco rígido. O processador 810 troca dados com a memória externa 822 usando-se o dispositivo de memória interna 821. O dispositivo de memória interna 821 pode ser um de uma memória de acesso aleatório não volátil (memória de acesso aleatório não volátil, NVRAM), uma memória de acesso aleatório dinâmico (memória de acesso aleatório dinâmica, DRAM), uma memória de acesso aleatório estática (RAM estática, SRAM) ou uma memória Flash; e a memória externa 822 pode ser o disco rígido, um disco óptico, uma unidade flash USB, um disquete ou uma unidade de fita.
[166] O processador 810 realiza uma instrução na memória 820 no modo usuário, de modo a: monitorar as informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e, quando é determinado, de acordo com pelo menos uma das informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, determinar, de acordo com as informações de operação e uso de usuário e informações de ocupação de memória dos aplicativos atualmente em execução no terminal e dos aplicativos atualmente em execução no terminal, um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória invocando-se uma interface de recuperação de memória fornecida por um modo kernel. A recuperação de memória pode ser desencadeada por um intervalo de tempo de recuperação de memória especificado e, especificamente, o processador 810 pode determinar separadamente as informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e para cada segmento de tempo de pelo menos um segmento de tempo predefinido, determinar separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e informações de ocupação da memória, no segmento de tempo, dos aplicativos instalados no terminal. Opcionalmente, a recuperação de memória também pode ser acionada quando é determinado que a memória livre do sistema for menor que um primeiro limite especificado. A recuperação de memória também pode ser acionada se for detectado que um aplicativo foi iniciado ou comutado para uma interface em primeiro plano e determinado, de acordo com informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, que a recuperação de memória precisa ser realizada. A condição de recuperação de memória também pode ser acionada quando uma quantidade de aplicativos atualmente em execução em um segundo plano é maior que uma quantidade especificada de aplicativos que podem ser executados em segundo plano. Além disso, no presente documento, a quantidade de aplicativos permitidos para serem executados em segundo plano pode ser ajustada em um intervalo de tempo de acordo com um tamanho de memória livre atual. Como os aplicativos executados em segundo plano geralmente não são aplicativos usados atualmente pelo usuário, a ocupação excessiva e desnecessária de memória pode ser evitada pela limitação de uma quantidade desses aplicativos.
[167] Opcionalmente, com base nas condições de acionamento anteriores, um processo no qual o processador 810 realiza a recuperação de memória pode ser: selecionar, de acordo com uma sequência prioritária de aplicativos cuja memória deve ser recuperada, um aplicativo que está atualmente em execução no terminal e que não é operado ou usado por um usuário e que determina se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado, em que o segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo; se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada e realizar a recuperação de memória invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida. Além disso, a condição de término de recuperação de memória pode incluir uma ou mais das seguintes condições: o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface de primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano. Além disso, os aplicativos instalados no terminal podem ser agrupados de acordo com a frequência de uso dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso. Uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo é determinada de acordo com um intervalo de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
[168] Além disso, o processador 810 pode ainda realizar, quando é determinado que a condição de recuperação de memória é atualmente atendida, a recuperação de memória, invocando- se a interface de recuperação de memória fornecida pelo modo kernel.
[169] Uma unidade de entrada 830 pode ser configurada para receber informações numéricas ou de caracteres de entrada e gerar uma entrada de sinal relacionada a uma configuração de usuário e controle funcional do terminal 800. Especificamente, nessa modalidade deste pedido, a unidade de entrada 830 pode incluir um painel de toque 831. O painel de toque 831, também citado como tela sensível ao toque, pode coletar uma operação de toque (tal como uma operação realizada por um usuário no painel de toque 831 ou próximo do painel de toque 831 utilizando-se um dedo, ou qualquer objeto ou acessório apropriado, como uma caneta stylus) realizada pelo usuário no painel de toque ou próximo a ele, e acionar um dispositivo de conexão correspondente de acordo com um programa predefinido. Opcionalmente, o painel de toque 831 pode incluir dois componentes: um aparelho de detecção de toque e um controlador de toque. O aparelho de detecção de toque detecta uma orientação de toque do usuário, detecta um sinal trazido pela operação de toque e envia o sinal para o controlador de toque. O controlador de toque recebe informação de toque do aparelho de detecção de toque, converte a informação de toque em coordenadas de toque e envia as coordenadas de toque ao processador 810 e pode receber um comando enviado pelo processador 810 e executar o comando. Além disso, o painel de toque 831 pode ser implementado em uma pluralidade de tipos, tais como um tipo de resistor, um tipo de capacitor, um tipo de infravermelho e um tipo de onda acústica de superfície. Além do painel de toque 831, a unidade de entrada 830 pode ainda incluir um ou mais outros dispositivos de entrada 832, em que um ou mais outros dispositivos de entrada 832 podem incluir, porém sem limitação a, um ou mais dos seguintes: um teclado físico, uma tecla de função (como uma tecla de controle de volume e uma tecla ligar/desligar), um mouse estacionário (trackball), um mouse, um comando de jogos do tipo joystick ou algo semelhante.
[170] O terminal 800 pode ainda incluir uma unidade de exibição 840, em que a unidade de exibição 840 pode ser configurada para exibir informações inseridas pelo usuário ou informações fornecidas para o usuário, bem como várias interfaces de menu do terminal 800. A unidade de exibição 840 pode incluir um painel de exibição 841. Opcionalmente, pode ser utilizada uma forma de um visor do tipo LCD (Visor de Cristal Líquido, visor de cristal líquido) um visor do tipo OLED (Diodo Orgânico Emissor de Luz, diodo orgânico emissor de luz) ou semelhante para configurar o painel de exibição 841.
[171] Nesta modalidade deste pedido, o painel de toque 831 cobre o painel de exibição 841 para formar uma tela de exibição de toque. Ao detectar uma operação de toque na tela de toque ou próximo a ela, a tela de toque transmite a operação de toque para o processador 810 para determinar um tipo de evento de toque, e então o processador 810 fornece uma saída visual correspondente na tela de exibição toque de acordo com o tipo do evento de toque.
[172] Nessa modalidade deste pedido, a tela de exibição de toque inclui uma área de exibição de interface de aplicativo e uma área de exibição de controle comum. Uma forma de disposição da área de exibição da interface de aplicativo e da área de exibição de controle comum não é limitada, e pode ser uma forma de disposição que pode diferenciar as duas áreas de exibição, como uma disposição de cima para baixo ou uma forma de disposição esquerda- direita. A área de exibição da interface do aplicativo pode ser usada para exibir uma interface de programa de aplicativo. Cada interface pode incluir elementos de interface, como um ícone ou widget de tela inicial ou ambos, de pelo menos um programa de aplicativo. A área de exibição da interface do aplicativo também pode ser uma interface vazia, incluindo nenhum conteúdo. A área de exibição de controle comum é usada para exibir um controle de uso relativamente alto, por exemplo, um ícone de programa de aplicativo, como um botão de configuração, um número de interface, uma barra de rolagem, um ícone de catálogo telefônico ou semelhantes.
[173] O processador 810 é um centro de controle do terminal 800 e usa várias interfaces e linhas para conectar todas os componentes de um telefone móvel por inteiro. Ao realizar ou executar um programa de software ou um módulo ou ambos armazenados no dispositivo de memória interno 821 e chamar dados armazenados na memória externa 822, o processador 810 executa várias funções do terminal 800 e processa os dados, de modo a realizar o monitoramento no terminal 800.
[174] Uma pessoa versada na técnica deve entender que as modalidades deste pedido podem ser fornecidas como um método, um sistema ou um produto de programa de computador. Portanto, este pedido pode usar uma forma de apenas as modalidades de hardware, somente as modalidades de software, ou modalidades com uma combinação de software e hardware. Além disso, este pedido pode usar uma forma de produto de programa de computador que é implementado em uma ou mais mídias de armazenamento utilizáveis pelo computador (que inclui, porém sem limitação a uma memória de disco, um disco compacto tipo CD-ROM, uma memória opcional e similares) que incluem código de programa utilizável em computador.
[175] Este pedido é descrito com referência aos fluxogramas e/ou diagramas de blocos do método, o aparelho (sistema) e o produto de programa de computador de acordo com as modalidades deste pedido. Deve ser entendido que instruções de programa de computador podem ser usadas para implementar cada processo e/ou cada bloco nos fluxogramas e/ou diagramas de blocos e uma combinação de um processo e/ou um bloco nos fluxogramas e/ou nos diagramas de blocos. Essas instruções do programa de computador podem ser fornecidas para um computador de uso geral, um computador dedicado, um processador incorporado, ou um processador de qualquer outro dispositivo de processamento de dados programável para gerar uma máquina, para que as instruções executadas por um computador ou um processador de qualquer outro dispositivo de processamento de dados programável gerem um aparelho para implementar uma função específica em um ou mais processos nos fluxogramas e/ou em um ou mais blocos nos diagramas de blocos.
[176] Essas instruções de programa de computador também podem ser armazenadas em uma memória legível por computador que pode instruir o computador ou qualquer outro dispositivo de processamento de dados programável a funcionar de uma maneira específica, para que as instruções armazenadas na memória gerada por computador gerem um artefato que inclua um aparelho de instrução. O aparelho de instrução implementa uma função específica em um ou mais processos nos fluxogramas e/ou em um ou mais blocos nos diagramas de blocos.
[177] Essas instruções do programa de computador também podem ser carregadas em um computador ou outro dispositivo de processamento de dados programável, de modo que uma série de operações e etapas sejam realizadas no computador ou em outro dispositivo programável, gerando assim processamento implementado por computador. Portanto, as instruções executadas no computador ou no outro dispositivo programável fornecem etapas para implementar uma função específica em um ou mais processos nos fluxogramas e/ou em um ou mais blocos nos diagramas de blocos.
[178] Embora algumas modalidades preferidas deste pedido tenham sido descritas, as pessoas versadas na técnica podem fazer alterações e modificações nessas modalidades uma vez que aprendam o conceito inventivo básico. Por conseguinte, as reivindicações que se seguem destinam-se a ser interpretadas de modo a abranger as modalidades preferidas e todas as alterações e modificações abrangidas pelo âmbito deste pedido.
[179] Obviamente, uma pessoa versada na técnica pode fazer várias modificações e variações para este pedido sem se afastar do escopo do mesmo. Nesse caso, este pedido também se destina a cobrir essas modificações e variações deste pedido, desde que estejam dentro do escopo de proteção definido pelas reivindicações deste pedido e suas tecnologias equivalentes.

Claims (21)

1. Método de recuperação de memória caracterizado pelo fato de que as seguintes etapas são realizadas no modo usuário: monitorar (S201) informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e se for determinado, de acordo com pelo menos uma dentre as informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida (S202), selecionar, de acordo com uma sequência de prioridade pré-armazenada de aplicativos cuja memória deve ser recuperada, um aplicativo que está atualmente em execução no terminal e que não é operado ou usado por um usuário, e determinar se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado, em que o segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo; e, se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada, e realizar a recuperação de memória invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que é determinado, de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, que compreende: determinar (S402) um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal; e determinar que a condição de recuperação de memória é atualmente atendida quando o tempo atual atingir o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a determinação de um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que compreende: determinar separadamente as informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e para cada segmento de tempo de pelo menos um segmento de tempo predefinido, determinar separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e informações de ocupação da memória, no segmento de tempo, dos aplicativos instalados no terminal.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que é determinado, de acordo com as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, que compreende: se for determinado que a memória livre do sistema é menor que um primeiro limite especificado, determinar que a condição de recuperação de memória é atualmente atendida.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que é determinado, de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, que compreende: se for detectado que um aplicativo é iniciado ou comutado para uma interface de primeiro plano, determinar, de acordo com informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, se a recuperação de memória precisa ser realizada; e se a recuperação de memória precisar ser realizada, determinar que a condição de recuperação de memória seja atendida atualmente.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que é determinado, de acordo com as informações de operação e uso de usuário dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, que compreende: se uma quantidade de aplicativos atualmente em execução em um segundo plano for maior que uma quantidade especificada de aplicativos que podem ser executados em segundo plano, determinar que a condição de recuperação de memória seja atualmente atendida.
7. Método, de acordo com qualquer uma das reivindicações 2 a 6, caracterizado pelo fato de que a condição de término de recuperação de memória compreende uma ou mais das seguintes condições (S403): o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface em primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano.
8. Método, de acordo com a reivindicação 1, caraterizado pelo fato de que a sequência de prioridade de aplicativos cuja memória deve ser recuperada é configurada de acordo com as seguintes etapas: agrupar os aplicativos instalados no terminal de acordo com a frequência de utilização dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso; e determinar uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo de acordo com uma faixa de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende: se for detectado que a duração de permanência, por um aplicativo no terminal, em segundo plano excedeu a duração especificada, determinar que a condição de recuperação de memória é atualmente atendida, e recuperar (S405), invocando-se a interface de recuperação de memória fornecida pelo modo kernel, a memória do aplicativo cuja duração da permanência em segundo plano exceder a duração especificada.
10. Aparelho de recuperação de memória, caracterizado pelo fato de que o aparelho compreende: um módulo de determinação (51), configurado para monitorar, no modo usuário, informações de operação e uso de usuário e informações de ocupação de memória de aplicativos instalados em um terminal; e um módulo de recuperação de memória (52), configurado para: se for determinado, de acordo com pelo menos uma dentre as informações de operação e uso de usuário ou as informações de ocupação de memória dos aplicativos instalados no terminal, que uma condição de recuperação de memória é atualmente atendida, selecionar, de acordo com uma sequência de prioridade pré-armazenada de aplicativos cuja memória deve ser recuperada, um aplicativo que está atualmente em execução no terminal e que não é operado ou usado por um usuário, e determinar se o tempo atual está dentro de um segmento de tempo de alta probabilidade de uso do aplicativo selecionado, em que o segmento de tempo de alta probabilidade de uso do aplicativo é determinado com base nas informações de operação e uso de usuário do aplicativo; se o tempo atual não estiver dentro do segmento de tempo de alta probabilidade de uso do aplicativo selecionado, determinar que o aplicativo selecionado é um aplicativo cuja memória deve ser recuperada, e realizar a recuperação de memória invocando-se a interface de recuperação de memória fornecida pelo modo kernel; e repetir as etapas anteriores até que uma condição de término de recuperação de memória seja atendida.
11. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o módulo de recuperação de memória (52) é especificamente configurado para: determinar um intervalo de tempo de recuperação de memória de acordo com as informações de operação e uso de usuário e as informações de ocupação de memória dos aplicativos instalados no terminal; e determinar que a condição de recuperação de memória é atualmente atendida quando o tempo atual atingir o tempo de recuperação de memória indicado pelo intervalo de tempo de recuperação de memória.
12. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que o módulo de recuperação de memória (52) é especificamente configurado para determinar o intervalo de tempo de recuperação de memória de acordo com as seguintes etapas: determinar separadamente as informações de operação e uso de usuário e informações de ocupação de memória, em cada segmento de tempo de pelo menos um segmento de tempo predefinido, dos aplicativos instalados no terminal; e, para cada segmento de tempo de pelo menos um segmento de tempo predefinido, determinar separadamente um intervalo de tempo de recuperação de memória dentro do segmento de tempo de acordo com as informações de operação e uso de usuário e informações de ocupação da memória, no segmento de tempo, dos aplicativos instalados no terminal.
13. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o módulo de recuperação de memória (52) é especificamente configurado para: se for determinado que a memória livre do sistema é menor que um primeiro limite especificado, determinar que a condição de recuperação de memória é atualmente atendida.
14. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o módulo de recuperação de memória é especificamente configurado para: se for detectado que um aplicativo é iniciado ou comutado para uma interface em primeiro plano, determinar, de acordo com as informações de ocupação de memória do aplicativo e um tamanho de memória livre do sistema, se a recuperação de memória precisa ser realizada; e, se a recuperação de memória precisar ser realizada, determinar que a condição de recuperação de memória é atualmente atendida.
15. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o módulo de recuperação de memória (52) é especificamente configurado para: se uma quantidade de aplicativos atualmente em execução em segundo plano for maior que a quantidade especificada de aplicativos que podem ser executados em segundo plano, determinar que a condição de recuperação de memória é atualmente atendida.
16. Aparelho, de acordo com qualquer uma das reivindicações 11 a 15, caracterizado pelo fato de que a condição de término de recuperação de memória compreende uma ou mais das seguintes condições: o tamanho da memória livre do sistema é maior que um segundo limite especificado; a memória exigida por um aplicativo atualmente iniciado é menor que a memória livre do sistema; a memória exigida por um aplicativo comutado para a interface em primeiro plano é menor que a memória livre do sistema; e uma quantidade de aplicativos em execução em segundo plano é menor ou igual à quantidade especificada de aplicativos que podem ser executados em segundo plano.
17. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o módulo de recuperação de memória (52) é configurado especificamente para definir a sequência de prioridade de aplicativos, cuja memória deve ser recuperada de acordo com as seguintes etapas: agrupar os aplicativos instalados no terminal de acordo com a frequência de uso dos mesmos, em que os aplicativos em um mesmo grupo têm uma mesma faixa de frequência de uso; e determinar uma sequência de prioridade de recuperação de memória de aplicativos em cada grupo de acordo com uma faixa de frequência de uso correspondente a cada grupo, em que os aplicativos em um mesmo grupo têm uma mesma sequência de prioridade.
18. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o módulo de recuperação de memória (52) é especificamente configurado para: se for detectado que a duração da permanência de um aplicativo no terminal em segundo plano excedeu a duração especificada, determinar que a condição de recuperação de memória é atualmente atendida e recuperar, invocando-se a interface de recuperação de memória fornecida pelo modo kernel, a memória do aplicativo cujo tempo de permanência em segundo plano exceder a duração especificada.
19. Sistema de computador caracterizado pelo fato de que compreende: uma memória (62, 705) configurada para armazenar instruções legíveis por computador; um processador (61, 701) configurado para ler as instruções legíveis por computador a partir da memória para fazer com que o processador implemente o método, conforme definido em qualquer uma das reivindicações 1 a 9.
20. Dispositivo de armazenamento caracterizado pelo fato de que armazena instruções legíveis por computador que, quando executadas por um ou mais processadores, implementam o método, conforme definido em qualquer uma das reivindicações 1 a 9.
21. Meio de armazenamento legível por computador caracterizado pelo fato de que armazena instruções legíveis por computador que, quando executadas por um ou mais processadores, implementam o método conforme definido em qualquer uma das reivindicações 1 a 9.
BR112018013524-0A 2015-12-31 2016-12-22 Método de recuperação de memória, aparelho, sistema de computador, dispositivo de armazenamento e meio de armazenamento legível por computador BR112018013524B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201511032537.7 2015-12-31
CN201511032537.7A CN105701025B (zh) 2015-12-31 2015-12-31 一种内存回收方法及装置
PCT/CN2016/111557 WO2017114288A1 (zh) 2015-12-31 2016-12-22 一种内存回收方法及装置

Publications (2)

Publication Number Publication Date
BR112018013524A2 BR112018013524A2 (pt) 2018-12-11
BR112018013524B1 true BR112018013524B1 (pt) 2023-05-30

Family

ID=

Similar Documents

Publication Publication Date Title
US11023372B2 (en) Application memory reclaim method and apparatus
US9645924B2 (en) Garbage collection scaling
US20160283711A1 (en) eMMC Monitoring Method and Apparatus
US8429745B1 (en) Systems and methods for data loss prevention on mobile computing systems
CN104572489B (zh) 磨损均衡方法及装置
US9910664B2 (en) System and method of online firmware update for baseboard management controller (BMC) devices
KR102303008B1 (ko) 파일 시스템에서의 플러싱 기법
CN110879742B (zh) 虚拟机异步创建内部快照方法、装置及存储介质
KR101651204B1 (ko) 스냅샷 이미지의 동기화 장치 및 방법
WO2015199830A1 (en) Firmware interface with durable memory storage
US9696933B2 (en) Virtual machine manager initiated page-in of kernel pages
WO2015085755A1 (zh) 一种操作系统恢复方法、装置及终端设备
US9460001B2 (en) Systems and methods for identifying access rate boundaries of workloads
JP6237230B2 (ja) メモリ管理プログラム、メモリ管理方法、及びメモリ管理装置
CN113867645A (zh) 数据迁移和数据读写方法、装置、计算机设备及存储介质
CN113419685A (zh) 基于smr的raid创建、针对raid的数据写入及raid恢复方法
CN103885869A (zh) 基板管理控制器安全保护系统及方法
CN109634524A (zh) 一种数据处理守护进程的数据分区配置方法、装置及设备
KR20100097959A (ko) 인덱스를 저장하는 플래시 메모리를 포함하는 사용자 장치 및 그것의 인덱스 액세스 방법
BR112018013524B1 (pt) Método de recuperação de memória, aparelho, sistema de computador, dispositivo de armazenamento e meio de armazenamento legível por computador
EP3291092B1 (en) Data recovery method, device and terminal
CN115934002A (zh) 固态硬盘的访问方法、固态硬盘、存储系统及云服务器
CN109753222B (zh) 数据删除方法、服务器及计算机可读介质
CN110058938B (zh) 一种内存处理方法、装置、电子设备和可读介质
KR20130002692A (ko) 백신과 컴퓨터 최적화 기능을 구비한 컴퓨터 최적화 방법, 최적화 서버 및 컴퓨터 판독 가능한 기록매체