摘要:
之前讲解过内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程), 但是一直对其中提到的线程的实现模型比较迷惑, 这次就花了点时间怎么学习了一下子 1 线程的3种实现方式 在传统的操作系统中,拥有资源和独立调度的基本单位都是进程。在引入线程的操作系统中,线程是独立调度的基本单位,进程是资 阅读全文
posted @ 2019-10-11 20:16
Smah
阅读(2881)
评论(0)
推荐(1)
摘要:
线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成实体可以分为两大部分:线程集和资源集。进程中的线程是动态的对象 阅读全文
posted @ 2019-10-11 20:08
Smah
阅读(2193)
评论(0)
推荐(1)
摘要:
基于Linux 2.6.32内核进行分析,看本篇文章前,建议先看看percpu变量这篇文章 smp_processor_id()用来获取当前cpu的id,首先来看smp_processor_id的定义: # define smp_processor_id() raw_smp_processor_id 阅读全文
posted @ 2019-10-11 16:52
Smah
阅读(8421)
评论(0)
推荐(1)
摘要:
percpu变量的关键就是:要求根据CPU的个数,在内存中生成多份拷贝,并且能够根据变量名和CPU编号,正确的对各个CPU的变量进行寻址。 采用per-cpu变量有下列好处:所需数据很可能存在于处理器的缓存中,因此可以更快速地访问。如果在多处理器系统中多个CPU可能同时访问变量,会引发一些通信方面的 阅读全文
posted @ 2019-10-11 16:49
Smah
阅读(1397)
评论(0)
推荐(0)
摘要:
在Linux系统中,网络设备都被抽象为struct net_device结构体。它是网络设备硬件与上层协议之间联系的接口,了解它对编写网络驱动程序非常有益,所以本文将着手简要介绍linux-2.6.38.8/include/linux/netdevice.h文件中struct net_device结 阅读全文
posted @ 2019-10-11 15:14
Smah
阅读(3458)
评论(0)
推荐(0)
摘要:
https://www.kernel.org/doc/html/v4.15/translations/zh_CN/coding-style.html 1.缩进 制表符是 8 个字符,所以缩进也是 8 个字符。 如果你需要 3 级以上的缩进,不管用 何种方式你的代码已经有问题了,应该修正你的程序。 不 阅读全文
posted @ 2019-10-11 11:57
Smah
阅读(634)
评论(0)
推荐(0)
摘要:
atomic_inc(&v)对变量v用锁定总线的单指令进行不可分解的"原子"级增量操作,避免v的值由于中断或多处理器同时操作造成不确定状态。 原子操作 所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用 阅读全文
posted @ 2019-10-11 10:53
Smah
阅读(6088)
评论(0)
推荐(0)
摘要:
Source Insight基本使用和快捷键 为什么要用Source Insight呢?貌似是因为比完整的IDE要更快一些,比较利于查看大量的代码。 软件的安装很简单,设置好安装目录。 配置好文档路径,当然这个也可以在Options里面改,选Options->Preferences…里面的Folde 阅读全文
posted @ 2019-10-11 09:43
Smah
阅读(9264)
评论(0)
推荐(1)

浙公网安备 33010602011771号