设为首页收藏本站购买充值卡

     

龙飞电脑工作室|海门论坛

 找回密码
 立即注册
查看: 197|回复: 0

[电脑常识] 虚拟内存你知道多少?

[复制链接]
  • TA的每日心情
    奋斗
    2023-1-7 09:34
  • 签到天数: 9 天

    [LV.3]七品 酒徒

    1587

    主题

    1680

    帖子

    2万

    积分

    管理员

    龙飞电脑工作室CEO

    Rank: 9Rank: 9Rank: 9

    积分
    28232

    海门人勋章美食大师勋章养生大师勋章电脑高手勋章优秀版主勋章管理勋章土豪勋章

    发表于 2023-8-11 08:47:14 | 显示全部楼层 |阅读模式
    一、什么是虚拟内存?
    ( r7 j7 ^% G* o! F" n) }9 S6 X
    $ |- y6 q. O% [6 J& d这个虚拟内存空间大小是由什么决定的呢?+ y8 g( F3 C' n9 V

    4 K$ B1 p6 N3 o% C虚拟内存的大小,由于CPU的位数决定的,也就是CPU能寻址多少位,虚拟内存就有多大
    6 d) N7 p4 k7 Q6 T" J8 T8 o: ^0 ?3 z
    32位的CPU,虚拟内存的空间就是4GB) i4 c; z( m0 `& J1 v

    , \2 v5 s! K5 @* S" x4 I5 w! I6 S. j64位的CPU,虚拟内存空间就是:4G*4G=16G
    2 S& b9 \. _: ^: _+ B+ s- ?. h* b# \: e  z0 r( W) K" J+ _
    CPU在处理数据时,都在是虚拟内存中进行读写操作,但是毕竟是虚拟内存,最终的数据还是要存放在真正的物理内存上的。
      }& j+ u6 c& s& I) L7 I4 R
    ( Q: D/ ~5 h. Z8 X( j: L- G- a! ]这时呢还需要内存管理单无MMU和操作系统一起合作,来实现虚拟内存和物理内存之间的映射。/ Y3 X! n) q4 `3 s
    0 W, ^6 V) |2 d2 y" K0 Y
    MMU是Memory Management Unit的缩写,中文名是内存管理单元,有时称作分页内存管理单元(英语:paged memory management unit,缩写为PMMU)。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。7 c/ G" }, e. s3 `5 B
    # t  ~; D/ |  ?0 D. |2 L
    这种虚拟内存与物理内存之前的映射,对用户和程序员是无感的。
    2 B4 [* J: X) r9 {* I/ D5 Q
    6 P9 b, N$ a5 J: D* P* c二、使用虚拟内存有什么好处呢?
    8 s8 u( u0 E( |; L
    7 a8 D1 h2 h* B0 z$ `8 U1、简化程序运行条件,虚拟内存为程序加载提供了很大的灵活性。
    # `6 Q2 _" f; u$ s$ A7 u' c' K- \" a$ \  f
    现在比如一个程序直接跑在物理内存上,有很多时候,很多程序都需要调试,如果都直接跑到物理内存上,现在就要一直占用着实际的物理内存,如果程序调试的多,那么物理内存就会被占用的很大。* b9 F1 A* Q0 z8 F

    $ `: _8 X0 R5 f: t& a  {现在如果说,所有的程序都在虚拟内存上调试使用,这些程序如果映射到物理内存上,这个是由CPU灵活调用的,不需要我们参与,这样就可以节省很大一部分内存空间。
    ' ~! r& A( P7 ^& C- c+ U; v* h2 e5 [5 |% ]1 T1 h2 a
    2、隔离进程
    + p- n8 H6 I$ `) t2 A+ X2 C
    7 r7 g; i2 R3 a0 z% t9 o3 d当有一个程序员,或者用户,要使用两个相同的程序进行编译的时候,会出现两个相同的虚拟内存,然后映射到不同的物理内存存储模块内,当有一个程序进程死掉的时候,不影响另外一个进程。
    - [1 U( b. z2 G- q* m
    ( U' r( z* z. o$ S6 |3、有效使用内存7 }- M+ O; ^) h6 {

    ) m7 l  ?& r% A7 j! R) y6 F举一个简单的例子,当我们系统开机时,加载的字体文件,直接加载到虚拟内存中,当我们进入系统后,有些程序需要使用到这些字体时,那么就可以共享使用内存中的字体,如果进入系统需要编辑字体文件时,这时就需要这程序自己单独再copy一份字体在内存中进行修改。. H6 x% o  e/ H, o6 v+ |+ j

    2 V4 r. s" D6 C8 B4、扩大内存应用% L* L; o* g; m8 x
    3 N. Z5 x) f# _5 o
    很重要的知识点:$ z& _3 r0 @% F0 k" i$ A( e- }
    / Y1 U8 D2 v1 {4 ^6 l# i6 |
    swap
    & u; G3 g! G' E: e& q( _9 I7 G1 G
    # [8 G/ e1 P. U: R5 @$ r5 c& u# E9 @假设我们现在的操作系统程序已经全部用完了物理内存,简单起见,我们通过设置页表让虚拟内存页和物理内存页,一 一对应,此时,如果还有程序还需要申请一个内存页,这时应该如何处理呢?
    * e* U; E  @$ K# u- G7 H: r2 r( C) r: H* G
    为了让程序继续运行下去,操作系统会通过一定的算法,选择某一个内存页,暂时转移到硬盘上,同时更新一下对应的页表的信息,记录一下内存页所在的:硬盘扇区号码,这样就临时腾出了一个空间的内存页,更新一个页表,完成内存映射后,就可以返回给程序使用了
    7 @+ |, [5 l. B8 N: w7 m0 G- ~
    - M( c! c1 r  M2 e9 |8 T那如果程序需要读取:刚才转移到硬盘上的内存页,那该怎么办呢?显然,这时仍然没有空宋的物理内存可供使用,还是老办法,操作系统再选择一个内存页,将它也暂时转移到硬盘上面,并更新一下页表。
    ' P& X; w- ]% x
    8 T4 f, T* G: i5 x) A$ o5 ^% c这样就又临时腾出了一个空闲的内存页,此时操作系统,就可以根据页表上的硬盘扇区号码,把存在硬盘上的内存页,读取到刚刚空闲的内存页上了,当然由于改变了位置,页表也需要更新一下,不得不说,
      Z. p4 G- j* y5 I7 i6 C0 C! L
    0 V' o1 X& A$ @- ^9 b# {+ T这是一个伟大的功能,重点来了,当你的电脑需要使用swap的时候,这时就需要使用到硬盘的读取,因为swap是需要使用到硬盘的读写速度的,如果是机械硬盘那么电脑就会变慢了,如果是固态盘那还是可以的。
    ! q" L& `  D$ x# M2 c/ U6 e* r# V" b+ `, p5 f, Z$ z, T
    三、虚拟内存如何设置大小
    ' F) Z9 ~6 x( {) U" a! o9 v/ \
    ) Q) ]2 l2 p8 s4 f6 w* G5 h3 \* n在运行中sysdm.cpl打开系统属性。
    ' ^: Y7 Y0 o* h+ i' j) I# Y# `9 P7 S! F
    找到高级--设置
    ! \: ^7 F% A: Z  C& s% [! L2 d( Y% Y" p2 U8 n8 n4 x
    在性能选项中,找到高级--更改。
    ; n' X( `# `3 ~; |" i: K' o3 l" U
    - q# X) ?) T: v( M* @2 x, k, F我们可以看一下,我电脑物理内存是12G,虚拟内存推荐的大小是2399MB=2.3GB
    $ j7 o- l# E% D6 `, H6 Z' b
    ; `# w: L- Z, L' o; ^' k; T" i系统中存放的内存分页文件在哪呢?
    , h! h( l6 t. |3 i/ j; q3 Q8 y
    ( H% k" o) i) gpagefile.sys即安装过程中创建的虚拟内存页面文件。这个文件的大小是自己系统虚拟内存设置的最小值的大小。假如虚拟内存的设置为8000MB-16000MB 那么你在自己的设定驱动盘下面就可看到大小为8000MB的pagefile.sys文件
    - u' |) f' |, m) O. w0 B! w* S  h, `) g: R8 `
    Pagefile.sys 是用于管理虚拟内存的 Windows 分页(或交换)文件。它在系统物理内存 (RAM) 不足时使用。
    " _; `: ]; N) r
      Q% h3 M. T- Q. D3 oWindows 使用 pagefile.sys 来存储数据,否则这些数据将位于计算机的随机存取存储器 (RAM) 中。有时根本没有足够的容量在 RAM 中保存所有必要的文件,因此 pagefile.sys 位于您的硬盘驱动器或 SSD (C:\pagefile.sys) 上,随时准备在必要时接收数据,通常是最少使用的文件在 RAM 中被“分页”到这个文件中。& ]2 ^  e1 O, G  Y/ w6 U$ u, M  o5 @! }

    : R& q9 l1 B% b- m! |7 f+ J( `, F
    龙能大能小,能升能隐;大则兴云吐雾,小则隐介藏形;升则飞腾于宇宙之间,隐则潜伏于波涛之内。方今春深,龙乘时变化,犹人得志而纵横四海。龙之为物,可比世之英雄。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表