Race Condition:
A race condition is an undesirable
situation that occurs when a device or system attempts to perform two or more
operations at the same time, but because of the nature of the device or system,
the operations must be done in the proper sequence to be done correctly.
Buses:
A bus is a transmission path on which signals are dropped off or picked up at
every device attached to the line. Only devices addressed by the signals pay
attention to them; the others discard the signals. According to Winn L. Rosch,
the term derives from its similarity to auto-buses that stop at every town or
block to drop off or take on riders.
Interrupt:
An interrupt is a signal from a device attached to a computer or from a program
within the computer that requires the operating system to stop and figure out
what to do next. Almost all personal (or larger) computers today are
interrupt-driven - that is, they start down the list of computer instructions
in one program (perhaps an application such as a word processor) and keep
running the instructions until either (A) they can't go any further or (B) an
interrupt signal is sensed. After the interrupt signal is sensed, the computer
either resumes running the current program or begins running another program.
Types of Interrupts:
There are two common ways in which buses implement
interrupts: vectored and polled. Both methods
commonly supply a bus-interrupt priority level. However, vectored devices also
supply an interrupt vector; polled devices do not.
Vectored Interrupts
Devices that use vectored interrupts are assigned an interrupt
vector. This is a number that identifies a particular interrupt handler.
This vector may be fixed, configurable (using jumpers or switches), or
programmable. In the case of programmable devices, an interrupt device cookie
is used to program the device interrupt vector. When the interrupt handler is
registered, the kernel saves the vector in a table.
When the device interrupts, the system enters the interrupt
acknowledge cycle, asking the interrupting device to identify itself. The
device responds with its interrupt vector. The kernel then uses this vector to
find the responsible interrupt handler.
The VMEbus supports vectored interrupts.
Polled Interrupts
In polled (or autovectored) devices,
the only information the system has about a device interrupt is either the bus
interrupt priority level (IPL, on an SBus in a SPARC machine, for example) or
the interrupt request number (IRQ on an ISA bus in an x86 machine, for
example).
When an interrupt handler is registered, the system adds the
handler to a list of potential interrupt handlers for each IPL or IRQ. Once the
interrupt occurs, the system must determine which device, of all the devices
associated with a given IPL or IRQ, actually interrupted. It does this by
calling all the interrupt handlers for the designated IPL or IRQ, until one
handler claims the interrupt.
The SBus, ISA, EISA, MCA, and PCI buses are capable of supporting
polled interrupts.
Software Interrupts
The Solaris 7 DDI/DKI supports software interrupts, also
known as soft interrupts. Soft interrupts are not initiated by a hardware
device; they are initiated by software. Handlers for these interrupts must also
be added to and removed from the system. Soft interrupt handlers run in
interrupt context and therefore can be used to do many of the tasks that belong
to an interrupt handler.
Commonly, hardware interrupt handlers are supposed to perform
their tasks quickly, since they may suspend other system activity while
running. This is particularly true for high-level interrupt handlers, which
operate at priority levels greater than that of the system scheduler.
High-level interrupt handlers mask the operations of all lower-priority
interrupts--including those of the system clock. Consequently, the interrupt
handler must avoid involving itself in an activity (such as acquiring a mutex)
that might cause it to sleep.
If the handler sleeps, then the system may hang because the clock
is masked and incapable of scheduling the sleeping process. For this reason,
high-level interrupt handlers normally perform a minimum amount of work at
high-priority levels and delegate remaining tasks to software interrupts, which
run below the priority level of the high-level interrupt handler. Because
software interrupt handlers run below the priority level of the system
scheduler, they can do the work that the high-level interrupt handler was
incapable of doing.
Types of Buses:
Internal Bus:
A BUS or set of wires which connects
the various components inside a computer, is known as Internal Bus. As it is
used for internal communication purposes. It connects various components inside
the cabnet, like as CPU, Memory and Motherboard. It is also known as System
Bus.
External Bus:
A Bus or set of wires which is used to
connect outer peripherals or components to computer , is known as External
Bus.It allows different external devices to be connected to computer. It is
slower than Internal or System Bus. It is also known as Expansion Bus.
0 comments:
Post a Comment