- 博客(27)
- 收藏
- 关注
原创 系统启动流程分析
本文分析了PC机和嵌入式设备的启动流程。PC机启动依次经过BIOS硬件初始化、引导程序加载操作系统、操作系统管理资源、挂载文件系统等过程,介绍了GRUB、UEFI等引导程序的特点。嵌入式设备启动流程包括iROM代码初始化、Bootloader两阶段运行、操作系统加载等步骤。同时概述了Android系统架构,包括Linux内核、硬件抽象层、运行时环境、应用框架和系统应用等层次的功能特点。通过对比揭示了不同设备启动机制的共性与差异。
2025-07-16 20:10:37
696
原创 QT的事件处理
Qt平台中的事件处理机制是GUI应用程序的核心,涉及事件的生成、入队、分发和处理。事件可以是用户界面事件、系统事件或自定义事件,通过事件队列和事件轮询机制进行管理。开发者可以通过重写事件处理函数或使用事件过滤器来定制事件处理逻辑。
2025-05-19 16:39:25
923
原创 QT-1.信号与槽
信号与槽机制是Qt框架中的核心通信机制,用于实现对象间的数据交互和事件处理。信号是在特定事件发生时由对象发出的,而槽是响应这些信号的函数。信号与槽的连接是松耦合的,通过Qt的元对象系统实现。信号和槽的定义分别使用signals和slots关键字,信号只能声明不能定义,槽则是普通的C++成员函数。信号与槽的连接可以通过QObject::connect函数手动连接,或在UI文件中自动连接。连接类型包括自动连接、直接连接、排队连接等,且一个信号可以连接多个槽,多个信号也可以连接同一个槽。自定义信号与槽的类必须继承
2025-05-14 16:35:54
920
原创 linux-线程多路复用IO
由内核负责监控文件描述符是否可以进行读写,一旦可以读写,则通知相应的进程进行相应的。超时之后,表示没有就绪的文件描述符,此时文件描述符集合被赋值为空。函数监控标准输入,如果有输入,则打印相应的信息。之后,文件描述符集合中没有任何就绪的文件描述符,单进程可以处理,但是需要不断检测客户端是否发出。如果想继续使用超时时间,需要备份之前的。函数修改,表示超时时间已经使用完。缺点:客户端越多,需要创建的进程。线程越多,相对占用内存资源较多。请求,一般只有阻塞与非阻塞。在实现时主要是以调用。操作文件描述符集合函数。
2025-03-22 10:42:00
346
原创 linux-阻塞IO与非阻塞IO
的本质是基于操作系统接口来控制底层的硬件之间数据传输,并且在操作系统中实现了多种不同的。函数来进行设置,一般在打开文件时就需要设置。方式(模型),比较常见的有下列三种。,资源就绪后唤醒进程继续执行。特点:会一直等待,直到数据就绪。示例代码:从标准输入读取数据。标志,设置有两种方式。将标准输入设置为非阻塞。
2024-09-30 20:39:15
358
原创 linux线程
条件变量状态改变时,一次唤醒多个线程,但是被其他线程先消费完产品,等到当前线程执行时,一个线程实际等待它之前,也就是说线程还没有完全进入到睡眠状态,其他线程发送唤醒信号。允许一个线程就某个共享变量的状态变化通知其他线程,并让其他线程等待这一通知。当仓库已经装满产品时,则生产者线程需要等待,直到消费者线程消费产品之后。获取锁,一旦获取成功,则获取临界资源的访问资格,否则会阻塞当前线程。当仓库没有产品时,则消费者线程需要等待,直到有产品时才能消费。类型的变量,其他线程可以阻塞在这个条件变量上,或者唤醒阻塞。
2024-09-30 20:24:04
944
原创 linux-线程
线程是操作系统调度的最小单元,有自己的栈空间,可以按照既定的代码逐步的执行,但是如果每个线。所以在现实中,我们需要这些线程间可以按照指定的规则共同。线程通信就是当多个线程共同操作共享的资源时,互相告知自己的状态以避免资源争夺。完成一件任务,所以这些线程之间就需要互相协调,这个过程被称为线程的通信。创建多个线程时,一般由主线程统一创建,并等待释放资源或者分离线程。多个线程如果任务相同,则可以使用同一个线程执行函数。多个线程如果任务不同,则可以使用不同的线程执行函数。在子线程将需要返回的值存储在。
2024-09-30 19:40:57
594
原创 linux 线程
可结合的线程能够被其他线程收回其资源和杀死;线程是进程中的⼀个执行单元,负责当前进程中程序的执行,⼀个进程中至少有⼀个线程。一旦子线程创建成功,则会被独立调度执行,并且与其他线程。线程创建的默认状态为可结合的,可以由其他线程调用。函数时,进程不会结束,也不会导致其他子线程退出。例代码:创建一个子线程,主线程等待子线程退出。示例代码:创建一个线程,并设置线程为可分离状态。命令查看某一个进程下的线程,需要用到。,也可以查看一个进程下的线程。命令查看某一个进程下的线程。命令查看某一个进程下的线程。
2024-09-30 18:06:29
776
原创 进程间的通信-消息队列、共享内存
共享内存是将分配的物理空间直接映射到进程的用户虚拟地址空间中,减少数据在内核空间缓存。消息队列就是一个消息的列表,进程可以在消息队列中添加消息和的读取消息。的特性,具有无名管道与有名管道各自的优势,共享内存是一种效率较高的进程间通讯的方式。示例代码:创建一个共享内存后,输出共享内存。示例代码:创建共享内存,并进行共享内存映射。例代码:创建一个消息队列,并打印消息队列。对象都有一个唯一的 键,可以通过。是由内核维护的若干个对象,通过。示例代码:创建一个共享内存。消息队列标志,默认可以填。
2024-09-30 17:25:49
848
原创 进程的创建、多任务及退出
总结:并行是基于硬件完成,而并发则可以使用软件算法来完成,可以创建多个进程并发执行来完成任务。为了提高计算机执行任务的效率,一般采用的解决方案就是能够让多个任务同时进行,可以使用。如果父进程在子进程打印之前结束,则会回到终端命令后继续执行子进程;每个进程都会维护一个文件表项,即文件描述符与文件指针的映射表。,能够使进程停止运行,并释放空间以及销毁内核中的各种数据结构。打印语句在父进程结束之前执行,则会在回到终端命令前执行完毕。如果父子进程执行相同的任务,则正常执行。如果父子进程执行不同的任务,则需要利用。
2024-09-29 22:29:17
1114
1
原创 linux进程的相关命令
时间的百分比(大部分进程都运行在用户态,通常都是希望用户空间。的缩写,进程用户态的优先级,如果调整过优先级,那。系统负载,即任务队列的平均长度。软中断时间百分比(软中断是由程序发出的中断 )命令是用于结束进程的命令或者用于显示相关信号。通常这个值越低越好)命令是将所有的进程以树型结构的方式进行展示。值,负值表示高优先级,正值表示低优先级。时间,如果系统中没有进程被调整过。进程的优先级,越小优先级越高。进程使用的虚拟内存,单位是。的处理速度是很快的,磁盘。进程使用的物理内存,单位。进程使用的共享内存,单位。
2024-09-29 21:01:55
1221
原创 进程间的通信-信号
信号是在软件层面上是一种通知机制,对中断机制的一种模拟,是一种异步通信方式。注意:进程在运行过程中,随时可能被各种信号打断。进程可以忽略或者去调用相应的函数去处理信号。进程无法预测信号到达的精准时间。
2024-09-29 20:40:17
1011
原创 【Linux 进程】进程的状态管理
一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程。进程状态即体现一个进程的生命 状态。进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。在三态模型 中,进程状态分为三个基本状态,即运行态,就绪态,阻塞态。在五态模型中,进程分为新建态、终止 态,运行态,就绪态,阻塞态。
2024-09-29 17:14:42
1067
原创 【linux 进程】
进程描述是一个程序执行过程。当程序执行后,执行过程开始,则进程产生;执行过程结束,则进程也 就结束。下面是 windows 系统中,所有的进程,即正在执行的程序,一旦结束进程,就意味着程序结束。
2024-08-01 16:55:11
865
原创 ubuntu软件安装命令详解
我们常常使用的软件包管理工具有两种,一种叫做dpkg软件包管理工具,它是”debian package”的简写,是Debian软件包管理器的基础。但是由于当时Linux系统规模和网络条件的限制,我们使用dpkg安装软件包的时候需要考虑软件包之间的依赖关系。总之,dpkg是一个底层的软件包管理系统,主要用于对已下载到本地和已安装的软件包进行管理。3. 下载软件包存放的路径我们在windos上下载软件的时候,一般是会把.exe的安装包下载到一个指定的路径,然后双击它进行安装。我们的ubuntu也是一样的。
2024-07-20 19:27:25
748
原创 C语言--结构体
在现实生活中,对具体对象进行描述的时候,发现是比较复杂的,对象一般是由不同的类型组合在一起。例如:描述一个人的时候,习惯性会描述他的姓名,年龄,联系方式等。这些不同类型的数据互相联系在一起,就组成了一个有机的整体。在C语言中,如果想表示这个有机的整体,就要用到一种新的数据类型——结构体是一些值的集合,这些值称为成员变量。结构体的每个成员可以是不同类型的变量。结构体成员可以是普通变量,数组,指针,甚至是其它的结构体。在结构体中包含一个类型为该结构体本身的成员是否可以?在声明结构体的时候,可以不完全声明。
2024-07-19 09:00:30
357
原创 C语言——宏定义,宏函数
ifndef 宏名代码块#endif功能:若宏没有定义,则执行代码块#ifndef 宏名代码块1#else代码块2#endif功能:若宏没有定义,则执行代码块1,否则执行代码块2注意:条件编译在多文件编程中经常会用到多文件编程一、extern关键字ˈekstɜːn/外面的,外部的功能:声明变量或函数是来源于其它文件的全局变量或全局函数使用方法extern数据类型 全局变量名;extern返回值类型 函数名数据类型 参数1,数据类型 参数2......)
2024-07-18 15:53:40
1187
原创 C语言-函数初识
函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码。开发效率低,我们每个人都在重复的造论子,你写一个,他也写一个,别人再写一个。第三个就是不标准,你写的他写的都是同一功能,但是这个实现方法可能不一样。块组成,他负责完成某项特定的任务,而且相较于其他的代码,具备相对的独立性。【口语化解释】函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加。但是不一样的是这些都是我们自己来设计,这给了程序员一个很大的发挥空间。写的都是类似的功能,开发效率当然低了。
2024-06-30 08:59:55
444
原创 C语言——数组(一)
规则是先声明再使用数组也是一个变量,只不过是一个可以保存多个相同类型值的变量数据类型 变量君=表达式;方式二:可以在声明数组变量时同时进行初始化int arr[]={1,2,3,4,5,6,8,9,10};方式一:可以在声明数组变量时同时进行初始化,值与值之间用,分隔int arr[10]={1,2,3,4,5,6,7,8,9,10};可以通过别名来获取,敬组中每个值也有别名,为了方便获取数组的值,对数组中的内容进行编号,从0开始。别名 arr[o],arr[1],arr[2],arr[3],arr[4]
2024-06-12 15:29:03
255
原创 C语言 转换类型
算术右移:低位丢弃,高位补符号位(右移1位,相当与除2);&& 逻辑与:规则:全真则真,有假则假,且若表达式1为假则不会执行表达式2。含义 : 条件表达式成立,整个表达式的值是表达式1,不成立为表达式2;~ 功能 :按位取反 规则:1变0,0变1(与符号位无关);:逻辑非:规则: 将假的变为真的,将真的变为假的;^ 功能 :按位异或 规则 :相同为0,不同为1;|| 逻辑或 :规则 : 有真则真,全假则假;| 功能 :按位或 规则:有1则1,全0则0;& 功能:按位与 规则:全1则1,有0则0;
2024-06-08 08:54:29
311
原创 C语言--强制类型转换
一、含义 强转类型: 采用某种方式将某种数据类型强制转换为我们需要的数据类型.注:强转只是临时强转,本身的数据类型没有改变。三、隐式转换 若运算符两边的类型不匹配,并且没有进行显示指定类型。
2024-06-05 18:10:59
376
原创 C语言--变量
含义在实际编程和生活中,某些数据并不是一成不变的,而是根据实际的需求,可以时时改变,这样变量就应运而生。数据可以变化的量,我们叫做变量。声明变量的本质示例代码运行结果:sizeof运算符功能:计算不同数据类型的变量在内存中所分配的空间格式:sizeof(变量名)或sizeof(数据类型)注意:sizeof运算符的计算结果为size_t。运算符功能:计算不同数据类型的变量在内存中所分配的空间格式:sizeof(变量名)或sizeof(数据类型)注意:sizeof运算符的计算结果为size_t类型三、
2024-06-05 18:05:50
282
原创 C语言入门
功能: 向屏幕上输出双引号中的内容,""中字符串原样输出,格式控制串会被后面的参数给替换掉,参数的个数由格式控制串的个数来决定。例如:100,200,9,3....等等为整型常量;字符串常量都以""引起来,等价于多个字符的结合 + '\0’,其中'\0'叫做字符串结尾标识。功能:用宏名来代替某些常量数据,在某些特殊的场合可以提高程序的可读性。printf("字符串 + 格式控制串",参数1,参数2,...);则结果为120,因为 10+10*10+10=120.还有字符常量:'A','a'....
2024-05-29 14:32:48
167
原创 关于Ubuntu
9)创建vim所用文件:vim + 文件名.c,按下回车进入编辑器界面,点击键盘字母“i”进入插入模式(这样就可以进行c语言代码编写了),结束编写并保存退出时先点击Esc,后输入":wq",也可输入":wq!10)运行所编辑代码:gcc + 文件名.c(如果出现报错则说明所编写代码有错误),然后输入./a.out,即可运行;3)放大终端界面:ctrl+shift+"+", 缩小:shift+"-";6)删除文件或目录:rm,当想强制删除文件或目录时输入rm"这里打一个空格"-rf(rm -rf);
2024-05-28 14:21:08
174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人