Summary: | 碩士 === 國立臺灣科技大學 === 工程技術研究所 === 82 === A non-preemptive kernel can only execute one task at any one
time. Only after the task has exited the kernel or because the
task sleeps for event can other task enters the kernel for
execution. As a result, real-time of the highest task-executing
priority is restricted and inconsistent execution time for each
task happens very often in time sharing scheduler. Also, it
does not allow multiple processors to simultaneously execute
kernel codes on multi-processor operating system, making the
system's performance inefficient. Therefore, a preemptive
kernel is needed by real-time operating system, symmetric multi-
processing operating system and multi-processor operating
system. Coordination control of independently executed tasks
within preemptive kernel is also an important issue. It can be
achived by designed locking and reference count techniques.
Object granularity Locking and placement locking are
determining factors of execution performances within preemptive
kernel. This paper uses non-preemptive kernel of Linux
operating system to design a preemptive kernel which uses fine
grain object to design locking object granularity, uses master
locking and monitor locking to implement locking techniques,
and probes the locking architectures of preemptive kernel to
locate their method and rules. The method and rules can surely
help solve inconsistency problem of data structure and deadlock
problem within preemptive kernel. lastly, locking miss ratios
between fine grain locking object and large grain locking
object are compared and preemptible time measured for better
preemptive kernel execution performances.
|