OO?

Gary D. Duzan duzan@udel.edu
Sat, 06 Mar 93 11:43:12 -0500


=>If I understand, a spinlock is the same principle as the whole task managing
=>stuff: one at a time has access to the resource; so having a sub-task manager
=>should be the same as having a spinlock. If not, can someone detail spinlock
=>functionment ?

   It is a multiprocessor locking protocol. A simple example is
test-and-set. A test-and-set is an atomic action that tests a particular
value and if is passes the test, sets it to a new value. For example, a
spin lock initially holds the value FALSE, indicating no processes in the
critical section. The first process to grab the lock will execute a
test-and-set. Since the lock is FALSE, it is set to TRUE and the process
continues into the critical section. A second process (on another
processor) attempts to enter the critical section by executing its own
test-and-set. Since the lock is TRUE, it may not enter, so it enters a
tight loop (spin) of test-and-set operations. When the first process has
completed the critical section, it sets the lock to FALSE. The second
process's next test-and-set operation will then succede, setting the lock
to TRUE and allowing the secon process into the critical section. Since
test-and-set is an atomic operation, more than one process(or) can spin
on a given lock and only one can acquire it at a time. This isn't the
most efficient spinning protocol, but it covers the basic idea.

=>>> > * Could one explain a poor ignorant frenchman the joke about Moose ?
=>>> > ('heard you talk about a Mr Moose; who was it ? )
=>>> Some american cartoon ... :-)
=>
=>Is there nothing more about it ?
=>
   The show in question is The Bullwinkle Show, featuring the adventures
of Rocky the Flying Squirrel and Bullwinkle Moose. The show was known
for its extensive use of puns.
   I think the similarity in tha names MOOSE and GNU may have something
to do with it as well.

=>>> >   That's a general method for protection, which is after all only a "vie
w" of
=>>> > sharing objects. To enhance this, you may add a key to names so an aggre
ssive
=>>> > program not be able to pirat you because you use common names.
=>>> That's what capabilities are.
=>
=>Uh ... what are you calling capabilities ?
=>
   Capabilities are a method for naming and protection. Holding a
capability for an object names the object and gives you specific
permissions to access it. Amoeba and OS/400 are examples of capability
based object systems.

=>>> An OO operating system does NOT mean (IMHO) that all the support for OO
=>>> langauges should be built into the OS (and certainly not into the kernel)
=>>> 
=>>> To me it means that the OS should provide some operations that make it eas
y
=>>> to implement persistant objects.
=>
=>What do you call "some operations", and "persistant objects". To me,
=>you have no OOed OS if every language is going to completely reimplement
=>their objects; you only have an OS with an annoying OOed interface (as
=>with the Mac for many aspects).

   It is not our job to provide standard objects to every existing and
future object-oriented language. We have to draw a line between the
system and the applications somewhere. Also, I see no need to impose a
class heirarchy on the system itself. We should create a space in which
independent objects can exist, operate, and interact via tightly
controlled interfaces. We can then integrate the interface into
languages as required. I don't agree that persistence is the primary
goal, but it is a good one.

                                        Gary Duzan
                                        Time  Lord
                                    Third Regeneration
                         Humble Practitioner of the Computer Arts