首页 > 编程语言 >《程序是怎么跑起来的》第5章

《程序是怎么跑起来的》第5章

时间:2024-02-16 15:55:46浏览次数:24  
标签:怎么 虚拟内存 起来 缓存 程序 内存 磁盘 硬盘

本章节中,主要讲诉内存与磁盘的密切关系。首先,我们先来考虑一下这几个话题。存储程序的方式是什么?使用内存来提高访问速度的机制叫什么?将磁盘的部分模拟成内存来使用的机制叫什么?在PC中,硬盘的1个扇区大小一般为多少个字节?等等这一系列的问题。其实我以前都接触过这样的问题,以前呢,只是知道这个东西是什么就行了,老师也没让过多的了解其中的主对刚开始提出的问题进行解释。第一,计算机的存储方式是将程序存放在存储器中并依次执行的方式。第二,使用内存来提高访问速度的机制叫硬盘缓存。第三,将磁盘的部分模拟成内存来使用的机制叫虚拟内存。第四,在PC中,硬盘的1个扇区大小一般为512个字节。从存储程序指令数据的角度来看,可以说内存和磁盘的功能是一样的。在计算机的五大部件中,内存和磁盘都属于存储器要意思。总而言之,背会了就行,名词解释嘛,知道这个名词是什么意思就行啦。但是,现在不一样了,看完这章节,我不仅仅是知道了某些名词的意思,还知道了其中的某些原理。从存储程序指令和数据的角度来看,可以说内存和磁盘的功能是一样的。然而,程序加载道内存后才能运行。计算机中的存储器包括内存和硬盘。存储在硬盘中的程序需要先加载到内存中才能运行,不能在硬盘上直接运行。这是因为CPU在对程序内容进行解释和运行时,是通过其内部的程序计数器指定的内存地址来读取的。即便CPU能够直接读取并运行硬盘上的程序,由于磁盘读取速度慢,所以程序的运行速度也会很慢。然而,存储在磁盘上的程序需要先加载到内存后才能运行。
接下来,我们看看什么是硬盘缓存,其实呢,硬盘缓存就是一块儿内存空间,用于临时存放从硬盘读取出来的数据。下次需要读取相同的数据时,就不需要实际访问硬盘,而是从硬盘缓存中读取数据就可以了,有了磁盘缓存就能够提高硬盘速度的读取了。磁盘缓存的缓存英文是cache,意思是藏东西的地方仓库。将低速设备中的数据保存在高速设备中,当需要相同数据时,直接从高速设备中读取,这样的设计就叫做缓存。什么是虚拟内存?虚拟内存是将硬盘的一部分模拟成内存来使用的机制。硬盘缓存是将内存看成虚拟的磁盘,与之相对,虚拟内存是将磁盘看成虚拟的内存。什么是固态硬盘呢?固态硬盘就是将一种可读写的且断开电源后,内容不会丢失的散存flash作为硬盘来使用的产品。固态硬盘的本质是内存,但从用户的角度来看,它就是一块硬盘USB驱动器SD卡等,也是用散帧来存储的设备。固态硬盘和机械硬盘,它们两个相比呢?固态硬盘具有速度快,耗能低,无噪声,重量轻等优点。基于GUI,也就是图形用户界面,WINDOWS可以说是一个巨大的操作系统,作为WINDOWS前身的MS DOS操作系统,其早期版本只需要128 KB的内存就可以工作,但是想流畅的使用WINDOWS至少需要2GB的内存,而且由于WINDOWS具备多任务功能,在巨大的WINDOWS中还要同时运行多个应用程序,所以有时候即便有2GB的内存也无法流畅的运行,WINDOWS是一个时常被内存不足所困扰的操作系统,大家可能会认为有了虚拟内存,就可以解决内存不足的问题,的确,他可以解决,因为内存不足而无法启动应用程序的问题,但是虚拟内存所产生的页面换入换出操作都涉及访问低速的磁盘 。在这个过程中,应用程序会发生卡顿,当内存容量太小时,应用程序运行过程中就会看到硬盘,访问指示灯常亮,这是我们也无法对程序进行操作,因此虚拟内存并不能彻底解决内存不足问题。
要彻底解决内存不足的问题,只能增加内存容量或是缩减应用程序的大小。先可以通过DLL文件共享函数。还可以通过_stdcall调用缩减程序大小。
扇区是磁盘在物理上可读写的最小单位。WINDOWS中的磁盘,一个扇区的长度为512字节。1簇=8扇区=4kb(4096字节)
现在终于理解为什么当时选择题选4kb了,原来1簇=8扇区=4kb(4096字节)。哈哈哈哈,不错不错。

标签:怎么,虚拟内存,起来,缓存,程序,内存,磁盘,硬盘
From: https://www.cnblogs.com/shenchen88-88/p/18017219

相关文章

  • matlab练习程序(Schur补)
    Schur补是一种矩阵分解方法,通过将一个大的矩阵分解为几个较小的矩阵来简化计算,通常能够提高矩阵求逆的速度。对于形如下面的矩阵:可以把矩阵划分为左上、右上、左下、右下四个分块矩阵。得到矩阵:根据A和D的奇异性,可以分两种情况。如果A可逆,则有:如果D可逆,则有:公式两边同......
  • Qt环境Windows应用程序动态变更系统默认打印机
    有些工作环境安装有多个打印机,针对不同需求进行各种输出。如果是用QPrinter进行打印控制,可以通过setPrinterName确定使用哪一个打印机,但如果程序使用了第三方功能进行打印输出,比如通过QAxObject调用系统的文字处理直接输出,就可能会遇到无法明确指定哪一个打印机的问题。这时就需要......
  • 《程序是怎样跑起来的》第四章——熟练使用有棱有角的内存?
    关于这一章,是目前让我最感兴趣的一章,因为说到了内存,在编程过程中我经常遇到内存这类的问题,如堆、栈溢出,如何更好的使用内存,所以对内存格外想要了解。内存的实体实际上是一种名为内存IC的电子元件,有多种类型如:RAM,ROM等等。内存IC中有电源、控制信号、地址信号、数据信号。通过地址......
  • 《程序是怎样跑起来的》第二章读后感
    在读了《程序是怎样跑起来的》第二章,我不仅对程序的运行机制有了更为清晰的认识,也对计算机科学的魅力产生了浓厚的兴趣。我对于二进制有了了解,二进制,也称为二进位制,是一种以2为基数的数制系统。1234567在二进制系统中,只使用两个基本符号:0和1。每个二进制数字也被称为一个位或二进......
  • 研究生阶段 2018.11.1 编程 我的微信小程序
    微信小程序昵称:HelloPrince2017原始ID:gh_5c258db11408登录邮箱:[email protected]你好,以上帐号未在指定时间内登录,此帐号已冻结,如需重新使用此帐号,请登录小程序帐号后台进行找回;或在公众平台找回帐号流程中,通过原始ID搜索找回  "找回小程序登录密码"  发......
  • 万事俱备,就差一个程序员了
    万事俱备,就差一个程序员了 程序员都有了,就差个销售了。 嗨星期几 我的大学学弟,找到我我没答应  我要开个公司,分钱的和吹牛的都满了,就差一个干活的了。! 你真是缺一个程序员就闯到世界第一了么? 如果是这样的话,那拜托,现在立马立刻去招聘一个! 20K30K的帝都魔......
  • windows下c++遍历各个磁盘的所有文件,不知道为什么FindFirstFileA文件会报错,进而程序退
    下面的程序还有一些问题,比如360的一些目录就用FindFirstFileA函数打开错误;还有  C:\Windows\System32\WebThreatDefSvc ,属性只有 DIRECTORY,用函数 _access检查也没有问题,但是就是用FindFirstFileA打开的时候错误;至今没有想到解决办法,只能临时跳过这种目录。 #include......
  • 基于FPGA的图像RGB转CIE-Lab实现,包含testbench和MATLAB辅助验证程序
    1.算法运行效果图预览 将FPGA的结果导入到matlab,并和matlab的仿真结果进行对比:   2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述     RGB和CIE-Lab是两种常用的颜色空间,它们在不同的应用领域中各有优势。RGB颜色空间主要用于显示设备,而C......
  • 《程序是怎么跑起来的》第3,4章
    感觉之前的进度有点慢了,嘿嘿嘿,这次看了两章,第三,四章主要讲述计算机在计算小数时会出错的原因,让内存化方为圆。我们通过口算可以知道,将0.1累加100次的结果等于10。然而,在程序中,将0.1累加100次,在屏幕上显示的结果却不是10。其实出现这种错误的原因,既不是程序编写的错误,也不是计算机......
  • 微信小程序页面跳转:wx.switchTab、wx.reLaunch、wx.redirectTo、wx.navigateTo、wx.na
    引言在微信小程序开发中,页面跳转是一项基础且常用的功能。本文将介绍微信小程序中五种常见的页面跳转方式,并分析它们的使用场景和区别。1.wx.switchTab(跳转主页)wx.switchTab方法用于跳转到tabBar页面,并关闭其他所有非tabBar页面,通常用于跳转到小程序的主页。特点:关闭......