内核空间和用户空间

2019-07-14 09:51发布

    在Java中我们基本上不会显示地调用分配内存的函数,我们甚至不用关心到底哪些程序指令需要分配内存、哪些不需要分配内存。因为在Java中,分配内存和回收内存都由JVM自动完成了。     所谓物理内存就是我们通常所说的RAM(随机存储器)。 一.内核空间与用户空间 一个计算机通常由一定大小的内存空间,如使用的计算机是4GB的地址空间,但是程序并不能完全使用这些地址空间,因为这些地址空间被划分为内核空间和用户空间。程序只能使用用户空间的内存。 内核空间主要是指操作系统运行时所使用的的用于程序调度、虚拟内存的使用或者连接硬件资源等的程序逻辑。 在当前的Windows32操作系统中默认内核空间和用户空间的比例是1:1(2GB的内核空间,2GB的用户空间),而在Linux系统中默认的比例是1:3(1GB的内核空间,3GB的用户空间)。 为什么需要内核空间和用户空间的划分? 1.为了保证操作系统的稳定性,运行在操作系统中的用户程序不能访问操作系统所使用的内存空间。 2.这也是从安全性上考虑的吗,如访问硬件资源只能由操作系统来发起,用户程序不允许直接访问硬件资源。