内核中提供了多种方法来防止竞争条件,理解了这些方法的使用场景有助于我们在编写内核代码时选用合适的同步方法, 从而即可保证代码中临界区的安全,同时也让性能的损失降到最低。 主要内容: 原子操作 自旋锁 读写自旋锁 信号量 读写信号量 互斥体 完成变量 大内核锁 ...
存在共享资源 共享一个文件,一块内存等等 的时候,为了防止并发访问时共享资源的数据不一致,引入了同步机制。 主要内容: 同步的概念 同步的方法 加锁 死锁 锁的粒度 . 同步的概念 了解同步之前,先了解另外 个概念: 临界区 也称为临界段,就是访问和操作共享数据的代码段。 竞争条件 个或 个以上线程在临界区里同时执行的时候,就构成了竞争条件。 所谓同步,其实防止在临界区中形成竞争条件。 如果临界区 ...
2013-04-24 17:56 5 3891 推荐指数:
内核中提供了多种方法来防止竞争条件,理解了这些方法的使用场景有助于我们在编写内核代码时选用合适的同步方法, 从而即可保证代码中临界区的安全,同时也让性能的损失降到最低。 主要内容: 原子操作 自旋锁 读写自旋锁 信号量 读写信号量 互斥体 完成变量 大内核锁 ...
本篇简单介绍内核相关的基本概念。 主要内容: 单内核和微内核 内核版本号 1. 单内核和微内核 原理 优势 劣势 单内核 整个内核都在一个大内核地址空间上运行 ...
在尝试内核开发之前,需要对内核有个整体的了解。 主要内容: 获取内核源码 内核源码的结构 编译内核的方法 内核开发的特点 1. 获取内核源码 内核是开源的,所有获取源码特别方便,参照以下的网址,可以通过git或者直接下载压缩好的源码包。 http ...
内核调试的难点在于它不能像用户态程序调试那样打断点,随时暂停查看各个变量的状态。 也不能像用户态程序那样崩溃后迅速的重启,恢复初始状态。 用户态程序和内核交互,用户态程序的各种状态,错误等可以由内核来捕获并显示。 而内核是直接和硬件交互的,内核出错之后整个系统就无法正常运行了,所以要想 ...
进程是所有操作系统的核心概念,同样在linux上也不例外。 主要内容: 进程和线程 进程的生命周期 进程的创建 进程的终止 1. 进程和线程 进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的。 Linux中的进程 ...
中断处理一般不是纯软件来实现的,需要硬件的支持。通过对中断的学习有助于更深入的了解系统的一些底层原理,特别是驱动程序的开发。 主要内容: 什么是中断 中断类型 中断相关函数 中断处理机制 中断控制方法 总结 1. 什么是中断 为了提高CPU和外围硬件 ...
本章主要讨论与linux的设备驱动和设备管理的相关的4个内核成分,设备类型,模块,内核对象,sysfs。 主要内容: 设备类型 内核模块 内核对象 sysfs 总结 1. 设备类型 linux中主要由3种类型的设备,分别是: 设备 ...
内核的内存使用不像用户空间那样随意,内核的内存出现错误时也只有靠自己来解决(用户空间的内存错误可以抛给内核来解决)。 所有内核的内存管理必须要简洁而且高效。 主要内容: 内存的管理单元 获取内存的方法 获取高端内存 内核内存的分配方式 总结 1. 内存的管理 ...