Linux:浅谈计算机体系、进程和虚拟地址

想要有顺序地学习Linux,入口在这里哦: Linux:目录索引

提醒:

该篇内容只是给对概念基本毫无基础的同学用于了解计算机的一些基础知识的,并非专业的知识讲解,比如其中对进程的解释,并非最好的。前面部分内容是为理解虚拟内存和虚拟地址做铺垫的,不过虽然内容浅显,但还是比较适合初学者的。

一、计算机体系:冯.诺依曼体系

这里写图片描述

①运算器、控制器:合称CPU
②存储器:主存储器(内存:又分为随机存储器和只读存储器)和辅助存储器(外存,如磁盘:软磁盘,硬磁盘)
③输入/输出设备

内存和磁盘的区别:

这个简单的问题经常被初学计算机的人混淆。经常听他们说“我的机子内存可大了,是 20G。”他们这里所说的“内存”其实是硬盘。他们的理解是:(硬盘)装在机子内部,又能保存数据,不是内存是什么? 其实,计算机的内、外之分,不是以机壳来界定的。从计算机的体系结构来讲,硬盘应当是计算机的“外存”。内存应当是计算机内部(在主板上)的一些存储器,用来保存CPU运算的中间数据和计算结果。这些数据有时被保存在硬盘上。目前计算机所配的内存一般是16M、32M、64M、128M、256M、512M等。硬盘的大小有4.3G、6.4G、8G、10G、20G、30G、40G、80G、120G等。 内存是电脑的一个中转站,从硬盘那里取出数据或运行程序提供给中央处理器,它的速度很快。当电脑需要的数据太多或程序太大时,内存不够用只好暂时把一部分内容放在指定的硬盘里,这就是我们常提到的虚拟内存,即为应急把硬盘当内存用。而硬盘的速度比内存慢得多,这就是电脑有时运行慢的原因之一。有时运行大型游戏时,系统会提醒虚拟内存太小,你就得自定义你的虚拟内存来使你的游戏玩得畅快些了。这也就是为什么内存越大速度就越快的原由。硬盘是相对固定的,存放的是系统软件、应用软件等完全可由你自己控制的东西。硬盘是一个储存设备,有20G的,40G的,80G的,甚至上百的 “我的电脑”中的C盘,D盘都是硬盘, 内存分为物理内存和虚拟内存.平时所说的内存多指物理内存 物理内存在主机箱中是一插条,有64MB的,128MB的,256MB的,甚至是512MB和1GB,当然可以插两条或更多内存条.程序运行时,要将程序完全调入物理内存,因此有些大型游戏对内存大小有限制. 虚拟内存是硬盘上一部分,你可以设定大小和位置,是程序运行时的缓冲区.

二、进程

1.百度百科:
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
2.现象导致问题:
现象:进程有多个,且同时进行,那么一个系统中的进程是与其他进程共享CPU和主存资源的。
问题:当进程过多,使用的内存过多,有可能产生“某进程因为未被分配内存而无法运行”和“某进程可能改写其他进程正在使用的内存”。

三、虚拟内存

1.百度百科:
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。
2.虚拟内存的通俗解释:当内存不够用的时候,从硬盘上拿出一部分充当内存使用
机械硬盘:造价低,容量大,效率低,碰撞易丢失数据;(硬盘是磁盘的一种)
固态硬盘:造价高,效率高(是机械硬盘的2倍以上),稳定不易丢失数据

四、寻址方式

①物理寻址:
计算机系统的主存被组织成一个有M个连续的字节大小的单元组成的数组。每字节都有一个唯一的物理地址(Physical Address,PA)。CPU访问内存最自然的方式就是使用物理地址,我们称这种方式为物理寻址。
②虚拟寻址:
CPU通过生成一个虚拟地址(Virtual Address,VA)来访问主存,这个虚拟地址在被送到内存之前先转换成适当的物理地址。将一个虚拟地址转换成物理地址的任务叫做地址翻译。
③地址翻译:
CPU芯片是上叫做内存管理单元的专用硬件,利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容由操作系统管理。

五、地址空间

为了简化讨论,我们总是假设使用的是线性地址空间。
①虚拟地址空间:
在一个带虚拟内存的系统中,CPU从一个有N=2^n个地址的地址空间中生成虚拟地址,这个地址空间称为虚拟地址空间。(这句话的虚拟地址空间到底指哪个?)
{0,1,2,……,N-1}
一个地址空间的大小是由表示最大地址所需要的位数来描述。例如,一个包含N=2^n个地址的虚拟地址空间就叫做一个n位地址空间。现代系统通常支持32位或者64位虚拟地址空间。
②物理地址空间:
一个系统还有一个物理地址空间,对应于系统中物理内存的M个字节:
{0,1,2,……,M-1}
M不要求是2的幂,但是为了简化讨论,我们假设M=2^m。
③主存中的每字节都有一个选自虚拟地址空间的虚拟地址和一个选自物理地址空间的物理地址。如果CPU有N个虚拟地址空间,那么该字节就有N个虚拟地址。

六、虚拟存储器作为缓存工具

①虚拟存储器:是一个由“存放在磁盘上的N个连续字节大小的单元”组成的数组
②页:磁盘上的内容被缓存到内存中,内存和磁盘之间采用块block格式传输。由于虚拟存储的技术早于高速缓存的技术,所以当时这种块被称之为页。
③虚拟页在磁盘上,物理页在内存上
这里写图片描述
未分配:指没有在虚拟页(磁盘上)分配空间,不占磁盘空间,也就是说该块空间是空的;
未缓存:指已经在虚拟页(磁盘上)分配空间,占用磁盘空间,但是没有把该块空间的数据缓存到内存上;
已缓存:指已经在虚拟页(磁盘上)分配空间,占用磁盘空间,并且已经把该块空间的数据缓存到内存上;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值