原创 共享內存環形隊列shm_ring_queue(內存屏障)

內存屏障: https://blog.csdn.net/caoshangpa/article/details/78853919 讀內核代碼進一步學習 Memory Barrier 的使用。 Linux 內核實現的無鎖(只有一個讀線

原创 單進程:信號量+互斥鎖,實現[多生產者/多消費者]模型

單進程:信號量+互斥鎖,實現[多生產者/多消費者]模型 // 編譯方式: gcc main.c -o main -lpthread /** *@author guojawee *@date 2012/05/21

原创 Linux新定時器:timefd_

    timerfd是Linux爲用戶程序提供的一個定時器接口。這個接口基於文件描述符,通過文件描述符的可讀事件進行超時通知,所以能夠被用於select/poll的應用場景。 #include <sys/timerfd.h>

原创 異步AIO

direct-io與非direct-io性能對比:https://blog.csdn.net/wangzhiqing3/article/details/8608780 異步IO的思想 1.應用程序不能阻塞在昂貴的系統調用上讓CPU

原创 SCSI/iSCSI/RAID技術

關於存儲的一些專業術語 SCSI 用於DAS(直連存儲)     網絡間通信有TCP/IP協議棧,與其類似,主機訪問存儲設備,也有自己的協議棧,該協議棧就是SCSI。     SCSI:是主機與存儲部件(硬盤)之間傳輸業務數據的關

原创 STACK_WIND

STACK_WIND_COOKIE 在ec_open函數中,調用了STACK_WIND_COOKIE函數 作用: 1、爲ec xlator下層的vclnt xlator,新建一個frame 2、給vclnt frame賦值(包

原创 GlusterFS知識總結

glusterfs源碼框架分析: https://www.jianshu.com/p/699e9c17deff 經過大量的蒐集網上的素材,總結下文(寫的比較粗糙) 詳細講解 函數API GlusterFS Translator

原创 開發過程中的小知識總結

1.提高程序運行效率     將大量的內存開銷的操作,放在判斷之後 2.共享內存環形隊列,判斷空\滿\size 3.gettimeofday https://www.cnblogs.com/xiaojianliu/p/847746

原创 qemu/atomic.h 原子操作

https://github.com/Xilinx/qemu/blob/master/include/qemu/atomic.h

原创 Git安裝與Github的配置

目錄git下載鏈接配置git git下載鏈接 鏈接:https://pan.baidu.com/s/1Kvx783ceF0NlxRv8HBW5DQ 提取碼:1rxo 安裝過程十分簡單,直接下一步下一步,就ok 配置git 進入

原创 git cherry-pick: 將某次commit,合併到當前項目

實戰:將遠端倉庫的代碼code2,合併到code1 1、下載代碼code1     git clone code1.git     cd code1 創建/切換到新分支     git checkout -b slover   

原创 glusterfs變量

ec_readv、ec_writev ec_writev 爲什麼count==1? 它是上層應用決定的,看一下writev系統是怎麼定義的 offset、vector、size offset偏移 發數據,回來的時候會報錯寫入失敗,

原创 vs_system: 獲取sh的返回值

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> // 臨時數組長度 #define STRLEN 1024 // cm

原创 get_name_by_pid

#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <assert.h> #define TMP_BU

原创 記錄寫代碼時,粗心大意帶來的不良影響

1、寫好每個模塊後,要做以下工作 (1) 先打樁 (2) 寫單元測試 (3) 編譯的時候,一定要開啓預警錯誤選項Werror 2、頭文件.h中不要定義全局變量,全局變量應該定義在.c中,然後使用extern擴展到.h 3、宏定義