原创 作業,進程組,終端

1:進程組: 每一個進程除了有一個進程ID,還屬於進程組.進程組是一個或者多個進程的集合.通常,它們與同一作業相關聯,可以接收來自同一終端的各種信號.每個進程組有一個唯一的進程組ID,每個進程組都可以有一個組長進程.組長進程的標

原创 TCP報文段中的URG和PSH

一:TCP報文段的首部格式 首先明白TCP雖然是面向字節流的,但TCP傳輸的數據單元確實報文段,一個TCP報文段分爲首部和數據兩部分,而TCP的全部功能都體現在它首部中的個字段的作用,因此只有弄清楚TCP首部個字段的作用才能掌握

原创 生產者和消費者模型

一:條件變量: 我們知道多線程訪問時會出現衝突的問題,爲了解決這個問題我們引入互斥鎖的概念,即多個線程同時訪問理解資源時,獲得鎖多線程可以完成”讀-修改-寫”操作,然後釋放鎖給其他線程.沒有獲得鎖的線程只能掛起等待. 與互斥鎖

原创 哈夫曼樹

huffman樹,又稱最優二叉樹,是加權路徑長度最短的二叉樹 [貪心算法]是指在問題求解時,總是做出當前看起來最好的選擇,通俗的說貪心算法不是整體最優的選擇,而是局部最優解 使用貪心算法構建Huffman樹 構建哈夫曼樹

原创 反轉鏈表和查找倒數第K個節點

一:鏈表的逆置(反轉鏈表) 題目:定義一個函數,輸入一個鏈表的頭結點,反轉該鏈表並輸出反轉後的頭結點: 節點的結構 struct ListNode { ListNode(const int& val) :_v

原创 信號

一:信號: 日常生活中,我們會遇到很多信號,比如放學回家看到紅燈(信號),我們的”反應”是停下來.早上當鬧鈴響的時候我們大多數情況是選擇”關了”繼續睡,或者選擇”無視”.總是生活中有者各種各樣的形形色色的”信號”. 簡單的說所

原创 NAT技術及其應用

一:概念: 共有IP:也叫全局地址,是指合法IP地址,它是由NIT(網絡信息中心)或者ISP(網絡服務提供商)分配的地址,對外代表一個或多個內部局部地址,是全球統一的可尋址的地址. 私有IP地址:也就內部地址,屬於非註冊地址,

原创 進程間通信--信號量

信號量的本質 是一種數據操作鎖,它本身不具有數據交換的功能,而是通過控制其他的通信資源(文件,外部設備)來實現進程間通信,它本身只是一種外部資源的標誌,信號量在此過程中負責數據操作的互斥,同步等功能. 一:爲什麼要使用信號量

原创 路由表的生成算法

一:幾個概念 1:路由器: 是連接因特網中的個局域網,廣域網的設備,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前後順序發送信號. 路由器又稱網關設備是用於連接多個邏輯上分開的網絡,所謂邏輯網絡是代表一個單獨的網絡或者

原创 如何定義一個只在棧/堆上生成的對象

一:首先複習下內存結構; 1:棧(stack):–由編譯器自動分配釋放,存放函數參數值,局部變量值等. 2:堆(heap):一般是由程序員分配釋放,若程序不釋放,程序結束時可能由操作系統回收 3:全局區(靜態區):主要存放全

原创 網絡基礎知識

一:協議: 日常生活中我們經常我聽到各種各樣的口頭上的協議,比如拔河比賽,大家一起按照首先約定好的口號,123一起發力等等這樣的栗子不勝枚舉,我們把雙方之間的約定就叫做協議,當前在網絡當中也有各種各樣的協議.爲了更好的理解他們我

原创 淺談ARP

一:ARP的原理: 我們知道以太網設備比如網卡都有自己全球唯一的MAC地址,它們是以MAC地址阿里傳輸以太網數據包的,但是它們卻識別不了IP包中的IP地址,所以我們在以太網中進行IP通信的時候就需要一個協議來建立IP地址與MA

原创 CRC校驗

一:什麼是CRC? CRC即循環冗餘校驗碼:是數據通信領域中最常用的一種差錯校驗碼,器特徵是信息字段和校驗字段的長度可以任意選定.循環冗餘檢查(CRC)是一種數據傳輸檢錯功能,對數據進行多項式計算,並將結果附在幀的後面,接受設備

原创 守護進程

一:線路規程 先給一個簡單的栗子: 我們在終端下按下字母aaaaaa在bash下會顯示aaaaa,但當我們按下組合鍵Ctrl-C,爲什麼卻沒有顯示Ctrl-C呢? 這就是線路規程乾的好事,那麼什麼是線路規程,簡單點說就是

原创 線程安全和可重入函數

一:什麼是線程安全? 就是所如果代碼所在的進程中有多個線程在同時運行,而這些線程可能會同時運行這段代碼,如果每次運行的結果是一樣的,而且其他變量的值和預期的是一樣的,就是線程安全的.或者說一個程序鎖提供的接口對於線程來說是原子操