KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

KernelNewbies:
  • KernelProjects
  • AsynchronousSystemCalls

Asynchronous System Calls

Asynchronous system API's like aio are important both for performance as well as for more stable applications. Consider applications that access a high latentcy file system (like nfs) and a need to terminate the system call immediatly occurs. In an asynchronous system, the specific system call can be cancelled while there is no way to perform a cancellation in a synchronous API. There are a number of system calls that this kind of problem can occur. "open", "mount", etc.

The other issue with the current asynchronous APIs is that it is very difficult to use. Going to a queue based asynchronous api with a "select()"able method of managing the results will provide a more stable programming environment. In effect, somthing similar to epoll may do the trick.

Note that there's already some work being done in this direction. After asking on #kernelnewbies I was informed about the syslets/threadlets project by Ingo Molnar and Zach Brown. I could find these patches, which seems to be the latest available:

http://oss.oracle.com/~zab/syslets/v6/

A few examples and older patches can be found at:

http://people.redhat.com/~mingo/syslet-patches/

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01