内存是计算机的主存储器。内存为进程开辟出进程空间,让进程在其中保存数据。我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存分页的概念。 内存 简单地说,内存就是一个数据货架。内存有一个最小的存储单位,大多数都是一个字节。内存用内存地址(memory address)来为每个字节 ...
分类:
系统相关 时间:
2019-01-18 16:32:32
阅读次数:
181
物理地址和虚拟地址: 计算机的主存被组织成一个由M个连续的字节大小的单元组成的数组。每个字节都有一个唯一的物理地址(PA)。第一个字节地址为0,接下来为1,再接下来为2,依次类推。CPU访问内存的最自然方式就是使用物理地址。我们把这种方式称为物理寻址。如图所示。 现代处理器使用一种称为虚拟地址的寻址 ...
分类:
其他好文 时间:
2019-01-13 12:23:32
阅读次数:
206
1、volatile的作用 一个线程共享变量(类的成员变量、类的静态成员变量等)被volatile修饰之后,就具有以下作用: 1)并发中的变量可见性(不同线程对该变量进行操作时的可见性),即一个线程修改了某个变量的值,则该新值对其他线程立即可见(可立即访问新值/立即强制写入主存); 2)禁止指令重排 ...
分类:
编程语言 时间:
2019-01-06 19:22:09
阅读次数:
215
volatile 一、 volatile修饰的变量具有内存可见性 volatile是变量修饰符,其修饰的变量具有内存可见性。 可见性 也就是说一旦某个线程修改了该被volatile修饰的变量,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,可以立即获取修改之后的值。 在Java中为了加快 ...
分类:
编程语言 时间:
2019-01-02 12:24:59
阅读次数:
163
[TOC] 1、内存模型概念 我们都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速 ...
分类:
编程语言 时间:
2018-12-31 21:17:44
阅读次数:
247
主存存取原理 主存的构成 主存储器(简称主存或内存)包括存取体、各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件,每个存储元件能寄存一位二进制代码“0”或“1”。这样,一个存储单元可以存储一串二进制代码,这串二进制代码称为存储字,这串二进制代码的位数称为存储字长, ...
分类:
数据库 时间:
2018-12-30 03:00:31
阅读次数:
227
目录 一、为什么要有操作系统 二、什么是操作系统 三、操作系统与普通软件的区别 四、操作系统发展史 一、为什么要有操作系统 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。 一般而言,现代计算机系统是一个复杂的系统。 其一:如果每位 ...
分类:
其他好文 时间:
2018-12-19 22:02:53
阅读次数:
148
计算机系统主要有以下三部分组成:中央处理单元(CPU)、主存储器和输入输出子系统。 中央处理器(CPU)主要包括三部分分别是:算术逻辑单元(ALU)、控制单元、寄存器组,通常我们会说计算机包括控制器和运算器。 中央处理器(CPU) 算术逻辑单元(ALU)主要负责三件事情:逻辑运算即与或非和异或等、移 ...
分类:
其他好文 时间:
2018-12-18 22:37:09
阅读次数:
274
一、单项选择题 1、存储管理的目的是( ) 。 A、方便用户 B、提高主存空间利用率 C、方便用户和提高主存利用率 D、增加主存实际容量 存储管理的目的有两个:一个是方便用户,二是提高内存利用率。 2、存储器管理中,下列说法正确的是( ) A、无论采用哪种存储管理方式,用户程序的逻辑地址均是连续的 ...
分类:
其他好文 时间:
2018-12-18 17:23:06
阅读次数:
450
volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存(主存)中重读该成员变量的值,而且,当成员变量发生变化时,强迫线程将变化值写到共享内存(主存)中。 但是,对应volatile修饰的变量,jvm虚拟机只是保证从主内存加载到线程工作内存的值是最新的。例如线程1 线程2在进行read l ...
分类:
其他好文 时间:
2018-12-18 00:08:10
阅读次数:
232