C-Kermit Case Study #27

[ Previous ] [ Next ] [ Index ] [ C-Kermit Home ] [ Kermit Home ]

Newsgroups: comp.protocols.kermit.misc
From: thucdat@hotmail.com (Dat Nguyen)
Subject: Case Study #27: The Dining Philosophers
Date: 3 May 2004 15:02:34 -0700
Organization: http://groups.google.com

If you are using C-Kermit to do some simple communication tasks between two computers, you are under utilizing C-Kermit. Since the release of version 8.0, C-Kermit is a versatile instrument that can be used to do many things that you are unaware of.

Consider that Delphi and Visual Basic run only on Windows, Java won't run on many platforms for years to come (i.e. Stratus VOS) and Smalltalk exists only for a few OS. C-Kermit has been the "WRITE ONCE RUN EVERYWHERE" since the 1980s.

Take one classic problem in operating system: the Dinning Philosophers. The Dinning Philosophers problem can be stated as follows:

Five philosophers spend their lives thinking, eating, and sleeping. The Philosophers sit around a table where there is a bowl of rice and five chopsticks. Each philosopher compete for two chopsticks to eat.

To solve this problem, one needs supports from the running environment like semaphore, timer, fork, multiprocessing, and concurrency. C-Kermit does not provide all that, but you can create them and solve the Dinning Philosophers problem in C-Kermit.

The whole thing is easier to do in OOP fashion where each philosopher is presented by an object. These objects line up in a queue executed in turn by a process object. Each philosopher object carries with itself a softtimer that is timed when the object gets processed.

The philosopher objects compete for chopsticks which are binary semaphore objects. The semaphores keep tracks of the philosophers waiting for chopsticks to be available. Whenever the chopsticks are released by eating philosopher objects, the semaphores send the waiting philosopher objects to the process object queue.

This model of processing are applicable to a variety of complex programming task where resources are competed, state of running objects continously change. And since C-Kermit can communicate with other computers, many useful administration tasks and communication applications can be done comfortably.

For the solution of the Dinning Philosophers problem in C-Kermit, see:

http://www.columbia.edu/kermit/ckscripts.html#oops

Dat Nguyen

[ Top ] [ Previous ] [ Next ] [ Index ] [ C-Kermit Home ] [ Kermit Home ]


Kermit Case Study 27 / Columbia University / kermit@columbia.edu / 4 May 2004