throbber
Computer-System Operation
`
`A modern, general-purpose computer system consists of a CPU and a number of device controllers
`that are connected through a common bus that provides access to shared memory (see figure below).
`Each device controller is in charge of a specific type of device (for example, disk drives, audio
`devices, and video displays). The CPU and the device controllers can execute concurrently (at the
`same time), competing for memory cycles. To ensure orderly access to the shared memory (RAM),
`a memory controller is provided whose function is to synchronize access to the memory.
`
`A modern computer system.
`
`For a computer to start running - for instance, when it is powered up or rebooted it needs to have an
`initial program to run. This initial program, or bootstrap program, tends to be simple. It initializes
`all aspects of the system, from CPU registers to device controllers to memory contents. The
`bootstrap program must know how to load the operating system and to start it executing. To
`accomplish this goal, the bootstrap program must locate the operating system kernel (core part of
`the operating system) and load it into memory. The operating system then starts executing the first
`process, such as "init", and waits for some event to occur. The occurrence of an event is usually
`signaled by an interrupt (signal to the CPU requesting attention) from either the hardware or
`software. Hardware may trigger an interrupt at any time by sending a signal to the CPU, usually by
`way of the system bus. Software may trigger an interrupt by executing a special operation called a
`system call (also called a monitor call).
`
`There are many different types of events that may trigger an interrupt, for example, the completion
`of an I/O operation, division by zero, invalid memory access, and a request for some operating
`system service. For each such interrupt, a service routine is provided that is responsible for dealing
`with the interrupt.
`
`Petitioner Lenovo (United States) Inc. - Ex. 1017
`
`1 of 3
`
`

`

`When the CPU is interrupted, it stops what it is doing and immediately transfers execution to a fixed
`location. The fixed location usually contains the starting address where the service routine for the
`interrupt is located. The interrupt service routine executes, and upon completion, the CPU resumes
`the interrupted computation. A time line of this operation is shown in the figure below.
`
`Interrupt time line for a single process doing output.
`
`Interrupts are an important part of a computer architecture. Each computer design has its own
`interrupt mechanism, but several functions are common. The interrupt must transfer control to the
`appropriate interrupt service routine. The straightforward method for handling this transfer would be
`to invoke a generic routine to examine the interrupt information, and it, in turn, would call the
`interrupt-specific handler. However, interrupts must be handled very quickly, and given that there
`are a predefined number of possible interrupts, a table of pointers to interrupt routines may be used
`instead. The interrupt routine is then called indirectly through the table, with no intermediate routine
`needed. Generally, the table of pointers is stored in low memory (the first 100 or so locations).
`These locations hold the addresses of the interrupt service routines for the various devices. This
`array, or interrupt vector, of addresses is then indexed by a unique device number, given with the
`interrupt request, to provide the address of the interrupt service routine for the interrupting device.
`Operating systems as different as MS-DOS and UNIX dispatch interrupts in this manner.
`
`The interrupt architecture must also save the address of the interrupted instruction. Many old
`designs simply stored the interrupt address in a fixed location or in a location indexed by the device
`number. More recent architectures store the return address on the system stack. If the interrupt
`routine needs to modify the processor state, for instance, by modifying register values, it must
`explicitly save the current state and then restore it before returning. After the interrupt is serviced,
`the saved return address is loaded into the program counter, and the interrupted computation will
`resume as though the interrupt had not occurred.
`
`Usually, interrupts are disabled while an interrupt is being processed, delaying any incoming
`interrupts until the operating system is done with the current one, after which interrupts are enabled.
`If they were not thus disabled, the processing of the second interrupt while the first was being
`serviced would overwrite the first's data, and the first would be a lost interrupt. Sophisticated
`interrupt architectures allow for one interrupt to be processed during another. They often use a
`priority scheme in which request types are assigned priorities according to their relative importance,
`
`2 of 3
`
`

`

`and interrupt processing information is stored separately for each priority. A higher-priority interrupt
`will be taken even if a lower-priority interrupt is active, but interrupts at the same or lower levels are
`masked, or selectively disabled, to prevent lost interrupts or unnecessary ones.
`
`Modern operating systems are interrupt driven. If there are no processes to execute, no I/O devices
`to service, and no users to whom to respond, an operating system will sit quietly, waiting for
`something to happen. Events are almost always signaled by the occurrence of an interrupt, or a trap.
`A trap (or an exception) is a software-generated interrupt caused either by an error (for example,
`division by zero or invalid memory access), or by a specific request from a user program that an
`operating-system service be performed.
`
`The interrupt-driven nature of an operating system defines that system's general structure. When an
`interrupt (or trap) occurs, the hardware transfers control to the operating system. First, the operating
`system preserves the state of the CPU by storing registers and the program counter. Then, it
`determines which type of interrupt has occurred. This determination may require polling, the
`querying of all I/O devices to detect which requested service, or it may be a natural result of a
`vectored interrupt system. For each type of interrupt, separate segments of code in the operating
`system determine what action should be taken.
`
`Last Updated Jul.28/99
`
`3 of 3
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket