原创 在mfc程序中,打開控制檯窗口的方法

在OnInitDialog函數返回之前加入,就可以觀察控制檯輸出。 AllocConsole(); freopen("CONOUT$", "a+", stdout);

原创 windows via c/c++ 三. 內核對象

1. 內核對象都只是一個內存塊,它由操作系統內核分配,並只能由操作系統內核訪問,這個內存塊是一個數據結構,其成員維護着與對象相關的信息。 2. 調用一個創建內核對象的函數後,函數會返回一個句柄,它標識所創建的對象。這些句柄是進程相關的,無

原创 六、 線程

1. 線程 = 線程內核對象 + 線程棧      線程棧用於維護線程執行時所需的所有函數參數和局部變量 2. 線程共享同一地址空間,線程共享內核對象句柄,因爲句柄表是針對每一個進程的而不是針對線程的。 3. 進程所使用的系統資源更多。其

原创 七、線程調度優先級和關聯性

1. 線程切換 -->  上下文切換 2. 搶佔式調度,很多線程無法調度。因爲他們都在等待某種事情發生 p166 3. 掛起和恢復  suspendThread 掛起  ResumeThread 恢復     對掛起進行計數,例如一個線程

原创 十四、探索虛擬內存

GetSystemInfo GlobalMemoryStatus 虛擬內存狀態 非統一內存訪問(numa),機器中的cpu既能訪問自己節點的內存,也能反問其它結點的內存。 工作集; 我們把一個進程的地址空間中被保存在內存裏的那些頁面稱爲工

原创 十五、在應用程序中使用虛擬內存

windows提供一下三種機制來對內存進行操控: 虛擬內存:最適合用來管理大型對象數組或大型結構數組 內存映射文件: 最適合用來管理大型數據流,以及在同一機器上多個進程共享數據(17章) 堆:最適合用來管理大量的小型對象 windows提

原创 ubuntu qt opencv 安裝 解決Cannot connect creator comm socket 和 Circular all

這下必須記錄一下了。 這東西實在太煩了,搞了好久。 兩個錯誤很煩  Cannot connect creator comm socket 和 Circular all <- first dependency dropped. 嘗試過很多

原创 十三、windows內存體系結構

1. 內核模式分區。 這一分區是操作系統代碼的駐地。與線程調度,內存管理,文件系統支持,網絡支持以及設備驅動程序相關的代碼都載入該分區。駐留在這一分區的任何東西都爲所有進程所用。受保護。如果一個應用程序試圖讀取或寫入位於這一分區中的內存地

原创 多線程問題及面試題目

主要來自morewindows博客。 1.主線程創建子線程並傳入一個指向變量地址的指針作參數,由於線程啓動須要花費一定的時間,所以在子線程根據這個指針訪問並保存數據前,主線程應等待子線程保存完畢後才能改動該參數並啓動下一個線程。這涉及

原创 深入理解linux i節點(inode)

深入理解linux  i節點(inode)   對於Unix系列的操作系統,大多都有v節點。但是對於linux來說,只有通用的i節點,卻沒有v節點。 下面來探討一下,linux下的i節點。         linux中,文件查

原创 五、 作業

1. 想結束一個進程及其子進程在windows下很難,因爲windows沒有維護進程間的父子關係 2. windows 提供一個作業內核對象,它允許我們將進程組合在一起並創建一個“沙箱”, 來限制進程能做什麼 3. 只有在作業中的所有進程

原创 十、同步設備I/O與異步設備I/O(I/O完成端口)

I/O完成端口是一種有無數用途的絕佳的線程間通信機制 1. 打開和關閉設備    設備:能夠與之進行通信的任何東西  createFile可以打開很多設備  緩存,標誌 2. 使用文件設備 設置文件指針位置以及如何改變文件大小 每個文件

原创 九、用內核對象進行同步

信號,互斥量,事件,可等待計時器 1. 關鍵段只能對同一進程的線程進行同步,且無法設置最長等待時間,所以容易死鎖。      使用內核對象的唯一缺點是它們的性能。調用本章的函數,線程都需要從用戶模式切換到內核模式。      內核對象狀態

原创 四、進程

1. 進程 =  一個內核對象 +  一個地址空間 2. 進程的實際執行者是線程  cpu調度的也是線程。  進程是最有惰性的,進程從來不執行任何東西,它只是一個線程的容器。 3. hInstanceExe的實際值是一個內存基地址, 系統

原创 八、 用戶模式下的線程同步

1. 在一下兩種基本情況下,線程之間需要相互通信:      (1). 需要讓多個線程同時訪問一個共享資源,同時不能破環資源的完整性      (2) . 一個線程需要通知其他線程某些任務已完成。 2. 原子訪問。 Interlocked