Kav*_*edi 9 c c++ operating-system memory-management
自从我在OS类中听到虚拟和物理内存概念的概念之后,这是一个非常基本的问题令人难以置信.现在我知道在加载时和编译时,虚拟地址和逻辑地址绑定方案是相同的,但在执行时它们是不同的.
首先,为什么在编译和加载时生成虚拟地址以及当我们应用&号运算符来获取变量,naive数据类型,用户定义类型和函数定义地址的地址时返回什么是有益的?
当OS这样做时,OS如何从虚拟地址到物理地址完全映射?这些问题都是出于好奇心而且我会喜欢考虑现代操作系统的一些好的和深刻的见解,"早期操作系统是怎么回事".我只是特定于C/C++,因为我对其他语言知之甚少.
物理地址出现在硬件中,而不是软件中。可能/偶尔的异常是在操作系统内核中。物理意味着它是系统总线和 RAM 芯片看到的地址。
物理地址不仅对软件无用,而且可能是一个安全问题。能够在不进行地址转换的情况下访问任何物理内存,并且知道其他进程的地址,将允许不受限制地访问机器。
也就是说,较小的或嵌入式计算机可能没有虚拟内存,并且一些较旧的操作系统确实允许共享库指定其最终物理内存位置。此类政策会损害安全并且已经过时。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           945 次  |  
        
|   最近记录:  |