操作系统为了管理进程和资源,必须掌握每个进程和资源的当前状态.
主要维护4个表:内存,I/O,文件和进程
操作系统控制表通用结构.png
内存表
1.分配给进程的内存
2.分配给进程的外存
3.内存块或者虚存块的任何保护属性,如哪个进程可以访问某些共享内存区域
4.管理虚存所需要的任何信息
I/O表
管理计算机系统中的I/O设备和通道.
文件表
文件是否存在,文件在外存中的位置,当前状态和其它属性信息
进程表
进程中对内存,I/O和文件等资源的引用
虚存中的用户进程结构如下
虚存中的用户进程.png
进程的简单定义
进程是资源分配的最小单位,线程是程序执行的最小单位。
JVM
JVM本质上就是一个进程
进程与JVM.jpg
然后着重看一下内核内存
内核内存.jpg
nio buffer
(1)nio使用各种channel时所使用的ByteBuffer、
(2)Java程序主动使用 ByteBuffer.allocateDirector申请分配的Buffer
PageCache
对应java中的操作主要包括
(1)FileChannel.map方式打开文件占用mapped
(2)FileChannel.transferTo和 FileChannel.transferFrom所需要的Cache)