DragonFly BSD
DragonFly kernel List (threaded) for 2013-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

[GSOC] System V IPC in userspace week5 report


From: grigore larisa <larisagrigore@xxxxxxxxx>
Date: Mon, 22 Jul 2013 00:17:31 +0300

--001a11c2124479fdf104e20c1622
Content-Type: text/plain; charset=ISO-8859-1

Hi all,

This week I've changed the shared memory approach according to Samuel and
Markus feedback. For each ipc resource, the daemon creates a file in a
known directory, open it and installs a file descriptor in the client files
table. After the daemon open its, it does a *unlink()* call (as Samuel
suggested) such as no other process can access it.
*shmat* is done using *mmap* call and the daemon is announced in order to
update some data. I have discussed with Markus about the case a process
bypasses the API and calls directly *mmap* instead of *shmat*. A way of
resolving this problem is to use *kevents* and add another type
of EVFILT_VNODE events (for mmap and munmap).
*shmctl* is implementing by exchanging data with the daemon.
In the last part of the week I have studied the semaphores kernel
implementation and made a plan for the userland approach.

Larisa

--001a11c2124479fdf104e20c1622
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi all,<div><br></div><div>This week I&#39;ve changed the =
shared memory approach according to Samuel and Markus feedback. For each ip=
c resource, the daemon creates a file in a known directory, open it and ins=
talls a file descriptor in the client files table. After the daemon open it=
s, it does a <i>unlink()</i>=A0call (as Samuel suggested) such as no other =
process can access it.</div>
<div><i>shmat</i> is done using <i>mmap</i>=A0call and the daemon is announ=
ced in order to update some data. I have discussed with Markus about the ca=
se a process bypasses the API and calls directly <i>mmap</i>=A0instead of <=
i>shmat</i>. A way of resolving this problem is to use <i>kevents</i>=A0and=
 add another type of=A0EVFILT_VNODE events (for mmap and munmap).</div>
<div><i>shmctl</i>=A0is implementing by exchanging data with the daemon.</d=
iv><div>In the last part of the week I have studied the semaphores kernel i=
mplementation and made a plan for the userland approach.</div><div><br></di=
v>
<div>Larisa</div></div>

--001a11c2124479fdf104e20c1622--



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