1、背景知识 1.1、Linux内核 Linux内核的主要组件如图1所示,有系统调用接口、进程管理、内存管理、虚拟文件系统、网络堆栈、设备驱动程序、硬件架构的相关代码。 其中进程管理主要控制系统进程对CPU的访问。当需要某个进程运行时,由进程调度器根据基于优先级的调度算法启动新的进程。Linux上单 ...
分类:
系统相关 时间:
2021-01-30 12:20:06
阅读次数:
0
可重入函数 可重入函数:当前进程已经处于该函数中, 这时程序会允许当前进程的 某个执行流程再次进入该函数, 而不会引发问题。可重入函数一定是线程安全的,而线程安全函数则不一定是可重入函 数,很难说出哪些函数是可重入函数,但是可以很明显看出哪些函数是不可以重入的函数。例子:当函数使用锁的时候,尤其是互 ...
分类:
其他好文 时间:
2020-04-27 19:26:43
阅读次数:
55
在信号处理函数内若使用了不可重用函数,有概率导致进程死锁状态。 ...
分类:
系统相关 时间:
2019-12-12 13:07:21
阅读次数:
261
可重入,线程安全和异步信号安全POSIX定义: Reentrant Function A function whose effect, when called by two or more threads, is guaranteed to be as if the threads each exe ...
分类:
其他好文 时间:
2019-12-11 21:04:41
阅读次数:
100
进程捕捉到信号并对其进行处理时,进程正在执行的正常指令序列就会被信号处理程序临时中断,它首先执行该信号粗合理程序中的指令;如果从信号处理程序返回,则继续执行捕捉到信号时进程正在执行的正常指令序列; ps:如果了解驱动,上面这段信号打断流程与中断打断进程上下文很类似; 对于有些函数,是不可重入的,如果 ...
分类:
其他好文 时间:
2019-10-30 13:54:13
阅读次数:
102
1、opendir与readdir函数 (1)、opendir打开一个目录后得到一个DIR类型的的指针给readdir使用。 (2)、readdir函数调用一次后就会返回一个struct dirent类型的指针,这个指针指向一个结构体变量,这个结构体变量里面记录了一个目录项(所谓目录项就是目录中的一 ...
分类:
系统相关 时间:
2019-07-16 18:09:11
阅读次数:
156
个函数在被调用执行期间(尚未调用结束),由于某种时序又被重复调用,称之为“重入”。根据函数实现的方法可分为“可重入函数”和“不可重入函数”两种。看如下时序。 显然,insert函数是不可重入函数,重入调用,会导致意外结果呈现。究其原因,是该函数内部实现使用了全局变量。 注意事项 1. 定义可重入函数 ...
分类:
其他好文 时间:
2019-04-21 00:20:13
阅读次数:
113
一个函数在被调用执行期间(尚未调用结束),由于某种时序又被重复调用,称之为“重入”。根据函数实现的方法可分为“可重入函数”和“不可重入函数”两种。 注意事项 a) 使用静态数据结构 b) 调用了malloc或free c) 是标准I/O函数 ...
分类:
其他好文 时间:
2019-03-20 10:36:52
阅读次数:
181
一. 不可重入函数 1.1. 什么是不可重入函数 a. 在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果有一个函数不幸被设计成为不可重入这样:那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。这样的函数是不安全的函数,也叫不可重入函数。 1.2. ...
分类:
其他好文 时间:
2019-03-05 23:10:10
阅读次数:
208
可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据 ...
分类:
编程语言 时间:
2019-01-09 16:14:13
阅读次数:
222