古詩詞大全網 - 漢語詞典 - windows系統進程終止方法的詳解

windows系統進程終止方法的詳解

進程是程序在計算機上的壹次執行活動。當妳運行壹個程序,妳就啟動了壹個進程。顯然,程序是死的(靜態的),進程是活的(動態的)。進程可以分為系統進程和用戶進程。凡是用於完成操作系統的各種功能的進程就是系統進程,它們就是處於運行狀態下的操作系統本身;用戶進程就是所有由妳啟動的進程。進程是操作系統進行資源分配的單位。有些進程我們通過"任務管理器"是不能結束的,如果遇到木馬怎麽辦呢?我們可以強行結束這個進程,請看下面介紹的技巧。

 Windows操作系統中只有System、SMSS.EXE和CSRSS.EXE不能殺。前兩個是純內核態的,最後那個是Win32子系統,ntsd本身需要它。ntsd從2000開始就是系統自帶的用戶態調試工具。被調試器附著(attach)的進程會隨調試器壹起退出,所以可以用來在命令行下終止進程。使用ntsd自動就獲得了debug權限,從而能殺掉大部分的進程。ntsd會新開壹個調試窗口,本來在純命令行下無法控制,但如果只是簡單的命令,比如退出(q),用-c參數從命令行傳遞就行了。NtsdNtsd 按照慣例也向軟件開發人員提供。只有系統開發人員使用此命令。有關詳細信息,請參閱 NTSD 中所附的幫助文件。用法:開個cmd.exe窗口,輸入:

 ntsd -c q -p PID

 把最後那個PID,改成妳要終止的進程的ID.如果妳不知道進程的ID,任務管理器->進程選項卡->查看->選擇列->勾上"PID(進程標識符)",然後就能看見了。

 XP下還有兩個好用的工具tasklist和tskill.tasklist能列出所有的進程,和相應的信息。tskill能查殺進程,語法很簡單:tskill 程序名。 1 Linux進程的睡眠和喚醒

 在Linux中,僅等待CPU時間的進程稱為就緒進程,它們被放置在壹個運行隊列中,壹個就緒進程的狀態標誌位為TASK_RUNNING.壹旦壹個運行中的`進程時間片用完, Linux 內核的調度器會剝奪這個進程對CPU的控制權,並且從運行隊列中選擇壹個合適的進程投入運行。

 當然,壹個進程也可以主動釋放CPU的控制權。函數 schedule()是壹個調度函數,它可以被壹個進程主動調用,從而調度其它進程占用CPU.壹旦這個主動放棄CPU的進程被重新調度占用 CPU,那麽它將從上次停止執行的位置開始執行,也就是說它將從調用schedule()的下壹行代碼處開始執行。

 有時候,進程需要等待直到某個特定的事件發生,例如設備初始化完成、I/O 操作完成或定時器到時等。在這種情況下,進程則必須從運行隊列移出,加入到壹個等待隊列中,這個時候進程就進入了睡眠狀態。