05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

9. Conclusion and Future Work<br />

A solution to the problem could either be to change the primitives to be<br />

aware of the changed situation, or to ensure that the reflective invocation<br />

of primitives is performed with the correct context.<br />

Conceptual limitations, as discussed in Sec. 6.5.2, are:<br />

Deadlock freedom is a guarantee that cannot be given if a language or VM<br />

enables arbitrary and unconstrained use of blocking operations. However,<br />

restricting the use of blocking operations seems impractical in<br />

multi-language VMs w<strong>here</strong> some languages might require blocking semantics.<br />

However, the OMOP provi<strong>de</strong>s the ability to customize all primitives,<br />

and thus, enables a domain to manage calls to blocking operations and<br />

adapt them as necessary, which could be used to facilitate the guarantee<br />

of <strong>de</strong>adlock freedom.<br />

Domain interaction requires explicit handling. A language or library implementer<br />

has to anticipate and adapt domain implementations to account<br />

for the semantics of other domains and ensure that interactions have<br />

reasonable semantics.<br />

Currently, t<strong>here</strong> is no mechanism that enables the specification of <strong>de</strong>sired<br />

interactions in a general way, since the OMOP only takes the<br />

owner of an object into account for <strong>de</strong>termining which intercession handler<br />

implements the <strong>de</strong>sired semantics.<br />

Object-based ownership notion has tra<strong>de</strong>offs. The granularity of ownership<br />

per object might preclu<strong>de</strong> relevant <strong>de</strong>signs, especially when it comes to<br />

large arrays or objects that need to be shared. Together with the notion<br />

of having a single owner per object, the OMOP restricts the <strong>de</strong>sign space<br />

within which concurrent programming concepts can be expressed.<br />

Limited support for guaranteeing scheduling policies. During the execution<br />

of primitives, complete control is yiel<strong>de</strong>d to the un<strong>de</strong>rlying platform by<br />

the VM, and thus, its ability to enforce scheduling policies is restricted.<br />

While intercession handlers for primitives enable customization, they<br />

do not provi<strong>de</strong> a full solution.<br />

To gain full control, the language implementer would need to be able to<br />

express policies which are communicated to the un<strong>de</strong>rlying platform as<br />

well. This is currently not conci<strong>de</strong>red in the <strong>de</strong>sign of the OMOP.<br />

240

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!