原创 int指令

int指令的格式爲:int n(n爲類型中斷碼)它的功能是引發中斷過程。 CPU執行int 指令,相當於引發一個n號中斷的中段過程,執行過程如下: (1)取中斷類型碼n; (2)標誌寄存器入棧,IF=0,TF=0; (3)CS,

原创 Hash_node_pseudo類

FDB_Hash_node.h 類的聲明與作用 哈希數據結構的結點類; 用於保存哈希的每一個結點(鍵值對); 類開發的必要性,唯一性 和已存在的功能類似的類相比較 類中各函數的複雜度,可能瓶頸 Hash_node_pseudo(c

原创 實現自己的字符串類String

原因 因爲string預分配與SDS上比較有些不足,所以重新封裝了自己的字符串類String。 類的名稱(編號) FDB_String.h FDB_String.h 類的聲明與作用 FDB中的字符串類。 類開發的必要性,唯一性

原创 unix網絡編程 select函數和shutdown函數

select函數 select函數允許進程指示內核等待多個事件中的任何一個發生,並只在有一個或多個事件發生或多個事件發生或經歷一段指定的時間 去喚醒它。 #include<sys/select.h> #include

原创 Hash_map()類

FDB_Hash_map.h 類的聲明與作用 哈希數據結構的真正實現的類 類開發的必要性,唯一性 向對於僞哈希,真正的哈希在數據量大的情況下可以更快的進行操作 類中各函數的複雜度,可能瓶頸 Hash_map();O(1) Has

原创 C++中string類和Redis中SDS的比較

Redis中SDS與C++中string類的比較 SDS (Simple Dynamic String,簡單動態字符串)是 Redis 底層所使用的字符串表示, 幾乎所有的 Redis 模塊中都用了 SDS。

原创 UNIX網絡編程 I/O模型

一個數入操作通常包括兩個不同的階段: (1)等待數據準備。 (2)從內核項進程複製數據。 對於一個套結字上的輸入操作,第一步通常涉及等待數據從網絡中到達。當所等待的數據從網絡中到達。當所等待分組到達時,它被複制到內核中的某個緩衝區。第二步

原创 打印super_block結構中的一些域的值

#include<linux/module.h> #include<linux/fs.h> #include<linux/init.h> #incl

原创 Glibc 內存管理知識點總結

這幾天在看Glibc 內存管理模塊的內容,感覺收穫頗多,在此做個簡單的總結,以便知識點回顧。 先介紹一下相關的背景。有個項目組在研發一個類似數據庫的NoSql 系統時,遇到了Glibc 內存暴增問題。據此,在經過一系列排查過後,他們

原创 彙編小結

指令和數據 指令和數據是應用上的概念。在內存或磁盤上,指令和數據沒有任何區別,都是二進制信息。CPU在工作的時候把有的信息看作指令,有的信息看作數據,爲同樣的信息賦予不同的意義。 對存儲器的讀寫 存儲器被劃分爲多

原创 vector的內存釋放

原文地址:http://www.cnblogs.com/summerRQ/articles/2407974.html vector : C++ STL中的順序容器,封裝數組   1. vector容器的內存自增長  與其他容器不

原创 epoll 函數

epoll是Linux特有的I/O複用函數。它在現實和使用上與select,poll由很大的差異。首先,epoll使用一組函數來完成任務,而不是單個函數。其次,epoll把用戶關心的文件描述符上的事件放在內核裏的一個事件表中,從而無須像s

原创 UNIX網絡編程 poll函數

poll提供的功能於select類似,不過在處理流設備的時候,它能提供額外的信息. #include<poll.h> int poll(struct pollfd *fdarray, unsigned long nfds, int tim

原创 簡單字符驅動程序

mycdev.c: #include<linux/init.h> #include<linux/module.h> #include<linux/types.h> #include<linux/fs.h> #include<linux/m

原创 Hash_map_pseudo類

FDB_Hash_map.h 類的聲明與作用 僞哈希數據結構的類 類開發的必要性,唯一性 類中各函數的複雜度,可能瓶頸 在調用Hash_map_find成員函數之前必須先調用Hash_map_test成員函數測試這個key