【问题标题】:Difference between memory allocation and paging in modern operating systems现代操作系统中内存分配和分页的区别
【发布时间】:2012-07-09 12:13:48
【问题描述】:

我最近一直在研究操作系统,尤其是内存管理方面。但是,我不确定在http://en.wikipedia.org/wiki/Memory_management 中找到的内存管理方案(例如内存池或伙伴系统)与虚拟内存组件(例如分页)之间有什么区别。他们都完成相同的事情还是不同的事情?它们通常如何在现代操作系统中实现?

【问题讨论】:

    标签: memory-management operating-system virtual-memory


    【解决方案1】:

    它们是互补的。内存管理通常是指如何分配虚拟地址空间来保存程序中的对象。目标是减少碎片化。

    虚拟内存是一个系统,它允许进程相信他们拥有比实际存在的更多的内存,允许进程共享部分内存而不用担心保护其余部分等等。操作系统在这里的工作是决定哪些页面应该由物理内存支持,以及如何换出不使用的页面。

    【讨论】:

    • 所以你是说操作系统从RAM和磁盘构造虚拟内存,然后这个虚拟内存被内存分配策略使用,例如伙伴系统为进程分配内存?
    • 虚拟内存只表示抽象数据的位置。当 CPU 尝试获取它时,它会检查它是否在内存中。如果没有,它会要求操作系统查找数据并将其放入内存中。因此,给定的虚拟地址可以表示在任何给定时间点位于 RAM、磁盘或理论上什至完全在另一台机器上的数据(尽管在这种情况下延迟会很可怕)。
    • 哦,好吧,但它仍然是伙伴系统使用的虚拟内存和其他策略为进程分配内存对吗?
    猜你喜欢
    • 2012-03-16
    • 2021-12-20
    • 2016-08-06
    • 1970-01-01
    • 2017-07-11
    • 2017-10-03
    • 2021-10-16
    • 2018-11-26
    • 1970-01-01
    相关资源
    最近更新 更多