l4-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Escaping it's parents (was Re: Process Management (was: Re: Reliabil


From: Marcus Brinkmann
Subject: Re: Escaping it's parents (was Re: Process Management (was: Re: Reliability of RPC services))
Date: Fri, 28 Apr 2006 01:06:42 +0200
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.7 (Sanjō) APEL/10.6 Emacs/21.4 (i486-pc-linux-gnu) MULE/5.0 (SAKAKI)

At Fri, 28 Apr 2006 00:37:24 +0200,
Pierre THIERRY <address@hidden> wrote:
> 
> [1  <multipart/signed (7bit)>]
> [1.1  <text/plain; us-ascii (quoted-printable)>]
> Scribit Marcus Brinkmann dies 27/04/2006 hora 23:15:
> > We have talked about this before. In the Hurd, the defining
> > relationship is parent-child.
> 
> Will it be the only possible? Will it be possible to move a process in
> the tree?

I have considered this, but it is a very difficult operation.  The
problem is that in order to make the child process independent of its
parent, you have to reshuffle the resources, ie the space bank
allocation.  This requires explicit support in the space bank (which
is there, as far as I know), and some clever protocols.  Plus, you
need to add support to any other objects which are provided from the
outside, for example the powerbox.

So, this is not a simple thing to do.  It's on the agenda, but it's
unclear how feasible it is.

> I was thinking about programs like nohup and screen, at least.

Well, good news here.  In a persistent system, everything runs as if
you use nohup and screen all the time.  However, if you run a program
from a shell like bash, as a first approximation you have to keep the
shell running as well.  Do you think that is a big problem?  It could
go into a "minimal state" where it releases most of its resources and
only waits for the child to exit (plus, doing signal stuff etc).

Well, it may be that what I said above is too strong.  What I said
above applies to a tree manipulation of this sort:

    Shell            Shell
   /                /    \
  A           ->   A      B
 /
B


Maybe an operation where A removes itself, letting B take its place:

    Shell            Shell
   /                /
  A           ->   B
 /
B

would be easier to implement.  This is still an open question.  A
solution like that could address some of the more common cases.

Thanks,
Marcus





reply via email to

[Prev in Thread] Current Thread [Next in Thread]