Operating Systems and Networks.

This page (which is under construction) contains information about various operating system and networking topics. Most of the info is in the form of links, either to papers or to other web pages. The set of links is not intended to be comprehensive; rather it represents those pieces of information which I could find relatively easily on the web. If you have a web page or an electronic version version of a paper to which you think I should link, please e-mail me.

The sections currently present at least in part are:

Many sections are still absent. I hope to get around to rectifying this in the near future.

 CPU Scheduling

This section contains a number of papers about scheduling processes and/or threads. It is, of course, far from comprehensive.

  • First-Class User-Level Threads, Marsh et al, SOSP '91. [gzipped postscript, 61K]
  • Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism, Anderson et al, TOCS '92. [PDF, 235K]
  • Process Control and Scheduling Issues for Multiprogrammed Shared-Memrory Multiprocessors, Tucker et al, SOSP '89. [gzipped postscript, 46K]
  • A Comparison of basic CPU Scheduling Algorithms for Multiprocessor Unix, Curran et al, CS '90. [gzipped postscript, 57K].
  • Processor Capacity Reserves: Operating System Support for Multimedia Applications, Mercer et al, MCS '94. [gzipped postscript, 41K].
  • A Hierarchical CPU Scheduler for Multimedia Operating Systems, Goyal et al, OSDI '96. [gzipped postscript, 76K]

 Storage Systems

This section contains some of papers and links regarding disk I/O and file systems, including some which concern the distributed case. It probably should be split into 2 or 3 separate sections some time in the future.

 Multicast Stuff

Here are a few papers on multicast (in particular RLM-related for now since there's a project on that). More to follow, assuming I can filter the insanity.

  • Receiver-driver Layered Multicast, McCanne et al, SIGCOMM '96. [PDF, 211K].
  • Stability and Fairness Issues in Layered Multicast, Griffioen et al, NOSSDAV '99. [gzipped postscript, 99K].

 Unix

The Unix time-sharing system was born at Bell Labs in 1969. The initial development was by Ken Thompson and Dennis Ritchie, who put to use a spare PDP-7. Now, thirty years later, Unix variants are still popular - the most well known probably being Linux.

This section contains a few "old" papers about Unix which give an insight into what the design principles were, and how the system developed.

  • The UNIX Time-Sharing System, CACM 1974 (in postscript or pdf)
  • The Evolution of the UNIX Time-Sharing System, BLTJ 1984 (in postscript, pdf or on-line)
  • A document describing the implementation of UNIX (generated from roff; no figures) in postscript or pdf.
There is a lot of other information about Unix on the web; see http://www.ugu.com/ or http://www.faqs.org/faqs/unix-faq/ for example.

You can also get the slides used in my Unix Case Study lectures:

 User-space Networking

Performing network protocol processing in user-space has a number of advantages. Firstly, it allows applications to use specialised protocol stacks which more closely match their requirements. Secondly, it decouples interrupt arrival from packet processing, and hence allows the latter task to be performed under the auspices of the scheduler rather than the network. And finally, it provides an easy way to prototype new networking protocols.

The below are a small selection of some recent work in this area:

 

Back to Home Page

  $Id: os-net.html,v 1.3 2005/10/06 09:27:14 smh22 Exp $