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 操作完成或定時器到時等。在這種情況下,進程則必須從運行隊列移出,加入到一個等待隊列中,這個時候進程就進入瞭睡眠狀態。

Leave a Reply

Your email address will not be published. Required fields are marked *