本文目录一览

1,僵尸进程怎么杀 sigkill

不能随便杀父进程.ps -aux 先找到僵死进程ID,如5031lsof -p 5031看看僵死在什么地方,一般地讲死锁在某个文件或关联在某个进程去除死锁文件或杀死相关联进程先

僵尸进程怎么杀 sigkill

2,什么是僵尸程序

僵尸程序。现在理解就是黑客用远程控制软件,控制的成百上千的肉鸡,这就构成僵尸网络。
僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程.(zombie)进程

什么是僵尸程序

3,什么是孤儿进程僵死进程守护进程

僵尸进程: 一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 守护进程; 子进程未结束,父进程结束,子进程由init 进程接管,子进程可作为守护进程。
我不会~~~但还是要微笑~~~:)

什么是孤儿进程僵死进程守护进程

4,僵尸进程是如何产生的

一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程  是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退  出状态等信息供其他进程收集,除此之外,僵尸进程不再占有任何内存空间。它需要它的父进程来为它收尸,如果他的父进程没安装SIGCHLD信  号处理函数调用wait或waitpid()等待子进程结束,又没有显式忽略该信号,那么它就一直保持僵尸状态,如果这时父进程结束了,那么init进程自动  会接手这个子进程,为它收尸,它还是能被清除的。但是如果如果父进程是一个循环,不会结束,那么子进程就会一直保持僵尸状态,这就是为什么系统中有时会有很多的僵尸进程。  Linux系统对运行的进程数量有限制,如果产生过多的僵尸进程占用了可用的进程号,将会导致新的进程无法生成。这就是僵尸进程对系统的最大危害。

5,什么是孤儿进程什么是僵尸进程

僵尸进程: 一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 守护进程; 子进程未结束,父进程结束,子进程由init 进程接管,子进程可作为守护进程。
当然会成为僵尸进程,你的c、d子进程比父进程先结束,在fork ()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装sigchld信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程。 僵尸进程的避免:(1) 父进程通过wait和waitpid等函数等待子进程结束,这会导致父进程挂起。(2) 如果父进程很忙,那么可以用signal函数为sigchld安装handler,因为子进程结束后, 父进程会收到该信号,可以在handler中调用wait回收。(3) 如果父进程不关心子进程什么时候结束,那么可以用signal(sigchld, sig_ign) 通知内核,自己对子进程的结束不感兴趣,那么子进程结束后, 内核会回收, 并不再给父进程发送信号。(4) 还有一些技巧,就是fork两次,父进程fork一个子进程,然后继续工作,子进程fork一 个孙进程后退出,那么孙进程被init接管,孙进程结束后, init会回收。不过子进程的回收 还要自己做。

6,进程和线程的区别是什么什么叫僵尸进程

进程(在很多操作系统中也称为任务)是操作系统中的一个十分重要的概念。什么是进程呢?所谓进程是指程序的一次执行过程,在Windows95中,就是一个EXE文件的执行过程。但是应该注意,进程和程序是两个不同的概念,不能等同。程序是一组指令的有序集合,是静态的;进程则是指一组指令序列在处理机上的一次执行过程,是动态的。严格地说,进程是程序在一个数据集合上的运行过程,它具有动态、并行、独立、异步等特性;一个进程由“创建”而产生、由调度而进入执行、在资源不能满足时被“挂起”、由“撤销”而消亡,因此,进程是有生命的。当然,一个进程将唯一地对应于一个EXE文件。程序和进程的关系还可以打个比方,如果把程序看作一支曲谱,进程可以理解为对这支曲谱的演奏过程。当然,这个比方并不准确,但可以帮助理解程序和进程之间的关系。 在Windows95中还采用了线程的概念,所谓线程是指由进程进一步派生出来的一组代码(指令组)的执行过程。一个进程可以产生多个线程,这些线程都共享该进程的地址空间,它们可以并行、异步地执行。采用线程最主要的好处是:使同一个程序能有几个并行执行的路径,提高了执行速度;线程需要的系统开销比进程要小。应该说明的是,在Windows95中,“多任务”是基于线程而不是基于进程。 多任务执行是指在同一台计算机系统的同一时刻运行多个程序。由于允许活动任务和后台任务同时运行,所以可以做到有一个任务在后台执行时,前台又能干另一件事。比如说,我们可以一边用图文处理程序编辑一个文件,一边让打印程序完成打印工作。这就极大地提高了工作效率,因为大多数用户都确实需要同时对几个不同的应用程序进行工作。 在Windows 3.X中,多个应用程序同时运行是采取一种所谓的“协作式”方式,称为“协作式多任务”。“协作”这个用语意味着多个应用程序之间必须相互协调,依次实现对操作系统的控制。它们并不是真正的多任务执行,因为其中还有多任务共享系统资源的问题。为了让操作系统把控制权从一个程序转换到另一个程序,当前活动的程序就必须周期地检查一个消息队列。如果某个程序不能经常检查消息队列,操作系统就不能实现控制权的转移。 在Windows 95中采用了一种所谓带优先权的多任务方式来运行基于Win32(Windows的32位)应用程序,称为“抢先式多任务”。在这种方式下,操作系统可以在需要时中断当前的任务,再按照任务队列中各个任务的优先级别来进行任务的调度。为兼容起见,基于Win16(Windows的16位)应用程序仍采用协作式方式完成多任务执行。在Windows 3.X的协作式多任务环境中,必须在Windows 3.X“控制面板”中386增强模式实用程序的一个对话框中才能设置任务的优先级。而Windows 95则在缺省情况下就是完全带优先级的,所以不需要手工对优先级加以设置,这个任务由Windows 95在后台透明地加以完成。 Windows 95抢先式多任务执行实际上就是抢先式多线程执行。为了抢先式多线程执行实现,每个线程有一个优先级值,范围是从0到31。优先级0最低,保留给系统使用。优先级1到31分成四类:空闲(1-6),正常(5-11),高(11-15)和实时(16-31)。正常分类又进一步分成二级:后台(5-9)和前台(6-11)。注意这些范围是有重叠的。这样做可使调度更灵活,例如,允许某些后台任务比某些前台任务更重要,尽管在通常情况下,前台任务的优先级应该更高。使用实时优先级时要非常当心。如果你把一个任务的优先级设得太高,也可能无法实现多任务执行功能。这是因为一个任务的优先级太高了,它就完全不允许系统中有其他任务运行。 VMM(虚拟机管理程序)负责在分时抢先的环境里调度各个进程和线程,具体包括以下服务:生成线程、管理线程、撤消线程和线程调度。 VMM中有两个调度程序:主调度程序和时间片调度程序。主调度程序负责确定最高优先级的线程。只有最高优先级的线程才会运行,其他优先级较低的都被封锁;时间片调度程序负责为所有具有最高优先级的可运行任务分配时间片。 系统运行过程中,线程的优先级可由系统或设备驱动程序(或两者)改变。例如,一旦中断产生,则处理这个中断的线程优先级临时提高,以便它立即得到时间来处理该中断。完成后,优先级可以再降低。 在抢先式多任务中,基于Win32的应用程序不必让位给其它程序就能以友好的方式实现多任务。操作系统会根据系统的需要把控制权交给某个运行中的任务,或从某个运行中的任务移走控制权。这才是真正的多任务操作系统。 僵尸进程消耗线程
僵尸进程就是僵尸网络组建的。用来当中转站 控制其他电脑 进程和线程都是一样 只不过名字叫的不一样罢了。

文章TAG:僵尸进程  僵尸进程怎么杀  sigkill  
下一篇