Hi,

 

I've been taking a look at mutex implementations in the camkes-app example
and I had a question.

 

In the mutex example here
https://github.com/seL4/camkes/tree/master/apps/mutex suppose I wanted to
extend to add a third component C

 

I need to add the corresponding camkes, source, Kbuild, and Kconfig files
and then I need to add connections to the master mutex.camkes file correct?

My first intuition was to add a connector:

               Assembly {

                              Composition{

                                             .

                                             Connection seL4MyConnector
connection(from c.lock, to b.lock);

                                             .

                              }

               }

 

But this yields and error saying something to the effect "seL4MyConnector
expects one from endpoint and two are specified"

To remedy this I added another lock component to B, and made a connection
between C and this new lock B provides. The new lock being implemented by
the same template.

 

My Questions:

In this scenario do A B and C still have access to the same mutex?

If A has a lock on the mutex, then C requests a lock, will this cause A to
be unable to release the lock?

In my mental model I have three threads of control, one each for A B and C,
if A has a lock and then C requests a lock, does this block B (when it
receives a message from C and is now blocked on requesting the mutex)? Then
when A tries to release, B is blocked and cannot release the mutex on A's
behalf. To put it another way, does this mutex example rely on B having
direct access to the templated code and there only being two components?

 

Secondarily, in the lockserver example
https://github.com/seL4/camkes/tree/master/apps/lockserver a situation is
presented where three clients access a single mutex through a single server.
Would there be an issue if one of the clients also acted as the server? So
for instance if A implemented the three pairs of lock unlock functions
instead of the server and then B and C used seL4RPCCall connections to A in
order to access them, would there be any synchronization issues?

 

I'm relatively new to this and am trying to build a system with the help of
camkes and I want to make sure I understand this before I get too far. I
don't want to be working under incorrect assumptions. 

 

Thanks for taking the time to read this.

 

Sincerely,

 

Jeff Brandon 

Associate Staff 

MIT Lincoln Laboratory

Secure Resilient Systems and Technology 

Ph:   +1 781.981.9233 

 

 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to