原创 epoll()涉及到的兩種wait隊列分析

情況1. epfd-file->eventpoll->wq:   struct eventpoll {     ...     wait_queue_head_t wq;     //用於epoll_pwait()事件的等待隊列 情況1

原创 Linux 2.6 Alarm信號中斷遇上函數阻塞

Unix網絡編程 中提到,可以使用alarm + signal 機制產生信號,從而使程序從阻塞的函數調用中跳出,例子如下: 服務進程使用阻塞的監聽套接字進入監聽,設置3s的alarm,確保3s內無客戶端連接,看服務進程是否能在alarm觸

原创 Linux-2.6 open()打開文件涉及的內核處理和數據結構分析

Linux-2.6 文件打開過程涉及數據結構分析: 原文鏈接 : http://blog.csdn.net/ordeder/article/details/24420637 用戶層面 文件打開的結構爲: fd = open(path,fl

原创 Posex信號量 實現進程間的同步(生產者&消費者)

一 Posex信號量sem #include <semaphore.h> sem_t 信號量的類型 int sem_init(sem_t *sem, int pshared, unsigned int value);   1)pshar

原创 Python 簡單數據備份腳本

手動備份 version 1 #!/usr/bin/python #Filename: backup_v1.py import os import time source = ['/root/slp/NetWrokProgram/cl

原创 Python源碼 -- C語言實現面向對象編程(基類&派生類&多態)

背景 python是面向對象的解釋性語言,然而python是通過C語言實現的,C語言怎麼跟面向對象扯上了關係? C語言可以實現面向對象的性質?  原文鏈接:http://blog.csdn.net/ordeder/article/deta

原创 PostGreSQL--內存上下文(內存池)

背景 原文鏈接:http://blog.csdn.net/ordeder/article/details/31768749 看了幾個內存池的設計,如python,STL,基本上對內存的管理有兩種結構: 1.block,即內存塊,一般和內存

原创 C++面向對象—成員函數與成員變量的實現機制學習筆記(1)

《深度搜索C++對象模型》的一些學習紀要: 原文鏈接:ordeder   http://blog.csdn.net/ordeder/article/details/26396989 一成員變量篇 0. 類的編譯中,先編譯成員變量和成員函數

原创 c++ *.h和*.cpp在編譯中的作用

http://blog.sina.com.cn/s/blog_5e8715490100tbmq.html http://blog.163.com/wslngcjsdxdr@126/blog/static/16219623020121754

原创 進程的信號量&線程的互斥量

        進程的信號量(semaphore)和線程的互斥量(mutex)本質上都是爲了實現互斥,但是線程的mutex的api(pthread_mutex_xxx)相比進程的semaphore的api(semxxx())相比,簡潔很多

原创 Win32 線程的創建&信號量臨界資源&事件對象

背景: 寫了個程序,主要實現的功能爲主線程創建兩個子線程,之後主線程進入等待事件的循環。子線程1對臨界資源cnt的值減2並輸出cnt的值。子線程2對cnt的值加1並輸出cnt的值,且當cnt爲50的時候觸發事件對象hend_even,子進

原创 epoll之ep_insert()源碼分析

原文鏈接: ordeder http://blog.csdn.net/ordeder/article/details/25514043 參考:http://www.cnblogs.com/apprentice89/p/3234677.ht

原创 函數調用過程-棧幀 和 進程的關係

程序中,一個函數是一個過程,這個過程可以分爲包括傳入參數、過程代碼、返回三部分構成。由於一個函數過程需要用到內部變量、臨時變量等,所以需要在進程空間的棧空間分配一段存儲片段來存儲函數過程中的這些參數,該內存片段即爲棧幀。 棧幀的由來:

原创 基於信號驅動式IO的監聽套接字(O_ASYNC,O_NONBLOCK)

背景 Source: http://blog.csdn.net/ordeder/article/details/22733077 (Unix網絡編程卷1說明如下) 設置套接字信號驅動式io(SIGIO)需要三個步驟: 1.建立SIGIO信

原创 進程調用fork與文件描述符的共享(fork,dump)

背景                原文鏈接:http://blog.csdn.net/ordeder/article/details/21716639           Linux的進程描述task_struct{}中有一個數組專門用