随笔分类 - Linux
摘要:简介 工作队列(workqueue)是一种转移任务执行环境的工具,当系统产生一个中断时,可以在中断处理函数里做一些紧急地操作,然后将另外一些不那么特别紧急,而且需要一定时间的任务封装成函数交给工作队列执行,这是函数的执行环境就从中断环境变成了线程环境,这就是Linux里经常提及的中断处理“下半部”。
阅读全文
摘要:一、Linux中对进程的表示 在Linux中,是用一个task_struct来实现Linux进程的(线程也同样使用task_struct来表示)。 task_struct定义在include/linux/sched.h //file:include/linux/sched.h struct task
阅读全文
摘要:1.线程的创建方法 创建线程具体调用pthread_create函数,这个函数实在glibc库中实现。在glibc中pthread_create的调用路径是__pthread_create_2_1->create_thread。其中create_thread很重要,它设置了创建线程时使用的各种fla
阅读全文
摘要:pthread简介 POSIX Threads简称Pthreads,此标准定义了一套C语言的类型,函数和常量。定义在pthread.h头文件和一个线程库里,大约有100多个API,可以分为4大类: 线程管理:包括线程创建(create),线程分离(detach),线程连接(join)及设置和查询线程
阅读全文
摘要:线程的基本元素 线程的常见的基本操作 线程的创建 线程的终止 线程之间的同步 线程的调度 线程当中的数据管理 线程与进程之间的交互 进程与线程之间共享一些内核数据结构 已经打开的文件描述符 当前工作目录 用户id和用户组id 全局数据段的数据 进程的代码 信号以信号处理函数 线程所独有的 线程的ID
阅读全文
摘要:为什么要有异步I/O 异步IO相比同步IO不会阻塞当前程序的执行,可以继续向下执行。即当应用程序发起一个IO操作后,调用者不会立刻得到结果,而是在内核完成IO操作后,通过信号或回调来通知调用者。 信号驱动I/O 信号驱动IO是异步IO的一种实现,在异步IO中,当文件描述符上可以执行I/O操作时,进程
阅读全文
摘要:什么是IO多路复用 什么是IO多路复用:单线程或单进程同时检测若干文件描述符是否可以执行IO操作的能力。 使用场景: 应用程序需要处理来自多条事件流中的事件,比如web服务器入nginx,需要同时处理来自N个客户端的事件。 逻辑控制流在时间上的重叠叫做并发。 传统方法是使用多线程或多进程来处理,但是
阅读全文
摘要:epoll原理与应用 介绍 epoll - I/O event notification facility 实现处理tcp请求,为一个连接对应一个线程,在高并发的场景,这种多线程模型于epoll相比就相形见绌了。epoll是linux2.6内核的一个新的系统调用,在设计之初,就是为了替代select
阅读全文
摘要:默认python版本替换 1.测试当前默认python版本 user@user-jwq# python Python 2.7.18 (default, Jul 1 2022, 12:27:04) [GCC 9.4.0] on linux2 Type "help", "copyright", "cre
阅读全文
摘要:在C语言中,函数库分为两种类型,一种是静态库(库程序是直接注入目标程序,不分彼此,库文件通常以.a结尾),另一种为动态库(库程序是在运行目标程序时加载,库文件通常以.so结尾)。 文件到可执行文件的编译过程: 静态库 VS 动态库 静态库特点: 静态库的代码在编译的过程中就已经载入可执行文件中,所以
阅读全文
摘要:# 一、信号的概念 ## 1.信号的基本概念 软中断信号(signal)用来通知进程发生了**异步事件**。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。信号只是用来通知进程发生了什么事件,并不给进程传递任何数据。 收到信号的进程
阅读全文
摘要:简介 根文件系统也叫roofs,它不同于FATFS、FAT和EXT4,更像是一个文件夹或者目录。根目录和子目录中会有很多的文件,这些文件时Linux运行所必须的,比如库、常用软件和命令、设备文件、配置文件等等。 根文件系统是linux内核启动以后mount的第一个文件系统,然后从根文件系统中读取初始
阅读全文
摘要:概述 V4L2(Video4Linux的缩写)是Linux下关于视频采集相关设备的驱动框架,为驱动和应用程序提供了一套统一的接口规范。 V4L2支持的设备十分广泛,但是其中只有很少一部分在本质上是真正的视频设备。 按照v4l2的标准,它会将一个数据流设备抽象成一个videoX节点,从属主设备都对应着
阅读全文
摘要:背景 最近需要开发一个测试程序,接受Tester端的测试指令,执行一条条外设的测试用例,执行完成后将测试数据的结果上报,上报方式未定,考虑到耦合和配套问题,决定采用共享内存机制,设计共享内存块,分为接受指令和数据上报两部分,主程序运行后就会一直轮询共享内存去等待指令,获取指令后执行对应的测试用例,执
阅读全文
摘要:操作系统虚拟内存 应用程序通过malloc函数申请内存的时候,实际申请的是虚拟内存,并不会分配物理内存 当应用程序读写了这块虚拟内存,CPU就会去访问这个虚拟内存,这时会发现虚拟内存没有映射到物理内存,CPU就会产生缺页中断,进程会从用户态切换到内存态,并将缺页中断交给内核的page Fault h
阅读全文

浙公网安备 33010602011771号