
Linux内核
文章平均质量分 84
lyt_dawang
技术路上的追鹿人
展开
-
Linux内核-内存管理(二),关键数据结构
内存管理关键数据结构1.结点管理pg_data_t是用于表示结点的基本元素,定义如下:1.node_zone是一个数组,包含了结点各内存域的数据结构2.node_zonelists指定了备用结点以及内存域的列表,以便在当前结点没有内存时,从备用结点分配内存。3.结点中不同内存域的数目保存在nr_zones.4.node_mem_map是指向page实例数组的指针,用于描述结点内所有物理内存页。它包含了结点内所有内存域的。5.在系统启动期间,内存管理子系统初始化之前,内核页需要使用内存(另外还原创 2021-08-21 21:43:05 · 305 阅读 · 0 评论 -
Linux内核-内存管理(一)
概述内存管理是内核最复杂同时也是最重要的一部分。其特点在于非常需要处理器和内核之间的协作(所需执行的任务决定了两者必须紧密合作)。内存管理的实现涵盖了许多领域:1.内存中物理内存页的管理;2.分配大块内存的伙伴系统;3.分配较小块内存的slab,slub和slob分配器;4.分配非连续内存的vmalloc机制;5.进程地址空间。Linux内核一般将处理器的虚拟地址空间分为上下两个部分。底部较大的部分用于用户空间,顶部较小的部分用于内核空间。虽然底部用户空间会随着上下文切换发生改变,但内核空间原创 2021-08-20 17:20:07 · 297 阅读 · 0 评论 -
Linux内核---锁与进程间通信
概述Linux作为多任务操作系统,能够同时运行多个进程。通常,各个进程必须尽可能保持独立,避免彼此干扰。这对于保护数据和系统稳定性都很有必要。但有时候,应用程序必须彼此通信。举例来说:一个进程的数据传输到另一个进程时数据由多个进程共享时进程必须彼此等待时需要协调资源的使用时如果几个进程共享一个资源,则很容易彼此干扰,必须防止这种情况。因此内核不仅提供了共享数据的机制,同时提供了协调对数据访问的机制。用户空间应用程序和内核自身都需要保护资源,特别是后者。在SMP系统上,各个CPU可能同时处于核原创 2021-08-16 17:02:57 · 300 阅读 · 0 评论 -
Linux 内核 -------之进程管理
进程概念Linux内核把进程称为任务(task),进程的虚拟地址空间分为用户虚拟地址空间和内核虚拟地址空间,所有进程共享内核虚拟地址空间,每个进程有独立的用户空间虚拟地址空间。进程有两种特殊形式:没有用户虚拟地址空间的进程称为内核线程,共享用户虚拟地址空间的进程称为用户线程。通用在不会引起混淆的情况下把用户线程简称为线程。共享同一个用户虚拟地址空间的所有用户线程组成一个线程组。Linux进程四要素a.有一段程序供其执行b.有进程专用的系统堆栈空间c.在内核有task_struct数据结构d.有原创 2021-08-12 11:02:25 · 467 阅读 · 0 评论