linux
上每乙個程序都有乙個程序控制塊,與程序或執行緒有關的資訊大都儲存在這個資料結構中。而
windows
則有所不同。首先
windows
的程序和執行緒各有不同的資料結構來描述,從概念上把程序和執行緒分離開。其次,
windows
又把本可集中儲存的程序資料結構也拆分成好幾個物件,有的在系統空間裡,有的在使用者空間裡。
系統空間裡與程序有關的資料結構有: 1.
eprocess
:即struct_eprocess
,表示windows
裡的乙個程序。e表示
executive
,執行體的意思。 2.
kprocess
:是eprocess
內的乙個部分,也就是常說的
pcb。 3.
win32process
:使用者空間有個「
windows
子系統」的服務程序
csrss
。這個服務程序為
windows
中的每個應用程序都維持著乙個資料結構,其中包含了一些與視窗和圖形介面的資訊。而有關視窗和圖形介面的操作,原來也是由
csrss
在客戶程序的請求下完成的。後來為了提高效率,把這部分功能移到了核心中,與此相應的資料結構也移動到了核心中,就成了現在的
win32process。
使用者空間裡與程序有關的資料結構:
1.如上所述,由於將
win32process
移進核心空間以後,
csrss
仍然需要為每個程序保留一些資訊。所以
csrss
內部仍有一些與程序有關的資料結構。 2.
peb:
process environment block
即程序環境塊。其中記錄著程序的執行引數,映像裝入位址等等資訊。
peb在使用者空間中的位置是固定的,總是在
0x7ffdf000。
以上就是
windows
中與程序相關的資料結構。可以看出,與我所研究的
dll載入資訊應該儲存在
peb中。
在程序間切換
在前面了解過,執行在作業系統上的多個程序可以併發執行,而程序的併發就需要程序間進行切換。作業系統完成程序的切換,問題來了 當乙個程序正在執行,作業系統怎麼獲得cpu的控制權 通過yield系統呼叫 這個系統呼叫只是將cpu的控制權交給作業系統。或者當程式發生異常時,會陷入作業系統,作業系統再次控制c...
Mac在終端檢視程序 殺死程序
在不知程式埠號的情況下 這樣搜尋好像會搜尋出另外的同名執行緒,我也不是很清楚 ps axu 本機名 grep 程式名 ps axu shuchan grep mysql 我的本機名是 shuchan,要查詢的程式是mysql,有的程式名區分大小寫 示例 sc shuchan ps axu shuch...
在中軟的工作發展目標
來中軟的第9天,在此梳理一下工作目的和期望收穫 一 架構師方向 1.學習現有的架構核心 2.研究構建工具原理和表單生成器的原理 3.gis方向的開發與應用的了解 4.學習移動終端的開發 5.學習部署linux和unix伺服器以及相關工具 二 設計師方向 1.在專案中所應用到的uml建模設計 2.資料...