- 博客(35)
- 收藏
- 关注
原创 系统移植 & 字符设备驱动开发
注释:各个文件的功能解析- bin:命令文件(通过busybox工具制作)- dev:设备文件(被操作系统识别的设备才有对应的文件,即设备运行时)- etc:配置文件(配置内核相关的一些信息)- lib:库文件,比如C的标准库(从交叉编译工具链中复制的)- linuxrc:根文件系统被挂载后运行的第一个程序(通过busybox工具制作)- mnt:共享目录(非必要),比如挂载SD卡等时将SD卡挂载在该目录- proc:与进程相关的文件(当有进程运行时才会有文件)
2023-11-18 16:43:06
186
1
原创 7.【进程间 通信方式】
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信机制。26)SIGALRM:闹钟信号,alarm函数设置定时,当到设定的时间时,内核会向进程发送此信号结束进程。1)只写方式,写阻塞,一直到另一个进程把读打开。2)只读方式,读阻塞,一直到另一个进程把写打开。3)当管道中无数据,关闭写端,读立即返回。
2023-09-09 21:44:16
98
原创 6.【多线程 任务同步】
当有一个线程 在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态。是指两个或两个以上的进程/线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。5. 互斥量本质上是一把锁,加锁后 其他 试图加锁的线程 将被阻塞,直到 当前线程 释放锁。6. 如果多个线程 在释放互斥锁, 只有一个线程可以重新获取锁并继续推进,其他进程被阻塞。2. 每个临界资源都由一个互斥锁来保护。
2023-09-09 21:42:41
87
原创 5.【线程】
线程ID (TID)、PC(程序计数器)和相关寄存器、堆栈、错误号 (errno)、信号掩码和优先级、执行状态和属性。可执行的指令、静态数据、进程中打开的文件描述符、信号处理函数、当前工作目录、用户ID、用户组ID。都为操作系统提供了并发执行能力。
2023-09-09 21:41:33
38
原创 4.【进程】
为了避免僵尸进程的出现,父进程通常需要调用wait()、waitpid()或类似的系统调用来等待子进程的终止并回收子进程的终止状态。如果父进程没有等待子进程的终止,或者一直没有调用相应的回收函数,那么子进程就会一直处于僵尸状态,占用系统的进程表项资源,直到父进程退出或显式地回收子进程。所以,尽管操作系统会在子进程终止时回收一些资源,但父进程仍然需要调用相应的函数来回收子进程的终止状态,以避免僵尸进程的产生。(不同的进程打开相同的文件,操作的是不同的文件指针,虽然是指向同个文件,但是各操作各的)
2023-09-09 21:41:02
36
原创 3.【多个IO知识点】
通俗来讲就是将用户写好的程序打包成一个整体,当其他模块或用户使用时,只需要有这个库文件就可以了,不需要源代码文件。linux下默认两者最多:能打开多少个文件:1024(最多打开1024个文件描述符)-3(默认打开的文件描述符)=1021。(3) 添加/etc/ld.so.conf.d/*.conf文件。不同应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例。当加载动态库时,系统会默认从/lib或/usr/lib路径下查找库文件。lib是库的前缀,xxx库名 .so动态库的后缀。
2023-09-09 21:40:22
49
原创 2.【文件IO】【2-3天】
可读可写,文件不存在创建,存在清空O_RDWR|O_CREAT|O_TRUNC, 0666。3. 文件IO默认打开 三个文件描述符:0(标准输入),1(标准输 出),2(标准错误)系统中(posix)定义的一组用于输入输出的函数接口,属于低级IO。只写O_WRONLY|O_CREAT|O_TRUNC, 0666。1. 没有缓冲机制,每次调用都 会引起系统调用。进行操作,文件描述符是非负整数,依次分配。可读可写,文件不存在报错O_RDWR。可读可写,不存在创建、存在追加。只写,不存在创建、存在追加。
2023-09-09 21:39:41
40
原创 0.2【面试题可能】
1. 标准IO与文件IO的区别?2. 动态库与静态库区别?3. 什么是孤儿进程?僵尸进程?4. 什么是守护进程?守护进程创建步骤?5. 进程与线程的区别6. 线程的同步?互斥?7. 实现同步机制的几种方式?8. 进程间通信方式?9. 无名管道有名管道区别10. 共享内存、信号灯集、消息队列步骤?函数?
2023-09-09 21:38:14
29
原创 0.1【练习题 + 其他知识点】
通过父子进程完成对文件的拷贝(cp),父进程从文件开始到文件的一半开始拷贝,子进程从文件的一半到文件末尾。信号灯集和消息队列,都有创建返回ID为0而不能正常使用的问题,是系统导致的。例:head -3 test.c -> ./a.out -3 test.c。4. 计算当前时间,转换成年月日、时分秒,time,localtime。1. 打开文件fopen,以a+的形式打开,循环往文件写内容。的基础上升级,能够以集合的形式,操作多个单体信号量。指的是:系统进程和应用进程等,进程之间通知的信号。
2023-09-09 21:37:39
1207
原创 4.2【二叉树】
指向左子结点的指针(Lchild结点存储的数据指向右子结点的指针(Rchildint data;// 数据域// 左子指针// 右子指针} BTN, *BT;
2023-09-06 11:39:40
73
1
原创 3.3.2【链式队列 有头单向链表】
/ 定义 链式队列 结点结构体} LLN, *LL;// 定义 操作 链式队列 的结构体LL front;// 队头结点指针(LLN * front)(struct LinkListNode *)LL rear;// 队尾结点指针} LQ;
2023-09-06 11:38:09
118
1
原创 3.2.2【链式栈 无头单向链表】
思路:栈针top 永远指向无头单向链表的 第一个结点,即栈顶。栈空,则指向NULL新结点,总链接到栈顶结点之上,成为新栈顶。
2023-09-06 11:36:57
130
1
原创 3.2.1【顺序栈】
/ 指向 栈 的存储位置int maxlen;// 保存 栈 的 最大 长度int top;// top始终代表 当前栈内最后一个有效元素 的下标(在心里当成last用)} SS;data:存放用malloc所开辟空间 的的首地址;而不是整个数组,这样结构体占用的空间就会变小。maxlen:用maxlen去malloc指定长度的 顺序地址长度空间,即堆区的数组。
2023-09-04 15:05:55
58
1
原创 3.1.4【约瑟夫问题:无头单向循环链表】
从1号开始,数5个数,数完5个数,5号被杀死,第一轮报数后,剩余人数如下。假设n=6总共6人,k=1从第一个人开始,m=5,每次从1数到5。的人出列,依次类推,最后剩下一个为猴王。从6开始报号1,然后4出局,下个人为6。个人围坐一圈,约定编号为。
2023-09-04 15:03:22
32
1
原创 3.1.3【有头 双向(不循环)链表】
思路类似链式队列,需要 头head和 尾tail两个指针。头指针 指向 头结点,尾指针 指向 末个 有效结点。//数据域//前驱指针域//后驱指针域将头尾指针放到一个操作双向链表的结构体里DLL head;// 头指针DLL tail;// 尾指针int len;// 记录链表长度(比下标大1)} ODLL;指定位置插入、指定位置删除、修改指定位置;这三者移动指针的思路是相同的。运用有头,无头单向链表思路。
2023-09-04 15:02:37
48
1
原创 3.1.2【有头单向链表】
/数据域//指针域} LLN, *LL;LLNLLLLLLN *链表插入删除方便,顺序表插入删除需要移动元素。链表访问元素比较麻烦,需要遍历,顺序表查找方便因为内存连续,通过下标即可查找。顺序表长度固定,链表长度不固定。
2023-09-04 15:02:03
32
1
原创 3.1.1【顺序表】
注意:该结构体不是顺序表本身,而是为了方便操作顺序表而设计定长数组(即顺序的线性表)数组中,最后个有效元素的下标#define N 5 // 定长数组大小// 顺序表数据类型// 1. 定义用来操作顺序表的结构体// 定长数组int last;// 数组中最后一个有效元素的下标} SL;
2023-09-04 15:00:57
31
1
原创 2.2【算法与时间复杂度】
对于算法的时间效率的计算,通常是抛开与计算机硬件、软件有关的因素,仅考虑实现该算法的高级语言程序。对于一个算法的复杂性分析:主要是对算法效率的分析,包括衡量其运行速度的时间效率,以及其运行时所需要占用的空间大小。算法的时间复杂度是一个函数,它定性描述该算法的运行时间,时间复杂度常用 O 表述,它衡量着一个程序的好坏,时间复杂度的估算是算法题的重中之重。
2023-09-04 15:00:25
32
1
原创 2.1【概念】
通过构造相应散列函数,由散列函数的值来确定 数据元素/结点 存放的地址(即关键字和地址存在映射关系)。:描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。:数据元素是组成 数据 且有一定意义的基本单位,在计算机中通常作为整体处理。顺存储结构就像排队,大家都按照顺序排好,每个人占一小段空间,逻辑上谁也不能插队。查找一个人的电弧就可以先查索引表,再查相应的数据文件,加快了查询速度。这样的存储形式,称为顺序存储结构。来表示,由此得到的存储表示成为链式存储结构。
2023-09-04 14:59:43
22
1
原创 HTML课程作业设计:注册登录跳转+家乡介绍
少说废话:写于大三结束前夕,本内容目的是 为初学WebH5的大学生提供基础帮助的参考,其中内容是我这次课程设计的内容,全是基础部分,但个人感觉基础扎实,才是技术进步的基石。
2023-09-04 14:39:14
69
1
原创 安卓课程作业:本地单词本、本地音乐播放器、计算器
少说废话:写于大三结束前夕,本内容目的是 为初学安卓的大学生提供基础帮助的参考,其中内容是我这次课程设计的内容,全是基础部分,但个人感觉基础扎实,才是技术进步的基石。
2023-09-04 14:37:12
35
1
原创 大三下华清实训
嵌入式 = 硬件 + 软件硬件嵌入:嵌入芯片(让硬件具备运算能力)软件嵌入:嵌入程序或算法(让对硬件的控制更加便捷)嵌入式是以应用中心,以计算机技术为基础,软硬件结合可裁剪,对功能、体积、功耗和成本有严格要求的计算机系统。常用操作:选中Terminal终端,CtrlShift=为放大字体;Ctrl-为缩小字体;CtrlL清屏;根目录和家目录的关系:MQTT协议:MessageQueuingTelemetryTransport [消息队列遥测传输协议]
2023-09-04 14:33:15
152
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人