原创 Freeswitch Event Socket IVR外呼方案

  一、項目應用解決方案 1、內呼方案流程: 客戶撥號 <——> 運營商/網關 <——> FreeSWITCH(MRCP +ASR/TTS/NLP) <——>Lua(嵌入FS) Ps: 根據特定號碼,FS路由配置好的撥號計劃(dialpl

原创 Linux 多任務編程——進程間通信:無名管道(PIPE)

管道的概述 管道也叫無名管道,它是是 UNIX 系統 IPC(進程間通信) 的最古老形式,所有的 UNIX 系統都支持這種通信機制。 無名管道有如下特點: 1、半雙工,數據在同一時刻只能在一個方向上流動。 2、數據只能從管道的一端寫入,從

原创 Linux 網絡編程——內網和外網之間的通信流程

對於初學者而已,我們學習的網絡編程(如TCP,UDP編程),我們通常都是在局域網內進行通信測試,有時候我們或者會想,我們現在寫的內網網絡數據和外網的網絡數據有什麼不同,我們內網的數據是如何走出外網的呢? 再者,我們大多人都是使用寬帶上網,

原创 Linux 多任務編程——進程間通信:信號中斷處理(Signal Interrupt)

什麼是信號? 信號是 Linux 進程間通信的最古老的方式。信號是軟件中斷,它是在軟件層次上對中斷機制的一種模擬,是一種異步通信的方式 。信號可以導致一個正在運行的進程被另一個正在運行的異步進程中斷,轉而處理某一個突發事件。 “中斷”在我

原创 Linux 網絡編程——IP 分片丟失重傳

儘管 IP 分片看起來是是透明的,但有一點讓人不想使用它:即使只丟失一片數據也要重傳整個數據報。爲什麼會發生這種情況呢? 因爲 IP 層本身沒有超時重傳的機制——由更高層來負責超時和重傳( TCP 有超時和重傳機制,但 UDP 沒有。一些

原创 MySQL中以日期爲查詢條件的方法

假如有個表product有個字段add_time,它的數據類型爲datetime,有人可能會這樣寫sql:  代碼如下 複製代碼 select * from product where add_time = '2013-01-12'

原创 Linux 多任務編程——線程同步與互斥:POSIX 無名信號量

信號量概述 信號量廣泛用於進程或線程間的同步和互斥,信號量本質上是一個非負的整數計數器,它被用來控制對公共資源的訪問。 在 POSIX 標準中,信號量分兩種,一種是無名信號量,一種是有名信號量。無名信號量一般用於線程間同步或互斥,而有名信

原创 Linux 多任務編程——進程調度淺析

概述 操作系統要實現多進程,進程調度必不可少。有人說,進程調度是操作系統中最爲重要的一個部分。我覺得這種說法說得太絕對了一點,就像很多人動輒就說“某某函數比某某函數效率高XX倍”一樣,脫離了實際環境,這些結論是比較片面的。  而進程調度

原创 Linux 多任務編程——進程同步與互斥:POSIX有名信號量

在 POSIX 標準中,信號量分兩種,一種是無名信號量,一種是有名信號量。無名信號量一般用於線程間同步或互斥,而有名信號量一般用於進程間同步或互斥。它們的區別和管道及命名管道的區別類似,無名信號量則直接保存在內存中,而有名信號量要求創建一

原创 Linux 多任務編程——I/O多路複用select、poll、epoll使用的區別

I/O 多路複用技術是爲了解決進程或線程阻塞到某個 I/O 系統調用而出現的技術,使進程不阻塞於某個特定的 I/O 系統調用。 select(),poll(),epoll()都是I/O多路複用的機制。I/O多路複用通過一種機制,可以監視多

原创 Linux 多任務編程——進程同步與互斥:System V 信號量

信號量概述信號量廣泛用於進程或線程間的同步和互斥,信號量本質上是一個非負的整數計數器,它被用來控制對公共資源的訪問。 編程時可根據操作信號量值的結果判斷是否對公共資源具有訪問的權限,當信號量值大於 0 時,則可以訪問,否則將阻塞。PV 原

原创 Linux 多任務編程——線程淺析

進程和線程的區別與聯繫 在許多經典的操作系統教科書中,總是把進程定義爲程序的執行實例,它並不執行什麼, 只是維護應用程序所需的各種資源,而線程則是真正的執行實體。 爲了讓進程完成一定的工作,進程必須至少包含一個線程。 進程,直觀點說,保存

原创 Linux 多任務編程——進程管理

引言:        在Linux的內核的五大組成模塊中,進程管理模塊時非常重要的一部分,它雖然不像內存管理、虛擬文件系統等模塊那樣複雜,也不像進程間通信模塊那樣條理化,但作爲五大內核模塊之一,進程管理對我們理解內核的運作、對於我們以後的

原创 Linux 多任務編程——線程同步與互斥:讀寫鎖

讀寫鎖基本原理 當有一個線程已經持有互斥鎖時,互斥鎖將所有試圖進入臨界區的線程都阻塞住。但是考慮一種情形,當前持有互斥鎖的線程只是要讀訪問共享資源,而同時有其它幾個線程也想讀取這個共享資源,但是由於互斥鎖的排它性,所有其它線程都無法獲取鎖

原创 Linux 多任務編程——線程同步與互斥:互斥鎖

爲什麼需要互斥鎖? 在多任務操作系統中,同時運行的多個任務可能都需要使用同一種資源。這個過程有點類似於,公司部門裏,我在使用着打印機打印東西的同時(還沒有打印完),別人剛好也在此刻使用打印機打印東西,如果不做任何處理的話,打印出來的東西肯