04 2023 档案

摘要:进程 进程,描述的是程序的执行过程,是运行着程序的代表,在操作系统中,每个进程的内存空间都是独立的,使用多进程并发有两个缺点:一是内核的管理成本高,而是无法简单地通过内存同步数据(进程运行的虚拟内存空间),很不方便,于是多线程模式就出现了。 线程 线程是操作系统能够运行运算调度的最小单位。它被包含在 阅读全文
posted @ 2023-04-29 12:25 Emma1111 阅读(97) 评论(0) 推荐(0) 编辑
摘要:mmap简介 mmap是零拷贝技术的一种实现 使用系统调用读写文件 修改一个文件的内容需要三个步骤: 1.把文件内容(File)读入内存中(page cache) 2.修改内存中的内容(在用户空间) 3.把修改后用户空间的数据写入page cache,再同步到File中 使用如下代码实现上面过程: 阅读全文
posted @ 2023-04-26 22:10 Emma1111 阅读(497) 评论(0) 推荐(0) 编辑
摘要:框架分析 框架可以分为两部分看:控制流+数据流,之前已经大概的描述了控制流,数据流部分就是video buffer,V4l2 buffer的管理是通过videobuf2来完成的,它充当于用户空间和驱动空间之间的中间层,并提供模块化的内存管理功能。 上图大体包含了videobuf2的框架 1.vb2_ 阅读全文
posted @ 2023-04-23 21:25 Emma1111 阅读(676) 评论(0) 推荐(0) 编辑
摘要:valgrind工具安装 Valgrind是一套Linux下的仿真调试工具工具的集合。由内核core以及基于内核的其他调试工具组成。内核类似与一个框架(framework),它模拟了一个CPU环境并提供服务给其他工具,而其他公户类似于插件(plug-in),利用内核提供各种特定的内存调试任务。val 阅读全文
posted @ 2023-04-18 22:01 Emma1111 阅读(712) 评论(0) 推荐(0) 编辑
摘要:Linux进程管理包括进程调度,中断处理,信号,进程优先级,进程切换,进程状态,进程内存等等。 什么是进程 进程是在处理器上执行的一个实例,进程可使用任意资源以便Linux内核可以处理完成它的任务。在Linux上运行的所有进程都是通过task_struct结构来管理的,被称为进程描述符。一个进程描述 阅读全文
posted @ 2023-04-04 22:36 Emma1111 阅读(136) 评论(0) 推荐(0) 编辑
摘要:简介 V4L2是Video for linux2的简称,是Linux中关于视频设备的内核驱动框架。 常用结构体: 定义在include/linux/videodev2.h struct v4l2_requestbuffers // 申请帧缓冲,对应命令VIDIOC_REQBUFS struct v4 阅读全文
posted @ 2023-04-01 20:24 Emma1111 阅读(2777) 评论(0) 推荐(0) 编辑