厦门seo公司网站,桂城网站制作,专业app开发,湛江网站seo推广12、并发和并行的区别#xff1f; 最本质的区别就是#xff1a;并发是轮流处理多个任务#xff0c;并行是同时处理多个任务。 你吃饭吃到一半#xff0c;电话来了#xff0c;你一直到吃完了以后才去接#xff0c;这就说明你不支持并发也不支持并行。
你吃饭吃到一半 最本质的区别就是并发是轮流处理多个任务并行是同时处理多个任务。 你吃饭吃到一半电话来了你一直到吃完了以后才去接这就说明你不支持并发也不支持并行。
你吃饭吃到一半电话来了你停了下来接了电话接完后继续吃饭这说明你支持并发。 不一定是同时的
你吃饭吃到一半电话来了你一边打电话一边吃饭这说明你支持并行。
并发的关键是你有处理多个任务的能力不一定要同时。
并行的关键是你有同时处理多个任务的能力。
所以我认为它们最关键的点就是是否是『同时』。
并发是轮流处理多个任务并行是同时处理多个任务 原文链接https://blog.csdn.net/weixin_30363263/article/details/80732156
1、const 含义 只读 问题const char* name “hello word”是否可以改变name里存放的字符串 不可以指针指向常量内容不可变指针可以变。 const char *p; //*p是const,p可变
const (char *) p;//p是const,*p可变
char* const p; //p是const,*p可变
const char* const p; //p和*p都是const
char const * p;// *p是const,p可变
(char*) const p;//p是const,*p可变
char* const p;// p是const,*p可变
2、C语言中strlen和sizeof的区别 1.strlen是一个库函数使用时需要引用#includestring.h这个头文件而sizeof是一个运算符号
2.strlen计算的是’\0’之前的字符个数sizefo计算的是所占空间内存的大小单位是字节
3.strlen计算时不包含’\0’而sizeof包含’\0’;
4.strlen遇到’\0’才结束
5.sizeof的类型是unsigned int 是一个无符号的整型
6.strlen只能用char做参数sizeof可以用类型做参数
3、ioctl如何确保命令的唯一性 ioctl 用户与驱动之间的协议
前文提到 ioctl 方法第二个参数 cmd 为用户与驱动的 “协议”理论上可以为任意 int 型数据可以为 0、1、2、3……但是为了确保该 “协议” 的唯一性ioctl 命令应该使用更科学严谨的方法赋值在linux中提供了一种 ioctl 命令的统一格式将 32 位 int 型数据划分为四个位段如下图所示
// include/uapi/asm-generic/ioctl.h
#define _IOC(dir,type,nr,size) (((dir) _IOC_DIRSHIFT) | ((type) _IOC_TYPESHIFT) | ((nr) _IOC_NRSHIFT) | ((size) _IOC_SIZESHIFT)) dirdirectionioctl 命令访问模式数据传输方向占据 2 bit可以为 _IOC_NONE、_IOC_READ、_IOC_WRITE、_IOC_READ | _IOC_WRITE分别指示了四种访问模式无数据、读数据、写数据、读写数据 typedevice type设备类型占据 8 bit在一些文献中翻译为 “幻数” 或者 “魔数”可以为任意 char 型字符例如 ‘a’、’b’、’c’ 等等其主要作用是使 ioctl 命令有唯一的设备标识 nrnumber命令编号/序数占据 8 bit可以为任意 unsigned char 型数据取值范围 0~255如果定义了多个 ioctl 命令通常从 0 开始编号递增 size涉及到 ioctl 函数 第三个参数 arg 占据 13bit 或者 14bit体系相关arm 架构一般为 14 位指定了 arg 的数据类型及长度如果在驱动的 ioctl 实现中不检查通常可以忽略该参数
4、copy_from_user 返回值含义 copy_from_user失败返回没有被拷贝的字节数成功返回0.
5、linux设备驱动注册流程
驱动程序入口 module_init (at6600efb_init)模块初始化 platform_driver_register(at6600efb_platform_driver);驱动程序注册 platfrom_driver_register() 是在设备注册时进行绑定的.以USB为例:先插上USB设备并挂到总线上,然后在安装USB设备驱动的过程中从总线上遍历各个设备,看是否有与驱动相匹配的设备,如果有,则两者绑定,就是platfrom_driver_register()
platfrom_device_register() 是在驱动注册时进行绑定的.以USB为例:先安装USB驱动程序,然后当USB设备插入时,就遍历总线上各个驱动,看两者是否匹配,如果相配则绑定,这就是platfrom_device_register()
6、platform目录在哪里 /sys/bus/platform/drivers
7、问用宏定义一年有多少秒忽略闰年 答
#define SECONDS_PER_YEAR 60 * 60 * 24 * 365UL //加UL是为了防止溢出
8、IPC摄像头含义 internet protocol camera
9、vmalloc 和 kmalloc区别 .kmalloc分配的页在物理地址上是连续的虚拟地址自然也是连续的
vmalloc只确保页在虚拟地址空间内是连续的。它通过非连续的物理内存块再“修正”页表把内存映射到逻辑地址空间是连续的区域内。
10、单精度和双精度 单精度是这样的格式1位符号8位指数23位小数。 单精度和双精度精确的范围不一样单精度也即float一般在计算机中存储占用4字节也32位有效位数为7位 双精度是1位符号11位指数52位小数。 双精度double在计算机中存储占用8字节64位有效位数为16位。
11、cache作用 Cache可以大大提高CPU访问主存的速度中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替能极大缓和中央处理器和主存储器之间速度不匹配的矛盾。