EPOS abstracts system entities as ordinary C++ objects, thus
promoting usability. At some points, however, the semantics of
operating system and programming language do not seem to fit
together easily. Consider for instance the case in which a system
abstraction (say thread
), created by the application
programmer with new
, is destroyed by the operating
system (e.g. exit
). Or the counterpart situation: the
application programmer deleting a thread
that is
currently being manipulated by the operating system.
A careful binding between programming language and operating system must be defined to prevent undesirable side effects.
Modify the implementation of this didactic version of OpenEPOS
such that the delete
C++ operation preserves system
consistency at the same time it honors the programming language
semantics.