发布于2026-06-08 阅读(0)
扫一扫,手机访问
进程是程序在计算机上的一次执行活动。运行一个程序,就意味着启动了一个进程。说白了,程序是“死”的(静态的),而进程是“活”的(动态的)。进程可以分成系统进程和用户进程:系统进程负责完成操作系统的各种功能,本质上是正在运行的操作系统本身;用户进程则是你启动的所有程序。进程是操作系统分配资源的基本单位。有些进程在任务管理器里是没法直接结束的——比如疑似木马混进来了,怎么办?其实有技巧可以强行终止它。
Windows操作系统里,真正不能杀掉的进程只有System、SMSS.EXE和CSRSS.EXE。前两个是纯内核态进程,最后一个是Win32子系统,而ntsd命令本身依赖它。ntsd从Windows 2000开始就是系统自带的一个用户态调试工具。被调试器附着(attach)的进程会随着调试器一起退出,所以可以用它在命令行下终止进程。用ntsd自动获取debug权限,就能杀掉大部分进程。ntsd会新开一个调试窗口,本来在纯命令行下不太好控制,但如果只是简单的命令比如退出(q),用-c参数从命令行传递就行了。按照惯例,ntsd也向软件开发人员提供,不过系统管理员也可以用。具体操作:打开cmd.exe窗口,输入
ntsd -c q -p PID
把最后的PID换成你要终止的进程的ID。如果你不知道进程ID,可以在任务管理器→进程选项卡→查看→选择列→勾上“PID(进程标识符)”,就能看到了。
Windows XP下还有两个好用的工具:tasklist和tskill。tasklist能列出所有进程及其信息,tskill能查杀进程,语法很简单:tskill 程序名。
在Linux中,仅等待CPU时间的进程称为“就绪进程”,它们被放在一个运行队列中,状态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完,Linux内核的调度器会剥夺这个进程对CPU的控制权,并从运行队列中选一个合适的进程投入运行。
当然,进程也可以主动释放CPU控制权。函数schedule()是一个调度函数,可以被进程主动调用,从而让出CPU、调度其他进程。一旦这个主动放弃CPU的进程被重新调度占用CPU,它会从上次停止执行的位置继续——也就是从调用schedule()的下一行代码开始执行。
有时候,进程需要等待某个特定事件发生,比如设备初始化完成、I/O操作完成或定时器到时。这种情况下,进程必须从运行队列移出,加入到一个等待队列中,这时候进程就进入了睡眠状态。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9