操作系統(tǒng)為了管理進(jìn)程和資源,必須掌握每個(gè)進(jìn)程和資源的當(dāng)前狀態(tài).
主要維護(hù)4個(gè)表:內(nèi)存,I/O,文件和進(jìn)程
內(nèi)存表
1.分配給進(jìn)程的內(nèi)存
2.分配給進(jìn)程的外存
3.內(nèi)存塊或者虛存塊的任何保護(hù)屬性,如哪個(gè)進(jìn)程可以訪問某些共享內(nèi)存區(qū)域
4.管理虛存所需要的任何信息
I/O表
管理計(jì)算機(jī)系統(tǒng)中的I/O設(shè)備和通道.
文件表
文件是否存在,文件在外存中的位置,當(dāng)前狀態(tài)和其它屬性信息
進(jìn)程表
進(jìn)程中對內(nèi)存,I/O和文件等資源的引用
虛存中的用戶進(jìn)程結(jié)構(gòu)如下
進(jìn)程的簡單定義
進(jìn)程是資源分配的最小單位娄柳,線程是程序執(zhí)行的最小單位培己。
JVM
JVM本質(zhì)上就是一個(gè)進(jìn)程
然后著重看一下內(nèi)核內(nèi)存
nio buffer
(1)nio使用各種channel時(shí)所使用的ByteBuffer、
(2)Java程序主動(dòng)使用 ByteBuffer.allocateDirector申請分配的Buffer
PageCache
對應(yīng)java中的操作主要包括
(1)FileChannel.map方式打開文件占用mapped
(2)FileChannel.transferTo和 FileChannel.transferFrom所需要的Cache)