0%

0x00 背景

在写CMU15445project 0时,报了一大堆内存泄漏的错误。经过排查,发现是shared_ptr互相引用导致的,所以这里进行一个简单的说明。

阅读全文 »

0x00 背景介绍

多个线程访问同一个互斥资源的时候,需要保证数据的正确性,其中一个方案就是加锁。spinlock(自旋锁)尽可能的减少线程的阻塞,这对于锁的竞争不激烈,且占用锁时间非常短的代码块来说性能能大幅度的提升,因为自旋的消耗会小于线程阻塞挂起再唤醒的操作的消耗,这些操作会导致线程发生两次上下文切换!

但是如果锁的竞争激烈,或者持有锁的线程需要长时间占用锁执行同步块,这时候就不适合使用自旋锁了,因为自旋锁在获取锁前一直都是占用 cpu 做无用功,同时有大量线程在竞争一个锁,会导致获取锁的时间很长,线程自旋的消耗大于线程阻塞挂起操作的消耗,其它需要 cpu 的线程又不能获取到 cpu,造成 cpu 的浪费。所以这种情况下我们要关闭自旋锁。

阅读全文 »

端口约定

Taas使用ZeroMQ进行数据的传输,以下是Taas中所使用到的端口:

  • 5551:Client通过该端口将事务发送给Taas节点
  • 5552:Taas将事务的执行结果返回给Client
  • 5556:Taas将日志(或者叫需持久化的数据)发送给MOT

OpenGauss初始化

gs_initdb可以对一个已存在的空白目录初始化,使其成为openGauss的数据目录。

1
gs_initdb -D /tmp/data --nodename=node1_nodename

要使用MOT的话,需要:

1
alter system set enable_incremental_checkpoint='off';

启动系统:

1
2
3
gaussdb -D /tmp/data
gs_om -t start
gs_ctl

引言

为了让服务器上的别人不看我的代码,就决定对文件进行打包,然后对压缩包进行加密。

阅读全文 »

引言

通过mmap,能将file的一段内容映射到一段虚拟地址上,我们就可以在这个虚拟地址上对文件进行更改,操作系统会自动将脏数据刷回到磁盘上。

阅读全文 »

file

file能够查看文件的类型

1
2
3
4
singheart@FX504GE:~/Project/assembly$ file libadd.so 
libadd.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4f628c334595143b6f98886acebd9f8df5a964fa, not stripped
singheart@FX504GE:~/Project/assembly$ file a.o
a.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
阅读全文 »

转载自https://blog.csdn.net/gao_zhennan/article/details/120717424#t8

0x01 浮点数在内存中的存储方式

1、什么是IEEE754标准

我们知道, 计算机内部实际上只能存储或识别二进制.

在计算机中, 我们日常所使用的文档, 图片, 数字等, 在储存时, 实际上都要以二进制的形式存放在内存或硬盘中, 内存或硬盘就好像是一个被划分为许多小格子的容器, 其中每个小格子都只能盛放0或1...

img
阅读全文 »

0x00 引言

最近看论文看到使用SIMD指令加速,从指令集到AT&T汇编再到linux系统调用一路折腾,这里就做一个小小的记录。

阅读全文 »