Summary: | 碩士 === 國立交通大學 === 資訊科學學系 === 86 === In distributed systems, race condition may occur if two or more
execution unitstry to access a shared resource concurrently. In
order to prevent this problem,these execution units will use
concurrency control facilities during theyaccess shared
resources. Locks, or similar facilities, are the most popular
concurrency control facilities for their simplicity. We find out
that some programs often use nesting locks; that is, after an
execution unit has been granted a lock, it still requests the
same lock before it releases the lock. This property can be
found in systems that provide automatic concurrency control,
such as transaction processing systems. It also can be found in
a program with mindless design. Hence, we devise a hierarchical
lock facility to exploit this property. It employs the notion of
proxy to reduce the overhead ofrequesting a nested lock. In
addition, it is also fault-tolerant, and can tolerate single-
site failure of server nodes. Moreover, it provides a GUI
interface for managing fault-tolerant-related functions
conveniently. We implement this facility upon Windows NT 4.0. It
is compatible with the critical section facility that was built
in Windows NT natively; furthermore, it makes programs exploit
their concurrency more easily than using critical section. It
can also be ported to other operating systems with ease because
it is fully implemented under user-mode. Besides, since Windows
NT is an operating system that supports SMP hardware platform,
we take advantage of some characteristics of multiprocessor
systems, and try to reduce the overhead of using this facility.
In this thesis, we will examine each aspect of this facility.
|