目录

1. 页面的使用

2. 为什么要进行页面回收

3. 哪些页面可以被回收

4. 进行页面回收的时机

5. 页面回收算法

5.1 LRU 链表

5.2 如何在两个 LRU 链表之间移动页面

5.3 LRU 缓存

5.4 回收过程 LRU 的扫描

5.5 页面回收的实现

5.5.1 函数 shrink_zone()

5.5.2 函数 shrink_slab()

6. 反向映射

7. 最后的必杀


 

前面历经了分配内存,当然内容也会在一些情况下进行回收。

1. 页面的使用

在许多情况下,会使用到页面:

1、内核代码可能调用 alloc_pages 之类的函数,从管理物理页面的伙伴系统(管理区zone上的free_area空闲链表)上直接分配页面。比如:驱动程序可能用这种方式来分配缓存;创建进程时,内核也是通过这种方式分配连续的两个页面,作为进程的thread_info结构和内核栈;等等。从伙伴系统分配页面是最基本的页面分配方式,其他的内存分配都是基于这种方式的;

2、内核中的很多对象都是用slab机制来管理的,slab就相当于对象池,它将页面“格式化”成“对象”,存放在池中供人使用。当slab中的对象不足时,slab机制会自动从伙伴系统中分配页面,并“格式化”成新的对象;

3、磁盘高速缓存。读写文件时,页面被从伙伴系统分配并用于磁盘高速缓存,然后磁盘上的文件数据被载入到对应的磁盘高速缓存页面中;

4、内存映射。这里所谓的内存映射实际上是指将内存页面映射到用户空间,供用户进程使用。进程的task_struct->mm结构中的每一个vma就代表着一个映射,而映射的真正实现则是在用户程序访问到对应的内存地址之后,由缺页异常引起的页面被分配和页表被更新

 

2. 为什么要进行页面回收

这里说的回收,分为了两种:

1、主动释放。就像用户程序通过free函数释放曾经通过malloc函数分配的内存一样,页面的使用者明确知道页面什么时候要被使用,什么时候又不再需要了。

2、通过 Linux 内核提供的页框回收算法(PFRA)进行回收。页面的使用者一般将页面当作某种缓存(读写磁盘产生的 page cache),以提高系统的运行效率。这种无法被页面的使用者主动释放,因为它们不知道这些页面何时应该被释放。Linux 中页缓存存在的最大好处就是可以让程序从缓存中快速获取数据,从而提升系统的性能。在系统负载不重的情况下,Linux 操作系统会分配较多的物理页面用于页缓存,从而提高程序的运行效率;但是在系统负载较重的情况下,Linux 操作系统就可能会适当回收用于缓存的页面,并减少用于缓存的页面的分配,从而满足系统中优先级更高的内存分配请求。

PFRA要做的事就是回收这些可以被回收的页面。为了避免系统陷入页面紧缺的困境,PFRA会在内核线程中周期性地被调用运行。或者由于系统已经页面紧缺,试图分配页面的内核执行流程因为得不到需要的页面,而同步地调用PFRA。

所以,废话,不回收,那么哪里来的页面可供后续继续运行。

 

3. 哪些页面可以被回收

磁盘高速缓存的页面(包括文件映射的页面)都是可以被丢弃并回收的。但是如果页面是脏页面,则丢弃之前必须将其写回磁盘。

匿名映射的页面则都是不可以丢弃的,因为页面里面存有用户程序正在使用的数据,丢弃之后数据就没法还原了。相比之下,磁盘高速缓存页面中的数据本身是保存在磁盘上的,可以复现。

于是,要想回收匿名映射的页面,只好先把页面上的数据转储到磁盘,这就是页面交换(swap)。显然,页面交换的代价相对更高一些。匿名映射的页面可以被交换到磁盘上的交换文件或交换分区上(分区即是设备,设备即也是文件。所以下文统称为交换文件)。

于是,除非页面被保留或被上锁(页面标记PG_reserved/PG_locked被置位。某些情况下,内核需要暂时性地将页面保留,避免被回收),所有的磁盘高速缓存页面都可回收,所有的匿名映射页面都可交换。

 

4. 进行页面回收的时机

Linux 操作系统使用如下这两种机制检查系统内存的使用情况,从而确定可用的内存是否太少从而需要进行页面回收。

  • 周期性的检查:这是由后台运行的守护进程 kswapd 完成的。该进程定期检查当前系统的内存使用情况,当发现系统内空闲的物理页面数目少于特定的阈值时,该进程就会发起页面回收的操作。
  • “内存严重不足”事件的触发:在某些情况下,比如,操作系统忽然需要通过伙伴系统为用户进程分配一大块内存,或者需要创建一个很大的缓冲区,而当时系统中的内存没有办法提供足够多的物理内存以满足这种内存请求,这时候,操作系统就必须尽快进行页面回收操作,以便释放出一些内存空间从而满足上述的内存请求。这种页面回收方式也被称作“直接页面回收”。

如果操作系统在进行了内存回收操作之后仍然无法回收到足够多的页面以满足上述内存要求,那么操作系统只有最后一个选择,那就是使用 OOM ( out of memory ) killer,它从系统中挑选一个最合适的进程杀死它,并释放该进程所占用的所有页面。

上面介绍的内存回收机制主要依赖于三个字段:pages_min,pages_low 以及 pages_high。每个内存区域( zone )都在其区域描述符中定义了这样三个字段,这三个字段的具体含义如下表所示。

名称字段描述
pages_min区域的预留页面数目,如果空闲物理页面的数目低于 pages_min,那么系统的压力会比较大,此时,内存区域中急需空闲的物理页面,页面回收的需求非常紧迫。
pages_low控制进行页面回收的最小阈值,如果空闲物理页面的数目低于 pages_low,那么操作系统内核会开始进行页面回收。
pages_high控制进行页面回收的最大阈值,如果空闲物理页面的数目多于 pages_high,则内存区域的状态是理想的。

 

5. 页面回收算法

Linux 中的页面回收是基于 LRU(least recently used,即最近最少使用 ) 算法的。LRU 算法基于这样一个事实,过去一段时间内频繁使用的页面,在不久的将来很可能会被再次访问到。反过来说,已经很久没有访问过的页面在未来较短的时间内也不会被频繁访问到。因此,在物理内存不够用的情况下,这样的页面成为被换出的最佳候选者。

LRU 算法的基本原理很简单,为每个物理页面绑定一个计数器,用以标识该页面的访问频度。操作系统内核进行页面回收的时候就可以根据页面的计数器的值来确定要回收哪些页面。然而,在硬件上提供这种支持的体系结构很少,Linux 操作系统没有办法依靠这样一种页计数器去跟踪每个页面的访问情况,所以,Linux 在页表项中增加了一个 Accessed 位,当页面被访问到的时候,该位就会被硬件自动置位。该位被置位表示该页面还很年轻,不能被换出去。此后,在系统的运行过程中,该页面的年龄会被操作系统更改。在 Linux 中,相关的操作主要是基于两个 LRU 链表以及两个标识页面状态的标志符,下文会逐一介绍这些相应的数据结构以及 Linux 如何使用这些数据结构进行页面回收。

LRU 链表组织的页包括:可以存放到swap分区中的匿名页,映射了文件的文件页,以及被锁在内存中禁止换出的进程页。所有属于这些情况的页都必须加入到lru链表中,无一例外,而剩下那些没有加入到lru链表中的页,基本也就剩内核使用的页框了。

 

5.1 LRU 链表

在 Linux 中,操作系统对 LRU 的实现主要是基于一对双向链表:active 链表和 inactive 链表,这两个链表是 Linux 操作系统进行页面回收所依赖的关键数据结构,每个内存区域都存在一对这样的链表。顾名思义,那些经常被访问的处于活跃状态的页面会被放在 active 链表上,而那些虽然可能关联到一个或者多个进程,但是并不经常使用的页面则会被放到 inactive 链表上。页面会在这两个双向链表中移动,操作系统会根据页面的活跃程度来判断应该把页面放到哪个链表上。页面可能会从 active 链表上被转移到 inactive 链表上,也可能从 inactive 链表上被转移到 active 链表上,但是,这种转移并不是每次页面访问都会发生,页面的这种转移发生的间隔有可能比较长。那些最近最少使用的页面会被逐个放到 inactive 链表的尾部。进行页面回收的时候,Linux 操作系统会从 inactive 链表的尾部开始进行回收。

每个zone有一个,那么下面针对一个zone来分析 LRU 链表:

一个 LRU 链表描述符中总共有5个双向链表头,它们分别描述五中不同类型的链表:

  • LRU_INACTIVE_ANON:称为非活动匿名页 LRU 链表(swap)

  • LRU_ACTIVE_ANON:称为活动匿名页 LRU 链表(swap)

  • LRU_INACTIVE_FILE:称为非活动文件页 LRU 链表(磁盘)

  • LRU_ACTIVE_FILE:称为活动文件页 LRU 链表(磁盘)

  • LRU_UNEVICTABLE:此链表中保存的是此zone中所有禁止换出的页的描述符。

简单说,就是针对匿名页和文件页都拆分成一个活跃,一个不活跃的链表。



5.2 如何在两个 LRU 链表之间移动页面

Linux 引入了两个页面标志符 PG_active PG_referenced 用于标识页面的活跃程度,从而决定如何在两个链表之间移动页面。PG_active 用于表示页面当前是否是活跃的,如果该位被置位,则表示该页面是活跃的PG_referenced 用于表示页面最近是否被访问过,每次页面被访问,该位都会被置位。Linux 必须同时使用这两个标志符来判断页面的活跃程度,假如只是用一个标志符,在页面被访问时,置位该标志符,之后该页面一直处于活跃状态,如果操作系统不清除该标志位,那么即使之后很长一段时间内该页面都没有或很少被访问过,该页面也还是处于活跃状态。为了能够有效清除该标志位,需要有定时器的支持以便于在超时时间之后该标志位可以自动被清除。然而,很多 Linux 支持的体系结构并不能提供这样的硬件支持,所以 Linux 中使用两个标志符来判断页面的活跃程度。

核心思想如下所示:

  • 如果页面被认为是活跃的,则将该页的 PG_active 置位;否则,不置位。
  • 当页面被访问时,检查该页的 PG_referenced 位,若未被置位,则置位之;若发现该页的 PG_referenced 已经被置位了,则意味着该页经常被访问,这时,若该页在 inactive 链表上,则置位其 PG_active 位,将其移动到 active 链表上去,并清除其 PG_referenced 位的设置;如果页面的 PG_referenced 位被置位了一段时间后,该页面没有被再次访问,那么 Linux 操作系统会清除该页面的 PG_referenced 位,因为这意味着这个页面最近这段时间都没有被访问。
  • PG_referenced 位同样也可以用于页面从 active 链表移动到 inactive 链表。对于某个在 active 链表上的页面来说,其 PG_active 位被置位,如果 PG_referenced 位未被置位,给定一段时间之后,该页面如果还是没有被访问,那么该页面会被清除其 PG_active 位,挪到 inactive 链表上去。

Linux 中实现在 LRU 链表之间移动页面的关键函数如下所示:

  • mark_page_accessed():当一个页面被访问时,则调用该函数相应地修改 PG_active 和 PG_referenced。
  • page_referenced():当操作系统进行页面回收时,每扫描到一个页面,就会调用该函数设置页面的 PG_referenced 位。如果一个页面的 PG_referenced 位被置位,但是在一定时间内该页面没有被再次访问,那么该页面的 PG_referenced 位会被清除。
  • activate_page():该函数将页面放到 active 链表上去。
  • shrink_active_list():该函数将页面移动到 inactive 链表上去。

 

5.3 LRU 缓存

前边提到,页面根据其活跃程度会在 active 链表和 inactive 链表之间来回移动,如果要将某个页面插入到这两个链表中去,必须要通过自旋锁以保证对链表的并发访问操作不会出错。为了降低锁的竞争,Linux 提供了一种特殊的缓存:LRU 缓存,用以批量地向 LRU 链表中快速地添加页面。有了 LRU 缓存之后,新页不会被马上添加到相应的链表上去,而是先被放到一个缓冲区中去,当该缓冲区缓存了足够多的页面之后,缓冲区中的页面才会被一次性地全部添加到相应的 LRU 链表中去。Linux 采用这种方法降低了锁的竞争,极大地提升了系统的性能。

LRU 缓存用到了 pagevec 结构,如下所示 :

#define PAGEVEC_SIZE	14struct pagevec { unsigned long nr; unsigned long cold; struct page *pages[PAGEVEC_SIZE]; 
};

pagevec 这个结构就是用来管理 LRU 缓存中的这些页面的。该结构定义了一个数组,这个数组中的项是指向 page 结构的指针。一个 pagevec 结构最多可以存在 14 个这样的项(PAGEVEC_SIZE 的默认值是 14)。当一个 pagevec 的结构满了,那么该 pagevec 中的所有页面会一次性地被移动到相应的 LRU 链表上去。

用来实现 LRU 缓存的两个关键函数是 lru_cache_add() 和 lru_cache_add_active()。前者用于延迟将页面添加到 inactive 链表上去,后者用于延迟将页面添加到 active 链表上去。这两个函数都会将要移动的页面先放到页向量 pagevec 中,当 pagevec 满了(已经装了 14 个页面的描述符指针),pagevec 结构中的所有页面才会被一次性地移动到相应的链表上去。

下图概括总结了上文介绍的如何在两个链表之间移动页面,以及 LRU 缓存在其中起到的作用:

 

5.4 回收过程 LRU 的扫描

由于存在多组LRU(系统中有多个zone,每个zone又有多组LRU),如果PFRA每次回收都扫描所有的LRU找出其中最值得回收的若干个页面的话,回收算法的效率显然不够理想。
linux内核PFRA使用的扫描方法是:定义一个扫描优先级,通过这个优先级换算出在每个LRU上应该扫描的页面数。整个回收算法以最低的优先级开始,先扫描每个LRU中最近最少使用的几个页面,然后试图回收它们。如果一遍扫描下来,已经回收了足够数量的页面,则本次回收过程结束。否则,增大优先级,再重新扫描,直到足够数量的页面被回收。而如果始终不能回收足够数量的页面,则优先级将增加到最大,也就是所有页面将被扫描。这时,就算回收的页面数量还是不足,回收过程都会结束。

每次扫描一个LRU时,都从active链表和inactive链表获取当前优先级对应数目的页面,然后再对这些页面做处理:如果页面不能被回收(如被保留或被上锁),则放回对应链表头部(同上,假设回收从头部开始);否则如果页面的访问标记置位,则清除该标记,并将页面放回对应链表尾部(同上,假设回收从头部开始);否则页面将从active链表被移动到inactive链表、或从inactive链表被回收。
PFRA不倾向于从active链表回收匿名映射的页面,因为用户进程使用的内存一般相对较少,且回收的话需要进行交换,代价较大。所以在内存剩余较多、匿名映射所占比例较少的情况下,都不会去回收匿名映射对应的active链表中的页面。(而如果页面已经被放到inactive链表中,就不再去管那么多了。)

5.5 页面回收的实现

Linux 操作系统进行页面回收需要考虑的方面很多,下图列出了 Linux 操作系统进行页面回收的关键代码流程图,该图给出了实现页面回收的关键代码函数名,并说明它们之间是如何彼此链接的。

图 2. 页面回收关键代码流程图

上文提到 Linux 中页面回收主要是通过两种方式触发的,一种是由“内存严重不足”事件触发的;一种是由后台进程 kswapd 触发的,该进程周期性地运行,一旦检测到内存不足,就会触发页面回收操作。对于第一种情况,系统会调用函数 try_to_free_pages() 去检查当前内存区域中的页面,回收那些最不常用的页面。对于第二种情况,函数 balance_pgdat() 是入口函数。

当 NUMA 上的某个节点的低内存区域调用函数 try_to_free_pages() 的时候,该函数会反复调用 shrink_zones() 以及 shrink_slab() 释放一定数目的页面,默认值是 32 个页面。如果在特定的循环次数内没有能够成功释放 32 个页面,那么页面回收会调用 OOM killer 选择并杀死一个进程,然后释放它占用的所有页面。函数 shrink_zones() 会对内存区域列表中的所有区域分别调用 shrink_zone() 函数,后者是从内存回收最近最少使用页面的入口函数。

对于定期页面检查并进行回收的入口函数 balance_pgdat() 来说,它主要调用的函数是 shrink_zone() 和 shrink_slab()。从上图中我们也可以看出,进行页面回收的两条代码路径最终汇合到函数 shrink_zone() 和函数 shrink_slab() 上。

 

5.5.1 函数 shrink_zone()

其中,shrink_zone() 函数是 Linux 操作系统实现页面回收的最核心的函数之一,它实现了对一个内存区域的页面进行回收的功能,该函数主要做了两件事情:

  • 将某些页面从 active 链表移到 inactive 链表,这是由函数 shrink_active_list() 实现的。
  • 从 inactive 链表中选定一定数目的页面,将其放到一个临时链表中,这由函数 shrink_inactive_list() 完成。该函数最终会调用 shrink_page_list() 去回收这些页面。

函数 shrink_page_list() 返回的是回收成功的页面数目。概括来说,对于可进行回收的页面,该函数主要做了这样几件事情,其代码流程图如下所示:

函数 shrink_page_list() 实现的关键功能

图 3. 函数 shrink_page_list() 实现的关键功能

  • 对于匿名页面来说,在回收此类页面时,需要将其数据写入到交换区。如果尚未为该页面分配交换区槽位,则先分配一个槽位,并将该页面添加到交换缓存。同时,将相关的 page 实例加入到交换区,这样,对该页面的处理就可以跟其他已经建立映射的页面一样;
  • 如果该页面已经被映射到一个或者多个进程的页表项中,那么必须找到所有引用该页面的进程,并更新页表中与这些进程相关的所有页表项。在这里,Linux 操作系统会利用反向映射机制去检查哪些页表项引用了该页面;
  • 如果该页面中的数据是脏的,那么数据必须要被回写;
  • 释放页缓存中的干净页面。

 

5.5.2 函数 shrink_slab()

函数 shrink_slab() 是用来回收磁盘缓存所占用的页面的。Linux 操作系统并不清楚这类页面是如何使用的,所以如果希望操作系统回收磁盘缓存所占用的页面,那么必须要向操作系统内核注册 shrinker 函数,shrinker 函数会在内存较少的时候主动释放一些该磁盘缓存占用的空间。函数 shrink_slab() 会遍历 shrinker 链表,从而对所有注册了 shrinker 函数的磁盘缓存进行处理。

从实现上来看,shrinker 函数和 slab 分配器并没有固定的联系,只是当前主要是 slab 缓存使用 shrinker 函数最多。

注册 shrinker 是通过函数 set_shrinker() 实现的,解除 shrinker 注册是通过函数 remove_shrinker() 实现的。当前,Linux 操作系统中主要的 shrinker 函数有如下几种:

  • shrink_dcache_memory():该 shrinker 函数负责 dentry 缓存。
  • shrink_icache_memory():该 shrinker 函数负责 inode 缓存。
  • mb_cache_shrink_fn():该 shrinker 函数负责用于文件系统元数据的缓存。

 

6. 反向映射

前文介绍过,在回收一个物理页面之前,需要查找到所有关联了该物理页面的页表项,并逐一更新这些页表项。Linux 使用了反向映射这种机制用于快速定位那些引用了某个物理页面的所有页表项。Linux 操作系统为物理页面建立一个链表,用于指向引用了该物理页面的所有页表项。其基本思想如下图所述:

反向映射的基本思想

图 4. 反向映射的基本思想

反向映射技术的发展历史

在 Linux 2.4 中,为了确定某个要回收的物理页面都被哪些页表项引用,必须要遍历所有进程,这是一项非常耗资源和时间的工程。为了更加有效地回收一个共享页面,Linux 在 2.5 版本的开发期间引入了反向映射这样一种机制。这种机制建立了物理页面和所有映射了该物理页面的页表项之间的一种关联,从而让操作系统可以快速定位引用了该物理页面的所有页表项。在 Linux 2.6 版本中,反向映射算法又经历了大量改进。

在 Linux 2.5 版本中,反向映射技术的实现主要是基于页表项链表。操作系统为每一个物理页面都维护了一个链表,所有与该物理页面关联的页表项都会被放到这个链表上。这种方法会存在一些问题:

  • 空间资源的消耗:为每个物理页面维护这样一个链表,需要占用大量的内存空间。
  • 时间资源的消耗:回收一个物理页面的时候,需要先获取该链表上的锁,然后遍历相应的反向映射链表,链表上的项越多,需要的时间就越多。

后来,Linux 2.6 引入了基于对象的反向映射机制。这种方法也是为物理页面设置一个用于反向映射的链表,但是链表上的节点并不是引用了该物理页面的所有页表项,而是相应的虚拟内存区域( vm_area_struct 结构),虚拟内存区域通过内存描述符( mm_struct 结构)找到页全局目录,从而找到相应的页表项。相对于前一种方法来说,用于表示虚拟内存区域的描述符比用于表示页面的描述符要少得多,所以遍历后边这种反向映射链表所消耗的时间也会少很多。

 

过程

通过反向映射可以找到一个被映射的页面对应的vma,通过vma->vm_mm->pgd就能找到对应的页表。然后通过page->index得到页面的虚拟地址。再通过虚拟地址从页表中找到对应的页表项。(前面说到的获取页表项中的accessed标记,就是通过反向映射实现的。)

页面对应的page结构中,page->mapping如果最低位置位,则这是一个匿名映射页面,page->mapping指向一个anon_vma结构;否则是文件映射页面,page->mapping文件对应的address_space结构。(显然,anon_vma结构和address_space结构在分配时,地址必须要对齐,至少保证最低位为0。)
对于匿名映射的页面,anon_vma结构作为一个链表头,将映射这个页面的所有vma通过vma->anon_vma_node链表指针连接起来。每当一个页面被(匿名)映射到一个用户空间时,对应的vma就被加入这个链表。
对于文件映射的页面,address_space结构除了维护了一棵用于存放磁盘高速缓存页面的radix树,还为该文件映射到的所有vma维护了一棵优先搜索树。因为这些被文件映射到的vma并不一定都是映射整个文件,很可能只映射了文件的一部分。所以,这棵优先搜索树除了索引到所有被映射的vma,还要能知道文件的哪些区域是映射到哪些vma上的。每当一个页面被(文件)映射到一个用户空间时,对应的vma就被加入这个优先搜索树。于是,给定磁盘高速缓存上的一个页面,就能通过page->index得到页面在文件中的位置,就能通过优先搜索树找出这个页面映射到的所有vma。

上面两步中,神奇的page->index做了两件事,得到页面的虚拟地址、得到页面在文件磁盘高速缓存中的位置。
vma->vm_start记录了vma的首虚拟地址,vma->vm_pgoff记录了该vma在对应的映射文件(或共享内存)中的偏移,而page->index记录了页面在文件(或共享内存)中的偏移。
通过vma->vm_pgoff和page->index能得到页面在vma中的偏移,加上vma->vm_start就能得到页面的虚拟地址;而通过page->index就能得到页面在文件磁盘高速缓存中的位置。

 

7. 最后的必杀

前面说到,PFRA可能扫描了所有的LRU还没办法回收需要的页面。同样,在slab、dentry cache、inode cache、等地方,可能也无法回收到页面。

这时,如果某段内核代码一定要获得页面呢(没有页面,系统可能就要崩溃了)?PFRA只好使出最后的必杀技——OOM(out of memory)。所谓的OOM就是寻找一个最不重要的进程,然后将其杀死。通过释放这个进程所占有的内存页面,以缓解系统压力。

 

参考文献:

https://www.ibm.com/developerworks/cn/linux/l-cn-pagerecycle/index.html

https://blog.csdn.net/u010154760/article/details/45032195

https://blog.csdn.net/wh8_2011/article/details/52275231

https://www.cnblogs.com/alantu2018/p/8447611.html

https://www.jianshu.com/p/7ab51b8a6368

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 黑客小程序使用说明

    软件工具名----使用说明webadv ---------针对iis+sp3的溢出成功率很高(溢出后system权限!) *ipscan -----------大范围网段快速ipc$猜解svc -------------远程安装/删除win2k服务3389.vbs--------- 远程安装win2k终端服务不需i386arpsniffer arp-----环境sniffer(需要winpcap2.…...

    2024/4/14 22:24:43
  2. C语言指针详解-资料汇总

    https://blog.csdn.net/constantin_/article/details/79575638 C语言指针详解(经典,非常详细)https://blog.csdn.net/weixin_39951988/article/details/87773322 C/C++指针详解之基础篇-史上最全最易懂指针学习指南https://blog.csdn.net/weixin_39951988/article/details/8779…...

    2024/5/6 12:46:09
  3. 【C/C++】【利用“图”实现好友推荐策略】

    1:好友推荐策略,如果两者之间的共同好友大于一个阀值m,那么就可以推荐这两个人成文好友。 以下是核心代码实现#include <iostream> #include <map> #include <string> #include <stdio.h> using namespace std; int friendNet[3000][3000]; map<…...

    2024/4/14 22:24:42
  4. 深度学习总结(八)——训练、开发和测试集及偏差和方差

    1. 数据集的划分小数据时代: 70%(训练集)/30%(测试集)或者60%(训练集)/20%(验证集)/20%(测试集) 大数据时代: 验证集和测试集的比例要逐渐减小,比如: 980000/10000/100002. 验证集和测试集的作用深度学习需要大量的数据,我们可能会采用网上爬取的方式获得训练集,容易出…...

    2024/4/14 22:24:40
  5. 社交电商的现状以及它的四种商业模式

    传统电商流量红利已尽,获客成本不断上升,寻找新的流量源成为电商企业面临的首要难题。此时,移动社交的流量价值得到广泛关注,将电商和社交融合的商业模式为电商企业降低引流成本提供了良好的方案。本文将从“社交电商”的发展背景与现状出发,为您全面介绍“社交电商”目前…...

    2024/5/4 16:40:10
  6. 再看RCU

    从昨天晚上开始,我就立志要把RCU拿下,昨晚加今天早上看了RCU的东西,太细节的原理我就不扣了,放弃,知道RCU是怎么用的就可以了,赶紧看文件系统中dcache的管理了。 说说RCU,RCU其实是很简单,读者在读之前rcu_read_lock(); 以此来关闭本CPU上的抢占;然后读者用rcu_der…...

    2024/4/17 18:06:46
  7. C语言自学完备手册(01)——开篇和入门

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05–示例分析 自定义V…...

    2024/4/14 22:24:38
  8. 如何学习黑客技术

    或许你并不想成为一个黑客而是好奇,或许你只是为了高超的技术。无论是什么都需要刻苦的去学习,没有什么事情是不付出努力就能轻易成功的,之所以叫成功是因为那个人拥有着与众不同的本领,如果你想拥有超群的本领就要不断的去学习,而学习也要讲究一定的效率。今天inoker的这…...

    2024/4/14 22:24:37
  9. 在线开发IDE: CodeRun Studio

    http://www.coderun.com/ide/...

    2024/4/14 22:24:35
  10. STM32学习心得六:相关C语言学习及寄存器地址名称映射解读

    记录一下,方便以后翻阅~ 主要内容: 1)常用C语言讲解; 2)寄存器地址名称映射解读。 官方资料:《STM32中文参考手册V10》第8章 通用和复用功能IO(GPIO和AFIO) 1.常用C语言 1.1 位操作:6种位操作运算符 1) 按位与:& 例:1011&0010=0010 2) 按位或:| 例:101…...

    2024/5/4 14:23:20
  11. uboot cache关闭和mmu

    https://blog.csdn.net/lee244868149/article/details/50444499uboot详解——关闭缓存和mmu2016年01月01日 11:49:09 阅读数:3634更多个人分类: bootload 所属专栏: bootload详细分析——废铁是怎么产生价值的版权声明:本文为博主原创文章,未经博主允许不得转载。 https:/…...

    2024/4/18 15:00:37
  12. 基于社交的推荐

    一类是利用用户的社交网络来给用户推荐朋友,它只需要社交网络用户的关系数据,即社交网络分析中的链接预测,也叫朋友推荐,核心算法可参看社交网络分析中经典的链接预测算法,比如基于相似性的链路预测方法;一类是利用社交信息来进行物品的推荐。通过在传统的推荐算法的基础…...

    2024/4/14 22:09:00
  13. vue配置开发、测试、生产环境(不同环境,不同命令)

    1.我们借助 cross-env 插件跨平台地设置及使用环境变量 npm安装方式:npm i --save-dev cross-env2.我们对config文件夹做配置,新建一个test.env.js(test:测试环境) 文件来配置我们的测试环境,代码如下:(NODE_ENV与ENV_CONFIG的参数都是双引号包单引号,否则会报错)3.同…...

    2024/5/4 21:40:05
  14. 黑客组织Anonymous(匿名者)

    本文关注的是世界著名的黑客组织Anonymous(匿名者)。“我将描述他们的攻击方法和方式的计划,但我们将聚焦更多关于他们使用武器或工具。”Anonymous这个词仅仅意味着没有名字的匿名或身份,该组织是一个派系的匿名黑客或黑客活动分子。他们有自己的网站和IRC频道,定期举行聚会…...

    2024/4/14 22:08:57
  15. 常见软件测试类型分类

    软件测试类型1)回归测试回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核…...

    2024/4/14 22:08:56
  16. C语言中常用的6个字符串处理函数

    C语言文章更新目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 VS2019编写简单的C程序示例 简单示例,VS2019调试C语言程序 C语言基础-基本算法…...

    2024/4/19 10:33:40
  17. 如何评估社交网络中信息内容的价值呢?

    一般的移动社交网络可以认为是由人和内容组成的一个双模网络,在添加位置信息,或者对内容的类型进行细分之后,可以演变成多模复杂网络。信息内容在社交网络中具有相当重要的地位,因为从本质上讲,社交的目的应该是信息的交换。信息、观念和看法的改变是相对较快的,信息内容…...

    2024/4/14 22:08:54
  18. 黑客如何赚钱?黑客是怎么赚钱的

    黑客小曲(化名)对网络黑金的泛滥和“黑客”的沉沦颇感失望,近日他向记者谈及他所知道的内幕,揭开了网络地下黑金产业的冰山一角。   “赚黑钱的门道太多”   “有的人通过入侵网络游戏服务器来盗取虚拟货币、游戏用户账号,再卖给中间商,中间商通过销售渠道转手赚上一笔…...

    2024/4/14 22:08:58
  19. Eclipse中安装Spring IDE

    ====》在线安装 1、寻找Spring IDE插件更新地址:http://marketplace.eclipse.org/content/spring-ide 2、复制对应Eclipse版本的Spring IDE插件更新地址3、打开Eclipse,点击Help->Install New Software... 4、单击Add按钮4、在打开的窗口中,Name可以随便输入,Location中输…...

    2024/4/26 16:29:42
  20. 嵌入式 hi3518c平台uboot中start.s小结

    第一阶段:/*====================================Hi3518c start.S Begin 2014-04-20=============================================*//* * armboot - Startup Code for ARM926EJS CPU-core * * Copyright (c) 2003 Texas Instruments * * ----- Adapted for OMAP1610 OM…...

    2024/4/14 22:24:32

最新文章

  1. Video2Game:革新游戏开发,重塑虚拟世界的未来

    Video2Game&#xff1a;革新游戏开发&#xff0c;重塑虚拟世界的未来 一、Video2Game的提出与意义二、Video2Game的核心技术三、Video2Game的实现与应用四、代码实例与未来展望 在数字化和虚拟化日益盛行的今天&#xff0c;高质量的交互式虚拟环境&#xff0c;如游戏和模拟器&a…...

    2024/5/6 14:47:38
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. yolov9直接调用zed相机实现三维测距(python)

    yolov9直接调用zed相机实现三维测距&#xff08;python&#xff09; 1. 相关配置2. 相关代码2.1 相机设置2.2 测距模块2.2 实验结果 相关链接 此项目直接调用zed相机实现三维测距&#xff0c;无需标定&#xff0c;相关内容如下&#xff1a; 1. yolov4直接调用zed相机实现三维测…...

    2024/5/5 21:03:10
  4. FreeRTOS学习 -- 再识

    工作中一直使用FreeRTOS进行着开发&#xff0c;但是没有进行过系统的总结过。现在将快速使用几天时间将FreeRTOS相关知识点加以总结。 官网&#xff1a; https://www.freertos.org/zh-cn-cmn-s/ 参看资料&#xff1a; 正点原子 STM32F1 FreeRTOS开发手册_V1.2.pdf The FreeRTOS…...

    2024/5/4 14:03:02
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/4 23:55:01
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57