原创 【Linux】進程控制塊PCD結構(tack_struct)

tack_struct結構圖: 一、task_struct 結構描述 1.進程狀態(State) 進程執行時,它會根據具體情況改變狀態。進程狀態是調度和對換的依據。Linux 中的進程主要有如下狀態,如表4.1 所示。 (1)

原创 並查集-UnionSet【朋友圈問題】

【面試題】例如已知有n個人和m對好友關係(存在數字r),如果兩個人是直接或間接的好友(好友的好友的好友的好友......),則認爲他們屬於同一個朋友圈,請寫程序求出這n個人裏一共有多少個朋友圈。 例如:n=5,m=3,r={{1,2},{

原创 【Linux】進程間通信之消息隊列

       進程間通信(IPC)主要包括了管道、系統IPC(包括了消息隊列、信號及共享存儲)和套接字(SOCKET)。        IPC方法包括管道(PIPE)、消息隊列(Message_Queue)、旗語、共用內存(ShareMe

原创 【Linux】進程調度算法

進程調度     無論是在批處理系統還是分時系統中,用戶進程數一般都多於處理機數、這將導致它們互相爭奪處理機。另外,系統進程也同樣需要使用處理機。 這就要求進程調度程序按一定的策略,動態地把處理機分配給處於就緒隊列中的某一個進程,以使之

原创 【Linux】進程等待&程序替換

        一個進程在終止時會關閉所有文件描述符,釋放在用戶空間分配的內存,但它的PCB還保留着。                 內核在其中保存了一些信息:如果是正常終止則保存着退出狀態,如果是異常退出則保存着導致該進程終止的信息是

原创 【Linux】進程終止

●進程終止的方式 1、正常終止 1)從main函數返回; 2)調用exit函數; 3)調用_exit或_Exit; 4)最後一個線程從啓動例程返回; 5)最後一個線程調用pthread_exit; 2、異常終止       1)調用a

原创 【C++】MFC 創建對話框,實現對“學生課程成績”的管理

運行環境:VC6.0 具備知識:對MFC的控件有一定的瞭解,包括圖像列表、列表控件等。 實現功能:單擊下圖中的“學生課程成績”按鈕,彈出“學生課程成績”對話框,單擊“添加”按鈕,學生課程成績添加到列表控件。若選中列表項,“修改”按鈕由原來

原创 【Linux】進程間通信之共享內存

爲什麼進程間需要通信? 1、數據傳輸:一個進程需要將它的數據發送給另一個進程。 2、資源共享:多個進程之間享受同樣的資源 3、通知事件:一個進程需要向另一個或另一組進程發送消息,通知它們發生了某種事件。 4、進程控制:有些進程希望完全控制

原创 【Linux】進程間通信之管道

        每個進程各自有不同的用戶地址空間,任何一個進程的全局變量在另一個進程中都看不到所以進程之間要交換數據必須通過內核,在內核中開闢一塊緩衝區,進程1把數據從用戶空間拷到內核緩衝區,進程2再從內核緩衝區把數據讀走,內核提供的這種

原创 【算法和數據結構】平衡查找樹之B樹

B樹          B樹(B-tree)是一種樹狀數據結構,它能夠存儲數據、對其進行排序並允許以O(log n)的時間複雜度運行進行查找、順序讀取、插入和刪除的數據結構。B樹,概括來說是一個節點可以擁有多於2個子節點的二叉查找樹。與自

原创 【數據結構】紅黑樹(如何實現及怎樣判斷)

      紅黑樹是一顆二叉搜索樹,它在每個節點上增加了一個存儲位來表示節點的顏色,可以是red或black。通過對任何一條從根節點到葉子節點的簡單路徑上的顏色來約束,紅黑樹保證了最長路徑不超過最短路經的兩倍,因此近似於平衡。 紅黑

原创 【Linux】進程的創建fork()和vfork()

創建一個新進程的方法只有由某個已存在的進程調用fork()或vfork() 1、fork()函數 NAME                 fork  - create a child process SYNOPSIS          

原创 【Linux】進程間通信之信號量

1、爲什麼要用信號量        管道和消息隊列都是兩個或多個進程訪問一個共享資源,而爲了防止出現因多個線程同時訪問一個共享資源而引發的一系列問題,我們需要一種方法,它可以通過生成並使用令牌來授權,在任一時刻只能有一個執行線程訪問代碼的

原创 【C++】MFC 創建對話框,實現對課程信息和學生信息的管理

使用vc6.0,MFC,創建對話框 創建一個默認的對話框應用程序,並設計“課程信息”對話框和“學生信息管理”對話框。實現如下圖所示功能: 默認的對話框應用程序:        點擊“學生基本信息”按鈕會出現下圖所示,點擊“添加”按鈕就

原创 【數據結構】二叉搜索樹

● 二叉搜索樹滿足以下條件的二叉樹: 1、每個節點都有一個作爲搜索依據的關鍵碼(key),所有節點的關鍵碼互不相同。2、左子樹上所有節點的關鍵碼(key)都小於根節點的關鍵碼(key)。3、右子樹上所有節點的關鍵碼(key)都大於根節點的