递归只是一种形式,本质还是调用函数,所你你不要一直想着它是递归,就认为建立二叉树的函数是函数A,建立左子树是函数B,建立右子树是函数C,只不过B和C的内容和A一样罢了。那函数内的代码怎么执行?就是自上而下一步一步按顺序执行咯,执行完了建立左子树的函数就会执行建立右子树的函数了,只不过这些函数里面还要再调用函数。对于函数的调用,你就当是把函数里的代码全部嵌入到调用它的地方就好了,然后还是自上而下顺序执行。
具体过程你看下面的图好了,由于内容比较多,我把if给省略了,就只写了执行到的部分。
进程是
程序
在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是
死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成 *** 作系统的各种
功能的进程就是系统进程,它们就是处于
运行状态
下的 *** 作系统本身;用户进程就是所有由你启动的进程。进程是 *** 作系统进行
资源分配
的单位。
一个应用程序运行后,还可能调用其它的进程来执行 *** 作,这一组进程就形成了一个进程树(进程树可能是多级的,并非只有一个层次的子进程)。该应用程序称之为父进程,其所调用的对象称之为子进程。当我们结束一个进程树后,即表示同时结束了其所属的所有子进程,此种方法常用于对可复制自身的木马进程的封杀。
设置
优先级
是给某个进程分配CPU
资源
我们知道,一些程序进程运行后,会调用其他进程来执行一些特定功能,这样就组成了一个进程树。举个简单的例子:在windowsxp的“运行”对话框中输入“cmd”启动命令行控制台,然后在命令行中输入“notepad”启动记事本。现在,命令行控制台进程“cmd.exe”和记事本进程“notepad.exe”就组成了一个进程树,其中“notepad.exe”进程是由“cmd.exe”进程创建的,前者称为子进程,后者称为父进程。现在我们用组合键ctrl+
alt+
del调出任务管理器,在“进程”页面中选择“cmd.exe”,右击鼠标并选择“结束进程树”命令(如图),这时你会发现记事本进程也被同时杀死了。如果在“notepad.exe”进程上结束进程树的话,“cmd.exe”进程则依旧运行。因此,结束进程树的特性就是在结束一个进程的同时,结束由该进程直接或间接创建的子进程。
那么结束进程树有什么应用呢?比如一些新型的木马服务端程序运行后,会同时生成两个木马进程,这两个进程互相监控、互相保护。对此类木马,我们就可以分别对两个木马进程尝试使用“结束进程树”命令,从而同时杀死两个木马进程,然后再删除木马服务端程序、清除注册表的启动数据,从而彻底清除木马。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)