<< Chapter < Page Chapter >> Page >

Software levels

Interrupt handlers

The Interrupt Service Routines (ISRs) are short routines designed to turn the asynchronous events from devices (and controllers)into synchronous ones that the operating system can deal with in time. While an ISR is executing, some set of interrupts is usually blocked, which is adangerous state of affairs that should be avoided as much as possible.

ISRs generally encode the information about the interrupt into some queue that the OS checks regularly - e.g. on a contextswitch.

Device drivers

Device drivers are primarily responsible for issuing the low-level commands to the hardware that gets the hardware to do whatthe OS wants. As a result, many of them are hardware dependent.

Conceptually, perhaps the most important facet of device drivers is the conversion from logical to physical addressing. The OS maybe coded in terms of logical block numbers for a file, but it is the device driver that converts such logical addresses to real physical addresses andencodes them in a form that the hardware can understand.

Device drivers may also be responsible for programming smart controllers, multiplexing requests and de-multiplexingresponses, and measuring and reporting device performance.

Device independent os code

This is the part of the OS we've really been talking the most about. This part of the OS provides consistent device namingand interfaces to the users. It enforces protection, and does logical level caching and buffering.

In addition to providing a uniform interface, the uniform interface is sometimes pierced at this level to expose specific hardwarefeatures -- CD audio capabilities, for instance.

The device independent code also provides a consistent error mode to users, letting them know what general errors occurredwhen the device driver couldn't recover.

User code

Even the OS code is relatively rough and ready. User libraries provide simpler interfaces to I/O systems. Good examples are thestandard I/O library that provides a simplified interface to the filesystem. printf and fopen are easier to use than write and open. Specifically suchsystems handle data formatting and buffering.

Beyond that there are user level programs that specifically provide I/O services (daemons). Such programs spool data, ordirectly provide the services users require.

Files, disk management

File: a named collection of bits stored on disk. From the OS' standpoint, the file consists of a bunch of blocks stored on the device.Programmer may actually see a different interface (bytes or records), but this does not matter to the file system (just pack bytes into blocks, unpack themagain on reading).

Common addressing patterns:

  • Sequential: information is processed in order, one piece after the other. This is by far the most common mode: e.g. editor writes out new file,compiler compiles it, etc.
  • Random Access: can address any record in the file directly without passing through its predecessors. E.g. the data set for demand paging, alsodatabases.
  • Keyed: search for records with particular values, e.g. hash table, associative database, dictionary. Usually not provided by operating system. TLBis one example of a keyed search.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Operating systems. OpenStax CNX. Aug 13, 2009 Download for free at http://cnx.org/content/col10785/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Operating systems' conversation and receive update notifications?

Ask