The processes in the 'Z' (zombie) state are not really unkillable; in fact, they have already been killed. They are waiting for the parent process to collect its return value, and have already freed almost all of its resources (the only remaining resource it has is the structure which tracks its state in the kernel -- much like the "process object" Raymond mentioned.) They waste almost no memory, and when the parent dies, they are "reparented" (if the grandparent already died, the init process becomes the parent, and it will make the zombie go away).