原创 MAT-中國剩餘定理

中國剩餘定理 中國剩餘定理,又稱孫子定理,數論中的重要定理,中國古代用於求解一次同餘組的方法。問題的原文出自<孫子算經>,描述如下: "有物不知其數,三個一數餘二,五個一數餘三,七個一數又餘二,問該物總數幾何?" 意思是有一個數X,除以3

原创 MAT-歐幾里得及拓展歐幾里得算法

歐幾里得(Euclid)古希臘數學家,被稱爲"幾何之父",他最著名的著作《幾何原本》是歐洲數學的基礎,總結了平面幾何五大定理,同時,在透視、圓錐曲線、球面幾何學及數論方面也有突出貢獻。在介紹算法之前,讓我

原创 1.tcp/ip 協議分析-綜述

一、 協議棧 tcp/ip 分爲四層,每一層負責不同的通信功能  (1)鏈路層 ,通常包括了操作系統的驅動程序和計算機的網絡接口卡,負責處理物理接口的細節,常見的協議有slip,ppp等。 (2)網絡層,負責網絡中兩臺主機的通信,以及處

原创 CSI-VII:存儲器層次結構-神祕“金字塔”

前言   我們大多數的編碼者並不清楚存儲器層次結構和編寫程序到底如何聯繫起來,或者只是簡單的以爲程序的執行無非和內存或者磁盤有關係。的確,我們可以把程序的執行簡單的理解爲從磁盤加載,然後再到內存中執行。但我們通過第一篇(CSI-I)的內容

原创 CSI-VI:程序性能優化-寫出快速、高效代碼

前言             我們常常關注程序的性能,而程序性能的一個重要參考就是:運行時間,同時,我們都知道,這也是衡量一個算法好壞的重要標準。在一個程序保證正確的前提下,其運行得快慢往往決定了其性能的好壞。當然,並不是所有的程序都有很

原创 CSI-VIII:鏈接-程序構建

前言          或許,我們都曾爲符號解析的問題困擾過,又或許,我們還並不清楚靜態庫和動態庫到底是如何表現,如何和程序關聯從而構建一個大型的項目。我們都希望自己開發的共享庫能夠爲他人使用而表現良好。希望在構建大型程序的過程中,避免一

原创 CSI-S3:虛擬存儲器(二)-再談hello程序

         在CSI-IX一篇中,我們詳細的介紹了虛擬存儲器的相關概念和技術。但瞭解這些往往不能揭開我們心中的很多疑團。比如,程序的加載執行過程是怎麼樣,磁盤的可執行文件怎麼虛擬存儲器機制關聯起來並

原创 BDS之鏈表

 鏈表結構在日常的使用很廣泛, 大大小小的軟件系統或多或少,或直接或間接的都使用了鏈表,而關於鏈表,其又可以分爲多種類型,常見的有靜態鏈表,單向鏈表,雙向鏈表,循環鏈表等等,除此之外,還有帶頭結點和不帶頭結點的鏈表之分,不過總體來說,這些

原创 CSI-IX:虛擬存儲器-走進系統內核

前言          如果別人問我,從開發人員的角度來講,操作系統的哪部分內容是最爲重要的,那麼,我會毫不猶豫的說:虛擬存儲器。可能從開始接觸計算機系統到現在,我們對於虛擬存儲器的概念和原理都還半知半解。甚至很多人,錯誤的以爲理解虛擬存

原创 CSI-V:測試程序的執行時間

前言           人們經常會問:“程序X在機器Y上運行得有多快?”,而我們一般的回答都是給定一個可以估算出該程序執行時間的一個大概的描述,比如:程序在N分鐘跑出了多少的數據;據此我們可以推測程序的運行性能。而很少有人去關注程序到