首页 > 系统相关 >第5章内存和磁盘的亲密关系

第5章内存和磁盘的亲密关系

时间:2024-02-19 13:11:20浏览次数:20  
标签:程序 扇区 DLL 内存 亲密关系 磁盘 虚拟内存

内存利用电流实现:高速高价,磁盘利用磁效实现:低速低价
磁盘中存储的程序:必须加载到内存中才能运行,因为负责解释和运行程序内容的CPU需要通过内部程序计数器来指定内存地址,然后才能读出程序,其次,磁盘的速度慢即使可以直接读取,效率也比较低下
内存与磁盘相互促进:磁盘缓存:加快磁盘访问速度(磁盘读出的数据保存到内存,下次读取同一数据直接内存读取)虚拟内存:把磁盘作为部分内存使用,在内存不足时也可以运行程序
虚拟内存的实现方式:虚拟内存虽说是将磁盘当内存一部分使用,但实际上在正在运行的程序部分,在这个时间点上是必须存在内存中的,也就是说为了实现虚拟内存,就必须把实际内存的内容和磁盘上的虚拟内存的内容进行部分置换(swap),并同时运行程序
虚拟内存的方法有分页式,分段式两种,windows使用的是分页式
分页技术:在不考虑程序构造的情况下,把运行的程序按照一定大小的页进行分割,并以页为单位在内存和磁盘间进行置换,把磁盘内容读取到内存成为Page in ,内存内容写入到磁盘称为Page ou t,在win中页大小为4kb,也就是只将大程序分割为4kb大小的页进行切分,并以页为单位放入磁盘或内存
分段技术:把要运行的程序分割成以处理集合及数据集合等为单位的段落,然后在以分割后的段落为单位在内存和磁盘间进行置换
虚拟内存的大小:通常为实际内存的相同大小或者两倍程度
节约内存的方法:1、动态DLL链接文件:通过DLL文件实现函数共有:DLL(动态链接文件),可以在程序运行时动态加载的库文,多个应用可以共有同一个DLL文件,通过共有,可以实现节约内存的效果
静态链接在各个应用程序中,内置库文件函数(成为了应用执行程序的一部分),同时运行各应用时,内存会存在具有同一库文件函数的多个程序,这会降低内存的利用效率,DLL动态链接作为独立的文件而不是应用的执行文件,由于在内存中可以被多个应用共有,因此该DL L函数在内存中只存在一个,从而实现了节约内存,同时,DLL文件还可以以在不变更应用执行文件情况下,通过只升级DLL文件就可实现程序的更新。
2、使用_stdcall标准调用减小程序文件大小
函数在调用完毕后,执行栈清理使用_stdcall调用方式,将该栈清理实现在被调用函数一方进行清理,栈清理处理在被调用方进行比在调用方进行程序整体要小一些,同时避免了在调用方程序存在多处调用时反复进行重复清理操作(在被调用方所有调用结束后,只需要执行一次清理)
磁盘的物理结构:是指磁盘存储数据的形式,磁盘通过把其物埋表面划分为多个空间来使用,划分的方式有扇区方式和可变成方式两种:1扇区方式:将磁盘划分为固定长度的空间2可变长方式:把磁盘划分为长度可变的空间
windows中一般使用的扇区划分方式,扇区方式中,把磁盘表面分成若干个同心圆的空间就是磁道,把磁道按照固定大小(能存储的数据长度相同)划分而成的空间就是扇区,扇区是对磁盘物理读取的最小单位,win中一般一个扇区512字节,不过逻辑方面,windows对磁盘的读写单位是扇区的整数倍簇,1簇可以W为512或1024或者其它的,磁盘容量越大,簇的容量越大

标签:程序,扇区,DLL,内存,亲密关系,磁盘,虚拟内存
From: https://www.cnblogs.com/mzz18/p/18020015

相关文章

  • 内存
    内存实际上是一种名为IC的电子元件。数据信号引脚有D0~D7八个,表示一次可以输出8位(1字节)的数据;地址信号引脚由A0~A9十个,表示可以指定0000000000·~1111111111共1024个地址。即这个内存IC可以储存1024个1字节的数据1024=1K,所以该内存IC容量为1KB。1MB=1000KB通常情况下......
  • 第五章——内存和磁盘的亲密关系
    上一章只讲了内存,这一章将讲到内存和磁盘的关系,可以更深入了解计算机内部存储信息数据的原理。磁盘和内存的亲密关系————*磁盘不读入内存就无法运行,因为负责解析和运行程序的CPU需要通过内部程序计数器来指定内存地址才能读出程序。*磁盘缓存加快了磁盘的访问时间,磁盘缓存......
  • 禅道(一键安装包Linux版本)出现磁盘(/opt)空间不足的问题
    场景公司管理bug用到了禅道,但是为了方便我们就使用了禅道官网提供的一键安装包Linux版本。禅道官方下载地址:https://www.zentao.net/download.html 问题有一点美中不足的是禅道官方提供的一键安装版本(Linux)只能放在/opt文件夹下面。随着项目越来越多我们/opt容量达到100%了,接......
  • JAVA基础-内存与垃圾回收
    1,运行时数据区1,程序计数器线程私有。生命周期:生命周期与线程同步。作用:它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。特点:它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域,唯一没有OutofMemory......
  • Java对象引用和内存管理的细节
    在Java中,当局部变量(比如方法参数)的作用域结束时,这个局部变量的引用确实不再存在,但这并不意味着它引用的对象会被销毁。对象的销毁是由Java的垃圾回收器(GarbageCollector,GC)来管理的。在Java中,局部变量(如方法参数)通常存储在栈内存(StackMemory)中,而对象实例(如ServletConfig对象)则......
  • 对于计算机内存的运行原理的认识(《程序是怎样跑起来的第4章》)
    在这一章节中,我了解到了计算机的重要组成部分“内存”的奥妙所在,书中说计算机的内存与CPU一样,都是IC电子原件的一种,在阅读过CPU和内存知识后,我认为CPU等同于一个能够处理数据的“智能内存”,因为CPU和内存都是通过引脚来传递信号,使数据写入/读出。与CPU相似,内存中的数据也是由数组......
  • 熟练使用有棱有角的内存
    内存IC中邮电源,地址信号,数据信号,控制信号等用于输入输出的大量引脚(IC的引脚),通过为其指定地址(address),来进行数据的读写。现在大家使用的计算机至少有512M的内存。这就相当于512000个(512MB÷1KB=512K)1KB的内存IC。当然一台计算机中不大可能放入如此多的内存IC。通常情况下计算机......
  • 熟练使用有棱有角的内存
       内存是一种名为内存IC的电子元件,它有多种形式,从外部来看基本机制都一样,其中有电源、地址信号、数据信号、控制信号等用于输入输出的大量引脚,通过其指定地址进行数据读写。下图的例子是内存IC的一种——RAM:其中VCC和GND是电源,A0~A9是地址信号的引脚,D0~D7是数据信号的引脚,R......
  • 《程序是怎样跑起来的》第四章:熟练使用有棱有角的内存
    第四章深入探讨了计算机内存的奥秘。在此之前,我对内存的理解仅限于其作为数据存储的媒介,而这一章却让我看到了内存的多面性。内存,如同计算机的仓库,负责存储程序运行所需的数据和指令。但这个仓库并非毫无规则,而是有着严格的组织和结构。矢泽久雄以其独特的见解和深入浅出的方式,揭......
  • 第4章熟练使用有棱有角的内存
    内存:一种IC电子元件,常见DRAM(需要经常刷新保存数据)、SRAM(不需要刷新电路既可以保存数据),可以读取与写入,ROM(只能用来读取的内存)等形式内存物理组成:电源、地址信号、数据信号、控制信号,用来输入输出的IC引脚地址信号引脚数决定了内存能够表示的地址范围:表示地址范围=2^地址信号引脚......