原创 Linux內核分析(四)之“暗流湧動”

一、撥雲見日 身爲程序員,我們繞不開系統調用,但是我們往往都是通過一個”中間人”—-庫函數與其打交道。 我們調用一個庫函數也許看起來非常簡單,但是其真正的實現細節,並非我們看起來那樣的”風平浪靜”,其內部往往”暗流湧動”。

原创 線程安全之可見性

線程安全問題(一)之可見性可見性的概念示例可見性問題原因總結volatile關鍵字 可見性的概念 當一個線程修改了共享變量的值,其他線程能夠看到修改的值。 示例 public class VisibilityDemo {

原创 04-樹5 Root of AVL Tree (25分)

題目描述:題目大意應該很好理解,關於平衡二叉樹的插入與調整。 #include<stdio.h> #include<stdlib.h> #define Null -1 typedef struct AVLNode{ i

原创 05-樹7 堆中的路徑 (25分)

題目如下 分別有三行輸入 第一行:輸入堆中節點的總個數N、輸入要遍歷節點的總個數M。 第二行:輸入N個的節點數據 第三行:輸入M個節點的下標(打印出從該下標到根的節點數據) 題目主要涉及到最小堆的定義與操作,代碼如下: #inc

原创 List Leaves (25分)

原題描述如下: List Leaves (25分) Given a tree, you are supposed to list all the leaves in the order of top down, and left t

原创 1003. 我要通過!(20)

主要理解的難點是在第3個條件 假設左邊A的數量爲a,中間的爲b,右邊的爲c,滿足a*b=c這個條件的爲正確的 #include<stdio.h> #include<string.h> int main() { int n

原创 1001. 害死人不償命的(3n+1)猜想 (15)

1001. 害死人不償命的(3n+1)猜想 (15) #include<stdio.h> int main() { int n; int cnt=0; scanf("%d",&n); while(n!=1

原创 Linux內核分析(八)之調兵遣將

一、進程的分類 在Linux系統中,根據進程的特點,可以把進程分爲3大類:交互進程、批處理進程、守護進程。 交互進程是由shell啓動的進程,它既可以在前臺運行,也可以在後臺運行。交互進程在執行過程中,交互進程在知性過程中,要求與用

原创 Linux內核分析(三)之從“頭”開始

一、真容初現 終於走進了Linux內核代碼了。Linux作爲操作系統,源碼肯定十分十分龐大。要了解全部的實現代碼,這也不現實。弱水三千,只取一瓢飲。瞭解一些小的片段對我們來說亦是大有裨益。 傳送門 二、實驗與分析 實驗目的

原创 Linux內核分析(七)之待時而動

一、從代碼到運行 簡單來說,代碼無非就是一堆文字,是“死”的,當它經歷一系列的過程之後,方是可以運行的程序,變成了”活“的。 二、ELF目標文件 ELF全稱Excuteable and Linkable Form

原创 Linux內核分析學習總結

一、概論 “不識廬山真面目,只緣身在此山中”,是我之前對於linux的感覺。Linux內核分析這門課程刨去了Linux的“皮肉”,更深層次的剖析了Linux的運行原理。但是課程又不止於Linux這個操作系統而已,好似一杯美酒,如一杯下肚

原创 小論軟件工程(C編碼實踐篇)

以往我對代碼的理解很是淺顯,無非實現基本功能,寫一些略顯高級的算法,開發項目。自認爲代碼不就那麼回事嘛。但是越攀高峯,越覺自己之渺小。要想一覽衆山小,還得步步往前走。 當初在微博中看到一段話是這樣描述軟件的,代碼最長只能活五年,五年之後你

原创 1002. 寫出這個數 (20)

注意這裏切不可使用基本的數據類型來處理,甭管什麼double,long long都無法處理10的100次方。應該是用數組來處理,後面的就比較簡單了。 #include<stdio.h> #include<math.h> #define

原创 Linux內核分析(二)之“複雜的操作系統”

一、內容簡介 在有萬經之源之稱的《易》中有”太極生兩儀,兩儀生四象,四象生八卦”這一說法,再複雜的東西其核必簡。毫無疑問,計算機的設計亦遵循這一規律。計算機的核心由“0”和“1”組成,但是構建於計算機之上的操作系統確十分複雜。 二、兩

原创 Linux內核分析(一)之“愚蠢”的計算機

1.馮諾依曼體系結構 不遠的將來,計算機的發展就會邁入一個新的時代,一個屬於人工智能(Artificial Intelligence)的時代。哪怕是今天今天計算機是顯得如此聰明,譬如前些時間比較火的阿爾法狗。哪怕是普通的計算機也彷彿對你瞭