9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "rob pike" <rob@plan9.bell-labs.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Why rio instead of 8 1/2
Date: Tue, 18 Jul 2000 10:34:03 -0400	[thread overview]
Message-ID: <200007181434.KAA00924@cse.psu.edu> (raw)

[-- Attachment #1: Type: text/plain, Size: 780 bytes --]

1) The processes are running in the same, shared memory
created by rfork(RFMEM).
2) The wctl named pipe makes it easy for programs like /bin/window
to find the window system even if they are not in its name space.
this is an issue for plumber commands.
3) This topic is discussed in the Acme paper.  There is a data type
called XFid that is used to manage a pool of threads in the main
proc to handle requests on behalf of clients of the file system
process.  The advantage of this design is that anything that needs
to access global data can do much less interlocking if it's a thread
in the main proc rather than a separate proc.  Threads are coroutines
that schedule cleanly; procs are true process scheduled at arbitrary
points by the operating system.

-rob


[-- Attachment #2: Type: message/rfc822, Size: 4477 bytes --]

[-- Attachment #2.1.1: Type: text/plain, Size: 1045 bytes --]

Thanks Rob!

Now, I got that it shows the state of channel communication.


I got another difficulty to understand how the rio works.
Of course it comes from my personal inablility to read the sources,
however, I suppose it's not so easy to some of Plan 9 users like me, either.

1) all the seven procs have the same memory size, and grows
     coincidently alltogether.  Why?  Only the process of threadmain()
     can grow, can't it?

2) proc wctlproc does only check "New" command, and writectl()
     is called from xfidwrite() which is checked by normal filsyproc().
     So, why /srv/riowctl.$user.$pid is posted?  The "New" command
     can also be checked from the normal filsysproc(), can't it?

3) filsysproc() calls file operation functions in fsys.c, and many of
     those functions call  coresponding xfidxxx functions through
     channel x->c.  Why these two processes are separated?  Or
     what is the merrit to use channel for this purpose, but not just
     function call by pointer alone?

Kenji


[-- Attachment #2.1.2: Type: message/rfc822, Size: 1888 bytes --]

From: "rob pike" <rob@plan9.bell-labs.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Why rio instead of 8 1/2
Date: Thu, 13 Jul 2000 19:34:52 -0400
Message-ID: <200007132334.TAA14780@cse.psu.edu>

	Then, No. (2) and (5) procs are marked as rendez.  I looked into
	sources, however, I failed to understand where the No.2 and 5
	processes are called rendezvous.  I know I'm missing something...

They aren't called rendezvous, they're in the rendezvous state.
That field of the ps output is the state of the process, typically a system
call name (such as Wait, Read, etc.) or a process state (Fault, Rendez,
etc.)

-rob

             reply	other threads:[~2000-07-18 14:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-18 14:34 rob pike [this message]
  -- strict thread matches above, loose matches on Subject: below --
2000-07-21 13:01 rob pike
2000-07-21  7:07 okamoto
2000-07-18  4:56 okamoto
2000-07-13 23:34 rob pike
2000-07-13 11:20 okamoto
2000-07-08 19:15 rob pike

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200007181434.KAA00924@cse.psu.edu \
    --to=rob@plan9.bell-labs.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).