Advanced Operating Systems and Kernel Applications: Techniques and Technologies

Advanced Operating Systems and Kernel Applications: Techniques and Technologies

Yair Wiseman (Bar-Ilan University, Israel) and Song Jiang (Wayne State University, USA)
Indexed In: SCOPUS View 1 More Indices
Release Date: September, 2009|Copyright: © 2010 |Pages: 340
ISBN13: 9781605668505|ISBN10: 1605668508|EISBN13: 9781605668512|DOI: 10.4018/978-1-60566-850-5

Description

As any application running on a computer makes use of the operating system, the potential impact of improving areas such as memory management, process scheduling, file systems, and device drivers is tremendous.

Advanced Operating Systems and Kernel Applications: Techniques and Technologies discusses non-distributed operating systems that benefit researchers, academicians, and practitioners desiring to delve into this subject area and learn more on this important field of study. This innovative publication includes an overview of topical issues, methods, and advancements in the field of one-processor operating systems.

Topics Covered

The many academic areas covered in this publication include, but are not limited to:

  • Device driver reliability
  • Efficiency of memory management
  • Efficient memory utilization
  • Exokernel operating system
  • Identifying systemic threats
  • Kernel security
  • Kernel stack overflows elimination
  • Management of kernel buffer cache
  • Page replacement algorithms
  • System thrashing
  • Temporal and spatial localities

Reviews and Testimonials

This book provides results that will be suitable to as many operating systems as possible. We believe this book will be a nice contribution to the community of operating system kernel developers.

– Yair Wiseman, Bar-Ilan University, Israel

Table of Contents and List of Contributors

Search this Book:
Reset

Preface

TENTATIVE

Operating Systems research is a vital and dynamic field. Even young computer science students know that Operating Systems are the core of any computer system and a course about Operating Systems is more than common in any Computer Science department all over the world.

This book aims at introducing subjects in the contemporary research of Operating Systems. One-processor machines are still the majority of the computing power far and wide. Therefore, this book will focus at these research topics i.e. Non-Distributed Operating Systems. We believe this book can be especially beneficial for Operating Systems researchers alongside encouraging more graduate students to research this field and to contribute their aptitude.

A probe of recent operating systems conferences and journals focusing on the “pure” Operating Systems subjects (i.e. Kernel’s task) has produced several main categories of study in Non-Distributed Operating Systems:

  • Kernel Security
  • Efficient Memory Utilization
  • Kernel Flexibility
  • I/O prefetching
  • Page Replacement Algorithms

We introduce subjects in each category and elaborate on them within the chapters. The technical depth of this book is definitely not superficial, because our potential readers are Operating Systems researchers or graduate students who conduct research at Operating System labs. The following paragraphs will introduce the content and the main points of the chapters in each of the categories listed above.

  • Kernel Security
    • Kernel Stack Overflows Elimination

      The kernel stack has a fixed size. When too much data is pushed upon the stack, an overflow will be generated. This overflow can be illegitimately utilized by unauthorized users to hack the operating system. The authors of this chapter suggest a technique to prevent the kernel stack from overflowing by using a kernel stack with a flexible size.

    • Device Driver Reliability

      Device Drivers are certainly the Achilles' heel of the operating system kernel. The writers of the device drivers are not always aware of how the kernel was written. In addition, many times, only few users may have a given device, so the device driver is actually not indeed battle-tested. The author of this chapter suggests inserting an additional layer to the kernel that will keep the kernel away from the device driver failures. This isolation will protect the kernel from unwanted malfunctions along with helping the device driver to recover.

    • Identifying Systemic Threats to Kernel Data: Attacks and Defense Techniques

      Installing a malware into the operating system kernel by a hacker can has devastating results for the proper operation of a computer system. The authors of this chapter show examples of dangerous malicious code that can be installed into the kernel. In addition, they suggest techniques how to protect the kernel from such attacks.

  • Efficient memory utilization
    • Swap Token: Rethink the Application of the LRU Principle on Paging to Remove System Thrashing

      The common method to handle the "paging out" mechanism is using a version of LRU. E.g. Linux uses CLOCK which is an approximation of LRU. When a high memory pressure occurs, LRU is unable to satisfactorily maintain the memory stress and a thrashing is occurred. The author of this chapter suggests a way to alleviate the harmful effect of thrashing by amending the traditional LRU into a better algorithm that is able to maintain better a heavy loaded memory.

    • Application of both Temporal and Spatial Localities in the Management of Kernel Buffer Cache

      With the aim of reducing the number of disk accesses, computer systems use buffer cache which saves the last accessed data in the disk. The common method for deciding which data will be saved in the buffer cache is utilizing the temporal locality principle while ignoring the spatial locality princile. The author of this chapter suggests a way of combing the two locality principles in order to achieve a better hit ratio in the buffer cache.

    • Alleviating the Trashing by Adding Medium-Term Scheduler

      When too much memory space is needed, the CPU spends a large portion of its time swapping pages in and out the memory. This effect is called Thrashing. Thrashing's result is a severe overhead time and as a result a significant slowdown of the system. Linux 2.6 has a breakthrough technique that was suggested by one of these book editors - Dr. Jiang and handles this problem. The authors of this chapter took this known technique and significantly improved it. The new technique is suitable for much more cases and also has better results in the already handled cases.

  • Kernel flexibility
    • The Exokernel Operating System and Active Networks

      The micro-kernel concept is very old dated to the beginning of the seventies. The idea of micro-kernels is minimizing the kernel. I.e. trying to implement outside the kernel whatever possible. This can make the kernel code more flexible and in addition, fault isolation will be achieved. The possible drawback of this technique is the time of the context switches to the new kernel-aid processes. Exokernel is a micro-kernel that achieves both flexibility and fault isolation while trying not to harm the execution time. The author of this chapter describes the principles of this micro-kernel.

  • I/O prefetching
    • Exploiting Disk Layout and Block Access History for I/O Prefetch

      Prfetching is a known technique that can reduce the fetching overhead time of data from the disk to the internal memory. The known fetching techniques ignore the internal structure of the disk. Most of the disks are maintained by the Operating System in an indexed allocation manner meaning the allocations are not contiguous; hence, the oversight of the internal disk structure might cause an inefficient prefetching. The authors of this chapter suggests an improvement to the prefetching scheme by taking into account the data layout on the hard disk.

    • Sequential file prefetching in Linux

      The Linux operating system supports prefetching. The prefetching mechanism of Linux is called readahead. The variety of applications that Linux should support requires more flexible criteria for the Linux prefetching algorithm. Interleaved streams and parallelism are also issues that the prefetching mechanism should deal with. The author of this chapter suggests a recent algorithm that is able to handle this complicated environment. The algorithm will also have to deal with the new trends of escalating disk seek cost and the common use of multi core processors and parallel machines.

  • Page Replacement Algorithms
    • Adaptive Replacement Algorithm Templates and EELRU

      With the aim of facilitating paging mechanism, the operating system should decide on "page swapping out" policy. Many algorithms have been suggested over the years; however each algorithm has advantages and disadvantages. The authors of this chapter propose to adaptively change the algorithm according to the system behavior. In this way the operating system can avoid choosing inappropriate method and the best algorithm for each scenario will be selected.

    • Enhancing the Efficiency of Memory Management in a Super-Paging Environment by AMSQM

      The traditional page replacement algorithms presuppose that the page size is a constant; however this presumption is not always correct. Many contemporary processors have several page sizes. Larger pages that are pointed to by the TLB are called Super-Pages and there are several super-page sizes. This feature makes the page replacement algorithm much more complicated. The authors of this chapter suggest a novel algorithm that is based on recent constant page replacement algorithms and is able to maintain pages in several sizes.

This book contains surveys and new results in the area of Operating System kernel research. The books aims at providing results that will be suitable to as many operating systems as possible. There are some chapters that deal with a specific Operating System; however the concepts should be valid for other operating systems as well.

We believe this book will be a nice contribution to the community of operating system kernel developers. Most of the existing literature does not focus on operating systems kernel and many operating system books contain chapters on close issues like distributed systems etc. We believe that a more concentrated book will be much more effective; hence we made the effort to collect the chapters and publish the book.

The chapters of this book have been written by different authors; but we have taken some steps like clustering similar subjects to a division, so as to make this book readable as an entity. However, the chapters can also be read individually. We hope you will enjoy the book as it was our intention to select and combine relevant material and make it easy to access.

    Yair Wiseman
    Bar-Ilan University, Israel

Author(s)/Editor(s) Biography

Yair Wiseman got his PhD from Bar-Ilan University and completed two Post-Doc - one at the Hebrew University of Jerusalem and one in Georgia Institue of Technology. Dr. Wiseman is now with the Computer Science department of Bar-Ilan University. His research interests include process scheduling, hardware-software codesign, memory management, asymmetric operating systems and computer clusters.
Song Jiang recieved his PhD from the Department of Computer Science at the College of William and Mary. He is now an assistant professor at the Department of Electrical and Computer Engineering at Wayne State University. His research interests include operating system, file and storage system, fault tolerance in parallel systems, and distributed systems. The algorithms he designed on kernel memory management and storage system have been adopted in many mainstream systems, including Linux, NetBSD, and MySQL.

Indices

Editorial Board

Editorial Advisory Board

  • Donny Citron, IBM Research Lab, Israel
  • Eliad Lubovsky, Alcatel-Lucent LTD., USA
  • Pinchas Weisberg, Bar-Ilan University, Israel

    List of Reviewers

  • Donny Citron, IBM Research Lab, Israel
  • Eliad Lubovsky, Alcatel-Lucent LTD., USA
  • Pinchas Weisberg, Bar-Ilan University, Israel
  • Moshe Itshak, Radware LTD., Israel
  • Moses Reuven, CISCO LTD., Israel
  • Hanita Lidor, The Open University, Israel
  • Ilan Grinberg, Israel Defense Forces, Israel
  • Reuven Kashi, Rutgers University, USA
  • Mordechay Geva, Bar-Ilan University, Israel