![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核
SUKI547
从放弃到入门
展开
-
【Linux内核笔记】Cache 页高速缓存
文章目录cache缓存手段写缓存缓存回收缓存回收策略address_spaceaddress_space操作缓冲区高速缓存buffer回写操作cachecache用于实现磁盘缓存(缓存内存物理页面),减少对磁盘的IO操作。具体是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。cache可以动态调整:通过占用空闲内存以扩张大小,也可以自我收缩以缓解内存使用压力。正被缓存的存储设备为后备存储。因为缓存背后的磁盘无疑才是所有缓存数据的归属。当内核开始一个读操作,首先会检查需要的原创 2020-12-28 16:19:12 · 485 阅读 · 0 评论 -
Linux 内核笔记 cfs/rt进程调度,task_group组调度与cgroup
从cgroup的period 与runtime具体如何影响线程cpu使用问题来的,大佬写的不错,就不拾人牙慧了,上链接第一步 如果对进程调度不太清楚,先看进程调度浅析第二步 cfs调度器浅析补充,cfs调度总结第三步 进程组调度第四步 cgroup中cpu子系统...原创 2020-12-03 11:04:07 · 1574 阅读 · 0 评论 -
【Linux 内核笔记】进程管理
clone()-fork()-exec()-exit() 子进程结束ZOMBIE 父进程wait4()进程描述符 task_struct进程所有信息 由thread_info分配。为了提高current宏找进程描述符的速度,方便使用偏移量计算进程描述符进程状态TASK_RUNNINGTASK_INTERRUPTIBLETASK_UNINTERRUPTIBLETASK_ZOMBI...原创 2020-01-15 15:21:50 · 436 阅读 · 0 评论 -
【Linux内核笔记】进程调度
文章目录进程调度原理进程优先级Linux调度算法Unix系统中的进程调度公平调度Linux调度的实现时间记账进程选择调度器入口睡眠和唤醒抢占和上下文切换用户抢占内核抢占实时调度策略与调度有关的系统调用与调度策略和优先级相关的系统调用与处理器绑定有关的系统调度放弃处理器时间进程调度原理进程调度程序:分配有限处理器时间资源抢占式多任务 preemptive multitaskingLinux ...原创 2020-01-15 15:24:03 · 609 阅读 · 0 评论 -
【Linux内核笔记】系统调用
与内核通信用户空间-syscall-硬件设备统一接口、稳定安全、易于管理API、POSIX和C库POSIX是接口标准接口提供机制mechanism而不是策略policy系统调用通常负的返回值表明错误,0正常。系统调用把错误情况写入errno全局变量。perror()函数翻译为可理解的错误字符串asmlinkage long sys_callxx()编译指令,仅从栈中提取函数参数。...原创 2020-01-15 15:25:47 · 364 阅读 · 0 评论 -
【Linux内核笔记】内核数据结构
文章目录链表Linux内核中的实现Linux内核链表操作队列FIFO队列操作映射映射UID操作二叉树二叉搜索树BST自平衡二叉树红黑树rbtree算法复杂度大O符号时间复杂度总结数据结构以及选择本笔记不详细讲述数据结构。链表链表是一种存放和操作可变数量元素(常称为节点)的数据结构无须在内存中占用连续内存区,是Linux内核中最简单、最普通的数据结构链表有单向链表、双向链表、环形链表、环...原创 2020-02-16 18:47:35 · 672 阅读 · 0 评论 -
【Linux内核笔记】Linux进程地址空间:内存描述符,虚拟内存区域
文章目录地址空间地址空间进程地址空间——进程可寻址的虚拟内存,内核允许进程使用该虚拟内存中的地址每个进程有32/64位的flat(独立的连续)地址空间内存区域(memory areas)——进程允许访问的虚拟内存的地址区间进程访问了不在有效范围内的内存区域,或不正确的访问方式访问了有效地址,内核会终止该进程,返回“段错误”信息 segment fault内存区域可以包含各种内存对象代码段 text section——可执行文件代码的内存映射数据段 data section——可执行文件原创 2020-11-20 16:42:45 · 660 阅读 · 0 评论 -
【Linux内核笔记】内核内存管理
文章目录页区获得释放低级页kmalloc()gfp_mask标志vmalloc()slab层在栈上静态分配高端内存的映射每个CPU数据总结:分配函数的选择页内核管理内存的基本单位每个物理页都由struct page表示,位于<linux/mm_types.h>。 假设每个结构体40byte, 物理页8KB, 4GB物理内存。则有2182^{18}218页,结构体占用20MB,并不大。struct page{ flags //页状态 _count//引用计数,-1当前内核没原创 2020-11-17 11:12:12 · 324 阅读 · 0 评论