原创 大端模式和小端模式的判別

在計算機系統中,我們是以字節爲單位的,每個字節8bit,對於多位數據,如16bit,32bit,就要用多個寄存器,而存放順序分兩種:大端模式(Big-Endian)和小端模式(Little-Endian)。常用的X86結構是小端模式,大部

原创 五種進程調度算法的總結;

1、時間片輪轉調度算法(RR):給每個進程固定的執行時間,根據進程到達的先後順序讓進程在單位時間片內執行,執行完成後便調度下一個進程執行,時間片輪轉調度不考慮進程等待時間和執行時間,屬於搶佔式調度。優點是兼顧長短作業;缺點是平均等待時間較

原创 路由選擇協議RIP與OSPF個人學習筆記

首先路由選擇協議有兩大類,分別是內部網關協議IGP和外部網關協議EGP。而RIP和OSPF都是內部網關協議。 路由信息協議RIP是一種基於距離向量的路由選擇協議,優點是簡單,其特點是: 僅和相鄰路由器交換信息。路由器交換的信息爲自己的路

原创 Windows窗口創建

Windows窗口創建流程: 1、創建入口函數WinMain() 2、註冊窗口類 3、實現回調函數功能 4、顯示窗口 5、更新窗口 6、消息循環   回調函數爲WinProc,具體定義如下: LRESULT CALLBACK WinPro

原创 使用工廠方法模式和策略模式封裝常用排序算法

在軟件開發過程中,總是需要用到面向對象編程,設計模式是軟件開發中比較重要的思想。雖然總體而言有23種設計模式,但一般都是各設計模式搭配起來用的,設計模式之間也有一些共通點。 這次我使用工廠方法模式和策略模式對幾種常用的排序算法進行封裝,使

原创 死鎖避免算法-銀行家算法

    銀行家算法是屬於死鎖避免的算法。     銀行家算法思想:允許用戶分批申請資源,每次分配之前,都要檢查是否安全。     銀行家算法數據結構:     系統中總的資源,對應可利用資源向量Available    進程運行所需資源,

原创 互斥的軟件實現:Peterson算法和Dekker算法

Peterson算法:是一個實現互斥鎖的併發程序設計算法,可以控制兩個線程訪問一個共享的單用戶資源而不發生訪問衝突。 算法代碼及註釋如下: bool flag[2]; //表示臨界區狀態及哪個進程正在佔用臨界區 int turn;

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

查找鏈表倒數第k個節點的內容,這是個很簡單的問題,最直接方法就是先遍歷得到鏈表長度len,然後再遍歷一次把第len-k節點讀取出來。 代碼如下: void ArrayK(Node *link, int k) { int len = 0;

原创 歸併排序思路及算法實現

歸併排序:通過將兩個或兩個以上的有序表組合成一個新的有序表這一思想進行排序。 思路:假設初始序列含有n個記錄,每個記錄長度爲1,通過歸併合併成[n/2]個長度爲2或1的有序序列;如此重複進行歸併,到最後就可以得到一個長度爲n的有序序列。

原创 進程與線程的對比

進程與線程的區別: 進程是系統進行資源分配和調度的一個獨立單位;線城市進程的一個實體,是系統調度和分配的基本單位,是比進程更小的能獨立運行的基本單位。一個線程可以創建和撤銷另一個線程;同一個進程中的多個線程可以併發執行。一個程序至少有一個

原创 三種改進型排序算法-快速排序,堆排序,希爾排序

    快速排序,堆排序,希爾排序這三種算法是從三種基本排序算法-冒泡排序,選擇排序,插入排序改良過來的,效率更高。     快速排序思想:通過一躺排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一不部分的所有數據都要小

原创 常用排序算法性能分析

在平時寫代碼時比較常用的幾種算法,性能表格如下: 排序法 平均時間 最壞 穩定 額外空間 冒泡排序 O(n^2) O(n^2) 穩定 O(1) 選擇排序 O(n^2) O(n^2)

原创 數組循環移位算法

之前在寫字符數組循環右移的時候,寫的算法是新建臨時空間,然後按照需要移動的位數把值放好。算法如下: void right(int src[], int len, int a) //接口形參分別是數組,數組長度,需要移動的位數 { int

原创 進程狀態模型

進程的三態模型,包含生存期內的三種基本態: 運行態:進程佔用CPU,並在CPU上運行;就緒態:進程已經具備運行條件,但是CPU還沒有分配過來;阻塞態:進程因等待某件事發生而暫時不能運行; 進程的五態模型,運用於實際系統中: 初始狀態:

原创 操作系統中作業、進程、線程、管程各自的定義及聯繫

定義: (1)作業:用戶在一次解題或一個事物處理過程中要求計算機系統所做工作的集合。它包括用戶程序、所需要的數據及控制指令等。作業是由一系列有序的步驟組成的。 (2)進程:一個程序在一個數據集合上的一次運行過程。一個程序在不同數據集合上運