欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

windows系统进程终止方法详解

程序员文章站 2022-07-07 09:58:41
进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程,下面为大家分享下如何停止Windows系统进程,感兴趣的朋友可以参考下哈,希望可以帮助到你... 13-05-03...

  进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程。进程是操作系统进行资源分配的单位。有些进程我们通过"任务管理器"是不能结束的,如果遇到木马怎么办呢?我们可以强行结束这个进程,请看下面介绍的技巧。

  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 操作完成或定时器到时等。在这种情况下,进程则必须从运行队列移出,加入到一个等待队列中,这个时候进程就进入了睡眠状态。