Linux内核设计与实现 陈莉君(第三版)
巴德鸟
这个作者很懒,什么都没留下…
展开
-
Linux内核设计与实现 第12章 内存管理
1原创 2020-06-20 08:55:32 · 525 阅读 · 0 评论 -
Linux内核设计与实现 第11章 定时器和时间管理
文章目录内核时钟的概念节拍率(Hz)Hz值的选择无节拍的操作系统全局变量 jiffies (unsigned long)jiffies回绕用户空间和HZ硬时钟和定时器实时时钟系统定时器时钟中断处理程序定时器使用定时器定时器竞争条件实现定时器延迟执行忙等待短延迟更理想的延迟方法schedule_timeout()内核时钟的概念硬件 为 内核提供系统定时器 用以计算流逝的时间,该时钟在内核可看成是...原创 2020-06-20 08:55:26 · 551 阅读 · 0 评论 -
Linux内核设计与实现 第9 10章 内核同步介绍 和 内核同步方法
文章目录9 内核同步介绍临界区和竞争条件造成并发执行的原因要保护些什么,哪些数据对于处理并发的配置选项死锁避免死锁的方法:1. 按顺序加锁,最有用2. 防止饥饿发生3. 不重复请求同一锁4. 设计求简单,加锁越复杂,死锁越容易出现争用和扩展性10 内核同步方法9 内核同步介绍临界区和竞争条件临界区(段)就是访问和操作共享数据的代码段。多个执行线程都处于同一临界区中同时执行,则产生竞争条件。...原创 2020-06-20 08:55:19 · 243 阅读 · 0 评论 -
Linux内核设计与实现 第8章 下半部和推后执行的工作
文章目录下半部下半部的环境软中断软中断的实现软中断处理程序执行软中断使用软中断分配索引注册软中断处理程序触发软中断tasklettasklet的实现tasklet_struct结构体调度tasklet使用tasklet声明自己的tasklet编写你自己的tasklet处理程序调度自己的taskletksoftirqd 处理软中断的内核线程工作队列工作队列的实现表示工作者线程的数据结构 workqu...原创 2020-06-20 08:55:13 · 584 阅读 · 0 评论 -
Linux内核设计与实现 第7章 中断和中断处理
1原创 2020-06-20 08:52:55 · 427 阅读 · 0 评论 -
Linux内核设计与实现 第6章 内核数据结构
文章目录1. 链表Linux内核中的特殊链表container_of和offsetof宏一个例子解释`offsetof`和`container_of`宏对链表的操作创建链表添加节点到链表删除节点链表、队列、映射、二叉树1. 链表是Linux中最简单最普通的数据结构。存放和操作可变数量元素的数据结构。Linu内核标准链表采用灵活性很高的环形双向链表。Linux内核中的特殊链表Linu...原创 2020-06-20 08:52:46 · 972 阅读 · 0 评论 -
Linux内核设计与实现 第5章 系统调用
系统调用简介用户空间进程和硬件设备之间的中间层,为用户空间提供一种硬件的抽象接口。在linux中,系统调用是用户空间访问内核的唯一手段,除异常和陷入外,系统调用是内核的唯一合法入口。Linux提供的系统调用比大部分操作系统都少得多。系统调用访问系统调用,通常通过 访问C库中定义的函数 实现。系统调用通过返回long型值表示成功或者错误,系统调用出错时C库会把错误码写入全局变量errno,再...原创 2020-06-20 08:52:38 · 227 阅读 · 0 评论 -
Linux内核设计与实现 第4章 进程调度
进程调度程序可看作是:可运行态进程之间 分配有限的处理器时间资源 的内核子系统。在一组处于可运行状态的程序中选择一个来执行,是调度程序的基本工作。目标是: 在进程响应时间 和 最大系统利用率(吞吐量高) 两个矛盾中寻找平衡。有如下调度算法:O(1)调度算法 [早期];反转楼梯最后期限调度算法(RSDL),完全公平调度算法(CFS, Completely Fair Scheduler),这俩是...原创 2020-06-20 08:52:28 · 183 阅读 · 0 评论 -
Linux内核设计与实现 第3章 进程管理
内核把进程的列表存放在任务队列task list中,是双向循环链表,链表的每一项是task_struct结构,称为进程描述符。task_struct在32位机器上越占1.7KB。task_struct由slab分配器动态分配,thread_info结构包含指向task_struct的一个指针域task。每个任务的thread_info结构在它的内核栈的尾端分配。实际上在内核大部分处理进程的代码...原创 2020-06-20 08:55:39 · 195 阅读 · 0 评论