Linux内核设计与实现
文章平均质量分 74
scylalala
这个作者很懒,什么都没留下…
展开
-
第十章 内核同步方法
原子操作原子操作:保证指令以原子的方式执行,即执行过程是不可分割的整体,不被打断。内核提供了两组原子操作的接口:针对整数操作针对位操作原子整数操作针对整数的原子操作采用数据类型atomic_t,适用于32位整型数据(int);atomic64_t,适用于64位整型数据(long)。定义了一系列标准原子整数操作函数,实现整数原子地加、减、读取等操作。用途:实现计数器。如果采用锁机制对计数器进行保护,会显得有些复杂。原子性:一个字长的读取总是原子的发生,绝不可能对同一个字交错地进行写;读总原创 2021-05-19 11:48:44 · 97 阅读 · 1 评论 -
第九章 内核同步介绍
临界区和竞争条件临界区:指的是访问和操作共享数据的代码段。竞争条件:两个或多个执行线程处于同一个临界区中同时执行,可能会发生各线程互相覆盖共享数据的情况,造成被访问数据处于不一致的状态。原子操作:为了避免对临界区的并发访问,必须保证临界区代码原子地执行——操作在执行结束前不可被打断,就像整个临界区是一个不可分割地指令一样。同步:避免并发和防止竞争条件避免竞争条件:对临界区操作前,需要加锁,保证操作是原子性的,临界区代码必须完整地执行,决不能被打断。对简单的单个变量的读写:内核提供了指令实现原原创 2021-05-18 22:15:33 · 108 阅读 · 0 评论 -
第四章 进程调度
为什么要进行进程调度:因为CPU资源是有限的,需要在进程间分配有限的处理器时间资源。调度程序:决定哪个程序运行,何时运行,运行多久多任务系统多处理器:可实现并行单处理器:并发分类抢占式多任务非抢占式多任务...原创 2021-05-14 23:11:09 · 195 阅读 · 0 评论