2012-07-19 78 views
0

我知道每个进程都有一个内存块,它包含代码段,数据段,堆和堆栈。并且代码段也是只读的。但是当一个进程开始运行时,这个在哪里只读内存分配以及操作系统如何区分每个进程的只读内存部分 ?操作系统内存分配

+0

它在RAM(或虚拟内存)中,它通过在页表中设置“只读”属性进行区分。 – 2012-07-19 15:44:39

回答

0

每个进程都有所谓的页表,它将实际的物理RAM映射到进程的虚拟内存空间。该表为每个“页面”分配属性,通常为4kb。其中一些属性包括将页面设置为只读,不可执行,具有特权代码等。操作系统基本上告诉硬件属性是什么,以便它不必微处理每个内存访问,因为这样做会效率非常低。

有关低级别详细信息,请参阅this osdev wikipage以获取典型x86机器中的说明和示例。