当前位置:   article > 正文

Linux操作系统(八股)- 系统内存_linux内存管理机制

linux内存管理机制

内存

Linux的内存管理机制是什么?

Linux的内存管理机制是一个很复杂的内容,其中包含了很多机制。包括虚拟内存、分页、内存寻址。要了解Linux的内存机制,首当其冲就是万物皆文件的概念,所有的东西在Linux中都是文件,什么目录、进程、数据,都是文件,所以在这个背景下,程序在运行中的进程的文件需要被存在内存中,Linux的内存管理是基于分段式和分页式混合的方式进行内存管理。 Linux会将每个进程的地址(虚拟)分成若干个段,每段下面有若干个大小固定的页,同时真正的物理内存也会被划分成若干大小固定的页,此时通过页表建立映射关系,来实现对于物理内存的管理

内存中的寻址方式

对于每个进程, 都会有一个虚拟的但是是一个完整的、独立的虚拟地址空间,这个空间是连续的地址空间,通常是从0开始, 到系统给的虚拟地址的范围,所以每个进程都认为自己拥有的是整块的系统内存。而进程在使用内存的时候, linux使用页表通过虚拟地址访问到物理地址,这两者之间是相互映射的关系。 CPU中有一个MMU(内存管理单元),是将虚拟地址转化为物理地址。这样也可以

内存调页算法

二次机会算法(clock置换算法): 二次机会算法基于时钟算法,通过引入额外的位(”访问位)来记录页面的使用情况。 当需要置换页面的时候,算法会检查页表中的页面,如果页面访问位位0,表示该页面没有被访问过, 可以被置换出去; 如果访问位为1,则表示页面已经被访问过了, 那么会将方位位清零,并将页面重新放到队列的尾部,给也没第二次机会

任务调度算法

CFS(完全公平调度器):CFS是Linux内核中默认的任务调度算法,使用红黑树来组织热舞,通过动态调整每个任务的虚拟运行时间来实现公平的调度

实时调度算法:

FIFO(先进先出调度):按照任务加入队列的顺序进行调度,不考虑优先级

RR(Round-Robin)(轮转调度): 每个任务都被分配了一个时间片,当时间片用完的时候,任务被放到队列的尾部,等待下一轮

基于优先级的调度算法:

O(1)调度器:这是Linux 2.6内核之前使用的调度算法,它根据任务的优先级和调度策略(如实时任务、非实时任务)来进行任务调度。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/704731
推荐阅读
相关标签
  

闽ICP备14008679号