回覆列表
  • 1 # ihdhy28676

    Windows Service 是主要用於伺服器環境而長期執行的應用程式, 這類程式不需要有使用者介面或者任何模擬輸出。 任何的使用者訊息通常都是記錄在Windows 事件日誌裡。Windows Service可以在作業系統啟動的時候開始,一直在後臺執行,當有需要時也可以手動啟動,我們可以透過管理工具裡面的服務進行統一管理。當系統啟動完畢後,Windows服務並不需要透過登陸頁面後才能啟動,而我們啟動一般的exe檔案卻要先登陸Windows後才能啟動它。Windows Service 是一種可隨 Windows 作業系統啟動而啟動的,在後臺執行的,通常不和使用者產生互動的程式。它無法透過雙擊來執行,類似於 Unix 守護程序(daemon processes),當用戶登出時它也不會停止。Windows 服務由三部分組成:

    1.一個服務可執行檔案;

    2.一個服務控制程式(SCP);

    3.服務控制管理器(SCM),負責在 HKLM\SYSTEM\CurrentControlSet\Services 下建立服務鍵值。使用者可透過 SCP 控制服務的啟動、停止、暫停等,SCP 會透過 SCM 呼叫服務程式。Window 標準的exe可執行程式通常有一個使用者介面,Console或GUI,通常由使用者來啟動或停止 Windows服務是執行在windows後臺指定使用者下(預設System)的應用程式,它沒有標準的UI介面,想比標準的EXE程式,Windows服務是在服務開始的時候建立,而在服務結束的時候銷燬,而且可以設定服務是否與作業系統一起啟動,一起關閉。它支援三種方式:1)自動方式 2)手動方式 3)禁用 。自動方式的時候,windows服務將在OS啟動後自動啟動執行,而手動方式則必須手工啟動服務,禁用的情況下服務將不能被啟動。另外標準的EXE預設使用的當前登入的使用者,而windows服務則預設使用System使用者,這在對系統資源訪問的時候特別需要注意。 Windows上的單個程序所能訪問的最大記憶體量是多少?它與系統的最大虛擬記憶體一樣嗎?這對於系統設計有什麼影響? 32 位Windows上單個程序所能訪問的最大記憶體量是4G,單由於作業系統需要給系統核心分配2G的空間,所以一般使用者程式的程序可使用的最大記憶體為2G。不一定一樣,32位的作業系統的程序可訪問的最大記憶體量是4G,這4G包含了虛擬記憶體,而一個程序可訪問的最大記憶體量也是4G,所以程序記憶體訪問量在物理記憶體大於等於4G的時候跟虛擬記憶體無關,而當物理記憶體小於4G時,程序訪問的記憶體量隨著虛擬記憶體的增加而增加,直到4G Windows使用一個系統:虛擬定址系統。該系統把程式可用的記憶體地址對映到硬體記憶體中的實際地址上,這些任務完全有Windows後臺管理,其實際結 果是32位處理器上的每個程序都可以使用4GB的記憶體------無論計算機上有多少硬碟空間(在64位處理器上這個數值會更大)。這個4GB記憶體實際上 包含了程式的所有部分------包括可執行程式碼,程式碼載入的所有dll,以及程式執行時使用的所有變數的內容。這個4GB記憶體稱為虛擬地址空間,或虛擬 記憶體。EXE和DLL之間的區別是什麼?EXE就是可執行檔案,你可要雙擊它, 它就可以執行,而DLL是一個動態連結庫檔案,就是說,它不可以自己執行,它是須要一個程式的其它功能執行的時候,它才能執行,打個比方,如果你的QQ要升級,那QQ裡面有關升級的DLL檔案它就會執行. EXE是帶有程式入口(Main)的能被終端使用者直接執行的應用程式,隨著它的啟動系統會產生一個相應的程序。DLL是動態連結庫,不包含程式執行入口,不能被終端使用者直接執行,本身需要附加到現有的程序中才可以執行。但兩者都是基於PE格式,執行時由磁碟中的映像載入被呼叫者的記憶體或者共享空間中執行,包含程式的資料資訊,只是EXE還包括程式的代

  • 中秋節和大豐收的關聯?
  • 《天龍八部》中,吸星大法反噬任我行,為何北冥神功卻沒有反噬段譽?