Linux内核
文章平均质量分 92
koko_TT
Show me the code.
展开
-
Linux线程池的原理及实现
01 为什么需要线程池首要明白两个地方:线程的创建需要内存资源线程的创建和销毁需要时间资源显而易见,由于以上两个原因,不得不寻找一个折衷的方式面对多任务的问题。如果我们只创建一定量的线程,且在一个线程执行完某一任务后,重复利用该线程去处理新的任务而不是直接销毁它,那么通过这两个策略我们就可以“朴素”的解决以上两个问题。线程池的初衷就是想搭建一个有一定数量线程,且可以重复利用这些线程处...原创 2019-07-18 15:30:14 · 2827 阅读 · 0 评论 -
Linux内核驱动“Hello World”
01 驱动组成的三大部分一个内核驱动主要分为三大部分:module_init()——入口编写初始化函数并将函数名传入入口函数初始化函数的格式为int __init func_name(void)即返回值为int型,参数类型为void,函数名前的__init表示将其加载到init段。module_exit()——出口编写驱动销毁函数并将函数名传入出口函数,释放资源。...原创 2019-07-19 21:09:56 · 273 阅读 · 0 评论 -
LINUX进程变量隔离 虚拟地址
01 虚拟地址Linux系统中,fork()函数创建的子进程,会忠实的将父进程的内存内容进行拷贝,尽管在fork()函数之前定义的变量在各自进程块中的虚拟地址相同,但是不同进程对其的操作是相互隔离的,而不管是fork()之前的全局变量、静态变量还是局部变量,都是如此。如果想使得两个进程操作同一块物理地址,可以使用共享内存的方式,也可以用内存映射(MMP)的方式。02 Show me the ...原创 2019-07-24 22:33:57 · 600 阅读 · 0 评论 -
Linux进程间互斥锁 (共享内存实现)
01 原理开辟一块共享内存,使得相关进程均可访问同一块区域,再将互斥锁定义在该区域(即共享内存)上,使得相关进程可以使用该锁。02 进程间的互斥锁和线程间互斥锁的区别函数pthread_mutex_init(互斥锁地址, 属性对象地址)在定义一把线程锁的时候第二个参数通常传为NULL,这样该锁默认只能被统一进程下的线程持有。如果要将其定义为进程之间可以持有的互斥锁,则需要传入属性对象地址。...原创 2019-07-24 22:58:44 · 12533 阅读 · 1 评论 -
Linux共享内存 封装
01 Show me the code#include <sys/shm.h>#include <unistd.h>#include <stdio.h>#include <assert.h>#include <stdlib.h>#include <sys/types.h>#include <sys/ipc....原创 2019-07-25 15:20:25 · 340 阅读 · 0 评论