Subversion Repositories HelenOS-doc

Compare Revisions

Ignore whitespace Rev 127 → Rev 128

/design/trunk/src/ch_ipc.xml
15,7 → 15,7
protocols.</para>
 
<section>
<title>Services provided by kernel</title>
<title>Kernel Services</title>
 
<para>Every message consists of 4 numeric arguments (32-bit and 64-bit on
the corresponding platforms), from which the first one is considered a
45,7 → 45,7
such response.</para>
 
<section>
<title>Low level IPC</title>
<title>Low Level IPC</title>
 
<para>The whole IPC subsystem consists of one-way communication
channels. Each task has one associated message queue (answerbox). The
152,7 → 152,7
</section>
 
<section>
<title>System call IPC layer</title>
<title>System Call IPC Layer</title>
 
<para>On top of this simple protocol the kernel provides special
services closely related to the inter-process communication. A range of
205,7 → 205,7
</section>
 
<section>
<title>Userspace view</title>
<title>Userspace View</title>
 
<para>The conventional design of the asynchronous api seems to produce
applications with one event loop and several big switch statements.
215,7 → 215,7
application programs.</para>
 
<section>
<title>Single point of entry</title>
<title>Single Point of Entry</title>
 
<para>Each tasks is associated with only one answerbox. If a
multi-threaded application needs to communicate, it must be not only
286,11 → 286,10
 
<title>Single point of entry solution</title>
</figure>
 
</section>
 
<section>
<title>Ordering problem</title>
<title>Ordering Problem</title>
 
<para>Unfortunately, the real world is is never so simple. E.g. if a
server handles incoming requests and as a part of its response sends
310,12 → 309,10
to handle incoming answers and allow the application to run more
user-space threads inside the kernel threads without the danger of
locking all kernel threads in futexes.</para>
 
 
</section>
 
<section>
<title>The interface</title>
<title>The Interface</title>
 
<para>The interface was developed to be as simple to use as possible.
Classical applications simply send messages and occasionally wait for an