- 博客(20)
- 收藏
- 关注
原创 编译原理之指令选择
在一个中间表示树(抽象语法树)中,可以用一些树型来覆盖(每个机器指令可以对应一个或多个树型),当一个中间表示树被覆盖完之后,也就生成了与树型对应的指令。可以使用最大吞进算法,从根结点开始寻找合适的最大树型,然后根结点两边递归这个操作。瓦片:可以覆盖中间表示树的树型的集合,应该就是一个指令对应的树型吧。最佳覆盖(局部指标):不存在两个相邻的树型能够合成一个执行代价更小的树型。最优覆盖(全局指标):得到的指令序列的总执行时间最短。最大瓦片:覆盖语法树节点个数最多的瓦片。树型:可以覆盖中间表示树的一个片段。
2024-03-30 18:07:59
309
1
原创 OpenGL 介绍
OpenGL 是跨平台的API,一种spec,没有具体的实现,要想在显卡中运行该API,需要编写对应的驱动程序,这部分一般由显卡产商编写。老OpenGL和现代OpenGL的区别在于有无shaders,现代OpenGL有shaders,有shaders可以更好的控制GPU。C语言、c++、Java等语言是运行在CPU中的,shaders是运行在GPU中的,shaders是用openglsl语言写的。Direct3D 是专门用于windows平台上的API,这种API一般会比跨平台的API性能要好。
2023-05-25 14:20:20
302
原创 Linux 信号(三) —— 强大的sigaction
在Linux中,对于信号的收发有着两组函数1、入门版发送函数:int kill(pid_t pid, int sig); 接收函数:sighandler_t signal(int signum, sighandler_t handler);这组函数在之前的文章中已有讲解2、高级版 发送函数:int sigqueue(pid_t pid, int sig, const union sigval value); 接收函数:...
2021-08-08 19:20:02
1136
1
原创 Linux 信号(二)
一、可靠信号与不可靠信号信号分为可靠信号(1~31)和不可靠信号(34~64)不可靠信号主要有以下问题:(1)每次信号处理完之后,就会恢复成默认处理(早期的signal函数,但是在Linux2.6.35.6内核经验证已经不再恢复成默认处理了,也就是说这个问题只限于早期的Linux版本,现已不用考虑)(2)存在信号丢失的问题,进程收到的信号不做排队处理,相同的信号多次收到时可能会合并成一个。现在的Linux对信号机制进行了改进,因此,不可靠信号主要是指信号丢失。以上问题可以..
2021-08-08 03:37:06
323
转载 2021-08-05
Linux 信号转载自 C语言技术网 码农有道http://www.freecplus.net/eec5c39aa63b45ad946f1cc08134d9f9.html一、如何让程序在后台运行在之前的章节中,如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成,在程序运行的过程中,也可以用Ctrl+c中止它。在实际开发中,我们需要让程序在后台运行,没有界面,没有用户输入数据,例如socket服务端程序book250。如果想让程序在后台运行,有两种方法。1
2021-08-07 01:21:45
322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人