A Study of Architecture for making Linux Preemptive kernel

碩士 === 國立臺灣科技大學 === 工程技術研究所 === 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 re...

Full description

Bibliographic Details
Main Authors: Wei-Chih Chang, 張惟志
Other Authors: Chu-Ming Huang
Format: Others
Language:zh-TW
Published: 1994
Online Access:http://ndltd.ncl.edu.tw/handle/83791550318265570761
Description
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.